ON

Putkks(Value)

Por Oneshot, 29 de mai. de 2012 em Mods, funções e outros

9
1.4k
OneshotO
29 de maio de 2012 às 13:57

Como eu não tinha nada pra fazer, fiz essa inútil função abaixo:

 

function putkks(value)
local e = 0
for _ in tostring(value):gmatch("000") do
	e = e + 1
end

local n = value / 1000^e
for i = 1, e do n = n .."k" end
return n
end

 

Creio que não tem nenhuma utilidade, ela simplesmente faz isso:

 

1000000 -> 1kk

 

Ela abrevia um grande número na gíria de jogos de RPG.

VodkartV
29 de maio de 2012 às 14:47

não não, até é boa, de vez de colocar para chamar por exemplo

 

local cost = 1000000
msg("precisa de "..cost.." gps")

 

usando a sua função os noob entendem rsrsrs

boa

OneshotO
29 de maio de 2012 às 21:17

Pois é, fiz por isso mesmo. =P

dalvorsnD
02 de junho de 2012 às 05:59

vish, seu code pode ser bem simplificado, usando string.gsub

function putkks(value)
   str, _ = tostring(value):gsub("000", "k")
   return str
end

Editado Junho 2 por dalvorsn

OneshotO
02 de junho de 2012 às 07:13

HA!

 

Acho que alguém caiu na minha armadilha :)

 

Você me garante que os "k" serão colocados de trás para frente, Dalvo? E não acontecerá isso:

 

10000000 -> 1kk0

 

Eu já tentei a string.gsub.

Editado Junho 2 por Oneshot

dalvorsnD
02 de junho de 2012 às 07:34

function putkks(value)
   str, n = tostring(value):reverse():gsub("000", "k"):reverse()
   return str
end

Pulo do gato riarai

nem tinha me atentado a esse detalhe, e nem sabia que tu era o garou '-'

pq mudo de nick mano?

OneshotO
02 de junho de 2012 às 07:56

Essa foi boa, Dalvo.

 

Tinha esquecido totalmente da string.reverse()

 

Rep+

caoticC
02 de junho de 2012 às 21:45

Nao esperava mesmo de voce OneShot

 

A funçao e legal neste modo pode ate parecer "inutil" mais representada em outra funçao ela poder muito ultil.

 

 

Rep+

VincV
09 de junho de 2012 às 14:01

so esqueceram de uma coisa 10005000 esse tipo de coisa ficaria cunfuso

no do oneshot = 10.005kk no do dalvo = 1k5k

 

bom to com preguisa de pensa em tão vai da primeira forma que pensa(mais tosco),usando como base o do oneshot

 

function putkks(value)
local e = 0
	 k = tostring(value)
for i = 1, string.len(k),3 do
	  if k:reverse():sub(i,i+2) == "000" then
	   e = e+1
	   else
	   break
	 end
end

local n = value / 1000^e
for i = 1, e do n = n .."k" end
return n
end

Editado Junho 11 por lordbug99