
Primeiro Npc que vende os items mais caros ou mais barato DEPENDENDO DO DIA
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 = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
function PercentNumber(n)
percent = {
["Monday"] = 1,
["Tuesday"] = 2,
["Wednesday"] = 5,
["Thursday"] = 1,
["Friday"] = 7,
["Saturday"] = 5,
["Sunday"] = 10
}
return n + math.ceil(((percent[os.date("%A")]*n)/100))
end
local trade = {
{id=2386, buy= PercentNumber(20) , sell= PercentNumber(8),name="axe"},
{id=2382, buy= PercentNumber(15), sell= PercentNumber(4), name="club"},
{id=2413, buy= PercentNumber(2240), sell= PercentNumber(550), name="broadsword"},
}
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)
for i = 1, amount do
doPlayerAddItem(cid, items[item].item_id, amount)
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') then
openShopWindow(cid, trade, onBuy, onSell)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
percent = {
["Monday"] = 1,
["Tuesday"] = 2,
["Wednesday"] = 5,
["Thursday"] = 1,
["Friday"] = 7,
["Saturday"] = 5,
["Sunday"] = 10
}
["DIA"] = %
exemplo:
{id=2386, buy= PercentNumber(20) , sell= PercentNumber(8),name="axe"},
20 é o preço real do item pra comprar
no caso hj é Sunday e está para ficar 10% mais caro, então o item ali vai custa hj 22 pq
10% de 20 é 2
---------------------------
o segundo é o npc que vende os itens com 50% do preço mais barato se ele tiver um X item
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 = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
function PercentNumber(n)
return getPlayerItemCount(cid, 2123) >= 1 and n - math.ceil(((50*n)/100)) or n
end
local trade = {
{id=2386, buy= PercentNumber(20) , sell= 8,name="axe"},
{id=2382, buy= PercentNumber(15), sell= 4, name="club"},
{id=2413, buy= PercentNumber(2240), sell= 550, name="broadsword"},
}
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)
for i = 1, amount do
doPlayerAddItem(cid, items[item].item_id, amount)
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') then
openShopWindow(cid, trade, onBuy, onSell)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Nesse caso eu coloquei para vender o item 50% mais barato se ele tiver o item com ID: 2123
só mudar aqui:
function PercentNumber(n)
return getPlayerItemCount(cid, 2123) >= 1 and n - math.ceil(((50*n)/100)) or n
end
o 2123 é o ID do item
e o 50 é qntos % mais barato
@TOPIC
se não entender oq eu digo estude um pouco.