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

Spell New Damage Formulas

finjas

New Member
Joined
Jan 24, 2008
Messages
20
Reaction score
0
[Release] New Damage Formulas (all spells included)

Well i`ve been doing some testing and now ill release what i have found.
the new formula for any spell is the followin:

Level/5 + MagLevel*X + Y

where X and Y varies according to every different spell.

For example:

The New SD damage.

min = -maglevel*4 -level/5 -60
max = -maglevel*7 -level/5 -60

The New UH "damage".

min = level/5 + maglevel*5
max = level/5 + maglevel*10

this Values are Still not 100% accurate but i guess people could send some feedback to get closer to 100%.

Edit: i have attached the full spell folder with all spells edited
 

Attachments

Last edited:
ive been working on them but i found that a EK 200 hit a 300 on PVP so i have to re-arrange them.
 
-.- 1 more credits stealer omg..
 
Last edited by a moderator:
-.- 1 more credits stealer omg..

the one in ****** is

min = (level * 2 + maglevel * 5)/7 * 4+10
max = min*4/3

mine
min = -maglevel*4 -level/5 -60
max = -maglevel*7 -level/5 -60

plus i've made formulas for almost every spell not just sd.
 
done some testings and i think the E-gran would be like this.

min=(Skill+WeaponAttack*2)*1.8+Level/5
max=(Skill+WeaponAttack*2)*2.7+Level/5

need some testings to prove its accuracy

Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

function getSpellDamage(cid, weaponSkill, weaponAttack, attackStrength)
    local attack = weaponAttack
    local skill = math.max(getPlayerSkill(cid, 1),getPlayerSkill(cid, 2),getPlayerSkill(cid, 3))
    local level = getPlayerLevel(cid)
    local min = -(skill+attack*2)*1.4-level/5
    local max = -(skill+attack*2)*2.8-level/5

    return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")



local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

just finished it :)

im also addind the rest of skillbased spells
 

Attachments

Last edited:
i think pplmight not trusts the zip files so here are the XMLs of the spells ive edited in a .rar also showing some of the codes.

sudden death.xml
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)

function onGetFormulaValues(cid, level, maglevel)
	min = -(maglevel*4) -level/5 -60
	max = -(maglevel*7) -level/5 -60
	
	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

ultimate heling rune.xml
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
	min = level/5 + maglevel*5
	max = level/5 + maglevel*10

	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

ultimate healing.xml
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
	min = level/5 + maglevel*5
	max = level/5 + maglevel*10

	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

hell core.xml
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)

function onGetFormulaValues(cid, level, maglevel)
	min = -maglevel*8.8  -level/5
	max = -maglevel*13.2 -level/5
	
	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


local area = createCombatArea(AREA_CROSS5X5)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

rage of the skies.xml
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)

function onGetFormulaValues(cid, level, maglevel)
	min = -(maglevel*7) -level/5
	max = -(maglevel*9) -level/5
	
	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

energy strike.xml
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)

function onGetFormulaValues(cid, level, maglevel)
	min = -level/5 - maglevel*1.4-10
	max = -level/5 - maglevel*2.1-20
	
	return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


local distanceCombat = createCombatObject()
setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function onGetFormulaValues(cid, level, maglevel)
	min = -level/5 - maglevel*1.4-10
	max = -level/5 - maglevel*2.1-20
	
	return min, max
end
setCombatCallback(distanceCombat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


function onCastSpell(cid, var)
	if(variantToNumber(var) ~= 0) then
		return doCombat(cid, distanceCombat, var)
	end
	return doCombat(cid, combat, var)
end
 

Attachments

Last edited:
A pally using exura vita with your script at level 164 heals 230 hp is that correct acording to real tibia?

//Massen
 
A pally of that lvl uses exura san if they want to heal more hp.
Plus they can use spirit potions.

and as i said it is not 100% accurate but its very precise
 
Yea, but a 164 pally should hit 130 with sd? sorry i don't play real tibia just wanna know if its actually correct?

//Massen
 
with the new update they do
with the new update paladins arent supposed to use sd :(
 
is that the new rl tibia rune system?

I really dont get how to calculate ur dmg from ur character with that system xD its wiered
 
finjas I have question to you, could u make the SD formula also on lvl damage? not only mlvl. I need that pall with 200lvl hits 400 with sd and Sorcerer with 200lvl and 90mlvl hits like 600-800 :/ im newbie in scripts
 
i found too spells but not this calcule

I think are (lvl *0.15 + ml*3) *min or max
and for healing (lvl*0.25 + ml*3)* min or max

and perfect xD
 
Back
Top