mylorc 0 Postado Outubro 16, 2013 Share Postado Outubro 16, 2013 Olá,preciso criar um npc de missão,alguém me ajuda? Assim,preciso de um npc que recolha 3 itens e de recompença ele dara ao player xp (do lvl 1 irá para o lvl 8). Ajudem por favor. Link para o comentário Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Outubro 17, 2013 Share Postado Outubro 17, 2013 Sim testei e aqui ele está respondendo... estranho vou verificar novamente, peço que aguarde. Agora vai funcionar, achei o erro: 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 stg = 1458 local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) >= 1 then selfSay('Você já me ajudou.', cid) talkState[talkUser] = 0 end if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) <= 0 then if getPlayerItemCount(cid, item1, qtd) then setPlayerStorageValue(cid, stg, 1) selfSay('Muito obrigado, como recompensa aqui está sua experiência por ter me ajudado!', cid) doPlayerAddLevel(cid, level) else selfSay('Você não tem '..qtd..' {"..getItemNameById(item1).."s}. Volte aqui quando tiver', cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Link para o comentário Compartilhar em outros sites More sharing options...
0 mylorc 0 Postado Outubro 17, 2013 Autor Share Postado Outubro 17, 2013 Agora ele respondeu,como eu edito para que o player tenha que entregar 10 cockroach legs e receba 7 level de recompença? Link para o comentário Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Outubro 17, 2013 Share Postado Outubro 17, 2013 (editado) @Edit Depois de quebrar a cabeça aqui dar reload 500000x agora deu certíssimo! 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 -----------#Início das configurações#------------ local stg = 14278 -- storage da quest, para não fazer 2x. local item1 = 2160 -- id do item local qtd = 3 -- quantidade a ser removida. local level = 7 -- quantidade de level a dar ao jogador. local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) -----------#Fim das configurações#------------ if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) >= 1 then selfSay('Você já me ajudou, sou grato por isso!', cid) talkState[talkUser] = 0 end if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) <= 0 then if (getPlayerItemCount(cid, item1) == qtd) then selfSay('Você não tem '..qtd..' {'..getItemNameById(item1)..'s}. Volte aqui quando tiver', cid) elseif doPlayerRemoveItem(cid, item1, qtd) then setPlayerStorageValue(cid, stg, 1) selfSay('Muito obrigado, como recompensa aqui está sua experiência por ter me ajudado!', cid) doPlayerAddLevel(cid, level) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Outubro 17, 2013 por Fawz Link para o comentário Compartilhar em outros sites More sharing options...
0 mylorc 0 Postado Outubro 17, 2013 Autor Share Postado Outubro 17, 2013 (editado) @Edit Depois de quebrar a cabeça aqui dar reload 500000x agora deu certíssimo! 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 -----------#Início das configurações#------------ local stg = 14278 -- storage da quest, para não fazer 2x. local item1 = 2160 -- id do item local qtd = 3 -- quantidade a ser removida. local level = 7 -- quantidade de level a dar ao jogador. local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) -----------#Fim das configurações#------------ if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) >= 1 then selfSay('Você já me ajudou, sou grato por isso!', cid) talkState[talkUser] = 0 end if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) <= 0 then if (getPlayerItemCount(cid, item1) == qtd) then selfSay('Você não tem '..qtd..' {'..getItemNameById(item1)..'s}. Volte aqui quando tiver', cid) elseif doPlayerRemoveItem(cid, item1, qtd) then setPlayerStorageValue(cid, stg, 1) selfSay('Muito obrigado, como recompensa aqui está sua experiência por ter me ajudado!', cid) doPlayerAddLevel(cid, level) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Porém agora não esta dando novamente,o player fala hi e ele responde,mas quando fala missão ou missao o npc não responde nada. Creio que o problema possa estar nesta localidade: local stg = 14278 local item1 = 8710 local qtd = 10 local level = 7 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) Editado Outubro 17, 2013 por mylorc Link para o comentário Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Outubro 17, 2013 Share Postado Outubro 17, 2013 (editado) Não, não, eu testei aqui e funcionou da mesma forma. 13:29 ADM Master Viciado [41578: hi 13:29 Dona dos Portais: Como vai? ADM Master Viciado, Você deseja uma missao? 13:29 ADM Master Viciado [41578: missao 13:29 Dona dos Portais: Muito obrigado, como recompensa aqui está sua experiência por ter me ajudado! 13:29 ADM Master Viciado [41585: missao 13:29 Dona dos Portais: Você já me ajudou, sou grato por isso! Editado Outubro 17, 2013 por Fawz Link para o comentário Compartilhar em outros sites More sharing options...
0 mylorc 0 Postado Outubro 17, 2013 Autor Share Postado Outubro 17, 2013 Estou postando o modo que esta aqui,caso esteje algo errado me informe por favor: XML -> <?xml version="1.0" encoding="ISO-8859-1"?> <npc name="Force" script="data/npc/scripts/missao.lua" walkinterval="3000" floorchange="0"> <health now="100" max="100"/> <look type="132" head="20" body="39" legs="45" feet="7" addons="0"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|. Eu tenho uma {missão} para você." /> <parameter key="message_farewell" value="Até mais, |PLAYERNAME|!"/> </parameters> </npc> 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 stg = 14278 local item1 = 8710 local qtd = 10 local level = 7 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) >= 1 then selfSay('Você já me ajudou, sou grato por isso!', cid) talkState[talkUser] = 0 end if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) <= 0 then if (getPlayerItemCount(cid, item1) == qtd) then selfSay('Você não tem '..qtd..' {'..getItemNameById(item1)..'s}. Volte aqui quando tiver', cid) elseif doPlayerRemoveItem(cid, item1, qtd) then setPlayerStorageValue(cid, stg, 1) selfSay('Muito obrigado, como recompensa aqui está sua experiência por ter me ajudado!', cid) doPlayerAddLevel(cid, level) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Link para o comentário Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Outubro 17, 2013 Share Postado Outubro 17, 2013 Substitua esse seu lua por este: 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 -----------#Início das configurações#------------ local stg = 14278 -- storage da quest, para não fazer 2x. local item1 = 8710 -- id do item local qtd = 10 -- quantidade a ser removida. local level = 7 -- quantidade de level a dar ao jogador. local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) -----------#Fim das configurações#------------ if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) >= 1 then selfSay('Você já me ajudou, sou grato por isso!', cid) talkState[talkUser] = 0 end if(msgcontains(msg, 'missao')) and getPlayerStorageValue(cid, stg) <= 0 then if (getPlayerItemCount(cid, item1) == qtd) then selfSay('Você não tem '..qtd..' {'..getItemNameById(item1)..'s}. Volte aqui quando tiver', cid) elseif doPlayerRemoveItem(cid, item1, qtd) then setPlayerStorageValue(cid, stg, 1) selfSay('Muito obrigado, como recompensa aqui está sua experiência por ter me ajudado!', cid) doPlayerAddLevel(cid, level) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Link para o comentário Compartilhar em outros sites More sharing options...
0 mylorc 0 Postado Outubro 17, 2013 Autor Share Postado Outubro 17, 2013 (editado) Troquei porém ainda não resolveu: 13:55 Force: Olá Boy Short. Eu tenho uma missão para você. 13:55 Boy Short [8]: missao 13:55 Boy Short [8]: missão 13:55 Boy Short [8]: missão O que poderei fazer? Achei o erro haha na verdade ta tudo certo,só preciso editar o inicio para por um aviso do que precisa! Obrigado! Editado Outubro 17, 2013 por mylorc Link para o comentário Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Outubro 17, 2013 Share Postado Outubro 17, 2013 Eita kkk' tópico ficou quente uUASUSAHUA fico feliz em ter te ajudado, sou novato neste ramo ai tenho algumas dúvidas ainda maaas nada que eu não sevire e faça. Reportado para que movam! Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Outubro 17, 2013 Share Postado Outubro 17, 2013 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mylorc 0
Olá,preciso criar um npc de missão,alguém me ajuda?
Assim,preciso de um npc que recolha 3 itens e de recompença ele dara ao player xp (do lvl 1 irá para o lvl 8).
Ajudem por favor.
Link para o comentário
Compartilhar em outros sites
Top Posters For This Question
16
9
9
4
Popular Days
Out 16
26
Out 17
15
Top Posters For This Question
mylorc 16 posts
zipter98 9 posts
Lumus 9 posts
markindoot 4 posts
Popular Days
Out 16 2013
26 posts
Out 17 2013
15 posts
Popular Posts
zipter98
Fawz, acho que você esqueceu de setar a storage no player quando ele entrega os items, não? Vai q é só impressão minha e.e
Lumus
Substitua esse seu lua por este: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function on
40 respostass a esta questão
Posts Recomendados