Ir para conteúdo

Featured Replies

Postado


 

local coins = 25 -- quantidade de coins
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 price = 3000000           --Preço das coins em GOLD.
    if msgcontains(msg:lower(), "coins") then
        selfSay("Deseja comprar 25 tibia coins por 300 {crystal coins}?", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if doPlayerRemoveMoney(cid, price) then
            db.query("UPDATE `accounts` SET `coins` = `coins` + '" ..coins.. "' WHERE `id` = '" .. player:getAccountId() .. "';")
            selfSay("Você recebeu 25 tibia coins.", cid)
            talkState[talkUser] = 0
            return true
        else
            selfSay("Você não tem dinheiro suficiente.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, até logo.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())  

 

Editado por pereirinha (veja o histórico de edições)

Postado

A meu ver, apenas um return onde não deve.

Teste:
 

local coins = 25 -- quantidade de coins
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 price = 3000000           --Preço das coins em GOLD.
    if msgcontains(msg:lower(), "coins") then
        selfSay("Deseja comprar 25 tibia coins por 300 {crystal coins}?", cid)
        talkState[talkUser] = 1
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if doPlayerRemoveMoney(cid, price) then
            db.query("UPDATE `accounts` SET `coins` = `coins` + '" ..coins.. "' WHERE `id` = '" .. player:getAccountId() .. "';")
            selfSay("Você recebeu 25 tibia coins.", cid)
            talkState[talkUser] = 0
            return true
        else
            selfSay("Você não tem dinheiro suficiente.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, até logo.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())  

Explicação: O return se usa no final de uma ação, como você botou 'return true' logo depois do player falar coins, o TFS já encerrou o script.

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo