CA
creatureevent

Revive Monster

Por caotic, 15 de out. de 2012 em Globalevents e Spells

otserv
tibia
script
5
2k
caoticC
15 de outubro de 2012 às 19:14

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>

15790911
15 de outubro de 2012 às 19:19

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

caoticC
15 de outubro de 2012 às 20:30

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 Outubro 15 por caotic

xundazinhoX
16 de outubro de 2012 às 13:54

Gostei, da para fazer umas coisas bem legais +REP!

SkymagnumS
16 de outubro de 2012 às 19:03

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

 

function doSendDistanceEffectAround(CID, position,AreaNumber, type)

Editado Outubro 16 por Skymagnum