• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Wurst] Looping a units available abilities

Level 7
Joined
Sep 16, 2016
Messages
185
Hello,

I have the following script:

JASS:
public function iterateAbilities ()
    print("Assigning Abilities, may cause FPS drop momentarily . . .")
    for i = 0 to 12
        for iter = 0 to 164

            if BlzGetUnitAbility(udg_PlayHero[i], ability_Q[iter]) != null
                printTimed("Assigned: "+GetAbilityName(ability_Q[iter]), 5)
                hero_Q[i] = BlzGetUnitAbility(udg_PlayHero[i], ability_Q[iter])
            if BlzGetUnitAbility(udg_PlayHero[i], ability_W[iter]) != null
                printTimed("Assigned: "+GetAbilityName(ability_W[iter]), 5)
                hero_W[i] = BlzGetUnitAbility(udg_PlayHero[i], ability_W[iter])
            if BlzGetUnitAbility(udg_PlayHero[i], ability_E[iter]) != null
                printTimed("Assigned: "+GetAbilityName(ability_E[iter]), 5)
                hero_E[i] = BlzGetUnitAbility(udg_PlayHero[i], ability_E[iter])
            if BlzGetUnitAbility(udg_PlayHero[i], ability_R[iter]) != null
                printTimed("Assigned: "+GetAbilityName(ability_R[iter]), 5)
                hero_R[i] = BlzGetUnitAbility(udg_PlayHero[i], ability_R[iter])
            if BlzGetUnitAbility(udg_PlayHero[i], ability_T[iter]) != null
                printTimed("Assigned: "+GetAbilityName(ability_T[iter]), 5)
                hero_T[i] = BlzGetUnitAbility(udg_PlayHero[i], ability_T[iter])
            if BlzGetUnitAbility(udg_PlayHero[i], ability_F[iter]) != null
                printTimed("Assigned: "+GetAbilityName(ability_F[iter]), 5)
                hero_F[i] = BlzGetUnitAbility(udg_PlayHero[i], ability_F[iter])
            if BlzGetUnitAbility(udg_PlayHero[i], ability_G[iter]) != null
                printTimed("Assigned: "+GetAbilityName(ability_G[iter]), 5)
                hero_G[i] = BlzGetUnitAbility(udg_PlayHero[i], ability_G[iter])

Which iterates through my ability list of:

JASS:
    ability_Q[0] = 'A12F'
    ability_Q[1] = 'A129'
    ability_Q[2] = 'A122'
    ability_Q[3] = 'A11Y'
    ability_Q[4] = 'A11T'
    ability_Q[5] = 'A11O'
    ability_Q[6] = 'A11G'
    ability_Q[7] = 'A118'
    . . .
    ability_Q[162] = 'Axxx'
    ability_Q[163] = 'Axxx'
    ability_Q[164] = 'Axxx'

But it does not seem to work, is my approach not it? It only seems to work for already learned abilities on the unit, not the "learnables"?
This only runs once, and it only drops for about 0.3s and very slight fps drop, so the number of executions is no problem, I'm more concerned on why it is not working :(
 
Last edited:
Top