TFS 1.5 - 8.6
Hello can't use fluids on floor or in pots, in spite i saw this thread TFS 1.X+ - Lifefluid and POT nekiro version 7.72 1.5 (https://otland.net/threads/lifefluid-and-pot-nekiro-version-7-72-1-5.280605/#post-2729394) and tried to adjust things.
can somebody help me please?
this is my fluids.lua
this is my potions.lua
thanks
Hello can't use fluids on floor or in pots, in spite i saw this thread TFS 1.X+ - Lifefluid and POT nekiro version 7.72 1.5 (https://otland.net/threads/lifefluid-and-pot-nekiro-version-7-72-1-5.280605/#post-2729394) and tried to adjust things.
can somebody help me please?
this is my fluids.lua
LUA:
local drunk = Condition(CONDITION_DRUNK)
drunk:setParameter(CONDITION_PARAM_TICKS, 60000)
local poison = Condition(CONDITION_POISON)
poison:setParameter(CONDITION_PARAM_DELAYED, true)
poison:setParameter(CONDITION_PARAM_MINVALUE, -50)
poison:setParameter(CONDITION_PARAM_MAXVALUE, -120)
poison:setParameter(CONDITION_PARAM_STARTVALUE, -5)
poison:setParameter(CONDITION_PARAM_TICKINTERVAL, 4000)
poison:setParameter(CONDITION_PARAM_FORCEUPDATE, true)
local fluidMessage = {
[FLUID_BEER] = "Aah...",
[FLUID_SLIME] = "Urgh!",
[FLUID_LEMONADE] = "Mmmh.",
[FLUID_MANA] = "Aaaah...",
[FLUID_LIFE] = "Aaaah...",
[FLUID_OIL] = "Urgh!",
[FLUID_URINE] = "Urgh!",
[FLUID_WINE] = "Aah...",
[FLUID_MUD] = "Urgh!",
[FLUID_RUM] = "Aah...",
[FLUID_MEAD] = "Aaaah..."
}
local function graveStoneTeleport(cid, fromPosition, toPosition)
local player = Player(cid)
if not player then
return true
end
player:teleportTo(toPosition)
player:say("Muahahahaha..", TALKTYPE_MONSTER_SAY, false, player)
fromPosition:sendMagicEffect(CONST_ME_DRAWBLOOD)
toPosition:sendMagicEffect(CONST_ME_MORTAREA)
end
local distillery = {[5513] = 5469, [5514] = 5470}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local targetItemType = ItemType(target.itemid)
if targetItemType and targetItemType:isFluidContainer() then
if target.type == FLUID_NONE and item.type ~= FLUID_NONE then
target:transform(target:getId(), item.type)
item:transform(item:getId(), FLUID_NONE)
return true
elseif target.type ~= FLUID_NONE and item.type == FLUID_NONE then
item:transform(item:getId(), target.type)
target:transform(target:getId(), FLUID_NONE)
return true
end
end
if target.itemid == 1 then
if item.type == FLUID_NONE then
player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
elseif target.uid == player.uid then
if table.contains({FLUID_BEER, FLUID_WINE, FLUID_MEAD}, item.type) then
player:addCondition(drunk)
elseif item.type == FLUID_SLIME then
player:addCondition(poison)
elseif item.type == FLUID_MANA then
player:addMana(math.random(50, 150))
fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
elseif item.type == FLUID_LIFE then
player:addHealth(60)
fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
end
player:say(fluidMessage[item.type] or "Gulp.", TALKTYPE_MONSTER_SAY)
item:transform(item:getId(), FLUID_NONE)
else
Game.createItem(2016, item.type, toPosition):decay()
item:transform(item:getId(), FLUID_NONE)
end
else
local fluidSource = targetItemType and targetItemType:getFluidSource() or FLUID_NONE
if fluidSource ~= FLUID_NONE then
item:transform(item:getId(), fluidSource)
elseif table.contains(distillery, target.itemid) then
local tmp = distillery[target.itemid]
if tmp then
item:transform(item:getId(), FLUID_NONE)
else
player:sendCancelMessage("You have to process the bunch into the distillery to get rum.")
end
elseif item.type == FLUID_NONE then
player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
else
if item.type == FLUID_BLOOD and target.actionid == 2023 then
toPosition.y = toPosition.y + 1
local creatures, destination = Tile(toPosition):getCreatures(), Position(32791, 32332, 10)
if #creatures == 0 then
graveStoneTeleport(player.uid, fromPosition, destination)
else
local creature
for i = 1, #creatures do
creature = creatures[i]
if creature and creature:isPlayer() then
graveStoneTeleport(creature.uid, toPosition, destination)
end
end
end
end
if toPosition.x == CONTAINER_POSITION then
toPosition = player:getPosition()
end
Game.createItem(2016, item.type, toPosition):decay()
item:transform(item:getId(), FLUID_NONE)
end
end
return true
end
Code:
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 manaShield = Condition(CONDITION_MANASHIELD_BREAKABLE)
--manaShield:setParameter(CONDITION_PARAM_TICKS, 3 * 60 * 1000)
--local function magicShieldCapacity(player)
-- manaShield:setParameter(CONDITION_PARAM_MANASHIELD_BREAKABLE, math.min(player:getMaxMana(), 300 + 7.6 * player:getLevel() + 7 * player:getMagicLevel()))
--end
local potions = {
[6558] = { -- flask of demonic blood
transform = {7588, 7589},
effect = CONST_ME_DRAWBLOOD
},
[7439] = { -- berserk potion
condition = berserk,
vocations = {
VOCATION_KNIGHT,
VOCATION_ELITE_KNIGHT
},
effect = CONST_ME_MAGIC_RED,
description = "Only knights may drink this potion.",
text = "You feel stronger."
},
[7440] = { -- mastermind potion
condition = mastermind,
vocations = {
VOCATION_SORCERER,
VOCATION_DRUID,
VOCATION_MASTER_SORCERER,
VOCATION_ELDER_DRUID
},
effect = CONST_ME_MAGIC_BLUE,
description = "Only sorcerers and druids may drink this potion.",
text = "You feel smarter."
},
[7443] = { -- bullseye potion
condition = bullseye,
vocations = {
VOCATION_PALADIN,
VOCATION_ROYAL_PALADIN
},
effect = CONST_ME_MAGIC_GREEN,
description = "Only paladins may drink this potion.",
text = "You feel more accurate."
},
--[38219] = { -- magic shield potion
-- condition = manaShield,
-- vocations = {
-- VOCATION_SORCERER,
--- VOCATION_DRUID,
-- VOCATION_MASTER_SORCERER,
-- VOCATION_ELDER_DRUID
--},
--level = 14,
--effect = CONST_ME_ENERGYAREA,
--description = "Only sorcerers and druids of level 14 or above may drink this potion.",
--capacity = magicShieldCapacity
--},
[7588] = { -- strong health potion
health = {250, 350},
vocations = {
VOCATION_PALADIN,
VOCATION_KNIGHT,
VOCATION_ROYAL_PALADIN,
VOCATION_ELITE_KNIGHT
},
level = 50,
flask = 7634,
description = "Only knights and paladins of level 50 or above may drink this fluid."
},
[7589] = { -- strong mana potion
mana = {115, 185},
level = 50,
flask = 7634,
description = "Only players of level 50 or above may drink this fluid."
},
[7590] = { -- great mana potion
mana = {150, 250},
vocations = {
VOCATION_SORCERER,
VOCATION_DRUID,
VOCATION_PALADIN,
VOCATION_MASTER_SORCERER,
VOCATION_ELDER_DRUID,
VOCATION_ROYAL_PALADIN
},
level = 80,
flask = 7635,
description = "Only sorcerers, druids and paladins of level 80 or above may drink this fluid."
},
[7591] = { -- great health potion
health = {425, 575},
vocations = {
VOCATION_KNIGHT,
VOCATION_ELITE_KNIGHT
},
level = 80,
flask = 7635,
description = "Only knights of level 80 or above may drink this fluid."
},
[7618] = { -- health potion
health = {125, 175},
flask = 7636
},
[7620] = { -- mana potion
mana = {75, 125},
flask = 7636
},
[8472] = { -- great spirit potion
health = {250, 350},
mana = {100, 200},
vocations = {
VOCATION_PALADIN,
VOCATION_ROYAL_PALADIN
},
level = 80,
flask = 7635,
description = "Only paladins of level 80 or above may drink this fluid."
},
[8473] = { -- ultimate health potion
health = {650, 850},
vocations = {
VOCATION_KNIGHT,
VOCATION_ELITE_KNIGHT
},
level = 130,
flask = 7635,
description = "Only knights of level 130 or above may drink this fluid."
},
[8474] = { -- antidote potion
antidote = true,
flask = 7636
},
[8704] = { -- small health potion
health = {60, 90},
flask = 7636
},
[26029] = { -- ultimate mana potion
mana = {425, 575},
vocations = {
VOCATION_SORCERER,
VOCATION_DRUID,
VOCATION_MASTER_SORCERER,
VOCATION_ELDER_DRUID
},
level = 130,
flask = 7635,
description = "Only druids and sorcerers of level 130 or above may drink this fluid."
},
[26030] = { -- ultimate spirit potion
health = {410, 580},
mana = {150, 250},
vocations = {
VOCATION_PALADIN,
VOCATION_ROYAL_PALADIN
},
level = 130,
flask = 7635,
description = "Only paladins of level 130 or above may drink this fluid."
},
[26031] = { -- supreme health potion
health = {875, 1125},
vocations = {
VOCATION_KNIGHT,
VOCATION_ELITE_KNIGHT
},
level = 200,
flask = 7635,
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 not player:getGroup():getAccess() and (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_POTION)
return true
end
if potion.condition then
if potion.capacity then
potion.capacity(player)
end
player:addCondition(potion.condition)
player:say(potion.text, TALKTYPE_POTION)
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(player, target, COMBAT_HEALING, potion.health[1], potion.health[2])
end
if potion.mana then
doTargetCombat(player, 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_POTION)
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
thanks