Ir para conteúdo

Featured Replies

Postado

Alguém poderia em ajudar ou disponbilizar um NPC que faz troca de um ITEM por OUTRO ITEM somente UMA VEZ POR PLAYER? Estou tentando replicar alguns códigos de outros npcs mas sempre dá erro e não consigo nada. Uso o Canary.

 

Te ajudei? Dê um REP+! (:

 

 

@tibiaking.

  • Respostas 5
  • Visualizações 398
  • Created
  • Última resposta

Top Posters In This Topic

Postado
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

local item1 = 123 -- item
local qntd1 = 1 -- quantia

local stor = 1023332

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
    
    if(msgcontains(msg, 'entregar')) then
        selfSay('Voce conseguiu mesmo juntar os itens? diga {sim} se deseja me entregar', cid)
        talkState[talkUser] = 1
    elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 1) then
        if (getPlayerStorageValue(cid, stor) > 0) then
            selfSay('Voce ja realizou a troca comigo.', cid)
        else
            if getPlayerItemCount(cid, item1) >= qntd1 then
                
                doPlayerRemoveItem(cid, item1, qntd1)
                
                local bag = doPlayerAddItem(cid, 1599, 1)
                doAddContainerItem(bag, 2190, 10)
                setPlayerStorageValue(cid, stor, 1)
                
                selfSay('Obrigado! Em troca aqui esta o seu premio.', cid)
            else
                selfSay('Voce ainda nao conseguiu os requisitos, estou ansioso por eles, ha tantas utilidades.', cid)
            end
        end
        return true
    end
    
    
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Postado
  • Autor
Interface: Scripts Interface
Script ID: C:\Users\Administrator\Videos\canary-main\canary-main\data-otservbr-global/npc\yana.lua
Error Description: ...anary-main\canary-main\data-otservbr-global/npc\yana.lua:3: attempt to index global 'NpcSystem' (a nil value)
stack traceback:
        [C]: in function '__index'
        ...anary-main\canary-main\data-otservbr-global/npc\yana.lua:3: in main chunk
---------------------------------------

[2023-29-12 13:45:38.675] [error] C:\Users\Administrator\Videos\canary-main\canary-main\data-otservbr-global/npc\yana.lua
[2023-29-12 13:45:38.675] [error]

 

está dando esse erro, consegue ajudar?

Te ajudei? Dê um REP+! (:

 

 

@tibiaking.

Postado

@GuiltyPerdão eu não vi que você utilizava Canary, eu não estou familiarizado com as funções dessa versão, da pra você pegar outros scripts de NPC e utilizar eles pra adaptar pra sua versão.

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
  • 4 weeks later...
Postado
  • Diretor
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

local item1 = 123 -- item
local qntd1 = 1 -- quantia

local stor = 1023332

local function onCreatureAppear(cid)
    npcHandler:onCreatureAppear(cid)
end

local function onCreatureDisappear(cid)
    npcHandler:onCreatureDisappear(cid)
end

local function onCreatureSay(cid, type, msg)
    npcHandler:onCreatureSay(cid, type, msg)
end

local function onThink()
    npcHandler:onThink()
end

local function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end

    local talkUser = npcHandler:isConvincing() and 0 or cid

    if msgcontains(msg, 'entregar') then
        selfSay('Voce conseguiu mesmo juntar os itens? Diga {sim} se deseja me entregar', cid)
        talkState[talkUser] = 1
    elseif msgcontains(msg, 'sim') and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, stor) > 0 then
            selfSay('Voce ja realizou a troca comigo.', cid)
        else
            if getPlayerItemCount(cid, item1) >= qntd1 then
                doPlayerRemoveItem(cid, item1, qntd1)

                local bag = doPlayerAddItem(cid, 1599, 1)
                doAddContainerItem(bag, 2190, 10)
                setPlayerStorageValue(cid, stor, 1)

                selfSay('Obrigado! Em troca, aqui esta o seu premio.', cid)
            else
                selfSay('Voce ainda nao conseguiu os requisitos. Estou ansioso por eles, ha tantas utilidades.', cid)
            end
        end
        return true
    end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

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

Informação Importante

Confirmação de Termo