Ir para conteúdo

Featured Replies

Postado

Pessoal preciso de uma ajuda se possivel. Tenho um creaturescript que transforma pokemon X em Y quando o player aparece na tela. funciona perfeitamente.

if getCreatureName(cid) == "Rattata" then
local criature = doCreateMonster(rattatalvltest[math.random(0,1)].pokemon, getCreaturePosition(cid)) doRemoveCreature(cid)
end
return true
end

Gostaria de fazer com que se o player que acionou o script for lvl entre 10 e 20 ele sumone apartir de uma tabela "Pokes1020", e se o level for entre 21 e 40 de uma tabela "Pokes2140" Acontece que ou eu errei o script, ou o script não consegue olhar o level do player que acionou isso. Tentei da seguinte forma:

if getCreatureName(cid) == "Rattata" then
if getPlayerLevel(cid) >= 10 and getPlayerLevel(cid) <= 20 then
local criature = doCreateMonster(Pokes1020[math.random(0,1)].pokemon, getCreaturePosition(cid)) doRemoveCreature(cid)
elseif getPlayerLevel(cid) >= 21 and getPlayerLevel(cid) <= 40 then
local criature = doCreateMonster(Pokes1020[math.random(0,1)].pokemon, getCreaturePosition(cid)) doRemoveCreature(cid)
end

return true
end

O erro apresentado na distro é attempt to compare number with boolean. Ja tentei trocar os numeros por local level = X e substituir lá pelo X..Y..Z..(editado)

 
 
 
 
 
 
Conversar em #?scripting

 

 

Editado por Bepovi
erro no codigo (veja o histórico de edições)

  • Respostas 12
  • Visualizações 587
  • Created
  • Última resposta

Top Posters In This Topic

Postado

@Bepovi O erro é que você está tentando comparar o level de um pokemon (que não existe), com um número.  

if getPlayerLevel(cid) >= 10 and getPlayerLevel(cid) <= 20 then

Aquele cid ali deve ser substituído pelo id do player, pois o cid no casso desse script se refere ao pokémon(monstro). 

Postado
  • Autor
23 minutos atrás, Storm disse:

@Bepovi O erro é que você está tentando comparar o level de um pokemon (que não existe), com um número.  


if getPlayerLevel(cid) >= 10 and getPlayerLevel(cid) <= 20 then

Aquele cid ali deve ser substituído pelo id do player, pois o cid no casso desse script se refere ao pokémon(monstro). 

 

@StormMas como faço isso se quem ativa o script é um player aleatório (o primeiro que aparece na tela)?

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

Postado
  • Autor

@Storm 
Vou simplificar o codigo pra facilitar a visualização:

 

function onThink(cid, interval)

local rattatalvltest = 
{
        [0] = {pokemon = 'rattata [1] s'}, 
        [1] = {pokemon = 'rattata [1] s'}, 
        [2] = {pokemon = 'rattata [1] s'}, 


}

local rattatalvl5 = 
{
        [0] = {pokemon = 'rattata [2] s'}, 
        [1] = {pokemon = 'rattata [2] s'}, 
        [2] = {pokemon = 'rattata [2] s'}, 


}

if getCreatureName(cid) == "Rattata" then

local criature =   doCreateMonster(rattatalvltest[math.random(0,1)].pokemon, getCreaturePosition(cid))
doRemoveCreature(cid)
end


return true


end


Esse é o codigo funcionando. Resumidamente é um sistema de lvl em pokemons selvagens (super gambiarra, para um servidor KPDO).
O servidor sumona um rattata.  Quando o player aparece na tela onde está ele, o codigo transforma ele em um rattata [1] (com level). O level seria configuravel de acordo com o level do player que o encontrou.
Por exemplo: Players lvl 1-20 apareçam pokemons de um "local rattatalvl20",  players lvl 21-40 apareçam pokemons de um "local rattatalvl40"

Saca? por isso a necessidade de criar um 
if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 20 then

e colocar a parte da troca de pokemons dentro de cada um.

Desde já obrigado!

Ah, só para completar, o script é acionado através do xml do pokemon, em 

<event name="Pokelvl"/>

creaturescripts

.xml:
<event type="think" name="Pokelvl" event="script" value="Pokelvl.lua"/>

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

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo