Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

Pokezring

 

Qual o motivo deste tópico? 

Procurar solucionar problema de variável com valor aleatório.

 

Está surgindo algum erro? Se sim coloque-o aqui. 

  Quote

Estou editando um sistema de catch num server de pokémon, e preciso que toda vez que eu jogasse a pokébola uma variável recebesse um valor aleatório de 4 a 10, decidi utilizar a função math.random porém a variável está preenchendo somente uma vez quando o servidor sobe e mantém o mesmo valor sempre, em vez de gerar aleatório toda vez que a pokébola é jogada.

Alguém conseguiria me auxiliar? Preciso que a variável receba o valor aleatório constantemente. 




math.randomseed(os.time())
num1 = math.random(4,10)

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

 ----------------------- actions.lua -----------------
<action itemid="15980-15996;16157" event="script" value="catch.lua" allowfaruse="1"/>

------------------------cactch.lua ------------------------------------------
math.randomseed(os.time())
num1 = math.random(4,10)

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Editado por leessandro (veja o histórico de edições)

Resolvido por Sun

Ir para solução
  • Respostas 6
  • Visualizações 431
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @leessandro então amigo, eu nunca usei math.randomseed enquanto programo para tibia, pelo simples fato do tempo! vou explicar melhor, quando não se tem algo gerando valores de tempo, não se usa m

  • Eu ia fazer mas vc ja respondeu o cara, o que ele quer é que cada item tenha uma porcentagem random diferente, os item registrados no xml, eu acho

  • sim, mas ele não queria a script em si! ele quer uma explicação do porque da forma que ele está editando, está dando erro.

Postado
  • Solução

@leessandro então amigo, eu nunca usei math.randomseed enquanto programo para tibia, pelo simples fato do tempo!

vou explicar melhor, quando não se tem algo gerando valores de tempo, não se usa math.randomseed, mas oque seria o tempo?

vou tentar explicar de uma forma mais simples sem você se perder, o console em si, já é um math.randomseed, ele já irá gerar pra você novos valores sem precisar ter que ficar usando está função! então onde se usaria ela? num OTC, que ali os valores precisam ser gerados pelo gerador e como não tem nada para que gere isso para ele como o console que já faz este processo!

 

vou te dar um exemplo de um catch que eu mesmo desenvolvi!

 

local catch 
local srand = math.random(1, x.chance)
 
if srand > Pokebals_chance["pokeball"] and srand <= Pokebals_chance["greatball"] then -- ## se o valor gerado for maior que a chance da pokebola, e que este valor seja menor que o da great ball
  catch = true
else 
  catch = false
end

if catch then
  doRemoveItem(itemEx.uid, 1)
  addEvent(doSendMagicEffect, 1, toPosition, bolaefeitoON)
  addEvent(function()
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
 
  item = doCreateItemEx(12664, 1)
  doItemSetAttribute(item, "poke", name)
  doItemSetAttribute(item, "nome", i)
  doItemSetAttribute(item, "description", description)
  doPlayerAddItemEx(cid, item, true)
 end, 3000)
