Explicação:
O Player tem um Item na Bag, que ao ser usado salva como Respawn a posição em que ele se encontra, o Item desaparece.
Agora, o Player tem outro Item diferente na Bag, este não pode ser usado. Quando o Player morrer, será imediatamente teleportado para a posição de Respawn.
Caso o Player tenha salvado a posição, e não tenha o segundo Item (que faz renascer), será teleportado para uma posição fixa (o real Templo).
O Script:
Será dividido em duas partes, o CreatureScript, que vai verificar se o Player possui o Item, caso verdadeiro, ressucitará:
local item_id = 999 local count = 1 local temple = {x=999, y=999, z=9} function onDeath(cid, corpse, deathList) if isPlayer(cid) then if getPlayerItemCount(cid,item_id) >= 1 then if doPlayerRemoveItem(cid,item_id,count) then doSendMagicEffect(getPlayerPosition(cid), 10) doPlayerSendTextMessage(cid, 23, "Reborn from the ashes.") end else doPlayerSetMasterPos(cid, temple) doTeleportThing(cid,c) doSendMagicEffect(getPlayerPosition(cid), 10) end end end
E a Tag:
<event type="death" name="Resurrection" event="script" value="resurrection.lua">
E a segunda parte, Action que salva a posição do Player atravéz de um Item:
function onUse(cid, item, pos) newpos = getPlayerPosition(cid) if doPlayerRemoveItem(cid,8888,1) then doPlayerSetMasterPos(cid, newpos) end end
E sua Tag:
<action itemid="8888" event="script" value="savepos.lua">
Sugestão de nomes e IDs:
Position Map - ID 5091 - (Treasure Map)
Resurrection Heart - ID 2353 - (Burning Heart)
Configurando o Script:
local item_id = 999
ID do Item que será consumido para renascer. Como exemplo, o ID 2353.
local count = 1
Quantidade do Item que será consumida.
local temple = {x=999, y=999, z=9}
Aqui deve ser dada a posição do Templo real.
doPlayerSendTextMessage(cid, 23, "Reborn from the ashes.")
Mensagem para caso o Player renascer.
<event type="death" name="Resurrection" event="script" value="resurrection.lua">
A Tag pode ter o nome editado e o nome do Script também.
if doPlayerRemoveItem(cid,8888,1) then
O ID do Item que salva a posição atual do Player, aconselho a não utilizar o mesmo Item que vai ressucitar para evitar erros. Como exemplo, o ID 5091.
<action itemid="8888" event="script" value="savepos.lua">
Editar na Tag o ID do Item, deve ser o mesmo utilizado na linha acima. O nome do Script também pode ser editado.
Obrigado por lerem, o Script ainda não foi testado e está em uma versão "beta", pois ainda pode ser melhorado.