<?xml version="1.0" encoding="UTF-8"?>
<mod name="Buy item by lever" version="1.0" author="Darkhaos" contact="otland.net" enabled="yes">
<config name="switch_items"><![CDATA[
uid = {
[5556] = {item = 7590, count = 200, charges = 1, cost = 24020, backpack = true, backpackID = 2001, ignoreCap = false},
[5557] = {item = 7589, count = 200, charges = 1, cost = 16020, backpack = true, backpackID = 2001, ignoreCap = false},
[5558] = {item = 7620, count = 200, charges = 1, cost = 10020, backpack = true, backpackID = 2001, ignoreCap = false},
[5559] = {item = 8473, count = 200, charges = 1, cost = 62020, backpack = true, backpackID = 2000, ignoreCap = false},
[5560] = {item = 7591, count = 200, charges = 1, cost = 38020, backpack = true, backpackID = 2000, ignoreCap = false},
[5561] = {item = 7588, count = 200, charges = 1, cost = 20020, backpack = true, backpackID = 2000, ignoreCap = false},
[5562] = {item = 7618, count = 200, charges = 1, cost = 9020, backpack = true, backpackID = 2000, ignoreCap = false},
[5563] = {item = 8472, count = 200, charges = 1, cost = 38020, backpack = true, backpackID = 2004, ignoreCap = false},
[5564] = {item = 2268, count = 200, charges = 1, cost = 10020, backpack = true, backpackID = 2003, ignoreCap = false},
}
levers = {
1945,
1946
}
]]></config>
<action fromuid="5556" touid="5564" event="buffer"><![CDATA[
domodlib('switch_items')
if isInArray(levers, item.itemid) then
doTransformItem(item.uid, (item.itemid == 1945 and 1946 or 1945))
local item = uid[item.uid]
if item then
if item.backpack then
if getPlayerMoney(cid) < item.cost then
doPlayerSendCancel(cid, "You need " .. item.cost .. " gold coins to buy a backpack of " .. getItemNameById(item.item) .. ".")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
return true
end
if not item.ignoreCap and getPlayerFreeCap(cid) < (getItemWeightById(item.backpackID, item.backpackCount) + getItemWeightById(item.item, item.count)) then
doPlayerSendCancel(cid, "You don't have enough cap.")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
return true
end
local deny = false
if not isItemContainer(item.backpackID) then deny = true end
if not deny then
local container = doPlayerAddItem(cid, item.backpackID, 1)
for i = 1, item.count do
doAddContainerItem(container, item.item, item.charges)
end
doPlayerRemoveMoney(cid, item.cost)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You bought " .. item.count .. "x " .. getItemNameById(item.item) .. (item.count > 1 and "s" or "") .. ".")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
else
error("[Warning - Error] Cannot add items in container id " .. item.backpackID .. ".")
end
else
if getPlayerMoney(cid) < item.cost then
doPlayerSendCancel(cid, "You need " .. item.cost .. " gold coins to buy " .. getItemArticleById(item.item) .. " " .. getItemNameById(item.item) .. ".")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
return true
end
if not item.ignoreCap and getPlayerFreeCap(cid) < getItemWeightById(item.item, item.count) then
doPlayerSendCancel(cid, "You don't have enough cap.")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
return true
end
for i = 1, item.count do
doPlayerAddItem(cid, item.item, item.charges)
end
doPlayerRemoveMoney(cid, item.cost)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You bought " .. item.count .. "x " .. getItemNameById(item.item) .. (item.count > 1 and "s" or "") .. ".")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
end
end
end
]]></action>
</mod>