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

Ethereal spear problem with arrows of the elements. TFS1.2

Lada Calena

New Member
Joined
Oct 30, 2017
Messages
4
Reaction score
0
When player use arrows of the elements end throws a spell, then instead hit only physical damage, player hits physical damage and elements damage. Where is the problem?
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)

function onGetFormulaValues(player, skill, attack, factor)
    local lvl = player:getLevel()
    local dyst = player:getSkillLevel(SKILL_DISTANCE)
    local min = (lvl / 2.4)  + dyst + 5
    local max = (lvl / 2.2) + dyst + 8
    return -min, -max

end

combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end
 
Ice Damage:
Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)

function onGetFormulaValues(player, skill, attack, factor)
    local lvl = player:getLevel()
    local dyst = player:getEffectiveSkillLevel(SKILL_DISTANCE)
    local min = (lvl / 2.4)  + dyst + 5
    local max = (lvl / 2.2) + dyst + 8
    return -min, -max
end

combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end

Other elements:
COMBAT_PHYSICALDAMAGE
COMBAT_ENERGYDAMAGE
COMBAT_EARTHDAMAGE
COMBAT_FIREDAMAGE
COMBAT_UNDEFINEDDAMAGE
COMBAT_LIFEDRAIN
COMBAT_MANADRAIN
COMBAT_HEALING
COMBAT_DROWNDAMAGE
COMBAT_ICEDAMAGE
COMBAT_HOLYDAMAGE
COMBAT_DEATHDAMAGE
 
I know but I do not want to hit the elements.

Remove from items.xml elemental value.
For example:
<item id="7839" article="a" name="shiver arrow">
<attribute key="weight" value="70" />
<attribute key="slotType" value="ammo" />
<attribute key="attack" value="14" />
<attribute key="elementIce" value="14" />
<attribute key="weaponType" value="ammunition" />
<attribute key="ammoType" value="arrow" />
<attribute key="shootType" value="shiverarrow" />
<attribute key="maxHitChance" value="91" />
</item>

Remove
<attribute key="elementIce" value="14" />
 
Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
function onGetFormulaValues(player, skill, attack, factor)
local lvl = player:getLevel()
local dyst = player:getEffectiveSkillLevel(SKILL_DISTANCE)
local min = (lvl / 2.4)  + dyst + 5
local max = (lvl / 2.2) + dyst + 8
return -min, -max
end

combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(player, variant)
    return combat:execute(player, variant)
end
 
Back
Top