------------
Action ativada ao matar uma criatura
------------
onMonsterDeath é uma fução, onde a actino acontece ao matar alguma criatura.
OBS.: Você precisa de uma versão com essa função no seu Código Fonte
A única versão que tenho conhecimento com esssa função é o NOTS 7.8
Veja o exemplo de uma quest usando onMonsterDeath nas imagems abaixo:
Se alguem não conseguiu entender a quest eu explicarei:
O player chega em uma sala onde tem um baú, mas tem uma parede no caminho, e para a parede sumir ele tem que matar o demon, quando o caminho abrir, ele vai pegar seu premio, quando ele pega o premio ele é teletransporato e a parede aparece novamente.
Bom, para fazer uma quest dessa primeiro você tem que criar o ambiente da quest, e é claro, colocar o uniqueID no bau (na minha quest usei 2000 como UID)
*Agora crie uma arquivo .lua com o nome demonquest. Em demonquest.lua coloque:
function onMonsterDeath(killer, monster, corpse, damage, totaldamage)
wallpos = {x=196, y=150, z=8, stackpos=1}
wall = getThingfromPos(wallpos)
if wall.itemid == 1497 then
doRemoveItem(wall.uid,1)
doSendMagicEffect(wallpos,2)
end
return 1
end
function onUse(cid, item, frompos, item2, topos)
telpos = {x=196, y=151, z=8, stackpos=253}
wallpos = {x=196, y=150, z=8, stackpos=1}
wall = getThingfromPos(wallpos)
if item.uid == 2000 then
queststatus = getPlayerStorageValue(cid,2000)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,'Você achou um Demon Shield.')
doPlayerAddItem(cid,2520,1)
setPlayerStorageValue(cid,2000,1)
doTeleportThing(cid,telpos)
doCreateItem(1497,1,wallpos)
doSendMagicEffect(telpos,13)
else
doPlayerSendTextMessage(cid,22,"Você ja recebeu seu prêmio.")
doTeleportThing(cid,telpos)
doCreateItem(1497,1,wallpos)
doSendMagicEffect(telpos,13)
end
return 1
else
return 0
end
end
Explicando:
Wallpos: a posição da parede
1497: é o ID do magicwall (se você mudar sua parede mude esse ID também)
telpos: onde o player será teletransportado após pegar seu premio
2000: o UniqueID do baú
*Em actions.xml adicione:
<action uniqueid="2000" script="demonquest.lua" />
(se você usou outro UID, mude-o aqui)
*Agora o que você deve faze para a nova função funcionar:
1- Abra a pasta data/monster
2- abre o .xml do montro que você tem que matar para ativar a action (meu caso demon)
3- no final da tag <monster name....> adicione script="demonquest.lua"
exemplo:
<monster name="Demon" level="20" maglevel="20" experience="6000" pushable="0" armor="49" defense="51" canpushitems="1" staticattack="40" changetarget="200" speed="210" script="demonquest.lua">
4- Salve
_________________
IMPORTANTE
Iinha esquecido de falar isso, tipo, adicionamos o script no demon por exemplo, então todo demon que matar ativará a action, estão para que só 1 monstro abre uma porta, voce tera que criar um monstro novo.
Se a pessoa ja tiver um poco de experiencia com action, tambem da para fazer condições na action para que apensa aquele Monstro ative a quest, se não tiver muita facilidade com action, crie seu próprio montro.
_________________
Pronto, sua quest está pronta!
E como toda action, use a creatividade
com creatividade e um poco de conhecimento, seu server vai longe.
Créditos:Vufusuf