Postado Abril 25, 2020 5 anos Autor @Hologram O npc ainda não me responde. Não sei qual o problema... a versão do server é 8.6 Parte xml do npc: Mostrar conteúdo oculto <?xml version="1.0" encoding="UTF-8"?> <npc name="Jiraya2" script="data/npc/scripts/Novas Missões/Jiraya2.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc> E o script está praticamente igual oque você comentou, removi apenas a linha de adcionar o item. Eu digo "quest" ou "missao" mas ele n responde nada de volta
Postado Abril 25, 2020 5 anos Solução @MarkCharlotte Cara esse script seu tem muito erro, se funcionasse, o player nem precisaria entregar os itens pq ele ta setando a storagem so de falar items. E as storage tão tudo diferente, fica melhor vc mudar o valor delas. Refiz ele pra você mas tem uma parte que não entendi oq queria com isso. Mas so posta que ajeito, não consigo testa ele pq to no trampo. Se retorna algum erro so posta ele. Deixei as storage que ta no script original (1456 e 13256) pq não sei onde usa mais, mas ela nao utiliza em nada pro funcionamento do npc local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function onCreatureSay(cid, type, msg) if getPlayerStorageValue(cid, 12101) >= 2 then npcHandler:setMessage(MESSAGE_GREET, "Olá "..getCreatureName(cid)..", Você já completou todas as Missões.") npcHandler:setMessage(MESSAGE_WALKAWAY, "Que rude.") npcHandler:setMessage(MESSAGE_FAREWELL, "Até... "..getCreatureName(cid)..".") elseif getPlayerStorageValue(cid, 12101) < 1 then npcHandler:setMessage(MESSAGE_GREET, "Olá "..getCreatureName(cid)..", você deseja fazer a {missao} para aprender a nova magia?") npcHandler:setMessage(MESSAGE_WALKAWAY, "Que rude.") npcHandler:setMessage(MESSAGE_FAREWELL, "Até... "..getCreatureName(cid)..".") elseif getPlayerStorageValue(cid, 12101) == 1 then npcHandler:setMessage(MESSAGE_GREET, "Olá "..getCreatureName(cid)..", você deseja entregar os {itens} para aprender a nova magia?.") npcHandler:setMessage(MESSAGE_WALKAWAY, "Que rude.") npcHandler:setMessage(MESSAGE_FAREWELL, "Até... "..getCreatureName(cid)..".") end npcHandler:onCreatureSay(cid, type, msg) 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,12101) < 1 then if isInArray({"missao", "missoes"}, msg) then selfSay("vá e me traga os itens!",cid) setPlayerStorageValue(cid, 1456,1) setPlayerStorageValue(cid, 12101,1) talkState[talkUser] = 0 end end if getPlayerStorageValue(cid, 12101) == 1 then if isInArray({"itens", "item"}, msg) then if doPlayerRemoveItem(cid, 2160, 20) then setPlayerStorageValue(cid, 13256, 1) setPlayerStorageValue(cid, 12101, 2) else selfSay("Você ainda não tem os itens necessários!", cid) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Retirei essa parte, depois me explica oq queria com isso que coloco pra você if getPlayerStorageValue(cid, 13256) >= 2 then npcHandler:say("Você vai para a ultima missão!.", cid) -- configurar depois Editado Abril 25, 2020 5 anos por Naze (veja o histórico de edições)
Postado Abril 25, 2020 5 anos Autor @Naze Testei e deu o seguinte erro: Mostrar conteúdo oculto Vou tentar explicar melhor como seria o script, achei que dava pra entender, mas vendo agora tá bem confuso. Seria um script onde o npc passaria uma missão (que seria para entregar 20 itens) ao completar ele setaria a storage para 16356 (podem colocar qualquer número, posso mudar dps) dps ao falar com ele novamente ele verificaria a storage, pra ver se completou a primeira missão, se sim ele passaria outra, e agora que vem essa parte: if getPlayerStorageValue(cid, 13256) >= 2 then npcHandler:say("Você vai para a ultima missão!.", cid) -- configurar depois nessa parte eu mesmo iria configurar depois, pois era pra lutar com um npc. Dps do player aceitar a missão de ir lutar, ele iria e lutava com o outro npc que setaria a storage dele para 12564 (número de testes, podem colocar outro se quiserem) quando voltasse ao npc do tópico, o npc iria dizer "Você derrou tal npc?" se o player disesse "derrotei" então se o player tivesse a storage que o npc de luta setou pra ele, então a missão estaria completa, e o npc do tópico verificaria ela pra ver se ele completou. Esse npc de luta já tenho o script pronto, o problema é esse npc do tópico.
Postado Abril 25, 2020 5 anos @MarkCharlotte Erro meu não completei o elseif, copia la de novo que arrumei. Bro, quiser essa parte é a frase inicial, ai verifica a storage e responde quando ele fala 'hi', so ir mudando o valor, mas o primeiro if ta verificando o valor 2, entao vc vai ter que troca la para mais. elseif getPlayerStorageValue(cid, 12101) == 1 then npcHandler:setMessage(MESSAGE_GREET, "Olá "..getCreatureName(cid)..", você deseja entregar os {itens} para aprender a nova magia?.") npcHandler:setMessage(MESSAGE_WALKAWAY, "Que rude.") npcHandler:setMessage(MESSAGE_FAREWELL, "Até... "..getCreatureName(cid)..".") @edit, tinha editando mas nao salvado, se copio antes de eu salva copia de novo q agr foi. Editado Abril 25, 2020 5 anos por Naze (veja o histórico de edições)
Postado Abril 25, 2020 5 anos Autor @Naze Agora foi, perfeito. Vlw pela ajuda, com aquele script que postei eu tinha refeito ele umas 20x mas n funcionava kkkkkkk mexer com npc é muito confuso. Thx Editado Abril 25, 2020 5 anos por MarkCharlotte (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.