• 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!

Lua Anyone who can mix two scripts?

luddeax

New Member
Joined
Jun 14, 2009
Messages
115
Reaction score
0
Here's the deal.

I'm building a mana rune script, I've got one working with exhaust but no managain, and one giving mana but no exhaust.

I'll post the two scripts and maybe someone could help me how to mix them so both functions works.

Thanks in advance

(using tfs 0.2.2 so I don't want a new script)

THE SCRIPT WITH WORKING EXHAUST:
Lua:
----------------------------------- 
--Created to make the script easy to manipulate 
--If used without using server potion exhaust (EX: potExhaust = false), it will work regardless of server 
--Remember, true = yes, false = no, in the config 
 
function onUse(cid, item, frompos, item2, topos) 
    --Config 
local level = getPlayerLevel(cid)
local mlevel = getPlayerMagLevel(cid)
local pos = getPlayerPosition(cid)
    local reqml = 3         --Magic Level required to use it 
    local reqlvl = 15       --Character Level required to use it 
    local potExhaust = false    -- causes exhaust like potions (false creates seperate exhaust for mana rune) 
    local mana_minimum = (level * 1) + (mlevel * 2) - 50
    local mana_maximum = (level * 1) + (mlevel * 2)
    local mana_add = math.random(mana_minimum, mana_maximum)
    local ani = 1           --Animation to be sent to player when used (these can be found in your global.lua; search for CONST_ME_) 
    --If you're not using potion exhaust (potExhaust = false) edit the following the way you'd like 
    local storeValue = 50       --The storage value that will be used for exhaust if you have potexhaust to false 
    local exhaustTime = 1       --Exhaust in seconds 
    local infinite = true      --Will it cause rune to lose charges 
    local canUseInPz = true    --If true, mana rune may be used in PZ, otherwise, it will not work. 
 
    local player_say = "Ahhh..."                            --What player says after successfully using the mana rune 
    local error_ml = "You don't have the required magic level to use that rune."    --What the cancel says when ml is too low 
    local error_lvl = "You don't have the required magic level to use that rune."   --What the cancel says when level is too low 
    local error_notPlayer = "You can only use this rune on players."        --What the cancel says when you try to use it on something not a player 
    local error_exhaust = "You are exhausted."                  --What the cancel says when you are exhausted 
    local error_pz = "You may not use this in Protected Zones." --What the cancel says when you are in PZ and canUseInPz is false 
    ------------------------------------------- DO NOT EDIT BELOW THIS LINE!! ------------------------------------------- 
 
    ---------------------------START Check for Errors-------------------------------- 
    --If doesn't allow use in PZ, send poof and cancel message 
    if canUseInPz == false  and getTilePzInfo(getPlayerPosition(cid)) == 1 then 
        doSendMagicEffect(frompos, CONST_ME_POFF) 
        doPlayerSendCancel(cid, error_pz) 
        return 0 
    end 
    --If not high enough level, send poof and cancel message 
    if getPlayerLevel(cid) < reqlvl then 
        doSendMagicEffect(frompos, CONST_ME_POFF) 
        doPlayerSendCancel(cid, error_lvl) 
        return 0 
    end 
 
    --If ml is too low, send poof and cancel message 
    if getPlayerMagLevel(cid) < reqml then 
        doSendMagicEffect(frompos, CONST_ME_POFF) 
        doPlayerSendCancel(cid, error_ml) 
        return 0 
    end 
 
    --If it's not a player, send poof and cancel message 
    if item2.uid < 1 then 
        doSendMagicEffect(frompos, CONST_ME_POFF) 
        doPlayerSendCancel(cid, error_notPlayer) 
        return 0 
    end 
 
    --Check if exhausted 
    if potExhaust == false then --If not using Potion Exhaust 
        if exhaust(cid, storeValue, exhaustTime) == 0 then 
            doSendMagicEffect(frompos, CONST_ME_POFF) 
            doPlayerSendCancel(cid, error_exhaust) 
            return 0 
        end 
    else --If you are using potion exhaust 
        if hasCondition(cid, CONDITION_EXHAUSTED) == 1 then 
            doPlayerSendCancel(cid, error_exhaust) 
            return 0 
        end 
    end 
 
    ---------------------------END Check for Errors-------------------------------- 
 
    doSendMagicEffect(topos, ani) 
    doPlayerAddMana(item2.uid, mana_add) 
    if infinite == false then 
        if item.type > 1 then 
            doChangeTypeItem(item.uid,item.type-1) 
        else 
            doRemoveItem(item.uid,1) 
        end 
    end 
end 
 
--Exhaust System created by Alreth 
--Edited by OsoSangre 
function exhaust(cid, storeValue, exhaustTime) 
    local newExhaust = os.time() 
    local oldExhaust = getPlayerStorageValue(cid, storeValue) 
    if (oldExhaust == nil or oldExhaust < 0) then 
        oldExhaust = 0 
    end 
    if (exhaustTime == nil or exhaustTime < 0) then 
        exhaustTime = 1 
    end 
    diffTime = os.difftime(newExhaust, oldExhaust) 
    if (diffTime >= exhaustTime) then 
        setPlayerStorageValue(cid, storeValue, newExhaust) 
        return 1 
    else 
        return 0 
    end 
end

THE ONE WITH WORKING MANA GAIN:
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

function onUse(cid, var)

local level = getPlayerLevel(cid)
local mlevel = getPlayerMagLevel(cid)
local pos = getPlayerPosition(cid)

-- Mana Formula Settings --
-- You can use "level" and "mlevel" --
local mana_minimum = (level * 1) + (mlevel * 2) - 50
local mana_maximum = (level * 1) + (mlevel * 2)
-- Mana Formula Settings END --
local mana_add = math.random(mana_minimum, mana_maximum)
doSendMagicEffect(pos,28)
doPlayerAddMana(cid, mana_add)
doSendAnimatedText(pos, mana_add, TEXTCOLOR_LIGHTBLUE)
doCreatureSay(cid, "Aaah.. mana.", TALKTYPE_ORANGE_1)
return doCombat(cid, combat, var)
end
 
this is what I did but it didn't work:

Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
 
function onUse(cid, var)
 
local level = getPlayerLevel(cid)
local mlevel = getPlayerMagLevel(cid)
local pos = getPlayerPosition(cid)
local storeValue = 50
local exhaustTime = 1
 
-- Mana Formula Settings --
-- You can use "level" and "mlevel" --
local mana_minimum = (level * 1) + (mlevel * 2) - 50
local mana_maximum = (level * 1) + (mlevel * 2)
-- Mana Formula Settings END --
        if exhaust(cid, storeValue, exhaustTime) == 0 then 
            doSendMagicEffect(frompos, CONST_ME_POFF) 
            doPlayerSendCancel(cid, error_exhaust) 
            return 0 
        else
local mana_add = math.random(mana_minimum, mana_maximum)
doSendMagicEffect(pos,28)
doPlayerAddMana(cid, mana_add)
doSendAnimatedText(pos, mana_add, TEXTCOLOR_LIGHTBLUE)
doCreatureSay(cid, "Aaah.. mana.", TALKTYPE_ORANGE_1)
return doCombat(cid, combat, var)
     end
end
 
Back
Top