Postado Dezembro 28, 2023 1 ano 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.
Postado Dezembro 29, 2023 1 ano 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()) Olá, que tal dar uma olhada no meu projeto? https://discord.gg/bsNkbsyJ3W
Postado Dezembro 29, 2023 1 ano 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 Janeiro 1, 2024 1 ano @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. Olá, que tal dar uma olhada no meu projeto? https://discord.gg/bsNkbsyJ3W
Postado Janeiro 29, 2024 1 ano 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()) 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.