Bom pessoal, com a ajuda do slicer consegui cria meu 2° scripter de quest por npc kk, é bem basíco mais para min ja é um otímo começo não? vamos lá, data/npc/xxx.lua
<?xml version="1.0" encoding="UTF-8"?> <npc name="xxx" script="xxxxx.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="1438" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, você quer faze a minha quest? digite Help ?"/> </parameters> </npc>
data/npc/script/xxx.lua
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 msg = string.lower(msg) --------- local configuration = { add_item = 2154, remove_item = 2160, StoAdd = 52312, } local pos = {x=1024, y=1025, z=7} if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then if getPlayerStorageValue(cid, configuration.StoAdd) >= 0 then selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid) return true end selfSay("Olá.Pareçe que você esta intereçado a completar a missão que irei lhe dar né? se você quizer digite yes ou sim para continuar!", cid) talkState[talkUser] = 1 return true elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then selfSay("hum, você realmente esta intereçado intão vamos lá, eu preciso de 10 hunter dollar para eu lhe recompesar, você deseja continuar,se sim digite finish!?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, 'finish') and talkState[talkUser] == 2 then if getPlayerItemCount(cid, configuration.remove_item) < 10 then selfSay("Desculpe, mais voce não tem os 10 hunter doller necessario para completa essa quest, volte quando tiver!", cid) talkState[talkUser] = 0 return true end selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouse, isso que é o mais importante toma a recompensa e você sera teleportado pra X lugar!", cid) talkState[talkUser] = 0 doPlayerAddItem(cid, configuration.add_item, 10) doPlayerRemoveItem(cid, configuration.remove_item, 1) setPlayerStorageValue(cid, 52312, 1) doTeleportThing(cid, pos) doSendMagicEffect(getThingPos(cid), 29) return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Vamos as explicações !
vou posta esse script porque é muuuito facil de se editar mesmo e da pra mudar varias coisas e deicha do jeito que bem quizer. pra edita o item que o player vai ganha so altera aqui..
add_item = 2154,
e aqui.. q sera a quantidade
doPlayerAddItem(cid, configuration.add_item, 10)
Aquele "10" é a quantidade !
e tem como tu edita o item que o o npc vai pedi pro player pra pode da a recompensa..
remove_item = 2160,
e edita aqui também que é a vereficação e a quantidade.....
if getPlayerItemCount(cid, configuration.remove_item) < 10 then selfSay("Desculpe, mais voce não tem os 10 hunter doller necessario para completa essa quest, volte quando tiver!", cid) talkState[talkUser] = 0 return true end
Aquele "< 10" ó 10 diz q ele vai verefica se o player estiver com 10 hd na bag.. se n tiver vai apareçe a msg..se tiver ele vai remove e so edita aqui também.
doPlayerRemoveItem(cid, configuration.remove_item, 10)
o 10 também a quantidade que vai remove, vo da uma explicação como o npc funciona.
Bom se você tiver os 10 hds e termina a quest ele te da a recompensa te teleporta pra x posição ai voceis editão do jeito que bem quizer, para edita a posição só edita simplismente aqui
local pos = {x=1024, y=1025, z=7}
Good luck ae, testei aqui no PDA v1.9 funciono sem poblemas.