local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
local combat2 = Combat() -- every 3 hit
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR)
combat2:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
function onGetFormulaValues(player, skill, attack, factor)
local distanceSkill = player:getEffectiveSkillLevel(SKILL_DISTANCE)
local min = (player:getLevel() / 5) +...
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
local combat2 = Combat() -- every 3 hit
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR)
combat2:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
function onGetFormulaValues(player, skill, attack, factor)
local distanceSkill = player:getEffectiveSkillLevel(SKILL_DISTANCE)
local min = (player:getLevel() / 5) + distanceSkill * 0.7
local max = (player:getLevel() / 5) + distanceSkill + 5
return -min, -max
end
function onGetFormulaValues2(player, skill, attack, factor) -- every 3 hit
local distanceSkill = player:getEffectiveSkillLevel(SKILL_DISTANCE)
local min = (player:getLevel() / 15) + distanceSkill * 0.7
local max = (player:getLevel() / 15) + distanceSkill + 5
return -min, -max
end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
combat2:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues2")
function onCastSpell(creature, variant)
if creature:getStorageValue(99999) >= 2 then
creature:setStorageValue(99999, 0)
combat2:execute(creature, variant)
return true
end
combat:execute(creature, variant)
creature:setStorageValue(99999, creature:getStorageValue(99999) + 1)
return true
end
Ow, nice thinking, I wasn't close to that line of thinking. It's easy and simple. Work flawless.LUA:local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR) combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true) local combat2 = Combat() -- every 3 hit combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR) combat2:setParameter(COMBAT_PARAM_BLOCKARMOR, true) function onGetFormulaValues(player, skill, attack, factor) local distanceSkill = player:getEffectiveSkillLevel(SKILL_DISTANCE) local min = (player:getLevel() / 5) + distanceSkill * 0.7 local max = (player:getLevel() / 5) + distanceSkill + 5 return -min, -max end function onGetFormulaValues2(player, skill, attack, factor) -- every 3 hit local distanceSkill = player:getEffectiveSkillLevel(SKILL_DISTANCE) local min = (player:getLevel() / 15) + distanceSkill * 0.7 local max = (player:getLevel() / 15) + distanceSkill + 5 return -min, -max end combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") combat2:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues2") function onCastSpell(creature, variant) if creature:getStorageValue(99999) >= 2 then creature:setStorageValue(99999, 0) combat2:execute(creature, variant) return true end combat:execute(creature, variant) creature:setStorageValue(99999, creature:getStorageValue(99999) + 1) return true end
Idk if theres a other way how this could be made xD