Desculpem pelo título chamativo e/ou pela área está incorreta, mas enfim, lhes trago a solução definitiva pros problemas de bug relacionados a conteiners, como ficar comprando bp's infinitamente até crashar o server, stackar várias bps dentro de bps, jogar dentro da casa e usar o comando !leavehouse (ou algo do tipo) o que causa lag (talvez crash?) por conta da database ter que processar tantos itens saindo da house pro dp ou qualquer outra merda desse tipo.
Vá em ...\data\npc\lib\npcsystem procure por: -- Handles onBuy events. If you wish to handle this yourself, use the CALLBACK_ONBUY callback.
Substitua toda a função por:
function NpcHandler:onBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks) local config = { sto = 11000, --storage tempo = 60, --tempo de cooldown para comprar novamente it = {2144, 2149}, --id dos itens total = 10 --total de itens que pode ser comprado por vez } if isInArray(config.it, itemid) and amount >= config.total then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "nao pode comprar mais que "..config.total.." itens desse.") return false elseif getPlayerStorageValue(cid, config.sto) > os.time() and isInArray(config.it, itemid) and amount <= config.total then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "espere "..(getPlayerStorageValue(cid, config.sto) - os.time()).." segundo(s) para comprar novamente.") return false elseif isInArray(config.it, itemid) and amount <= config.total then setPlayerStorageValue(cid, config.sto, os.time() + config.tempo) end local callback = self:getCallback(CALLBACK_ONBUY) if(callback == nil or callback(cid, itemid, subType, amount, ignoreCap, inBackpacks)) then if(self:processModuleCallback(CALLBACK_ONBUY, cid, itemid, subType, amount, ignoreCap, inBackpacks)) then -- end end end
Explicando:
Se o player tentar comprar mais de X itens de id Y, o npc não irá vender. Quando o player comprar uma quantidade menor que X, ganhará um cooldown de Z segundos até poder comprar novamente. Tudo isso configurável na tabela.
Pra te prejudicar com esse tipo de bug agora, só se o "player" tiver com uma puta vontade de te foder.
Testado e totalmente funcional em TFS 0.4 rev 3884, mas qualquer coisa é só adaptar pra outras versões que tenho certeza que funciona.
EDIT: Não sei se já tem script similar por ai, mas esse ai é de minha autoria.