• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

mana potion 8.60

<?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>
this ?
 
or this ?
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
 
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
this ?
 
Please use code tags, [.code][/.code] (ignorin dots)

LUA:
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
 
Code:
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
 
Back
Top