Ir para conteúdo

Featured Replies

Postado

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?

Resolvido por Elwyn

Ir para solução
Postado

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 por elwyn (veja o histórico de edições)

Postado
  • 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
  • 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo