[Duvida] Aonde Esta O Erro Neste Npc?

ewerton91
em Scripts

ewerton91

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/11Posts: 23

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.

Mattziin

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 11/11/11Posts: 115

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())

ewerton91

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/11Posts: 23

@ mattziin

 

Nao funcionou, ele manda o player embora logo de cara =x

LuckOake

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/07/12Posts: 1104Gênero: MasculinoChar no Tibia: Luck Oake

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())

 

ewerton91

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/11Posts: 23

@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!

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

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())

5303fg1.png

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

esse é o npc do mendigo?

porque ontem eu tinha te passado um npc mas não é o mesmo né?

bossisg.png

ewerton91

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/11Posts: 23

@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

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

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

5303fg1.png

ewerton91

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/11Posts: 23

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!!!