Ir para conteúdo
  • 0

NPC com trade condicional (storage)


Omega

Pergunta

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á

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

 

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())
Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...