refiz os 2 npc...
Primeiro:
NOME DO SEU NPC.XML
<?xml version="1.0"?>
<npc name="NOME DO SEU NPC" script="data/npc/scripts/quest_letter1.lua" walkinterval="5000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|.Voce poderia me {ajudar}? "/>
</parameters>
</npc>
Em Npc/script Crie um arquivo.lua e renomeie para:
quest_letter1.lua
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
local carta_id = 2333
local Storage = 4350
if(msgcontains(msg, 'ajudar') or msgcontains(msg, 'AJUDAR')) then
if getPlayerStorageValue(cid, Storage) <= 0 then
selfSay('Fui preso por roubar comida,Mas não é oque parece, meus {filhos} estavão com fome e eu sem emprego, E minha Mulher Doente...Era necessario ', cid)
talkState[talkUser] = 1
else
selfSay('Eu já lhe entreguei a carta,por favor leve para minha esposa!', cid)
talkState[talkUser] = 0
end
elseif msgcontains(msg, 'filhos') and talkState[talkUser] == 1 then
selfSay('Sim, Tenho 2 pequenos,Bom preciso que você leve esta Carta para minha esposa, Nela escrevi que estou bem e em pouco tempo estarei livre, Você pode Levar a carta para minha Esposa? {yes}', cid)
talkState[talkUser] = 2
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then
selfSay('Muito Obrigado! A casa fica a leste de Malfer City, Serei grato eternamente a você, meu caro rapaz', cid)
setPlayerStorageValue(cid,Storage,1)
doPlayerAddItem(cid,carta_id,1)
talkState[talkUser] = 0
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("Then not", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
SEGUNDO NPC:
NOME DO SEU NPC.XML
<?xml version="1.0"?>
<npc name="NOME DO SEU NPC" script="data/npc/scripts/quest_letter2.lua" walkinterval="5000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|.Mas que vida {cruel},nao acha meu jovem..."/>
</parameters>
</npc>
novamente em NPC/SCRIPT crie um arquivo.lua e renomeie para:
quest_letter2.
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
local carta_id = 2333
local Storage = 4350
local recompensa = 2131
if(msgcontains(msg, 'cruel') or msgcontains(msg, 'CRUEL')) then
if getPlayerStorageValue(cid, Storage) == 1 then
selfSay('O Rei mandou prender meu pobre {marido}, E ele so estava tetando dar oque comer a nossos filhos...', cid)
talkState[talkUser] = 1
else
selfSay('Não quero nada com você agora,volte depois!', cid)
talkState[talkUser] = 0
end
elseif msgcontains(msg, 'marido') and talkState[talkUser] == 1 then
selfSay('Sim, Meu pobre {ramon}...}', cid)
talkState[talkUser] = 2
elseif msgcontains(msg, 'ramon') and talkState[talkUser] == 2 then
selfSay('Por acaso sabe algo sobre meu Ramon? {yes}', cid)
talkState[talkUser] = 3
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then
selfSay('hmmmm, Então ele te deu esta carta? Bom pelomenos assim sei que ele ainda Está vivo...Me de a {carta}', cid)
talkState[talkUser] = 4
elseif msgcontains(msg, 'carta') and talkState[talkUser] == 4 then
if (getPlayerItemCount(cid, carta_id) >= 1) then
setPlayerStorageValue(cid,Storage,2)
doPlayerAddItem(cid,recompensa,1)
doPlayerRemoveItem(cid, carta_id, 1)
selfSay('Obrigado por nós ajudar!', cid)
talkState[talkUser] = 0
else
selfSay('Você não está com a carta que ramon lhe deu,volte e me traga!', cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("Then not", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())




info
Grupo: Campones
Registrado: 08/04/08
Posts: 1
Reputação: 0
Char no Tibia: Jaum Ateu
Bom nessa quest de meu OT você fala com o primeiro NPC converssa e converssa ate que ele te da a carta e você tenque leva-la para sua mulher
Bom o Primeiro npc que fis,que da a carta ta 100% veja:
function onCreatureSay(cid, type, msg)
queststatus = getPlayerStorageValue(cid,4350)
if queststatus == -1 or queststatus == 0 then
if((msg == "hi")) then
selfSay("Olá meu Jovem", cid, TRUE)
selfSay("Você poderia mi {ajudar} ?", cid)
elseif((msg == "ajudar")) then
selfSay("Fui preso por roubar comida,Mas não é oque parece, meus {filhos} estavão com fome e eu sem emprego, E minha Mulher Doente...Era necessario", cid)
elseif msgcontains(msg, 'filhos') then
selfSay("Sim, Tenho 2 pequenos,Bom preciso que você leve esta Carta para minha esposa, Nela escrevi que estou bem e em pouco tempo estarei livre, Você pode Levar a carta para minha Esposa?", cid)
elseif msgcontains(msg, 'yes') then
selfSay("Muito Obrigado! A casa fica a leste de Malfer City, Serei grato eternamente a você, meu caro rapaz.", cid)
doPlayerAddItem(cid,2333,1,0)
setPlayerStorageValue(cid,4350,1)
end
end
end
Funfando blz, Porem a mulher (Segundo NPC) ela ate remove a carta do da BP e seta o Storage porem não da o item da reconpenssa :S vejão:
function onCreatureSay(cid, type, msg)
queststatus = getPlayerStorageValue(cid,4350)
if queststatus == 1 then
if((msg == "hi")) then
selfSay("Mas que vida {cruel}...", cid, TRUE)
selfSay("Não acha meu Jovem?", cid)
elseif((msg == "cruel")) then
selfSay("O Rei mandou prender meu pobre {marido}, E ele so estava tetando dar oque comer a nossos filhos...", cid)
elseif msgcontains(msg, 'marido') then
selfSay("Sim, Meu pobre {ramon}...", cid)
elseif msgcontains(msg, 'ramon') then
selfSay("Por acaso sabe algo sobre meu Ramon?", cid)
elseif msgcontains(msg, 'yes') then
selfSay("hmmmm, Então ele te deu esta carta? Bom pelomenos assim sei que ele ainda Está vivo...Me de a {carta}", cid)
elseif msgcontains(msg, 'carta') then
itemstatus = doPlayerRemoveItem(cid,2333,1)
elseif itemstatus == 1 then
selfSay('Muito Obrigado por nos Ajudar!!')
setPlayerStorageValue(cid,4350,2)
doPlayerAddItem(cid,2131,1,0)
end
end
end
E o mais engraçado e se depois dela ja remover a carta e setar storage você disser qualquer coisa no Chat ela te da a Reconpenssa... Alguem pode arrumar para min ? Muito Obrigado