Ir para conteúdo
  • 0

Linha com Erro Script


kbpaulo

Pergunta

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

  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 

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
Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

Essa parte tá bem bugada mesmo :o

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 por kbpaulo
Link para o comentário
Compartilhar em outros sites

  • 0

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 por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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".

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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 por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0
        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.

Link para o comentário
Compartilhar em outros sites

  • 0

 

 

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 por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0

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 por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...