Ir para conteúdo

Featured Replies

Postado

Pessoal, to bolando uma ideia aqui de um Castle, pois bem eu fiz um script para quando o monstro morrer ele remover um portao que eu fiz e que de 4SQM, tem como quando ele renascer criar o portão novamente?

 

Este é o script q remove os portões:

function onDeath(cid, corpse, killer)
    local creatureName = "Castle Dark Magician"
	
    if getCreatureName(cid) == creatureName then
       registerCreatureEvent(cid, "castledarkmagician")
       doRemoveItem(getThingfromPos({x=1471, y=134, z=6, stackpos=1}).uid,1)
       doSendMagicEffect({x=1471, y=134, z=6, stackpos=1}, CONST_ME_POFF)
      doRemoveItem(getThingfromPos({x=1472, y=134, z=6, stackpos=1}).uid,2)
       doSendMagicEffect({x=1472, y=134, z=6, stackpos=1}, CONST_ME_POFF)
      doRemoveItem(getThingfromPos({x=1469, y=136, z=6, stackpos=1}).uid,3)
       doSendMagicEffect({x=1469, y=136, z=6, stackpos=1}, CONST_ME_POFF)
      doRemoveItem(getThingfromPos({x=1469, y=137, z=6, stackpos=1}).uid,4)
       doSendMagicEffect({x=1469, y=137, z=6, stackpos=1}, CONST_ME_POFF)
    end
return true
end  

FPCMCUA.jpg

Postado

Faça com que uma função seja repetida de certo em certo tempo (após o monstro ter sido morto), até que ela cheque o topcreature do sqm respawn do monstro como contendo ele, então crie o portão nas posições.

Tente:

local item = 1234 -- item id to create/remove (portão)
local mpos = {x=123, y=456, z=7} -- monster position (coordenadas exatas do sqm respawn do monstro)
local ipos = { -- item positions (coordenadas dos portões à serem criados/removidos)
    {x=1471, y=134, z=6},
    {x=1471, y=134, z=6},
    {x=1472, y=134, z=6},
    {x=1469, y=136, z=6},
    {x=1469, y=137, z=6}
}

function onRevive()
    local m = getTopCreature(mpos).uid
    
    if m > 0 and isMonster(m) then
        for i = 1, #ipos do
            local id = getTileItemById(ipos[i], item).uid
            
            if id < 1 then
                doCreateItem(item, 1, ipos[i])
            end
        end
    end
    
    addEvent(onRevive, 1000)
    return true
end

function onDeath(cid)
    for i = 1, #ipos do
        local id = getTileItemById(ipos[i], item).uid
        
        if id > 0 then
            doRemoveItem(id)
            doSendMagicEffect(ipos[i], CONST_ME_POFF)
        end
    end
    
    onRevive()
    return true
end

PS: registre o creature event no arquivo XML do monstro em específico, desse modo você não precisa checar o nome do creatureid.

The corrupt fear us.

The honest support us.

The heroic join us.

Postado

tipo um globalevent no caso?

Não, brother:

function onDeath(cid)

Callback onDeath, é um creature event.

Já fiz a função (onRevive()), basta testar.

The corrupt fear us.

The honest support us.

The heroic join us.

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.7k

Informação Importante

Confirmação de Termo