Postado Abril 9, 2017 8 anos @kinomoto não tem como fazer tal check direto da xml, então você teria que fazer um script que faça a mesma coisa, e nele você adicionaria os mesmo itens, isso por script, não tem como fazer por xml tal check. Irei fazer o npc por script.
Postado Abril 10, 2017 8 anos Autor 7 horas atrás, KotZletY disse: @kinomoto não tem como fazer tal check direto da xml, então você teria que fazer um script que faça a mesma coisa, e nele você adicionaria os mesmo itens, isso por script, não tem como fazer por xml tal check. Irei fazer o npc por script. poww mt obrigado msm :DD
Postado Abril 12, 2017 8 anos Solução @kinomoto sorry, esqueci completamente. Muitas notificações, e também andei um tiquin ocupado. Huahsuahs! Tava procurando uma notificação de alguns dias atrás, e então vir a sua. Kkkkk Bom, achei esse npc aqui mesmo no tk, porém tinha coisa desnecessária, linhas que não precisava, então eu o comprimir e deixei mais simples. Spoiler local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local storage = 1500 -- storage da quest local Trade = { {id=10522, buy=200, sell=0, name='crown backpack'}, {id=10518, buy=200, sell=0, name='demon backpack'}, } local function setNewTradeTable(table) local items = {} for _, v in ipairs(table) do items[v.id] = {itemId = v.id, buyPrice = v.buy, sellPrice = v.sell, subType = 0, realName = v.name} end return items end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if(msgcontains(msg, 'Trade') or msgcontains(msg, 'trade')) and getPlayerStorageValue(cid, storage) == 1 then selfSay('Essas são minhas ofertas!', cid) local items = setNewTradeTable(Trade) local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].buyPrice then doPlayerAddItem(cid, items[item].itemId, amount) doPlayerRemoveMoney(cid, items[item].buyPrice * amount) return true end return true end openShopWindow(cid, Trade, onBuy, false) else selfSay('Desculpe, mas você não tem o que é necessário para negociar comigo.', cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Copia qualquer xml e modificar para usar esse script. Hi, trade, se o player tiver a storage da quest, a storage que ganha nela, ele pode fazer, se não tiver, então o npc nem abre a janela de trade.
Postado Abril 12, 2017 8 anos Autor 11 horas atrás, KotZletY disse: @kinomoto sorry, esqueci completamente. Muitas notificações, e também andei um tiquin ocupado. Huahsuahs! Tava procurando uma notificação de alguns dias atrás, e então vir a sua. Kkkkk Bom, achei esse npc aqui mesmo no tk, porém tinha coisa desnecessária, linhas que não precisava, então eu o comprimir e deixei mais simples. Ocultar conteúdo local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local storage = 1500 -- storage da quest local Trade = { {id=10522, buy=200, sell=0, name='crown backpack'}, {id=10518, buy=200, sell=0, name='demon backpack'}, } local function setNewTradeTable(table) local items = {} for _, v in ipairs(table) do items[v.id] = {itemId = v.id, buyPrice = v.buy, sellPrice = v.sell, subType = 0, realName = v.name} end return items end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if(msgcontains(msg, 'Trade') or msgcontains(msg, 'trade')) and getPlayerStorageValue(cid, storage) == 1 then selfSay('Essas são minhas ofertas!', cid) local items = setNewTradeTable(Trade) local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].buyPrice then doPlayerAddItem(cid, items[item].itemId, amount) doPlayerRemoveMoney(cid, items[item].buyPrice * amount) return true end return true end openShopWindow(cid, Trade, onBuy, false) else selfSay('Desculpe, mas você não tem o que é necessário para negociar comigo.', cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Copia qualquer xml e modificar para usar esse script. Hi, trade, se o player tiver a storage da quest, a storage que ganha nela, ele pode fazer, se não tiver, então o npc nem abre a janela de trade. Ficou mt bom!!! mt obrigado!! + REP
Postado Junho 13, 2017 8 anos Desculpe, desde já, reviver o tópico mas tentei fazer esse npc que além de vender items, compre... não consegui local items = setNewTradeTable(Trade) local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].buyPrice then doPlayerAddItem(cid, items[item].itemId, amount) doPlayerRemoveMoney(cid, items[item].buyPrice * amount) return true end return true end openShopWindow(cid, Trade, onBuy, false) local function onSell(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].sellPrice then doPlayerRemoveItem(cid, items[item].itemId, amount) doPlayerAddMoney(cid, items[item].sellPrice * amount) return true end return true end openShopWindow(cid, Trade, onSell, false) Tentei fazer além de uma nova função, usar o elseif Se puder dar uma força! obrigado!
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.