Postado Janeiro 19, 2015 10 anos Pessoal, eu não entendo essa função. Pensei que ela joga-se de forma aleatória um conjunto de números. Por exemplo: math.random(1,45) Nisso, ao acionar essa função, números de 1 á 45 seriam gerados de forma aleatória. No entanto, sempre que eu clico no Baú - que é onde ativa essa função - ele da sempre a mesma sequência. Por Exemplo: Clico com Player 1 - Gera a Sequência 1, 3, 5. Clico com Player 2 - Gera a Sequência 2, 4, 6. No entanto, sempre que fecho o OT e abro novamente, ao clicar novamente no baú, dá a mesma sequência citados acima. Não ta sendo realmente de forma aleatória. Alguém poderia me explicar do por que ser assim?
Postado Janeiro 19, 2015 10 anos Antes de usar o math.random() usa o math.randomseed(os.time()). Sobre o porquê de ser assim: Computadores não geram nada realmente aleatório. O que o math.random faz é pegar um numero para usar como base para gerar outros números. Se o número que ele pega, o chamado seed, for sempre igual, então ele vai gerar números sempre iguais. Editado Janeiro 19, 2015 10 anos por elwyn (veja o histórico de edições)
Postado Janeiro 19, 2015 10 anos Autor Por favor, me ajuda a usar essa função corretamente. Aqui está parte de meu Script: if getPlayerStorageValue(cid, 3509) > 0 then local rand = math.random(1,45) if rand == 1 then doPlayerAddItem(cid, 2488, 1) -- Crown Legs doSendMagicEffect(getPlayerPosition(cid), 12) end Como eu usaria sua função aqui?
Postado Janeiro 19, 2015 10 anos Solução if getPlayerStorageValue(cid, 3509) > 0 then math.randomseed(os.time()) local rand = math.random(1,45) if rand == 1 then doPlayerAddItem(cid, 2488, 1) -- Crown Legs doSendMagicEffect(getPlayerPosition(cid), 12) end end
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.