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

[Spells] Exori sometimes hit 1, and sometimes hit 300, problem! repp+

shor

New Member
Joined
Jan 2, 2011
Messages
137
Reaction score
0
Location
Poland
Hello, I have a problem on my mystic spirit 0.2.9

Here are examples of my 2 spells

energy beam
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -1.0, 0)

local area = createCombatArea(AREA_BEAM5, AREADIAGONAL_BEAM5)
setCombatArea(combat, area)

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

and berserk
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0.8, -90, 1.0, -50)

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

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

The problem is that energy beam hit for example 150-200 where exori 1-300, how to make exori hit 250-300 or 150-200 for example?
I give repp+
 
maybe because physical can be blocked by equip/skills? So low hits are always a chance on physical.
Maybe try to edit the script so the hits will be at least X but remember if it does min 150 it still can hit lower then 150
example:
Demon it got high armor and defence and 35% physical protection.
 
I mean I can hit 2 hp to player, and with next exori 300 hp (the same player)

When he wears lightning set, I hit with energy beam from 150 to 200, without set 200-250 for example

So there must be any solution how to change physical damage
 
Try This:
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1.1, 50 , 1.0, 90)

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

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end
 
Special for you :D

Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

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

function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end
 
I tested it and hits were correctly, but it only depends on level

I tried with 50 sword and 100 sword - hits were the same ;O
 
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1.0, 0, 1.5, 0)

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

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

Damage will definitely change, your issue is:
Lua:
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0.8, -90, 1.0, -50)
The -90 and the -50. After the damage is declared by the 0.8 and the 1.0, it subtracts 90 and 50 respectively.
 
Back
Top