-- charge free accounts more since prem player support the server
local extraCost = 10 -- in percentage, 10 equals 10%
local shopItems = {
['backpack'] = {price = 20, count = 1},
['shovel'] = {price = 5, count = 1},
['pick'] = {price = 45, count = 1},
['rope'] = {price = 45, count = 1, itemid = 2120},
}
function increasePrice(base, extra)
return base + math.ceil((extra/100) * base)
end
function onSay(player, words, param)
local isPrem = player:isPremium()
if param and param ~= '' then
param = param:lower()
local item = shopItems[param]
if item then
item.itemid = item.itemid or getItemIdByName(param)
if not isPrem then
item.price = increasePrice(item.price, extraCost)
end
if doPlayerRemoveMoney(player:getId(), item.price) then
player:addItem(item.itemid, item.count)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Thank you for purchasing a " .. param .. "!")
player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
return false
end
player:sendCancelMessage("You do not have enough money to buy a " .. param .. ".")
return false
end
player:sendCancelMessage("Sorry we don't sell " .. param .. ".")
end
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Please enter a shop item name to buy, prices are listed, free accounts pay "..extraCost.."% more than premium account.")
for name, list in next, shopItems do
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, name .. ": " .. (isPrem and list.price or increasePrice(list.price, extraCost)) .. "gp." )
end
return false
end