Ir para conteúdo

Posts Recomendados

Hoje venho trazer um script bem simples para vocês.

Eu fiz um script para um amigo e resolvi postar no xtibia para meus queridos xtibianos.

E bem simples o script quando a criatura morre ela transforma em outra com a vida full dando um efeito de área bem bonito.

 

E simplesinho mais e funcional e útil.

 

 

Vá em creaturescripts e crie um arquivo lua chamado monster.

 

 
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
local area = 18 ------- A area que o efeito vai alcançar----
local effect = 23 --- Id do efeito de área para deixar mais bonito escolha um vibrante e colorido--------
local creature = "Demon" -- Monstro que revive ---
function doSendDistanceEffectAround(cid, position, AreaNumber, type)  
local numberInArea = tonumber(AreaNumber)
local distance0 = {x=position.x, y=position.y-numberInArea, z=position.z}
local distance1 = {x=position.x+numberInArea, y=position.y, z=position.z}
local distance2 = {x=position.x, y=position.y+numberInArea, z=position.z}
local distance3 = {x=position.x-numberInArea, y=position.y, z=position.z}
return doSendDistanceShoot(position, distance0, type) and doSendDistanceShoot(position, distance1, type) and doSendDistanceShoot(position, distance2, type) and doSendDistanceShoot(position, distance3, type)
end

doSendDistanceEffectAround(cid, getCreaturePosition(cid), area, effect)
doCreateMonster(creature, getCreaturePosition(cid))
return doRemoveCreature(cid)
end

 

Coloque esta tag em creaturescripts.xml

 

<event type="preparedeath" name= "revive" event="script" value="monster.lua"/>

 

Registre no xml do monstro que vai se transformar colocando antes do <monster>.

 

 

<script>
<event name="revive"/>
</script>

Link para o comentário
https://xtibia.com/forum/topic/196628-revive-monster/
Compartilhar em outros sites

Tem como por tipo, com uma chanse de nascer? por exempplo 50 50..

 

Assim?

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
local area = 18 ------- A area que o efeito vai alcançar----
local effect = 23 --- Id do efeito de área para deixar mais bonito escolha um vibrante e colorido--------
local creature = "Demon" -- Monstro que revive ---
local chance = 4 --- Chance de 1 uma ou seja se você por 10 existe 10% de sair o monstro-----
function doSendDistanceEffectAround(cid, position, AreaNumber, type)
local numberInArea = tonumber(AreaNumber)
local distance0 = {x=position.x, y=position.y-numberInArea, z=position.z}
local distance1 = {x=position.x+numberInArea, y=position.y, z=position.z}
local distance2 = {x=position.x, y=position.y+numberInArea, z=position.z}
local distance3 = {x=position.x-numberInArea, y=position.y, z=position.z}
return doSendDistanceShoot(position, distance0, type) and doSendDistanceShoot(position, distance1, type) and doSendDistanceShoot(position, distance2, type) and doSendDistanceShoot(position, distance3, type)
end
ran = math.random(1, chance)
if ran == 1 then
doSendDistanceEffectAround(cid, getCreaturePosition(cid), area, effect)
doCreateMonster(creature, getCreaturePosition(cid))
end
return doRemoveCreature(cid)
end

Editado por caotic
Link para o comentário
https://xtibia.com/forum/topic/196628-revive-monster/#findComment-1364643
Compartilhar em outros sites

Script legal mais dava pra diminuir a função e também porquê usar cid?

 

function doSendDistanceEffectAround(CID, position,AreaNumber, type)

Editado por Skymagnum
Link para o comentário
https://xtibia.com/forum/topic/196628-revive-monster/#findComment-1365284
Compartilhar em outros sites

×
×
  • Criar Novo...