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

[Spell] Spell Steal

Status
Not open for further replies.
Level 3
Joined
Jan 23, 2014
Messages
32
hello friends, I need help. How I can match the level of the Spell steal ability, with the target? I tried various methods but the skills are always level 1.

  • Spell Steal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Spell Steal
    • Actions
      • Set StealedAbilityUse = StealedAbility[(Custom value of (Target unit of ability being cast))]
      • Unit - Add StealedAbilityUse to (Triggering unit)
      • Unit - Set level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit) to (Level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit))
      • Set StealedAbility[(Custom value of (Triggering unit))] = (Ability being cast)
      • Wait 10.00 seconds
      • Unit - Remove StealedAbilityUse from (Triggering unit)
 
Level 3
Joined
Jan 23, 2014
Messages
32
  • Unit - Increase Level of Acid Bomb for (Triggering Unit)
This? I'm not sure I fully understand the question :)

I'm doing the Spell Steal of Rubick, i just want that when i steal a skill, is the same level that just stole. For example: The Lich has a Frost Nova - Level 4, when stealing the Frost Nova is the same level. Ok?
 
Level 15
Joined
Oct 29, 2012
Messages
1,474
First , I suggest to not use any kind of waits. Use timers, or an increment integer.

Second, replace this
  • Unit - Set level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit) to (Level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit))
with this
  • Unit - Set level of StealedAbilityUse for (Triggering unit) to (Level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit))
You might see the difference. Yep , it's the part of (Unit - Set level of AbilityX)
There you put AbilityX is the StealedAbility[array] which the stealing unit doesn't have. The hero has StealedAbilityUse and not StealedAbility[Array]

That's all.
 
Level 3
Joined
Jan 23, 2014
Messages
32
First , I suggest to not use any kind of waits. Use timers, or an increment integer.

Second, replace this
  • Unit - Set level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit) to (Level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit))
with this
  • Unit - Set level of StealedAbilityUse for (Triggering unit) to (Level of StealedAbility[(Custom value of (Target unit of ability being cast))] for (Triggering unit))
You might see the difference. Yep , it's the part of (Unit - Set level of AbilityX)
There you put AbilityX is the StealedAbility[array] which the stealing unit doesn't have. The hero has StealedAbilityUse and not StealedAbility[Array]

That's all.

Thanks, but i did and nothing. The Lich has the Frost Nova level 3, but i'm still stealing Frost Nova level 1. :S
 
Level 3
Joined
Jan 23, 2014
Messages
32
Because you set it to the level of the spell for the Triggering Unit, not the target of ability being cast.

I suggest you not use Custom Values, instead a simple indexed array.

I can not, i find no way to put the same level... i'm just learning to use the Trigger Editor and that complicates me. Can anyone help?
 
Level 3
Joined
Jan 23, 2014
Messages
32
Set TempInteger = Player number of Owner of Target Unit
Put TempInteger in the arrays, replacing custom value.

Again, you set the level of ability for triggering unit to; level of ability for triggering unit. That way it remains at level 1.

Ok, I did but still the same. What i have done right? S:

  • Spell Steal Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Spell Steal
    • Actions
      • Set StealedAbility_Integer = (Player number of (Owner of (Target unit of ability being cast)))
      • Set StealedAbilityUse = StealedAbility[StealedAbility_Integer]
      • Unit - Add StealedAbilityUse to (Triggering unit)
      • Unit - Set level of StealedAbilityUse for (Triggering unit) to (Level of StealedAbility[StealedAbility_Integer] for (Triggering unit))
      • Set StealedAbility[StealedAbility_Integer] = (Ability being cast)
      • Wait 7.00 seconds
      • Unit - Remove StealedAbilityUse from (Triggering unit)
  • Spell Steal Loop
    • Events
      • Unit - A unit Finishes casting an ability
    • Conditions
      • (Ability being cast) Not equal to Spell Steal
    • Actions
      • Set AbilityCount = (AbilityCount + 1)
      • Unit - Set the custom value of (Triggering unit) to AbilityCount
      • Set StealedAbility[StealedAbility_Integer] = (Ability being cast)
 
Remove the custom value ability count. Also set the Integer in the 2nd trigger too.

Unit - Set level of StealedAbilityUse for (Triggering unit) to (Level of StealedAbility[StealedAbility_Integer] for (Triggering unit))

Change the last value to Target unit of ability. :<

I think you should array SpellAbilityUse too, with the index player number of triggering player. (Set the integer into a variable too)
 
Level 3
Joined
Jan 23, 2014
Messages
32
Remove the custom value ability count. Also set the Integer in the 2nd trigger too.



Change the last value to Target unit of ability. :<

I think you should array SpellAbilityUse too, with the index player number of triggering player. (Set the integer into a variable too)

Thank you Cake, served me much help and sorry i'm learning, sometimes i lead me seeing other skills. :D
 
Status
Not open for further replies.
Top