else
   doRemoveItem(itemEx.uid, 1)
   addEvent(doSendMagicEffect, 1, toPosition, bolaefeitoOff)
   addEvent(doPlayerSendTextMessage, 3000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Escapou!.")
end

 

espero que tenha entendido!

e fica livre ai se outro tiver uma explicação melhor sobre!!!!.

claro que não postei o catch completo, é apenas um exemplo!

Postado
  Em 12/03/2021 em 17:22, Sun disse:

@leessandro então amigo, eu nunca usei math.randomseed enquanto programo para tibia, pelo simples fato do tempo!

vou explicar melhor, quando não se tem algo gerando valores de tempo, não se usa math.randomseed, mas oque seria o tempo?

vou tentar explicar de uma forma mais simples sem você se perder, o console em si, já é um math.randomseed, ele já irá gerar pra você novos valores sem precisar ter que ficar usando está função! então onde se usaria ela? num OTC, que ali os valores precisam ser gerados pelo gerador e como não tem nada para que gere isso para ele como o console que já faz este processo!

 

vou te dar um exemplo de um catch que eu mesmo desenvolvi!

 


local catch 
local srand = math.random(1, x.chance)
 
if srand > Pokebals_chance["pokeball"] and srand <= Pokebals_chance["greatball"] then -- ## se o valor gerado for maior que a chance da pokebola, e que este valor seja menor que o da great ball
  catch = true
else 
  catch = false
end

if catch then
  doRemoveItem(itemEx.uid, 1)
  addEvent(doSendMagicEffect, 1, toPosition, bolaefeitoON)
  addEvent(function()
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
 
  item = doCreateItemEx(12664, 1)
  doItemSetAttribute(item, "poke", name)
  doItemSetAttribute(item, "nome", i)
  doItemSetAttribute(item, "description", description)
  doPlayerAddItemEx(cid, item, true)
 end, 3000)
else
   doRemoveItem(itemEx.uid, 1)
   addEvent(doSendMagicEffect, 1, toPosition, bolaefeitoOff)
   addEvent(doPlayerSendTextMessage, 3000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Escapou!.")
end

 

espero que tenha entendido!

e fica livre ai se outro tiver uma explicação melhor sobre!!!!.

claro que não postei o catch completo, é apenas um exemplo!

Eu ia fazer mas vc ja respondeu o cara, o que ele quer é que cada item tenha uma porcentagem random diferente, os item registrados no xml, eu acho

Postado
  Em 12/03/2021 em 17:30, FlameArcixt disse:

Eu ia fazer mas vc ja respondeu o cara, o que ele quer é que cada item tenha uma porcentagem random diferente, os item registrados no xml, eu acho

sim, mas ele não queria a script em si!

ele quer uma explicação do porque da forma que ele está editando, está dando erro.

Postado
  • Autor
  Em 12/03/2021 em 17:22, Sun disse:

@leessandro então amigo, eu nunca usei math.randomseed enquanto programo para tibia, pelo simples fato do tempo!

vou explicar melhor, quando não se tem algo gerando valores de tempo, não se usa math.randomseed, mas oque seria o tempo?

vou tentar explicar de uma forma mais simples sem você se perder, o console em si, já é um math.randomseed, ele já irá gerar pra você novos valores sem precisar ter que ficar usando está função! então onde se usaria ela? num OTC, que ali os valores precisam ser gerados pelo gerador e como não tem nada para que gere isso para ele como o console que já faz este processo!

 

vou te dar um exemplo de um catch que eu mesmo desenvolvi!

 


local catch 
local srand = math.random(1, x.chance)
 
if srand > Pokebals_chance["pokeball"] and srand <= Pokebals_chance["greatball"] then -- ## se o valor gerado for maior que a chance da pokebola, e que este valor seja menor que o da great ball
  catch = true
else 
  catch = false
end

if catch then
  doRemoveItem(itemEx.uid, 1)
  addEvent(doSendMagicEffect, 1, toPosition, bolaefeitoON)
  addEvent(function()
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
 
  item = doCreateItemEx(12664, 1)
  doItemSetAttribute(item, "poke", name)
  doItemSetAttribute(item, "nome", i)
  doItemSetAttribute(item, "description", description)
  doPlayerAddItemEx(cid, item, true)
 end, 3000)
else
   doRemoveItem(itemEx.uid, 1)
   addEvent(doSendMagicEffect, 1, toPosition, bolaefeitoOff)
   addEvent(doPlayerSendTextMessage, 3000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Escapou!.")
end

 

espero que tenha entendido!

e fica livre ai se outro tiver uma explicação melhor sobre!!!!.

claro que não postei o catch completo, é apenas um exemplo!

Fechou, eu tive que setar a variavel como local e retirar o  math.randomseed.
Obrigado

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