Ir para conteúdo
  • 0

ewerton91

Pergunta

Ajuda em npc

Pessoal eu peguei um npc aqui no forum e o editei para meu servidor, so que eu nao consigo terminalo wacko.png

 

 

 

Explicacão do npc:

 

O player fala com o npc ele verifica qual valor storage da storage 7000 ele esta

se nao estiver com valor 1, ele fala a frase da o valor 1 e manda embora

o npc bla bla bla(eu ja esta pronto)

dps o player volta e fala com o npc dnv, ele verifica o valor da storage e fala outra frase da outro valor e fecha a conversa

E assim continua, quando chegar num valor 10 final ele manda a mensagen: voce terminou todas as missoes

 

Script :

 

 

 

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, 'missao') then

talkState[talkUser] = 0

if getPlayerStorageValue(cid,7700) == 1 then

selfSay('Voce deve levar 4 {dragon ham} ao mendigo em frente ao dp.{ok}?', cid)

setPlayerStorageValue(cid,7700,2)

talkState[talkUser] = 1

elseif talkState[talkUser] == 1 then

if msgcontains(msg, 'ok') then

selfSay('Pode ir ele esta a sua espera!!', cid)

talkState[talkUser] = 0

end

else

selfSay('Ah seu fanfarao saia daqui', cid)

end

if getPlayerStorageValue(cid,7700) == 3 then

selfSay('Voce deve levar 4 {health potion} ao mendigo em frente a arena.{ok}?', cid)

setPlayerStorageValue(cid,7700,4)

talkState[talkUser] = 1

elseif talkState[talkUser] == 1 then

if msgcontains(msg, 'ok') then

selfSay('Pode ir ele esta a sua espera!!', cid)

end

else

selfSay('Ah seu fanfarao saia daqui', cid)

end

 

 

 

 

else

if msgcontains(msg, 'no') then

selfSay('Então porque veio aqui ?', cid)

end

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

Creditos :

70%Jd criador inicial

5% Eu pelo Edit

25%Ao futuro arumador

Super rep+ pra quem ajudar, se não expliquei direito pode posta ai que eu to sempre de olho aqui no forum !!

Editado por Ewerton91
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

esse script do npc está muito confuso, ele vai ter que falar com o npc 10x? e cada vez que ele fala é uma missão diferente? seria de que? entregar items?

Link para o comentário
Compartilhar em outros sites

  • 0

Tipo simplesmente cada veis que o player for la ele vê qual o valor da storage, fala uma frase, da outro valor e fecha a conversa.(se o player tem a storage valor:1 fala a frase 1, valor 2 fala a frase 2)Se já tiver feito todas as missões ele fala que você ja completo tudo.

 

PS:Se você fizer pelo menos 3 vezes, depois eu coloco mais sozinho

 

Arumei o script pra voce entender melhor, qualquer duvida so posta ai que to sempre de olho

Editado por Ewerton91
Link para o comentário
Compartilhar em outros sites

  • 0

não sei se era isso:

 

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,msg = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid,string.lower(msg)
local talks = {
[1] = "Voce deve levar {dragon ham} para o mendigo em frente ao dp. Diga {yes} para aceitar.",
[3] = "Voce deve levar {Health Potion} para o morador da GuildHouse. Diga {yes} para aceitar.",
[5] = "Voce deve levar {Golden bow} para o anciao no templo. Diga {yes} para aceitar.",
}
storage = getPlayerStorageValue(cid, 7000) <= 0 and 1 or getPlayerStorageValue(cid, 7000)
if msgcontains(msg, 'missao') and talks[storage] then
selfSay(talks[storage], cid)
talkState[talkUser] = 2
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then
selfSay("Então vá e depois volte", cid)
setPlayerStorageValue(cid, 7000, (storage+1))
talkState[talkUser] = 0
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("tudo bem então.", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
else  
selfSay("Voce ja completou essa missao, para saber a proxima escreva: !mission", cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

O npc mendigo ele dá outra storage certo?

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0

Certo. Perfeito cara parabenz, eu to estudando scripts aqui, ai ja aproveito e estudo mais sobre o seu mdr.gif !!!

--EDIT---

 

Se eu consegui termina aqui bonitinho, eu vo ate posta aqui no forum e por seu credito junto.

Editado por Ewerton91
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...