Jump to content

Funcion puntos de miles


Yori

Mensajes recomendados

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

Enlace para comentar
Compartir en otros sitios

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

Enlace para comentar
Compartir en otros sitios

  • 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
Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

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

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...