peteralto
Member
- Joined
- Nov 1, 2020
- Messages
- 93
- Solutions
- 1
- Reaction score
- 17
I'm trying to use an weapon elemental damage script. However, even setting the minimum and maximum value, the damage obtained is much lower.
In the example is with minimum 100 maximum 130, but it ends up hitting 40-50, using ice element in dragon. I imagine there's something wrong with the formula.
weapons/scripts/
In the example is with minimum 100 maximum 130, but it ends up hitting 40-50, using ice element in dragon. I imagine there's something wrong with the formula.
weapons/scripts/
Lua:
local DamageTypes = {
-- [1] = {DamageType = COMBAT_HOLYDAMAGE, DamageEffect = CONST_ANI_HOLY},
[2] = {DamageType = COMBAT_FIREDAMAGE, DamageEffect = CONST_ANI_FIRE},
[3] = {DamageType = COMBAT_DEATHDAMAGE, DamageEffect = CONST_ANI_DEATH},
[4] = {DamageType = COMBAT_POISONDAMAGE, DamageEffect = CONST_ANI_POISON},
[5] = {DamageType = COMBAT_ENERGYDAMAGE, DamageEffect = CONST_ANI_ENERGY},
[6] = {DamageType = COMBAT_EARTHDAMAGE, DamageEffect = CONST_ANI_EARTH},
[7] = {DamageType = COMBAT_ICEDAMAGE, DamageEffect = CONST_ANI_ICE}
}
DamageTypeWand = {
values = true, -- If this is set to true then it will use the min and max values. If set to false the wand will use the formula
-- Damage Values min/max
wandMinDam = 100,
wandMaxDam = 130,
-- Damage Formula
formula = {
wandMinDam = function(level, maglevel) return -((level / 5) + (maglevel * 1.4) + 8) end,
wandMaxDam = function(level, maglevel) return -((level / 5) + (maglevel * 2.2) + 14) end,
}
}
function onGetFormulaValues(player, level, maglevel)
if DamageTypeWand.values == true then
min = -(DamageTypeWand.wandMinDam)
max = -(DamageTypeWand.wandMaxDam)
else
min = DamageTypeWand.formula.wandMinDam(level, maglevel)
max = DamageTypeWand.formula.wandMaxDam(level, maglevel)
end
return min, max
end
local combat = {}
for k, dam_Table in pairs(DamageTypes) do
combat[k] = Combat()
combat[k]:setParameter(COMBAT_PARAM_BLOCKARMOR, 1)
combat[k]:setParameter(COMBAT_PARAM_BLOCKSHIELD, 1)
combat[k]:setParameter(COMBAT_PARAM_TYPE, dam_Table.DamageType)
combat[k]:setParameter(COMBAT_PARAM_DISTANCEEFFECT, dam_Table.DamageEffect)
-- _G Is used to manually define 'onGetFormulaValues' in this loop in doesnt seem to be able to find the function.
_G['onGetFormulaValues' .. k] = onGetFormulaValues
combat[k]:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues" .. k)
end
function onUseWeapon(player, var)
local value = player:getStorageValue(10009)
local combatUse = combat[value]
if not combatUse then
return true
end
return combatUse:execute(player, var)
end