Essa parte tá bem bugada mesmo ![]()
Não seria melhor postar o NPC inteiro, e também dizer como ele deve funcionar, mais detalhadamente? Porquê, talvez, a maneira que seja corrigida essa parte pode bugar outras partes do código.
Essa parte tá bem bugada mesmo ![]()
Não seria melhor postar o NPC inteiro, e também dizer como ele deve funcionar, mais detalhadamente? Porquê, talvez, a maneira que seja corrigida essa parte pode bugar outras partes do código.
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino

Estou terminando ele xD.. ta ae prontinho.
o novo erro depois que arrumei alguma coisa e esse
05/01/2014 19:35:32] [Error - LuaScriptInterface::loadFile] data/npc/scripts/teste.lua:100: '<eof>' expected near 'end' [05/01/2014 19:35:32] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/teste.lua [05/01/2014 19:35:32] data/npc/scripts/teste.lua:100: '<eof>' expected near 'end'
Npc
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
msg = string.lower(msg)
---------
local configuration = {
add_item = 2154,
StoAdd = 1234,
}
local pos = {x=1024, y=1025, z=7}
if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Bom primeiramente eu preciso que você colete alguns itens para min, você pode fazer isto?", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1)
return true
elseif (getPlayerStorageValue(cid, storage) == 1 ) then
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
selfSay("Derrote vários Leafmon e colete 100 Seeds, 100 Pairs of Leaves e 100 Bag of Pollem, você consegue ? Se sim digite {finish}!?", cid)
setPlayerStorageValue(cid, 1234, 2)
talkState[talkUser] = 2
elseif (getPlayerStorageValue(cid, storage) == 2 ) then
elseif msgcontains(msg, 'finish') and talkState[talkUser] == 2 then
if (getPlayerItemCount(cid, 12155) < 100 and getPlayerItemCount(cid, 12153) < 100 and getPlayerItemCount(cid, 12163) < 10 ) then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
end
selfSay("Muito obrigado, falta agora somente o Leaf diamond, eles foi escondido pela minha familia na ilha sagrada", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
doPlayerRemoveItem(cid,12155,100)
doPlayerRemoveItem(cid,12153,100)
doPlayerRemoveItem(cid,12163,100)
setPlayerStorageValue(cid, 1234, 3)
doSendMagicEffect(getThingPos(cid), 29)
return true
end
return true
end
if (msgcontains(msg, 'Ilha') or msgcontains(msg, 'ilha')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Você Quer acesso a ilha Secreta??", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1)
return true
elseif (getPlayerStorageValue(cid, storage) == 3 ) then
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
selfSay("Ache a alavanca , va ate a ilha pegue o leaf diamond que foi escondido pelos meus ancestrais e me traga ? Quando conseguir digite {diamante}!?", cid)
setPlayerStorageValue(cid, 1234, 4)
talkState[talkUser] = 2
elseif (getPlayerStorageValue(cid, storage) == 6 ) then
elseif msgcontains(msg, 'diamante') and talkState[talkUser] == 2 then
if getPlayerItemCount(cid, 7383) ==1 then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
end
selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouce, isso que é o mais importante toma a recompensa!", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
return true
end
if(getPlayerStorageValue(cid, storage) >= 7) then
if(msgcontains(msg, 'mission') or msgcontains(msg, 'quest')) then
npcHandler:say("Você ja me ajudou nessa quest =/", cid)
return TRUE
end
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Se puder Numerar as coisas que eu errei ao fazer eu agradeço..... aquela cordenada lem cima ainda vo por não tira ela nao ahauaha.. sei que ela nao ta sendo usada ainda.
Editado Janeiro 5 por kbpaulo
Numerei os erros que encontrei.
Aqui está o seu código:
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
msg = string.lower(msg)
---------
local configuration = {
add_item = 2154,
StoAdd = 1234,
}
local pos = {x=1024, y=1025, z=7}
if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Bom primeiramente eu preciso que você colete alguns itens para min, você pode fazer isto?", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1)
return true
elseif (getPlayerStorageValue(cid, storage) == 1 ) then
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then --1º erro. O correto seria colocar um if aqui, e fechar na linha 41 com um end.
selfSay("Derrote vários Leafmon e colete 100 Seeds, 100 Pairs of Leaves e 100 Bag of Pollem, você consegue ? Se sim digite {finish}!?", cid)
setPlayerStorageValue(cid, 1234, 2)
talkState[talkUser] = 2
elseif (getPlayerStorageValue(cid, storage) == 2 ) then
elseif msgcontains(msg, 'finish') and talkState[talkUser] == 2 then --2º erro. Recomendo que troque a posição das verificações dessa linha e da linha 42. E, colocar um if aqui também.
if (getPlayerItemCount(cid, 12155) < 100 and getPlayerItemCount(cid, 12153) < 100 and getPlayerItemCount(cid, 12163) < 10 ) then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
end
selfSay("Muito obrigado, falta agora somente o Leaf diamond, eles foi escondido pela minha familia na ilha sagrada", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
doPlayerRemoveItem(cid,12155,100)
doPlayerRemoveItem(cid,12153,100)
doPlayerRemoveItem(cid,12163,100)
setPlayerStorageValue(cid, 1234, 3)
doSendMagicEffect(getThingPos(cid), 29)
return true
end
return true
end
if (msgcontains(msg, 'Ilha') or msgcontains(msg, 'ilha')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Você Quer acesso a ilha Secreta??", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1) --3º erro. Setando aqui a storage com valor igual à 1, o jogador sempre acabaria tendo que repetir o quê foi escrito no código ali em cima, onde verifica se a storage do jogador é igual à 1.
return true
elseif (getPlayerStorageValue(cid, storage) == 3 ) then
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then --4º erro. Mesma coisa do 2º
selfSay("Ache a alavanca , va ate a ilha pegue o leaf diamond que foi escondido pelos meus ancestrais e me traga ? Quando conseguir digite {diamante}!?", cid)
setPlayerStorageValue(cid, 1234, 4)
talkState[talkUser] = 2
elseif (getPlayerStorageValue(cid, storage) == 6 ) then
elseif msgcontains(msg, 'diamante') and talkState[talkUser] == 2 then --5º. Mesma coisa do 4º.
if getPlayerItemCount(cid, 7383) ==1 then --6º erro. Se for igual à 1, vai falar que não tem o item? Não entendi essa parte.
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
end
selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouce, isso que é o mais importante toma a recompensa!", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3) --Recomendo que sete por aqui a storage do player com valor igual à 7.
doPlayerAddExp(cid,25000)
return true
end
if(getPlayerStorageValue(cid, storage) >= 7) then
if(msgcontains(msg, 'mission') or msgcontains(msg, 'quest')) then
npcHandler:say("Você ja me ajudou nessa quest =/", cid)
return TRUE
end
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
E aqui o meu, com algumas coisas corrigidas. Talvez outros erros tenham me passado despercebidos na hora que estava corrigindo, portanto, qualquer coisa, só postar.
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
msg = string.lower(msg)
---------
local configuration = {
add_item = 2154,
StoAdd = 1234,
}
local storage = 1234
local pos = {x=1024, y=1025, z=7}
if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Bom primeiramente eu preciso que você colete alguns itens para min, você pode fazer isto?", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1)
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, storage) < 2 then
selfSay("Derrote vários Leafmon e colete 100 Seeds, 100 Pairs of Leaves e 100 Bag of Pollem. Boa sorte.", cid)
setPlayerStorageValue(cid, 1234, 2)
talkState[talkUser] = 0
else
if (getPlayerItemCount(cid, 12155) < 100 and getPlayerItemCount(cid, 12153) < 100 and getPlayerItemCount(cid, 12163) < 100) then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("Muito obrigado, falta agora somente o Leaf diamond, eles foi escondido pela minha familia na ilha sagrada", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
doPlayerRemoveItem(cid,12155,100)
doPlayerRemoveItem(cid,12153,100)
doPlayerRemoveItem(cid,12163,100)
setPlayerStorageValue(cid, storage, 3)
doSendMagicEffect(getThingPos(cid), 29)
return true
end
end
elseif (msgcontains(msg, 'Ilha') or msgcontains(msg, 'ilha')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
elseif getPlayerStorageValue(cid, storage) < 3 or getPlayerStorageValue(cid, storage) > 4 then
selfSay("Não preciso de sua ajuda.", cid)
talkState[talkuser] = 0
return true
end
selfSay("Você Quer acesso a ilha Secreta??", cid)
talkState[talkUser] = 2
setPlayerStorageValue(cid, 1234, 4)
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 2 then
selfSay("Ache a alavanca , va ate a ilha pegue o leaf diamond que foi escondido pelos meus ancestrais e me traga. Quando conseguir digite {diamante}.", cid)
setPlayerStorageValue(cid, storage, 4)
talkState[talkUser] = 0
elseif msgcontains(msg, 'diamante') and getPlayerStorageValue(cid, storage) == 4 then
if getPlayerItemCount(cid, 7383) < 1 then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouce, isso que é o mais importante toma a recompensa!", cid)
setPlayerStorageValue(cid, storage, 7)
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid, 25000)
talkState[talkUser] = 0
return true
end
elseif (getPlayerStorageValue(cid, storage) >= 7) then
npcHandler:say("Você ja me ajudou nessa quest =/", cid)
return true
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Janeiro 6 por zipter98
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, storage) < 2 then
selfSay("Derrote vários Leafmon e colete 100 Seeds, 100 Pairs of Leaves e 100 Bag of Pollem, você consegue ? Se sim digite {finish}!?", cid)
setPlayerStorageValue(cid, 1234, 2)
talkState[talkUser] = 0
vc tirou a resposta dessa pergunta.. quando falo finish para terminar se tirou ela...
Minha grande duvida nessa parti quando devo usar IF e quando elseif
Fale hi-help-yes novamente. Eu optei por fazer assim, pra diminuir de certa forma o código, e evitar alguns erros que me vieram à cabeça na hora. Mas, se preferir, posso colocar de volta o "finish".
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino

pq a quest e a seguinte hi - help - yes - yes - finished
player=hi
player=help
npc - estou precisando de ajuda - fale help
player=yes
Npc - vc pode conseguir para min( itens)
player=yes
npc - se vc conseguiu . fale finish
player=finish
Ok, tenta assim:
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
msg = string.lower(msg)
---------
local configuration = {
add_item = 2154,
StoAdd = 1234,
}
local storage = 1234
local pos = {x=1024, y=1025, z=7}
if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Bom primeiramente eu preciso que você colete alguns itens para min, você pode fazer isto?", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1)
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, storage) < 2 then
selfSay("Derrote vários Leafmon e colete 100 Seeds, 100 Pairs of Leaves e 100 Bag of Pollem. Você consegue? Se sim, diga {finish}.", cid)
setPlayerStorageValue(cid, 1234, 2)
talkState[talkUser] = 2
else
selfSay("Diga {finish}.", cid)
talkState[talkUser] = 2
return true
end
elseif msgcontains(msg, "finish") and talkState[talkUser] == 2 then
if (getPlayerItemCount(cid, 12155) < 100 and getPlayerItemCount(cid, 12153) < 100 and getPlayerItemCount(cid, 12163) < 100) then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("Muito obrigado, falta agora somente o Leaf diamond, eles foi escondido pela minha familia na {ilha} sagrada", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
doPlayerRemoveItem(cid,12155,100)
doPlayerRemoveItem(cid,12153,100)
doPlayerRemoveItem(cid,12163,100)
setPlayerStorageValue(cid, storage, 3)
doSendMagicEffect(getThingPos(cid), 29)
return true
end
elseif (msgcontains(msg, 'Ilha') or msgcontains(msg, 'ilha')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
elseif getPlayerStorageValue(cid, storage) < 3 or getPlayerStorageValue(cid, storage) > 4 then
selfSay("Não preciso de sua ajuda.", cid)
talkState[talkuser] = 0
return true
end
selfSay("Você Quer acesso a ilha Secreta??", cid)
talkState[talkUser] = 3
setPlayerStorageValue(cid, 1234, 4)
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 3 then
selfSay("Ache a alavanca , va ate a ilha pegue o leaf diamond que foi escondido pelos meus ancestrais e me traga. Quando conseguir digite {diamante}.", cid)
setPlayerStorageValue(cid, storage, 4)
talkState[talkUser] = 0
elseif msgcontains(msg, 'diamante') and getPlayerStorageValue(cid, storage) == 4 then
if getPlayerItemCount(cid, 7383) < 1 then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouce, isso que é o mais importante toma a recompensa!", cid)
setPlayerStorageValue(cid, storage, 7)
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid, 25000)
talkState[talkUser] = 0
return true
end
elseif (getPlayerStorageValue(cid, storage) >= 7) then
npcHandler:say("Você ja me ajudou nessa quest =/", cid)
return true
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Janeiro 6 por zipter98
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino

selfSay("Muito obrigado, falta agora somente o Leaf diamond, eles foi escondido pela minha familia na {ilha} sagrada", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
doPlayerRemoveItem(cid,12155,100)
doPlayerRemoveItem(cid,12153,100)
doPlayerRemoveItem(cid,12163,100)
setPlayerStorageValue(cid, storage, 3)
doSendMagicEffect(getThingPos(cid), 29)
return true
ta liberando essa parte tendo apenas 100 de uns dos 3 itens....... acho que tem que por 1 formula aqui tb para liberar so se tiver os 3 se nao tiver retornar para msg que nao tem itens nescessarios tb.
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
msg = string.lower(msg)
---------
local configuration = {
add_item = 2154,
StoAdd = 1234,
}
local storage = 1234
local pos = {x=1024, y=1025, z=7}
local check = 0
local items = {12155, 12153, 12163}
if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Bom primeiramente eu preciso que você colete alguns itens para min, você pode fazer isto?", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1)
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, storage) < 2 then
selfSay("Derrote vários Leafmon e colete 100 Seeds, 100 Pairs of Leaves e 100 Bag of Pollem. Você consegue? Se sim, diga {finish}.", cid)
setPlayerStorageValue(cid, 1234, 2)
talkState[talkUser] = 2
else
selfSay("Diga {finish}.", cid)
talkState[talkUser] = 2
return true
end
elseif msgcontains(msg, "finish") and talkState[talkUser] == 2 then
for i = 1, #items do
if getPlayerItemCount(cid, items[i]) < 100 then
check = check + 1
end
end
if check >= 1 then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("Muito obrigado, falta agora somente o Leaf diamond, eles foi escondido pela minha familia na {ilha} sagrada", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
doPlayerRemoveItem(cid,12155,100)
doPlayerRemoveItem(cid,12153,100)
doPlayerRemoveItem(cid,12163,100)
setPlayerStorageValue(cid, storage, 3)
doSendMagicEffect(getThingPos(cid), 29)
return true
end
elseif (msgcontains(msg, 'Ilha') or msgcontains(msg, 'ilha')) then
if getPlayerStorageValue(cid, storage) ~= 3 then
selfSay("Não preciso de sua ajuda.", cid)
talkState[talkuser] = 0
return true
elseif getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Você Quer acesso a ilha Secreta??", cid)
talkState[talkUser] = 3
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 3 then
selfSay("Ache a alavanca , va ate a ilha pegue o leaf diamond que foi escondido pelos meus ancestrais e me traga. Quando conseguir digite {diamante}.", cid)
setPlayerStorageValue(cid, storage, 4)
talkState[talkUser] = 0
elseif msgcontains(msg, 'diamante') and getPlayerStorageValue(cid, storage) == 4 then
if getPlayerItemCount(cid, 7383) < 1 then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouce, isso que é o mais importante toma a recompensa!", cid)
setPlayerStorageValue(cid, storage, 7)
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid, 25000)
talkState[talkUser] = 0
return true
end
elseif (getPlayerStorageValue(cid, storage) >= 7) then
npcHandler:say("Você ja me ajudou nessa quest =/", cid)
return true
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Janeiro 7 por zipter98
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino

elseif (msgcontains(msg, 'Ilha') or msgcontains(msg, 'ilha')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
elseif getPlayerStorageValue(cid, storage) < 3 or getPlayerStorageValue(cid, storage) > 4 then
selfSay("Não preciso de sua ajuda.", cid)
talkState[talkuser] = 0
return true
end
selfSay("Você Quer acesso a ilha Secreta??", cid)
talkState[talkUser] = 3
setPlayerStorageValue(cid, 1234, 4)
return true
essa parti e 1 verificação , ta havendo 1 erro seguinte..
essa parte e assim
player = Ilha( verifica se ele fez quest anterior com storage 3 como vc pode ver lem cima ate sno script) - se ele ja fez fala que nao pode fazer mais.. se nao fez pode continuar fazendo..
Npc= vc quer acesso a ilha
player = yes ( aki o player ganha storage de acesso a ilha)
Npc vc ganhou acesso a ilha agora va buscar meu Leaf Diamante
Corrigi uma coisinha no código, editei meu último comentário com ele.
E, não entendi o quê você quis dizer no comentário acima. Poderia explicar novamente?
Editado Janeiro 7 por zipter98
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino

1º vc tendo ou nao o (Storage,3) ele ta aceitando falar ilha..
2º Ao falar Ilha e yes ele tem que te dar storge 4. (ta certo)
3º oq eu vi aki quase todas falas ta passando direto sem cobrar as coisas q sao precisas... vc mecher nas storages...... oq acontece vo inumerar essas quests para fica mais facil..
player :hi
player :help
npc :vc quer me ajudar (storage,1)
player :yes
npc :consiga os itens (storage 2)
player :itens
npc :Muitos obrigadopela ajuda(storage,3)
player : ilha (verifica se tem (storage,3) quest acima )
quando player ganha acesso a ilha a Storage muda para (storage,4). você pode reparar que a proxima fala e so com storage 7.....por que isso tem 1 ilha no meio da quest
quando vc entra nela sua storage muda para (storage,5).
Quando pega o item nescessario e sai dela ganha(storage,6)
Ai sim vc ganha a conversa diamond verificando se tem (Storage,6)
player :diamond
npc :vc trouce o leaf diamante
player :yes
npc :muito obrigado agora tome seu premio
Ah, entendi.
Veja se assim está correto, ou se pulei alguma etapa:
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
msg = string.lower(msg)
---------
local configuration = {
add_item = 2154,
StoAdd = 1234,
}
local storage = 1234
local pos = {x=1024, y=1025, z=7}
local check = 0
local items = {12155, 12153, 12163}
if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then
if getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Bom primeiramente eu preciso que você colete alguns itens para min, você pode fazer isto?", cid)
talkState[talkUser] = 1
setPlayerStorageValue(cid, 1234, 1)
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, storage) < 2 then
selfSay("Derrote vários Leafmon e colete 100 Seeds, 100 Pairs of Leaves e 100 Bag of Pollem. Você consegue? Se sim, diga {finish}.", cid)
setPlayerStorageValue(cid, 1234, 2)
talkState[talkUser] = 2
else
selfSay("Diga {finish}.", cid)
talkState[talkUser] = 2
return true
end
elseif msgcontains(msg, "finish") and talkState[talkUser] == 2 then
if getPlayerStorageValue(cid, storage) ~= 2 then
selfSay("Não preciso de sua ajuda.", cid)
talkState[talkUser] = 0
return true
end
for i = 1, #items do
if getPlayerItemCount(cid, items[i]) < 100 then
check = check + 1
end
end
if check >= 1 then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("Muito obrigado, falta agora somente o Leaf diamond, eles foi escondido pela minha familia na {ilha} sagrada", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid,25000)
doPlayerRemoveItem(cid,12155,100)
doPlayerRemoveItem(cid,12153,100)
doPlayerRemoveItem(cid,12163,100)
setPlayerStorageValue(cid, storage, 3)
doSendMagicEffect(getThingPos(cid), 29)
return true
end
elseif (msgcontains(msg, 'Ilha') or msgcontains(msg, 'ilha')) then
if getPlayerStorageValue(cid, storage) ~= 3 then
selfSay("Não preciso de sua ajuda.", cid)
talkState[talkuser] = 0
return true
elseif getPlayerStorageValue(cid, configuration.StoAdd) >= 7 then
selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
return true
end
selfSay("Você Quer acesso a ilha Secreta??", cid)
talkState[talkUser] = 3
return true
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 3 then
selfSay("Ache a alavanca , va ate a ilha pegue o leaf diamond que foi escondido pelos meus ancestrais e me traga. Quando conseguir digite {diamante}.", cid)
setPlayerStorageValue(cid, storage, 4)
talkState[talkUser] = 0
elseif msgcontains(msg, 'diamante') then
if getPlayerStorageValue(cid, storage) ~= 6 then
selfSay("Saia daqui!", cid)
talkState[talkUser] = 0
return true
else
if getPlayerItemCount(cid, 7383) < 1 then
selfSay("Desculpe, mais voce não tem os itens nescessarios!", cid)
talkState[talkUser] = 0
return true
else
selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouce, isso que é o mais importante toma a recompensa!", cid)
setPlayerStorageValue(cid, storage, 7)
doPlayerAddItem(cid, configuration.add_item, 3)
doPlayerAddExp(cid, 25000)
talkState[talkUser] = 0
return true
end
end
elseif (getPlayerStorageValue(cid, storage) >= 7) then
npcHandler:say("Você ja me ajudou nessa quest =/", cid)
return true
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino

agora fico perfeito dei uma retocadas para melhor tive q por mas 1 storage.... agora a primeira parte HELP tem 1 storage e a ilha tem outra..... muito obrigado cara... ajudou muito pode mover como sanado ja...
info
Grupo: Cavaleiro
Registrado: 12/10/09
Posts: 160
Reputação: +19
Gênero: Masculino
Estou com essa linha com problema na Quest que to criando já tentei tudo que e coisa e não resolvo alguém tem 1 luz
o erro e nessa linha aki em baixo e toda a linha
em baixo a linha toda.
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then talkState[talkUser] = 5 if(doPlayerRemoveItem(cid,item1,1) == TRUE and doPlayerRemoveItem(cid,item2,1) == TRUE and doPlayerRemoveItem(cid,item3,1) == TRUE ) then setPlayerStorageValue(cid, storage,5) then npcHandler:say("Muito obrigado, mas ainda preciso de sua ajuda para o último ingrediente, um Leaf diamente feito de árvores sagradas que eu o escondo em uma ilha secreta, para chegar a esta ilha você terá que encontrar, uma velha alavanca escondida em meio as árvores, pois não confio em todas as pessoas, então eu a escondi perto do Sorcerymon de Rockie City, procure-á.", cid) else npcHandler:say("Você não foi a ilha Sagrada ainda , quando for e so falar Ilha", cid) end if (getPlayerStorageValue(cid, storage) == 7 ) then if(msgcontains(msg, 'ilha') or msgcontains(msg, 'Ilha')) then talkState[talkUser] = 6 setPlayerStorageValue(cid, storage,8) npcHandler:say(" Olá , conseguiu encontrar meu diamante ? Fale {diamante}", cid) elseif (getPlayerStorageValue(cid, storage) == 8) then