Code:
private function learned2 takes nothing returns boolean
local integer lvl = GetUnitAbilityLevel(GetTriggerUnit(), 'AEfk')
local ability ab = BlzGetUnitAbility(GetTriggerUnit(), 'AEfk')
local integer i = 0
call BlzSetAbilityStringField(ab, ABILITY_SF_NAME, "test")
if not did then
loop
exitwhen i == 10
call BlzSetAbilityStringLevelField(ab, ABILITY_SLF_TOOLTIP_LEARN_EXTENDED, i, "ABILITY_SLF_TOOLTIP_LEARN_EXTENDED")
call BlzSetAbilityStringLevelField(ab, ABILITY_SLF_TOOLTIP_LEARN, i, "ABILITY_SLF_TOOLTIP_LEARN")
call BlzSetAbilityStringLevelField(ab, ABILITY_SLF_TOOLTIP_NORMAL, i, "ABILITY_SLF_TOOLTIP_NORMAL")
call BlzSetAbilityStringLevelField(ab, ABILITY_SLF_TOOLTIP_NORMAL_EXTENDED, i, "ABILITY_SLF_TOOLTIP_NORMAL_EXTENDED")
call BlzSetAbilityRealLevelField(ab, ABILITY_RLF_MAXIMUM_TOTAL_DAMAGE, i, 0.0)
call BlzSetAbilityRealLevelField(ab, ABILITY_RLF_DAMAGE_PER_TARGET_EFK1, i, 100.0 * (i + 1))
call BlzSetAbilityRealLevelField(ab, ABILITY_RLF_AREA_OF_EFFECT, i, 1000.0 * (i + 1))
call BlzSetAbilityRealLevelField(ab, ABILITY_RLF_COOLDOWN, i, 10 / (i + 1))
call BlzSetAbilityIntegerLevelField(ab, ABILITY_ILF_MANA_COST, i, 100 / (i + 1))
set i = i + 1
endloop
set did = true
endif
I tested the ability of "Fan of Knives" and demon hunter's "evade". BlzSetAbilityStringField and BlzSetAbilityStringLevelField doesn't work. BlzSetAbilityRealLevelField, BlzSetAbilityIntegerLevelField in the above case works.
Is it a bug?
// edit: the following works
call BlzSetAbilityTooltip('AEfk', "ability tooltip", i)
call BlzSetAbilityExtendedTooltip('AEfk', "ability extended tooltip", i)
call BlzSetAbilityResearchTooltip('AEfk', "ability research tooltip", i)
call BlzSetAbilityResearchExtendedTooltip('AEfk', "ability research extended tooltip", i)
Last edited: