Lbtg
Intermediate OT User
- Joined
- Nov 22, 2008
- Messages
- 2,311
- Reaction score
- 133
Hello all, i want to ask for remake(upgrade) of the script lil bit
So i have this potions.lua, the script i use for potions,
so i want to make that if player x has storage ID 1111 has 10% chance to double heal( double heal means that on using potion player has chance, to drink 2 potions in same, time, ) , if player drink up 2 potions , show it with 2x 'aaaaahh' + effect id 199 + send message to player in blue text ''you doubled healed''
.
and if player has storage id 2222, has + extra 5% chance, to triple heal ( same idea, chance to drink 3 potions in same time).
So if player has none of those storages, potions using is normal, but if player has 1111 storage, he got 10% chance to double heal,
and if player has both storage id 1111 and 2222, player has 10% to double heal , + 5% to triple heal.
potions.lua
So i have this potions.lua, the script i use for potions,
so i want to make that if player x has storage ID 1111 has 10% chance to double heal( double heal means that on using potion player has chance, to drink 2 potions in same, time, ) , if player drink up 2 potions , show it with 2x 'aaaaahh' + effect id 199 + send message to player in blue text ''you doubled healed''
.
and if player has storage id 2222, has + extra 5% chance, to triple heal ( same idea, chance to drink 3 potions in same time).
So if player has none of those storages, potions using is normal, but if player has 1111 storage, he got 10% chance to double heal,
and if player has both storage id 1111 and 2222, player has 10% to double heal , + 5% to triple heal.
potions.lua
Lua:
local berserk = Condition(CONDITION_ATTRIBUTES)
berserk:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
berserk:setParameter(CONDITION_PARAM_SKILL_MELEE, 5)
berserk:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10)
berserk:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
local mastermind = Condition(CONDITION_ATTRIBUTES)
mastermind:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
mastermind:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 3)
mastermind:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
local bullseye = Condition(CONDITION_ATTRIBUTES)
bullseye:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
bullseye:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 5)
bullseye:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10)
bullseye:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
local potions = {
[6558] = { -- concentrated demonic blood
transform = {7588, 7589},
effect = CONST_ME_DRAWBLOOD
},
[7439] = { -- berserk potion
condition = berserk,
vocations = {4, 8},
effect = CONST_ME_MAGIC_RED,
description = "Only knights may drink this potion.",
text = "You feel stronger."
},
[7440] = { -- mastermind potion
condition = mastermind,
vocations = {1, 2, 5, 6},
effect = CONST_ME_MAGIC_BLUE,
description = "Only sorcerers and druids may drink this potion.",
text = "You feel smarter."
},
[7443] = { -- bullseye potion
condition = bullseye,
vocations = {3, 7},
effect = CONST_ME_MAGIC_GREEN,
description = "Only paladins may drink this potion.",
text = "You feel more accurate."
},
[7588] = { -- strong health potion
health = {1000, 1400},
vocations = {3, 4, 7, 8},
flask = 0,
description = "Only knights and paladins of level 50 or above may drink this fluid."
},
[7589] = { -- strong mana potion
mana = {460, 740},
vocations = {1, 2, 3, 5, 6, 7},
flask = 0,
description = "Only sorcerers, druids and paladins of level 50 or above may drink this fluid."
},
[7590] = { -- great mana potion
mana = {600, 1000},
vocations = {1, 2, 5, 6},
flask = 0,
description = "Only druids and sorcerers of level 80 or above may drink this fluid."
},
[7591] = { -- great health potion
health = {1700, 2300},
vocations = {4, 8},
flask = 0,
description = "Only knights of level 80 or above may drink this fluid."
},
[7618] = { -- health potion
health = {500, 700},
flask = 0
},
[7620] = { -- mana potion
mana = {300, 500},
flask = 0
},
[8472] = { -- great spirit potion
health = {1000, 1400},
mana = {400, 800},
vocations = {3, 7},
flask = 0,
description = "Only paladins of level 80 or above may drink this fluid."
},
[8473] = { -- ultimate health potion
health = {2600, 3400},
vocations = {4, 8},
flask = 0,
description = "Only knights of level 130 or above may drink this fluid."
},
[8474] = { -- antidote potion
antidote = true,
flask = 0,
},
[8704] = { -- small health potion
health = {120, 180},
flask = 0,
},
[26029] = { -- ultimate mana potion
mana = {1700, 2300},
vocations = {1, 2, 5, 6},
flask = 0,
description = "Only druids and sorcerers of level 130 or above may drink this fluid."
},
[26030] = { -- supreme spirit potion
health = {1680, 2320},
mana = {800, 1400},
vocations = {3, 7},
flask = 0,
description = "Only paladins of level 130 or above may drink this fluid."
},
[26031] = { -- ultimate health potion
health = {3500, 4500},
vocations = {4, 8},
flask = 0,
description = "Only knights of level 200 or above may drink this fluid."
}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if type(target) == "userdata" and not target:isPlayer() then
return false
end
local potion = potions[item:getId()]
if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getId()) then
player:say(potion.description, TALKTYPE_MONSTER_SAY)
return true
end
if potion.condition then
player:addCondition(potion.condition)
player:say(potion.text, TALKTYPE_MONSTER_SAY)
player:getPosition():sendMagicEffect(potion.effect)
elseif potion.transform then
local reward = potion.transform[math.random(#potion.transform)]
if fromPosition.x == CONTAINER_POSITION then
local targetContainer = Container(item:getParent().uid)
targetContainer:addItem(reward, 1)
else
Game.createItem(reward, 1, fromPosition)
end
item:getPosition():sendMagicEffect(potion.effect)
item:remove(1)
return true
else
if potion.health then
doTargetCombat(0, target, COMBAT_HEALING, potion.health[1], potion.health[2])
end
if potion.mana then
doTargetCombat(0, target, COMBAT_MANADRAIN, potion.mana[1], potion.mana[2])
end
if potion.antidote then
target:removeCondition(CONDITION_POISON)
end
player:addAchievementProgress("Potion Addict", 100000)
player:addItem(potion.flask)
target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
target:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
end
if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
return true
end
item:remove(1)
return true
end