this ?<?xml version="1.0" encoding="UTF-8"?>
<actions>
<!-- Weapons enchanting (Gems) -->
<action itemid="2146" event="script" value="other/enchanting.lua"/>
<action itemid="2147" event="script" value="other/enchanting.lua"/>
<action itemid="2150" event="script" value="other/enchanting.lua"/>
<action itemid="2149" event="script" value="other/enchanting.lua"/>
<action itemid="7759" event="script" value="other/enchanting.lua"/>
<action itemid="7760" event="script" value="other/enchanting.lua"/>
<action itemid="7761" event="script" value="other/enchanting.lua"/>
<action itemid="7762" event="script" value="other/enchanting.lua"/>
<!-- Tools -->
<action itemid="2420" event="script" value="tools/machete.lua"/>
<action itemid="2442" event="script" value="tools/machete.lua"/>
<action itemid="2550" event="script" value="tools/scythe.lua"/>
<action itemid="2580" event="script" value="tools/fishing.lua" allowfaruse="1"/>
<action itemid="10223" event="script" value="tools/fishing.lua" allowfaruse="1"/>
<action itemid="2554" event="script" value="tools/shovel.lua"/>
<action itemid="5710" event="script" value="tools/shovel.lua"/>
<action itemid="2120" event="script" value="tools/rope.lua"/>
<action itemid="7731" event="script" value="tools/rope.lua"/>
<action itemid="2553" event="script" value="tools/pick.lua"/>
<action itemid="5908" event="script" value="tools/obsidian_knife.lua"/>
<action itemid="5942" event="script" value="tools/blessed_wooden_stake.lua"/>
<!-- Liquids -->
<action itemid="1775" event="script" value="liquids/containers.lua"/>
<action itemid="2005" event="script" value="liquids/containers.lua"/>
<action itemid="2006" event="script" value="liquids/containers.lua"/>
<action itemid="2007" event="script" value="liquids/containers.lua"/>
<action itemid="2008" event="script" value="liquids/containers.lua"/>
<action itemid="2009" event="script" value="liquids/containers.lua"/>
<action itemid="2011" event="script" value="liquids/containers.lua"/>
<action itemid="2012" event="script" value="liquids/containers.lua"/>
<action itemid="2013" event="script" value="liquids/containers.lua"/>
<action itemid="2014" event="script" value="liquids/containers.lua"/>
<action itemid="2015" event="script" value="liquids/containers.lua"/>
<action itemid="2023" event="script" value="liquids/containers.lua"/>
<action itemid="2031" event="script" value="liquids/containers.lua"/>
<action itemid="2032" event="script" value="liquids/containers.lua"/>
<action itemid="2033" event="script" value="liquids/containers.lua"/>
<action itemid="2034" event="script" value="liquids/containers.lua"/>
<action itemid="2562" event="script" value="liquids/containers.lua"/>
<action itemid="2574" event="script" value="liquids/containers.lua"/>
<action itemid="2575" event="script" value="liquids/containers.lua"/>
<action itemid="2576" event="script" value="liquids/containers.lua"/>
<action itemid="2577" event="script" value="liquids/containers.lua"/>
<action itemid="3941" event="script" value="liquids/containers.lua"/>
<action itemid="3942" event="script" value="liquids/containers.lua"/>
<action itemid="5553" event="script" value="liquids/containers.lua"/>
<action itemid="10150" event="script" value="liquids/containers.lua"/>
<action itemid="6558" event="script" value="liquids/demonic_blood.lua"/>
<action itemid="7588-7591;8472-8473;7618;7620;8704" event="script" value="liquids/potions.lua"/>
<action itemid="7439" event="script" value="liquids/berserk_potion.lua"/>
<action itemid="7440" event="script" value="liquids/mastermind_potion.lua"/>
<action itemid="7443" event="script" value="liquids/bullseye_potion.lua"/>
<action itemid="8474" event="script" value="liquids/antidote_potion.lua"/>
<!-- Food -->
<action fromid="2362" toid="2363" event="script" value="other/food.lua"/>
<action fromid="2666" toid="2691" event="script" value="other/food.lua"/>
<action fromid="2695" toid="2696" event="script" value="other/food.lua"/>
<action fromid="2787" toid="2796" event="script" value="other/food.lua"/>
<action itemid="5097" event="script" value="other/food.lua"/>
<action itemid="6125" event="script" value="other/food.lua"/>
<action itemid="6278" event="script" value="other/food.lua"/>
<action itemid="6279" event="script" value="other/food.lua"/>
<action itemid="6394" event="script" value="other/food.lua"/>
<action itemid="6501" event="script" value="other/food.lua"/>
<action fromid="6541" toid="6545" event="script" value="other/food.lua"/>
<action itemid="6569" event="script" value="other/food.lua"/>
<action itemid="6574" event="script" value="other/food.lua"/>
<action itemid="7158" event="script" value="other/food.lua"/>
<action itemid="7159" event="script" value="other/food.lua"/>
<action fromid="7372" toid="7377" event="script" value="other/food.lua"/>
<action itemid="7909" event="script" value="other/food.lua"/>
<action fromid="8838" toid="8845" event="script" value="other/food.lua"/>
<action itemid="8847" event="script" value="other/food.lua"/>
<!-- Increase/Decrease ItemId -->
<action itemid="461" event="function" value="increaseItemId"/>
<action itemid="462" event="function" value="decreaseItemId"/>
<action itemid="1873" event="function" value="increaseItemId"/>
<action itemid="1874" event="function" value="decreaseItemId"/>
<action itemid="1875" event="function" value="increaseItemId"/>
<action itemid="1876" event="function" value="decreaseItemId"/>
<action itemid="2162" event="function" value="increaseItemId"/>
<action itemid="2163" event="function" value="decreaseItemId"/>
<action itemid="3743" event="function" value="increaseItemId"/>
<action itemid="3744" event="function" value="decreaseItemId"/>
<action itemid="3947" event="function" value="increaseItemId"/>
<action itemid="3948" event="function" value="decreaseItemId"/>
<action itemid="1479" event="function" value="increaseItemId"/>
<action itemid="1480" event="function" value="decreaseItemId"/>
<action itemid="1945" event="function" value="increaseItemId"/>
<action itemid="1946" event="function" value="decreaseItemId"/>
<action itemid="2037" event="function" value="increaseItemId"/>
<action itemid="2038" event="function" value="decreaseItemId"/>
<action itemid="2039" event="function" value="increaseItemId"/>
<action itemid="2040" event="function" value="decreaseItemId"/>
<action itemid="2058" event="function" value="increaseItemId"/>
<action itemid="2059" event="function" value="decreaseItemId"/>
<action itemid="2060" event="function" value="increaseItemId"/>
<action itemid="2061" event="function" value="decreaseItemId"/>
<action itemid="2066" event="function" value="increaseItemId"/>
<action itemid="2067" event="function" value="decreaseItemId"/>
<action itemid="2068" event="function" value="increaseItemId"/>
<action itemid="2069" event="function" value="decreaseItemId"/>
<action itemid="2064" event="function" value="increaseItemId"/>
<action itemid="2065" event="function" value="decreaseItemId"/>
<action itemid="2578" event="function" value="increaseItemId"/>
<action itemid="2096" event="function" value="increaseItemId"/>
<action itemid="2097" event="function" value="decreaseItemId"/>
<action itemid="1786" event="function" value="increaseItemId"/>
<action itemid="1787" event="function" value="decreaseItemId"/>
<action itemid="1788" event="function" value="increaseItemId"/>
<action itemid="1789" event="function" value="decreaseItemId"/>
<action itemid="1790" event="function" value="increaseItemId"/>
<action itemid="1791" event="function" value="decreaseItemId"/>
<action itemid="1792" event="function" value="increaseItemId"/>
<action itemid="1793" event="function" value="decreaseItemId"/>
<action itemid="1634" event="function" value="increaseItemId"/>
<action itemid="1635" event="function" value="decreaseItemId"/>
<action itemid="1636" event="function" value="increaseItemId"/>
<action itemid="1637" event="function" value="decreaseItemId"/>
<action itemid="1638" event="function" value="increaseItemId"/>
<action itemid="1639" event="function" value="decreaseItemId"/>
<action itemid="1640" event="function" value="increaseItemId"/>
<action itemid="1641" event="function" value="decreaseItemId"/>
<action itemid="7058" event="function" value="increaseItemId"/>
<action itemid="7059" event="function" value="decreaseItemId"/>
<action itemid="8684" event="function" value="increaseItemId"/>
<action itemid="8685" event="function" value="decreaseItemId"/>
<action itemid="8686" event="function" value="increaseItemId"/>
<action itemid="8687" event="function" value="decreaseItemId"/>
<action itemid="8688" event="function" value="increaseItemId"/>
<action itemid="8689" event="function" value="decreaseItemId"/>
<action itemid="8690" event="function" value="increaseItemId"/>
<action itemid="8691" event="function" value="decreaseItemId"/>
<action itemid="9575" event="function" value="increaseItemId"/>
<action itemid="9576" event="function" value="decreaseItemId"/>
<action itemid="9577" event="function" value="increaseItemId"/>
<action itemid="9578" event="function" value="decreaseItemId"/>
<action itemid="9579" event="function" value="increaseItemId"/>
<action itemid="9580" event="function" value="decreaseItemId"/>
<action itemid="9581" event="function" value="increaseItemId"/>
<action itemid="9582" event="function" value="decreaseItemId"/>
<action itemid="9624" event="function" value="increaseItemId"/>
<action itemid="9625" event="function" value="decreaseItemId"/>
<action itemid="9747" event="function" value="increaseItemId"/>
<action itemid="9748" event="function" value="decreaseItemId"/>
<action itemid="9749" event="function" value="increaseItemId"/>
<action itemid="9750" event="function" value="decreaseItemId"/>
<action itemid="9825" event="function" value="increaseItemId"/>
<action itemid="9826" event="function" value="decreaseItemId"/>
<action itemid="9827" event="function" value="increaseItemId"/>
<action itemid="9828" event="function" value="decreaseItemId"/>
<action itemid="9973" event="function" value="increaseItemId"/>
<action itemid="9974" event="function" value="decreaseItemId"/>
<action itemid="10044" event="function" value="increaseItemId"/>
<action itemid="10045" event="function" value="decreaseItemId"/>
<!-- Spellbooks -->
<action itemid="2175" event="script" value="other/spellbook.lua"/>
<action itemid="6120" event="script" value="other/spellbook.lua"/>
<action fromid="8900" toid="8904" event="script" value="other/spellbook.lua"/>
<action itemid="8918" event="script" value="other/spellbook.lua"/>
<!-- Change gold -->
<action itemid="2148" event="script" value="other/changegold.lua"/>
<action itemid="2152" event="script" value="other/changegold.lua"/>
<action itemid="2160" event="script" value="other/changegold.lua"/>
<!-- Construction kits -->
<action fromid="3901" toid="3938" event="script" value="other/constructionkits.lua"/>
<action fromid="5086" toid="5088" event="script" value="other/constructionkits.lua"/>
<action fromid="6114" toid="6115" event="script" value="other/constructionkits.lua"/>
<action fromid="6372" toid="6373" event="script" value="other/constructionkits.lua"/>
<action fromid="7960" toid="7962" event="script" value="other/constructionkits.lua"/>
<action fromid="8692" toid="8693" event="script" value="other/constructionkits.lua"/>
<action itemid="7503" event="script" value="other/constructionkits.lua"/>
<action itemid="7700" event="script" value="other/constructionkits.lua"/>
<!-- Bed construction kits -->
<action fromid="7904" toid="7907" event="script" value="other/furniturebeds.lua"/>
<!-- Music, instruments -->
<action fromid="2070" toid="2085" event="script" value="other/music.lua"/>
<action itemid="2095" event="script" value="other/music.lua"/>
<action itemid="2332" event="script" value="other/music.lua"/>
<action itemid="2364" event="script" value="other/music.lua"/>
<action fromid="2367" toid="2374" event="script" value="other/music.lua"/>
<action fromid="3951" toid="3953" event="script" value="other/music.lua"/>
<action itemid="3957" event="script" value="other/music.lua"/>
<action itemid="5786" event="script" value="other/music.lua"/>
<action itemid="6572" event="script" value="other/music.lua"/>
<!-- Teleport (stairs, ladders) -->
<action itemid="430" event="script" value="other/teleport.lua"/>
<action itemid="1369" event="script" value="other/teleport.lua"/>
<action itemid="1386" event="script" value="other/teleport.lua"/>
<action itemid="3678" event="script" value="other/teleport.lua"/>
<action itemid="5543" event="script" value="other/teleport.lua"/>
<action itemid="8580" event="script" value="other/teleport.lua"/>
<action itemid="8599" event="script" value="other/teleport.lua"/>
<action itemid="10035" event="script" value="other/teleport.lua"/>
<!-- Destroy -->
<action id="2321;2376-2388;2390-2398;2400-2404;2406-2409;2411-2417;2419;2421-2441;2443-2454;3961-3964;3966;4846;6101;6528;6553;7379-7392;7402-7437;7449;7451-7456;7744-7758;7763-7777;7854-7883;7958;8601-8602;8924-8932;10293" event="script" value="other/destroy.lua"/>
<!-- Bread Creating -->
<action itemid="2692" event="script" value="other/createbread.lua"/>
<action itemid="2694" event="script" value="other/createbread.lua"/>
<!-- Windows -->
<action fromid="5303" toid="5305" event="script" value="other/windows.lua"/>
<action fromid="6436" toid="6473" event="script" value="other/windows.lua"/>
<action fromid="6788" toid="6791" event="script" value="other/windows.lua"/>
<action fromid="7025" toid="7032" event="script" value="other/windows.lua"/>
<action fromid="10264" toid="10267" event="script" value="other/windows.lua"/>
<action fromid="10488" toid="10491" event="script" value="other/windows.lua"/>
<!-- Doors -->
<action fromid="1209" toid="1214" event="script" value="other/doors.lua"/>
<action fromid="1219" toid="1262" event="script" value="other/doors.lua"/>
<action fromid="1539" toid="1542" event="script" value="other/doors.lua"/>
<action fromid="2086" toid="2092" event="script" value="other/doors.lua"/>
<action fromid="3535" toid="3552" event="script" value="other/doors.lua"/>
<action fromid="4913" toid="4918" event="script" value="other/doors.lua"/>
<action fromid="5082" toid="5085" event="script" value="other/doors.lua"/>
<action fromid="5098" toid="5145" event="script" value="other/doors.lua"/>
<action fromid="5278" toid="5295" event="script" value="other/doors.lua"/>
<action fromid="5515" toid="5518" event="script" value="other/doors.lua"/>
<action fromid="5732" toid="5737" event="script" value="other/doors.lua"/>
<action fromid="5745" toid="5749" event="script" value="other/doors.lua"/>
<action fromid="6192" toid="6209" event="script" value="other/doors.lua"/>
<action fromid="6249" toid="6266" event="script" value="other/doors.lua"/>
<action fromid="6795" toid="6802" event="script" value="other/doors.lua"/>
<action fromid="6891" toid="6908" event="script" value="other/doors.lua"/>
<action fromid="7033" toid="7050" event="script" value="other/doors.lua"/>
<action fromid="7054" toid="7057" event="script" value="other/doors.lua"/>
<action fromid="8541" toid="8558" event="script" value="other/doors.lua"/>
<action fromid="9165" toid="9184" event="script" value="other/doors.lua"/>
<action fromid="9267" toid="9284" event="script" value="other/doors.lua"/>
<action itemid="10032" event="script" value="other/doors.lua"/>
<action itemid="10091" event="script" value="other/doors.lua"/>
<action fromid="10268" toid="10285" event="script" value="other/doors.lua"/>
<action fromid="10468" toid="10486" event="script" value="other/doors.lua"/>
<action fromid="10774" toid="10776" event="script" value="other/doors.lua"/>
<action fromid="10779" toid="10785" event="script" value="other/doors.lua"/>
<action fromid="10788" toid="10791" event="script" value="other/doors.lua"/>
<!-- Watch -->
<action itemid="2036" event="script" value="other/watch.lua"/>
<action fromid="1728" toid="1731" event="script" value="other/watch.lua"/>
<action itemid="1877" event="script" value="other/watch.lua"/>
<action fromid="6091" toid="6092" event="script" value="other/watch.lua"/>
<action itemid="8187" event="script" value="other/watch.lua"/>
<!-- Decay To -->
<action fromid="2041" toid="2042" event="script" value="other/decayto.lua"/>
<action fromid="2044" toid="2045" event="script" value="other/decayto.lua"/>
<action fromid="2047" toid="2048" event="script" value="other/decayto.lua"/>
<action fromid="2050" toid="2055" event="script" value="other/decayto.lua"/>
<action fromid="5812" toid="5813" event="script" value="other/decayto.lua"/>
<action itemid="7183" event="script" value="other/decayto.lua"/>
<action itemid="9006" event="script" value="other/decayto.lua"/>
<action fromid="9976" toid="9979" event="script" value="other/decayto.lua"/>
<!-- Other -->
<action itemid="2114" event="script" value="other/piggybank.lua"/>
<action fromid="6570" toid="6571" event="script" value="other/surprisebag.lua"/>
<action fromid="5792" toid="5797" event="script" value="other/dice.lua"/>
<action itemid="6576" event="script" value="other/fireworksrocket.lua"/>
<action itemid="6578" event="script" value="other/partyhat.lua"/>
<action itemid="2785" event="script" value="other/blueberrybush.lua"/>
<action itemid="2579" event="script" value="other/trap.lua"/>
<action itemid="5791" event="script" value="other/stuffeddragon.lua"/>
<action itemid="6566" event="script" value="other/stuffeddragon.lua"/>
</actions>
local DISTILLERY = {5513, 5514, 5469, 5470}
local ITEM_RUM_FLASK = 5553
local ITEM_POOL = 2016
local TYPE_EMPTY = 0
local TYPE_WATER = 1
local TYPE_BLOOD = 2
local TYPE_BEER = 3
local TYPE_SLIME = 4
local TYPE_MANA_FLUID = 7
local TYPE_LIFE_FLUID = 10
local TYPE_OIL = 11
local TYPE_WINE = 15
local TYPE_MUD = 19
local TYPE_LAVA = 26
local TYPE_RUM = 27
local TYPE_SWAMP = 28
local oilLamps = {[2046] = 2044}
local casks = {[1771] = TYPE_WATER, [1772] = TYPE_BEER, [1773] = TYPE_WINE}
local alcoholDrinks = {TYPE_BEER, TYPE_WINE, TYPE_RUM}
local poisonDrinks = {TYPE_SLIME, TYPE_SWAMP}
local drunk = createConditionObject(CONDITION_DRUNK)
setConditionParam(drunk, CONDITION_PARAM_TICKS, 60000)
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_DELAYED, true) -- Condition will delay the first damage from when it's added
setConditionParam(poison, CONDITION_PARAM_MINVALUE, -50) -- Minimum damage the condition can do at total
setConditionParam(poison, CONDITION_PARAM_MAXVALUE, -120) -- Maximum damage
setConditionParam(poison, CONDITION_PARAM_STARTVALUE, -5) -- The damage the condition will do on the first hit
setConditionParam(poison, CONDITION_PARAM_TICKINTERVAL, 4000) -- Delay between damages
setConditionParam(poison, CONDITION_PARAM_FORCEUPDATE, true) -- Re-update condition when adding it(ie. min/max value)
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(itemEx.uid == cid) then
if(item.type == TYPE_EMPTY) then
doPlayerSendCancel(cid, "It is empty.")
return true
end
if(item.type == TYPE_MANA_FLUID) then
if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return true
end
if(not doPlayerAddMana(cid, math.random(80, 160))) then
return false
end
doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
doAddCondition(cid, exhaust)
elseif(item.type == TYPE_LIFE_FLUID) then
if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return true
end
if(not doCreatureAddHealth(cid, math.random(40, 75))) then
return false
end
doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
doAddCondition(cid, exhaust)
elseif(isInArray(alcoholDrinks, item.type)) then
if(not doTargetCombatCondition(0, cid, drunk, CONST_ME_NONE)) then
return false
end
doCreatureSay(cid, "Aaah...", TALKTYPE_ORANGE_1)
elseif(isInArray(poisonDrinks, item.type)) then
if(not doTargetCombatCondition(0, cid, poison, CONST_ME_NONE)) then
return false
end
doCreatureSay(cid, "Urgh!", TALKTYPE_ORANGE_1)
else
doCreatureSay(cid, "Gulp.", TALKTYPE_ORANGE_1)
end
doChangeTypeItem(item.uid, TYPE_EMPTY)
return true
end
if(not isCreature(itemEx.uid)) then
if(item.type == TYPE_EMPTY) then
if(item.itemid == ITEM_RUM_FLASK and isInArray(DISTILLERY, itemEx.itemid)) then
if(itemEx.actionid == 100) then
doItemEraseAttribute(itemEx.uid, "description")
doItemEraseAttribute(itemEx.uid, "aid")
doChangeTypeItem(item.uid, TYPE_RUM)
else
doPlayerSendCancel(cid, "You have to process the bunch into the distillery to get rum.")
end
return true
end
if(isItemFluidContainer(itemEx.itemid) and itemEx.type ~= TYPE_EMPTY) then
doChangeTypeItem(item.uid, itemEx.type)
doChangeTypeItem(itemEx.uid, TYPE_EMPTY)
return true
end
if(casks[itemEx.itemid] ~= nil) then
doChangeTypeItem(item.uid, casks[itemEx.itemid])
return true
end
local fluidEx = getFluidSourceType(itemEx.itemid)
if(fluidEx ~= false) then
doChangeTypeItem(item.uid, fluidEx)
return true
end
doPlayerSendCancel(cid, "It is empty.")
return true
end
if(item.type == TYPE_OIL and oilLamps[itemEx.itemid] ~= nil) then
doTransformItem(itemEx.uid, oilLamps[itemEx.itemid])
doChangeTypeItem(item.uid, TYPE_NONE)
return true
end
if(hasProperty(itemEx.uid, CONST_PROP_BLOCKSOLID)) then
return false
end
end
doDecayItem(doCreateItem(ITEM_POOL, item.type, toPosition))
doChangeTypeItem(item.uid, TYPE_EMPTY)
return true
end
this ?local config = {
removeOnUse = "no",
usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
splashable = "no",
realAnimation = "no", -- make text effect visible only for players in range 1x1
healthMultiplier = 1.0,
manaMultiplier = 1.0
}
config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)
local POTIONS = {
[8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion
[7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion
[7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
[7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
[8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
[7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion
[7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
[7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion
[8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
function onUse(cid, item, fromPosition, itemEx, toPosition)
local potion = POTIONS[item.itemid]
if(not potion) then
return false
end
if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
if(not config.splashable) then
return false
end
if(toPosition.x == CONTAINER_POSITION) then
toPosition = getThingPos(item.uid)
end
doDecayItem(doCreateItem(2016, potion.splash, toPosition))
doTransformItem(item.uid, potion.empty)
return true
end
if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return true
end
if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
then
doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
return true
end
local health = potion.health
if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
return false
end
local mana = potion.mana
if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
return false
end
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
if(not realAnimation) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
else
for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
if(isPlayer(tid)) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
end
end
end
doAddCondition(cid, exhaust)
if(not potion.empty or config.removeOnUse) then
doRemoveItem(item.uid)
return true
end
doTransformItem(item.uid, potion.empty)
return true
end
ocal config = {
removeOnUse = "no",
usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
splashable = "no",
realAnimation = "no", -- make text effect visible only for players in range 1x1
healthMultiplier = 1.0,
manaMultiplier = 1.0
}
config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)
local POTIONS = {
[8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion
[7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion
[7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
[7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
[8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
[7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion
[7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
[7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion
[8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
function onUse(cid, item, fromPosition, itemEx, toPosition)
local potion = POTIONS[item.itemid]
if(not potion) then
return false
end
if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
if(not config.splashable) then
return false
end
if(toPosition.x == CONTAINER_POSITION) then
toPosition = getThingPos(item.uid)
end
doDecayItem(doCreateItem(2016, potion.splash, toPosition))
return true
end
if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return true
end
if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
then
doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
return true
end
local health = potion.health
if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
return false
end
local mana = potion.mana
if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
return false
end
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
if(not realAnimation) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
else
for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
if(isPlayer(tid)) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
end
end
end
doAddCondition(cid, exhaust)
if(not potion.empty or config.removeOnUse) then
return true
end
return true
end
local config = {
removeOnUse = "no",
usableOnTarget = "no", -- can be used on target? (fe. healing friend)
splashable = "no",
realAnimation = "no", -- make text effect visible only for players in range 1x1
healthMultiplier = 1.0,
manaMultiplier = 1.0
}
config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)
local POTIONS = {
[8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion
[7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion
[7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
[7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
[8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
[7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion
[7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
[7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion
[8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
function onUse(cid, item, fromPosition, itemEx, toPosition)
local potion = POTIONS[item.itemid]
if(not potion) then
return false
end
if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
if(not config.splashable) then
return false
end
if(toPosition.x == CONTAINER_POSITION) then
toPosition = getThingPos(item.uid)
end
doDecayItem(doCreateItem(2016, potion.splash, toPosition))
doTransformItem(item.uid, potion.empty)
return true
end
if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return true
end
if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
then
doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
return true
end
local health = potion.health
if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
return false
end
local mana = potion.mana
if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
return false
end
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
if(not realAnimation) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
else
for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
if(isPlayer(tid)) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
end
end
end
doAddCondition(cid, exhaust)
if(not potion.empty or config.removeOnUse) then
doRemoveItem(item.uid)
return true
end
doTransformItem(item.uid, potion.empty)
return true
end