Ir para conteúdo

Featured Replies

Postado
local mensagem = ""
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 trophy = {
        ["ouro"] = {3, 5805},    --{Quantidade de items aleatórios, ID do troféu}, 
        ["prata"] = {2, 5806},
        ["bronze"] = {1, 5807}, 
    }
    local items = {2154, 2156, 2158}
 
    if msgcontains(msg:lower(), "trophy") or msgcontains(msg:lower(), "trofeu") then
        selfSay("Acho que você pretende trocar algum troféu por gemas. Qual troféu você pretende trocar comigo: {ouro}, {prata} ou {bronze}?", cid)
        talkState[talkUser] = 1
        return true
    elseif talkState[talkUser] == 1 then
        if trophy[msg:lower()] then
            selfSay("Você tem certeza que quer trocar 1 troféu de "..msg:lower().." por "..trophy[msg:lower()][1].." gema"..(trophy[msg:lower()][1] > 1 and "s" or "").." aleatória"..(trophy[msg:lower()][1] > 1 and "s" or "").."?", cid)
            mensagem = msg:lower()
            talkState[talkUser] = 2
            return true
        else
            selfSay("Este troféu não existe.", cid)
            talkState[talkUser] = 0
            return true
        end  
    elseif msgcontains(msg:lower(), "yes") or msgcontains(msg:lower(), "sim") and talkState[talkUser] == 2 then
        local trofeu = trophy[mensagem]
        local id = trofeu[2]
        if getPlayerItemCount(cid, id) > 0 then
            for i = 1, trofeu[1] do
                doPlayerAddItem(cid, items[math.random(#items)], 1)
            end
            doPlayerRemoveItem(cid, id, 1)
            selfSay("Obrigado, aqui estão suas gemas.", cid)
            talkState[talkUser] = 0
            return true
        else
            selfSay("Você não possui este troféu.", cid)
            talkState[talkUser] = 0
            return true
        end
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            

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

  • Respostas 12
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Postado
  • Autor

as mensagem está aparecendo, só que o NPC não está trocando o troféu pela gema... pf arruma ae!

está dando esse erro:

[12/01/2015 16:14:15] [Error - Npc interface]

[12/01/2015 16:14:15] data/npc/scripts/trofeu.lua:onCreatureSay

[12/01/2015 16:14:15] Description:

[12/01/2015 16:14:15] data/npc/scripts/trofeu.lua:39: attempt to index local 'trofeu' (a nil value)

[12/01/2015 16:14:15] stack traceback:

[12/01/2015 16:14:15] data/npc/scripts/trofeu.lua:39: in function 'callback'

[12/01/2015 16:14:16] data/lib/npchandler.lua:390: in function 'onCreatureSay'

[12/01/2015 16:14:16] data/npc/scripts/trofeu.lua:7: in function <data/npc/scripts/trofeu.lua:7>

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

Postado

Sobre o segundo problema, provavelmente é algum onThink que esteja causando isso (dã). Se mesmo com o código que passei isso continua acontecendo, dá uma olhada no código desse NPC que você citou (Mary) e veja se há alguma coisa relacionada a essas mensagens (tanto no XML quanto no lua). Se tiver, poste os códigos. Se não, hm, vai ser um pouco mais complicado. 

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

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