Oque A De Errado No Meu Npc?

othereality
em Scripts

othereality

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/01/11Posts: 343Char no Tibia: Zodriac

Eu fiz um npc de quest que quando o player leva para ele 5 peixes e diz: "peixes"

ele da xp, gp e uma storage.

 

se eu chego com 5 peixes e digo "peixes" funciona.

porem se eu chego sem os peixes e digo "peixes", ele responde "vamos la me traga os peixes", depois eu pego eles e volto. Quando eu falo "peixes" ele simplemente não faz nada.

 

O Script está aqui:

 

 

 

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

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

if msgcontains(msg, 'peixes') or msgcontains(msg, 'aquiesta') then if

getPlayerStorageValue(cid, 25501) == -1 and

doPlayerRemoveItem(cid, 2667, 5) then

doPlayerAddExp(cid, 800)

doPlayerAddItem(cid, 2148, 25)

setPlayerStorageValue(cid, 25501, 1)

npcHandler:say('Obrigado pela ajuda, sempre que quizer podemos pescar e bater um {papo}.', cid)

else

if getPlayerStorageValue(cid, 25501) == 1 then

npcHandler:say('pode vender peixes na minha loja.', cid)

else

npcHandler:say('Vamos la me traga os peixes...', cid)

end

return true

end

end

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

Se alguem souber aonde eu errei... =/

Obrigado a todos que responderem.

 

 

---

Edit:

Na verdade acabei de perceber que quando alguem fala com o npc sem ter o peixes,

nem ele nem ninguem mais consegue completar a quest. ele não faz mais nada quando a pessoas diz "Peixes". Parece que ele só executa alguma ação uma vez. depois para.

não me dê rep

apenas leia abaixo

###motivos pra você clicar aqui agora e entrar no Uwnia99 OT###

 

Temos 15 classes e está sempre lançando mais.
A classe Assassin fica invisível até pra
 players :rip:

A classe Cake Guardian tem uma magia de refletir dano

Temos Eventos próprios acontecendo todo momento

Temos várias sprites únicas do OT

 A classe Feral Druid se transforma em vários bichos e tem magias diferentes dependendo da forma que está  :beurk:

Temos um contato muito grande entre desenvolvedor e jogador

 Temos uma classe chamada CAKE GUARDIAN! ELE ATIRA BOLOS!!!!! :love:

Não temos sistema vip e não vamos ter

Não vendemos nenhum tipo de vantagem na loja do site e nem vamos vender (apenas cosméticos)

 24h  :ph34r:

 

Entre no site clicando aqui!

Ilidian

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/01/06Posts: 51

Fazer o seguinte, me fala exatamente oque você quer que o npc faça que eu monto ele do zero pra você.

Fica muito mais facil assim...




Quando o ultimo peixe for pescado, o ultimo animal for caçado e a ultima arvore cair
o homem aprendera que dinheiro não se come.

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

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, 'peixes') or msgcontains(msg, 'aquiesta') then
if getPlayerItemCount(cid, 2667) >= 5 then
if getPlayerStorageValue(cid, 25501) == -1 then
doPlayerAddExp(cid, 800)
doPlayerAddItem(cid, 2148, 25)
setPlayerStorageValue(cid, 25501, 1)
doPlayerRemoveItem(cid, 2667, 5)
selfSay('Obrigado pela ajuda, sempre que quizer podemos pescar e bater um papo.', cid)
else
selfSay('Você já fez esta quest.', cid)
end
else
selfSay('Vamos la me traga os peixes...', cid)
end
end


return true
end

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

 

Não sei mesmo se funciona, não testei nem revisei.

Oie :D

othereality

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/01/11Posts: 343Char no Tibia: Zodriac

Vlw Demonb. Funcionou direitinho... Só não entendi porque o meu n tava dando certo =(

Ah..

se alguem for usar o script só tem que adicionar:

 

 

doPlayerRemoveItem(cid, 2667, 5)

 

pro npc pegar os peixes. ;D

 

rep+

não me dê rep

apenas leia abaixo

###motivos pra você clicar aqui agora e entrar no Uwnia99 OT###

 

Temos 15 classes e está sempre lançando mais.
A classe Assassin fica invisível até pra
 players :rip:

A classe Cake Guardian tem uma magia de refletir dano

Temos Eventos próprios acontecendo todo momento

Temos várias sprites únicas do OT

 A classe Feral Druid se transforma em vários bichos e tem magias diferentes dependendo da forma que está  :beurk:

Temos um contato muito grande entre desenvolvedor e jogador

 Temos uma classe chamada CAKE GUARDIAN! ELE ATIRA BOLOS!!!!! :love:

Não temos sistema vip e não vamos ter

Não vendemos nenhum tipo de vantagem na loja do site e nem vamos vender (apenas cosméticos)

 24h  :ph34r:

 

Entre no site clicando aqui!

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Ah é mesmo, esqueci de colocar pra retirar os peixes.

 

Tópico movido. Até.

Oie :D