- Fórum
- OTServ
- Recursos
- Scripting
- NPCs, monsters e raids
- Mate o monstro, complete sua tarefa e ganhe recompensa
VM
npc
Mate o monstro, complete sua tarefa e ganhe recompensa
Por vmAth, 17 de abr. de 2013 em NPCs, monsters e raids
script
1
1.7k
Por vmAth, 17 de abr. de 2013 em NPCs, monsters e raids
info
Grupo: Artesão
Registrado: 16/04/13
Posts: 126
Reputação: +40
Qual a função disso?
Você fala com o npc, o npc sumona um monstro e após matar este monstro, ele te dá uma recompensa.
Tutorial:
Vá em data/creaturescripts/creaturescripts.xml e adicione esse código:
Agora vá em creaturescripts/scripts e crie um novo arquivo com o nome npcquest.lua e bote isto dentro:
Vá no xml do monstro que você escolheu e lá no final do script antes do </monster>, você adiciona:
Vá em data/npc, crie um novo arquivo com o nome Jhow.xml e bote isto dentro:
Vá em npc/script e crie um novo arquivo com o nome de jhow.lua e bote isto dentro:
local nomeMonst = "Monk" -- Nome do mosntro que ele vai sumonar local itemid = 2150 local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if getPlayerStorageValue(cid, 9755) == -1 then if(msgcontains(msg, 'yes')) then selfSay('Mate este monstro para completar sua tarefa.', cid) doCreateMonster(nomeMonst,getThingPos(cid)) talkState[talkUser] = 1 end return true end if getPlayerStorageValue(cid, 9755) == 1 then selfSay('Você matou o monstro e ganhou um item.', cid) doPlayerAddItem(cid, itemid,1) setPlayerStorageValue(cid, 9755,2) talkState[talkUser] = 0 return true end if getPlayerStorageValue(cid, 9755) == 2 then selfSay('Você já fez esta tarefa.', cid) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())Agora, volte lá em creaturescripts/scripts/ e procure por login.lua, e antes do último return true, adicione isto:
Pronto, NPC criado.
Créditos: thalia