Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Gostaria de saber como faço um math.random  sem repetir os random.

Estou fazendo assim mais sempre repete?

 

       if getCreatureOutfit(cid).lookType == 511 then
         roupas = {437, 438, 439, 440}
       else
         roupas = {43, 43, 49, 40}
       end
 
     doCreatureChangeOutfit(pk[a], {lookType = roupas[math.random(#roupas)]})
Link para o post
Compartilhar em outros sites

Palavras do elwyn :

 

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.

if getCreatureOutfit(cid).lookType == 511 then
         roupas = {437, 438, 439, 440}
       else
         roupas = {43, 43, 49, 40}
       end
	
	 math.randomseed(os.time())
     
	 doCreatureChangeOutfit(pk[a], {lookType = roupas[math.random(#roupas)]})
Editado por Summ (veja o histórico de edições)

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

 

Palavras do elwyn :

 

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.

if getCreatureOutfit(cid).lookType == 511 then
         roupas = {437, 438, 439, 440}
       else
         roupas = {43, 43, 49, 40}
       end
	
	 math.randomseed(os.time())
     
	 doCreatureChangeOutfit(pk[a], {lookType = roupas[math.random(#roupas)]})

Mas então agora o random repete todos gostaria que fosse todos diferentes se eu me expressei errado desculpa.  

Link para o post
Compartilhar em outros sites

tenta isso:

local function norepeat(a, b)
    local z = math.random(#a)
    local p = a[z]
    if b == p then
        table.remove(a, z)
        return a[math.random(#a)]
    else
        return p
    end
end

local outfit = getCreatureOutfit(cid).lookType
local roupas = {437, 438, 439, 440}
if(not outfit == 511) then
    roupas = {43, 43, 49, 40}
end

doCreatureChangeOutfit(pk[a], norepeat(roupas, outfit))
Editado por fireelement (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Como não foi acabei optando por fazer um if já que com random ta dificil, ficando assim e o que vcs acham já que são mais experientes?

 

if getCreatureOutfit(cid).lookType == 511 then


outfit1 = 43
outfit2 = 44
outfit3 = 45
outfit4 = 46
outfit5 = 47
outfit6 = 48
elseif outfit == 512 then
outfit1 = 49
outfit2 = 50
outfit3 = 51
outfit4 = 52
outfit5 = 53
outfit6 = 54
else
outfit1 = 55
outfit2 = 56
outfit3 = 57
outfit4 = 58
outfit5 = 59
outfit6 = 60

end

 

e pra cada pokemon eu chamo a funçao

 

doCreatureChangeOutfit(pk[1], {lookType = Unown1})

doCreatureChangeOutfit(pk[2], {lookType = Unown2})

doCreatureChangeOutfit(pk[3], {lookType = Unown2}) etc...

Editado por nociam (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

O math.random estava retornando apenas o ultimo elemento da tabela, ou um outro elemento distinto?

De qualquer maneira, aplique o math.random da seguinte maneira e veja se o erro persiste:

roupas[math.random(1, #roupas)]
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Tipo  a que eu fiz ele pegava qualquer looktype as vezes tava random e ficava todas com o mesmo looktype, a que o fireelement fez ele copiava no maximo 2 looktype igual.

 

Edit: nao foi com essa roupas[math.random(1, #roupas)]

Editado por nociam (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo