[NPC] Npc de quest Alfredo
Desculpa se postei no lugar errado, se for preciso mover ou deletar o topico fiquem a vontade.
Continuando o meu script de npc, queria que ele foce um pouco mais complexo, mais não consigo acertar algumas coisas nele, ja que sou iniciante em scripts:
-quando você fala "no" para algo ele não responde a fala que eu quero que ele responda.
Ah Vodkart ja me ajudou neste script, fico muito grato, mais queria algumas coisas a mais nele, mais não consigo fazer que isto de certo...
O que eu quero ao certo é mais ou menos este dialogo quando você ja iniciou a converssa:
Player: ajuda
NPC: Eu preciso de 30 worms para ir pescar hoje com um grande amigo, prometi a ele que levaria elas. Você poderia me ajudar?
Agora você teria duas opções:
Player: yes
NPC: Obrigado! Estarei te esperando aqui!
A outra:
Player: no
NPC: Er, ok.. Acho que não vou poder ir pescar hoje..
Até ai deu certo, mais as outras partes que você tem a opção de falar "yes" ou "no" não deu certo...
Mais em geral é um npc que vai te dando várias quests conforme você vai completando outras quests ja propostas por ele, seguindo uma história... So quero saber como deixar mais opções de respostas para o player, como "yes" e "no" e que dependendo desta ação o npc dirá algo, e que também se você não tiver as "30 worms" ele dirá algo, como: "Vá logo pegar as worms, estou esperando!".
Se der para ver os erros e corrigirem ele para mim fico agradecido.. Com isso acho que minha dúvida nisto acabará.
Obrigado!
Script do NPC:
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 msgcontains(msg, 'ajuda') then if (getPlayerStorageValue(cid,8002) == -1) then selfSay('Eu preciso de 30 worms para ir pescar hoje com um grande amigo, prometi a ele que levaria elas. Você poderia me ajudar?', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,8002) == 1) then selfSay('Ja trouxe minhas worms?', cid) talkState[talkUser] = 2 elseif (getPlayerStorageValue(cid,8002) == 2) then selfSay('Hmm, agora abri um negocio de venda de minhocas, mas estou meio sem estoque, agora preciso de 100 worms, sera que você poderia me ajudar novamente?', cid) talkState[talkUser] = 3 elseif (getPlayerStorageValue(cid,8002) == 3) then selfSay('Conseguiu as worms?', cid) talkState[talkUser] = 4 else selfSay('Por enquanto não preciso mais de sua ajuda..', cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Obrigado! Estarei te esperando aqui!', cid) setPlayerStorageValue(cid, 8002, 1) talkState[talkUser] = 0 else selfSay('Er, ok.. Acho que não vou poder ir pescar hoje..', cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 3 then if msgcontains(msg, 'yes') then selfSay('Você é demais! Estarei esperando as worms.', cid) setPlayerStorageValue(cid, 8002, 3) talkState[talkUser] = 0 else selfSay('Er, ok.. Estou arruinado..', cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 2 and getPlayerItemCount(cid, 3976) >= 30 then if msgcontains(msg, 'yes') then selfSay('Hmm, bom bom, aqui esta sua recompença! {Você recebeu 1000 exp e 500 gps}.', cid) if (doPlayerRemoveItem(cid, 3976, 30) == TRUE) then doPlayerAddExp(cid,1000) doPlayerAddMoney(cid, 500) setPlayerStorageValue(cid, 8002, 2) talkState[talkUser] = 0 elseif msgcontains(msg, 'no') then selfSay('O que esta esperando? Vá logo porfavor.', cid) talkState[talkUser] = 0 else talkState[talkUser] = 0 end end elseif talkState[talkUser] == 4 and getPlayerItemCount(cid, 3976) >= 100 then if msgcontains(msg, 'yes') then selfSay('Brigadão! Eu sabia que você era confiavel! Pensou que você não ganharia nada em troca né? {Você recebeu 2500 exp e 1500 gps}.', cid) if (doPlayerRemoveItem(cid, 3976, 100) == TRUE) then doPlayerAddExp(cid,2500) doPlayerAddMoney(cid, 1500) setPlayerStorageValue(cid, 8002, 4) talkState[talkUser] = 0 elseif msgcontains(msg, 'no') then selfSay('Estou esperando as worms...', cid) talkState[talkUser] = 0 else talkState[talkUser] = 0 end end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())