Ir para conteúdo

Posts Recomendados

Ola, estou com um problema, bobo.

 

Estou usando este script:

function onStepIn(cid, item, position, fromPosition)


bicho = "Training Monk"

trainer = {x = position.x, y = position.y, z = position.z}
trainer3= {x = position.x, y = position.y, z = position.z}


trainer2 = {x = position.x - 1, y = position.y, z = position.z, stackpos=256}
monster = getThingfromPos(trainer2)



if item.actionid == 20001 then
if monster.itemid == 0 then

doSummonCreature(bicho,trainer)
doSummonCreature(bicho,trainer3)


end
end
end

 

ele tem a função de Sumonar uma creature em um determinado local. Ele funciona, sumona e tudo mais. Mas só que quando o monstro já esta no local ele manda um aviso no "log" do otserver dizendo que não pode invocar o monstro.

 

Este aviso:

[23/02/2009 19:34:10] Lua Script Error: [MoveEvents Interface]

[23/02/2009 19:34:10] data/movements/scripts/TrainingMonk.lua:onStepIn

 

Gostaria se alguem pode me informa como posso adaptar um sistema neste script para que ele ao invez de tentar sumonar um monstro no local que já tenha um, ele possa verificar e mandar para a "lixeira" do otserver.

Assim acabando com a mensagem no log do otserver.

 

Agradeço desde já quem puder me encaminhar para uma solução.

Link para o comentário
https://xtibia.com/forum/topic/108360-como-posso-ajustar-este-script/
Compartilhar em outros sites

Tenta usar a funçao em StepOut, assim;

Troque isso:

function onStepIn(cid, item, position, fromPosition)

Por isso:

function onStepOut(cid, item, pos)

 

E em movements.XML, na linha correspondente;

Troque isso:

<movevent event="StepIn"

Por isso:

<movevent event="StepOut"

 

Vê ai se funciona agora.

Abraços.

Link para o comentário
https://xtibia.com/forum/topic/108360-como-posso-ajustar-este-script/#findComment-700307
Compartilhar em outros sites

antes de tudo, informo que tem que ser feito com um monstro imóvel

 

onStepIn(cid,item,pos,fromPos)
  local monster = 'Training Monk'
  local spawn = {x=100,y=100,z=7}

  checkpos = {x=spawn.x,y=spawn.y,z=spawn.z,stackpos=256}
  if (getThingFromPosition(checkpos) == getCreatureByName(monster)) then return false end
  doSummonCreature(monster,spawn)
end

 

algumas considerações

function onStepIn(cid, item, position, fromPosition)

 

 

bicho = "Training Monk"

 

trainer = {x = position.x, y = position.y, z = position.z}

trainer3= {x = position.x, y = position.y, z = position.z}

 

 

trainer2 = {x = position.x - 1, y = position.y, z = position.z, stackpos=256}

monster = getThingfromPos(trainer2)

 

 

 

if item.actionid == 20001 then

if monster.itemid == 0 then

 

doSummonCreature(bicho,trainer)

doSummonCreature(bicho,trainer3)

 

 

end

end

end

 

trainer e trainer3 possuem o mesmo valor... dispense a ambiguidade, trabalhe apenas com 'trainer'

 

esta checagem é redundante... este script SÓ SERÁ CHAMADO se a action id for 20001, logo, esta condição SEMPRE retornará VERDADEIRO

 

particularmente não entendi esta checagem, se o valor retornado for um monstro, vc causará um erro ao tentar pegar o ITEMid de uma CREATURE

 

por fim, poste a mesnagem de erro COMPLETA do console, estão faltando as informações da linha que está causando o erro

Link para o comentário
https://xtibia.com/forum/topic/108360-como-posso-ajustar-este-script/#findComment-700897
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...