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,msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,string.lower(msg)
local trade = {
{name="platinum amulet", id=2171, buy=0, sell=2500},
{name="ring of the sky", id=2123, buy=0, sell=3000},
{name="ruby necklace", id=2133, buy=0, sell=2000},
{name="scarab amulet", id=2135, buy=0, sell=200},
{name="silver brooch", id=2134, buy=0, sell=150},
{name="terra amulet", id=7887, buy=0, sell=1500},
{name="doll", id=2110, buy=0, sell=200},
{name="light shovel", id=5710, buy=0, sell=300},
{name="pirate voodo doll", id=5810, buy=0, sell=50},
{name="voodo doll", id=3955, buy=0, sell=400}
}
local items = {}
for _, item in ipairs(trade) do
items[item.id] = {item_id = item.id, buyPrice = item.buy, sellPrice = item.sell, subType = 0, realName = item.name}
end
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if items[item].buyPrice ~= 0 then
doPlayerRemoveMoney(cid, amount * items[item].buyPrice)
if isItemStackable(items[item].item_id) then
doPlayerAddItem(cid, items[item].item_id, amount)
else
for i = 1, amount do
doPlayerAddItem(cid, items[item].item_id, 1)
end
end
end
end
local onSell = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if items[item].sellPrice ~= 0 then
doPlayerAddMoney(cid, items[item].sellPrice * amount)
doPlayerRemoveItem(cid, items[item].item_id, amount)
end
end
if msgcontains(msg, 'trade') and getPlayerStorageValue(cid, 784745) > 0 then
openShopWindow(cid, trade, onBuy, onSell)
else
selfSay("Não vendo nada para você!", cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())




info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum
Olá, galera.
Será que alguém sabe como faz para um npc abrir a janela de trade somente se o storage for x?
Eu até consegui chegar até aí, mas o problema real é que, depois que o primeiro jogador fala com ele, se ele tiver o storage >x, então ele abre o trade SEMPRE. Se o storage for <x, ele fecha o trade SEMPRE.
Então, o problema de verdade é conseguir fazer ele recarregar a janela de trade sempre que um player fala.
Agradeço desde já