Ir para conteúdo
  • 0

[Duvida] Aonde Esta O Erro Neste Npc?


ewerton91

Pergunta

Ajuda em npc

Pessoal sou iniciante em script eu montei esse ai abaixo e queria saber se tem algo errado.

Tambem queria sabe se o talkState funciona dese jeito que puis ou nao mellow.png

 

 

Explicacão do npc:

 

O npc fala (Voce deve levar 4 {dragon ham} ao mendigo em frente ao dp.{ok}?)

quando o player manda ok ele não manda a mensagen (selfSay('Pode ir ele esta a sua espera!!', cid))

 

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 :

50% Meu por iniciar

15% Do Vodkart por dar uma ajuda

35% Pra quem consegui me ajudarolleyes.gif

 

rep+ pra quem ajudar.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

tenta ai .

 

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, 'mission')) 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('Poder ir ele esta a sua espera',cid)
talkState[talkUser] = 0
end
else
selfSay('Vaza daqui seu fanfarao',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('Vaza daqui seu fanfarao', cid)
end
return false
end
if msgcontains(msg, 'no') then
selfSay('Então porque veio aqui ?', cid)
end
return false
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

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

  • 0

Tó.

 

 

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

if getPlayerStorageValue(cid,7700) < 1 then

selfSay('Ah, seu fanfarrão, saia daqui', cid)

end

 

if getPlayerStorageValue(cid,7700) == 1 then

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

setPlayerStorageValue(cid,7700,2)

talkState[talkUser] = 1

elseif getPlayerStorageValue(cid,7700) == 3 then

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

setPlayerStorageValue(cid,7700,4)

talkState[talkUser] = 1

end

 

if talkState[talkUser] == 1 then

if msgcontains(msg, 'ok') then

selfSay('Pode ir, ele está à sua espera!!', cid)

talkState[talkUser] = 0

else

if msgcontains(msg, 'no') then

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

end

end

end

end

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

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

  • 0

@LuckOake Também não funcionou sad.png

 

Na primeira veis ele me mandou embora, depois ele não faz mais nada, eu mudei as storage e os valores mais mesmo assim.

 

00:15 destru: Ola GOD Snowz.Posso te passar uma missao.
00:15 GOD Snowz [275]: missão
00:16 GOD Snowz [275]: yes
00:16 GOD Snowz [275]: mission
00:16 GOD Snowz [275]: ok
00:16 GOD Snowz [275]: Ok
00:16 GOD Snowz [275]: bye
00:17 destru: Good bye, GOD Snowz!

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

  • 0

Veja se assim funciona:

 

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
  if getPlayerStorageValue(cid, 7700) < 1 then
  selfSay('Ah, seu fanfarrão, saia daqui', cid)
  elseif getPlayerStorageValue(cid, 7700) == 1 then
  selfSay('Você deve levar 4 {dragon ham} ao mendigo em frente ao dp. {Ok}?', cid)
  setPlayerStorageValue(cid, 7700, 2)
  talkState[talkUser] = 1
  elseif getPlayerStorageValue(cid, 7700) == 3 then
  selfSay('Você deve levar 4 {health potion} ao mendigo em frente a arena. {Ok}?', cid)
  setPlayerStorageValue(cid, 7700, 4)
  talkState[talkUser] = 1
  end
return true
end

if talkState[talkUser] == 1 then
   if msgcontains(msg, 'ok') then
    selfSay('Pode ir, ele está à sua espera!!', cid)
    talkState[talkUser] = 0
   elseif msgcontains(msg, 'no') then
    selfSay('Então porque veio aqui?', cid)
   end
return true
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

  • 0

@Vodkart esse npc foi eu quem fis como nao funcionou queria saber o porque, o npc tem que dar multiplas missoes como eu coloquei ai.

 

 

@brun123 Tambem nao funcionou, do geito que puis ele falava a frase mais nao completava com ok, do jeito que voces fizeram eles nao falam nada

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

  • 0

Acabei de testar aqui e funcionou certinho...

Do seu jeito não funciona porque você escreveu isso:

 

if msgcontains(msg, 'missao') then
if msgcontains(msg, 'ok') then
	--impossível a mesma mensagem ser "missão" e "ok"
end
end

 

hi

missao

ok

 

ele responde numa boa aqui...

se tiver com storage -1, ele manda ir embora, ai mudei pra 1 e ele pediu pra levar ham pro outro npc

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

  • 0

Tenho que ir pra escola agora quando eu voltar 23:00 eu testo e do edit aqui

 

 

EDIT

 

 

@brun123 deu certo aqui não tinha pensado nisso vlw REP+

- logo abaixo de cada missão eu fecho e depois abro outra

 


if getPlayerStorageValue(cid, 7710) == -1 then
         selfSay('Você deve levar 4 {dragon ham} ao mendigo em frente ao dp. {Ok}?', cid)
         setPlayerStorageValue(cid, 7710, 1)
         talkState[talkUser] = 1
end

 

Vlw pra quem ajudou ai, duvida senada!!!

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

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