• 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 Damage dealt by spells depending on storage value

MeNi

*^#%$%
Joined
Jul 23, 2008
Messages
183
Reaction score
12
Hi,

I need to make damage dealt by spells depending on player storage, so its normal power of spell when storage is 1, when its bigger then
damage = base_damage*getPlayerStorage~

Anyone know how to make that works?
 
LUA:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

function onCastSpell(cid, var)
	if getCreatureStorage(cid, 16261) == 1 then
		return doCombat(cid, combat2, var)
	else
		return doCombat(cid, combat, var)
	end
end

Here is just an example that I quickly made.

Here you see, I have created 2 different spells in 1 spell, depending on storage value.
In this script, it shows that if you have the storage value, you do the flame version of the spell.
If you don't have the storage value, you do the energy version.

Now, what you wanted was a stronger version, well that's easy, just copy what the original spell had and paste it in the same script.
Then change the names from combat to anything you want. Then just change the formulas. I'm not a master of spells, so I don't know how to change around the formula to my likings.

Here is an example of this:

LUA:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.9, 2.7)

function onCastSpell(cid, var)
	if getCreatureStorage(cid, 16260) == 1 then
		return doCombat(cid, combat2, var)
	else
		return doCombat(cid, combat, var)
	end
end

As you can see in the 2nd spell (combat2), the formula is raised, therefore it is stronger.
 
Back
Top