Ir para conteúdo
  • 0

Moveevent Ao Equipar Colar Envoca Criatura Ao Tirar Desummona


Pergunta

galera estou com dois scripts moveevents, um é para summonar um certo monstro, e o outro é para desummonar, eles estao com problema quando eu equipo o item ele summon duas criaturas sendo que eu progamei para summonar so uma, e outro problema é que quando tiro o amulet ele nao desummona o monstro, scripts:

 

Summonar monstro:

 

 

 

function onEquip (cid, item, slot)

 

local monster = "Demon"

local summon = doSummonCreature(monster, getPlayerPosition(cid))

doConvinceCreature(cid, summon)

 

return true

end

 

Desummonar monstro:

 

 

 

function onDeEquip(cid, item, slot)

 

local monster = "Demon"

if #getCreatureSummon(cid) >= 1 then

for _, summon in ipairs(getCreatureSummon(cid)) do

if getCreatureName(summon) == monster then

doSendMagicEffect(getPlayerPosition(summon), 21)

doRemoveCreature(summon)

end

end

end

return true

end

Link para o comentário
https://xtibia.com/forum/topic/199441-moveevent-ao-equipar-colar-envoca-criatura-ao-tirar-desummona/
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

a function onEquip é errada mesmo, ela executa duas vezes, você só precisa implementar um códigozinho em lua mesmo pra evitar a dupla execução, quanto ao script de retirar o summon ao remover o colar do slot, não há nenhum erro, mas como "Demon" não é um monstro convinceable, será impossível que você se torne mestre dele usando a função doConvinceCreature, veja se a script funciona assim:

 

local protection = {}
local monster = "Demon"

function onEquip (cid, item, slot)

if protection[cid] then
	protection[cid] = nil
	return true
end

protection[cid] = true
local mid = 0

if type(doSummonMonster) then
	local func_ret = doSummonMonster(cid, monster)
	if func_ret == 3 then
		return doPlayerSendCancel(cid, "There is not enough room to summon your monster.")
	end
	local s = getCreatureSummons(cid)
	mid = s[#s]		
else
	mid = doCreateMonster(monster, getThingPos(cid), false)
	if mid == true then
		return doPlayerSendCancel(cid, "There is not enough room to summon your monster.")
	end
	doConvinceCreature(cid, mid)
end

      if not isCreature(mid) then return true end

if getCreatureMaster(mid) ~= cid then
	doRemoveCreature(mid)
else
	doSendMagicEffect(getThingPos(mid), CONST_ME_TELEPORT)
end

return true
end

Editado por brun123
  • 0

agora ficou ruim msm pq quando eu faço o item com o god o ot fecha o.O

nao aparece nenhum erro..

Editado por nbb147
  • 0

veio o problema esta no teu item... ele eh q ta dando debug no serv ;x veja se ta tudo certo no .dat/.spr e no items.xml/otb com esse item ae...

  • 0

ficou do msm jeito do outro script summona dois monstros, e quando tiro o amulet o serve fecha.

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