Jump to content

Funcion puntos de miles


Yori

Recommended Posts

Wenas a todos!!

esta seccion esta un poco muerta la verdad, asique he decidido compartir una funcion para no tener que dejarse la vista en ver cuantos ceros o cifras tiene un numero cuando lo vemos en una quest, ad+ de que queda como mas profesional xD.

 

Weno, dejo una imagen del resultado. para que si os parece una tonteria os ahorreis seguir leyendo xD

 

Imagen enviada

 

captura para que veais como se usa la funcion, aunque tmb se puede usar asignando el valor a otra variable y despues mostrando esa variable, aunque es desaconsejable, ya que esto es simplemente visual, ya uqe en el momento que se le añaden los puntos el numero deja de ser un integer(numero) y se transforma en string(letras) por lo que no podreis sumarle nada ni cosas de esas.

Imagen enviada

 

para implementar esta funcion solo debeis añadirla a vuestro questlib.lua, no importa si es arriba o abajo o en el centro, siempre que no la metais dentro de otra funcion que este por alli xD.

 

function puntosMiles(a)
local b =""
local c
local d =""
if a < 1000 then return a end
for h=3,string.len(a),3 do
	if a >= 1000 then
		b=math.floor(a/1000)
		c=math.mod(a,1000)
		a=b
		if c == 0 then d=".000"..d
		elseif c <= 9 then d = ".00"..c..d
		elseif c <= 99 then d = ".0"..c..d
		else d = "."..c..d end
	else
		break
	end
end
return (b..""..d)
end

 

Nota: recordad que debeis añadir el nombre de la funcion al "quest_function" , y si no teneis añadidas las funciones "math.floor","math.mod" y "string.len" añadirlas tambien, ya que son parte de las librerias de lua que tienen todos los servers.

 

 

Pues creo que eso es todo, si teneis alguna duda... preguntar!!! xD

 

Saludos, Yori

Link to comment
Share on other sites

tambien puedes poner numeros, pero lo normal es que el valor que quieres mostrar ya lo tengas en alguna variable, como es mi caso, pero tambien podrias poner en la funcion envez de una variable un numero, y quedaria asi  "puntosMiles(123345)" ,  pero recuerda que la funcion no muestra en pantalla, es decir devuelve el valor, si quieres mostrarlo en pantalla tienes que hacerlo con un say, como he hecho en la imagen o de esta otra forma, pero es peor, porque declaras una variable innecesaria: 

 

local a = puntosMiles(1234567)
say(a)
 

 

Saludos

Link to comment
Share on other sites

  • 2 months later...

@pepineitor

 

la funcion de mijago no es perfecta, esa funcion no revisa a errores, ise una similar q captura errores si das algo mal

function num(a)	if type(tonumber(a))~='number' then		error('bad argument in function')	end	local function reverse(a)		str=''		for letter in string.gfind(a,'.') do			str = letter.. str		end		return str	end	res= reverse(reverse(a):gsub('(%d%d%d)','%1.')):gsub('^%.','')	return tonumber(a) > 0 and res or error('value more than 0 [value+1]')end
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...