Help with this spell??

Crimson

Member
Reaction score
3
Frost Fissure
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Frost Fissure
Actions
Set FF_unit = (Triggering unit)
Set FF_loc[0] = (Position of FF_unit)
Set FF_loc[1] = (Target point of ability being cast)
Set FF_damage = ((Real((Strength of FF_unit (Include bonuses)))) + (1200.00 x (Real((Level of Frost Fissure for FF_unit)))))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between FF_loc[0] and FF_loc[1]) Less than or equal to 100.00
Then - Actions
Set FF_angle = (Facing of FF_unit)
Else - Actions
Set FF_angle = (Angle from FF_loc[0] to FF_loc[1])
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
Set FF_distance = (FF_distance + 150.00)
Set FF_loc[2] = (FF_loc[0] offset by FF_distance towards FF_angle degrees)
Special Effect - Create a special effect at FF_loc[2] using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at FF_loc[2] using FreezingRing.mdx
Special Effect - Destroy (Last created special effect)
Set FF_group = (Units within 150.00 of FF_loc[2] matching (((((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True) and (((Matching unit) is A ground unit) Equal to True)) and ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is in FF_group equal to False)))))
Unit Group - Pick every unit in FF_group and do (Actions)
Loop - Actions
Set FF_loc[3] = (Position of (Picked unit))
Unit - Create 1 Dummy for (Owner of FF_unit) at FF_loc[3] facing Default building facing degrees
Unit - Add Freeze (Frost Fissure) to (Last created unit)
Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation (udg_FF_loc[3])
Unit Group - Pick every unit in FF_group and do (Actions)
Loop - Actions
Unit - Cause FF_unit to damage (Picked unit), dealing FF_damage damage of attack type Spells and damage type Universal
Custom script: call RemoveLocation (udg_FF_loc[2])
Custom script: call DestroyGroup (udg_FF_group)
Set FF_distance = 0.00
Custom script: call RemoveLocation (udg_FF_loc[0])
Custom script: call RemoveLocation (udg_FF_loc[1])
Custom script: set udg_FF_unit = null

This is a line spell. And every time I cast it, it damages units more than once. I've already set the the unit group to filter out units that have already been picked so they don't get damaged more than once. But if I clear the unit group, the spell goes back to damaging them more than once. How do I fix that?

Here's the map, so you can test out the spell.
 

Attachments

  • Arthas' Kingdom.w3x
    960 KB · Views: 219

Solu9

You can change this now in User CP.
Reaction score
216
Now I didn't read through the trigger. But if you destroy the unitgroup doesn't that mean it is gone forever and thus no units can be added to it?
I would suggest you just pick every unit in the unit group and remove them for the unit group.

Edit: Yeah that is probably not the problem. Dunno what I was thinking.

But this line:
Set FF_group = (Units within 150.00 of FF_loc[2] matching (((((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True) and (((Matching unit) is A ground unit) Equal to True)) and ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is in FF_group equal to False)))))

Don't you want it to be (((((Matching unit) belongs to an enemy of (Owner of (Triggering Unit)) Equal to True)?
 

Crimson

Member
Reaction score
3
I don't think so. Before I found out about this problem, I was using set bj_wantDestroyGroup = true and that caused the spell to damage units more than once. So I tried using variables so I could check if the units were already picked. Doing yielded the same results as the first method unless I don't clear the group, which is bad. So now, I want to know if there is a way to damage units only once while still being able to clear the unit group.

Oh, and please read through the trigger? It just makes it seem like you're giving answers without even knowing what the problem is and that doesn't at all give me any sort of confidence about your answer.
 

Solu9

You can change this now in User CP.
Reaction score
216
Oh, and please read through the trigger? It just makes it seem like you're giving answers without even knowing what the problem is and that doesn't at all give me any sort of confidence about your answer.

Alright. I see where you are coming at. But please post the trigger in [.WC3]trigger[./WC3] so it is not one big wall of text.

Edit:
Hm if my edit suggestion in my first post does not solve the problem. Then it might be because you use, and destroy, a UnitGroup array. Don't know if that messes it up. Have you tried to used a none-array unitgroup variable?
 

Crimson

Member
Reaction score
3
Oh, yes. I missed that line. Anyway, I think I finally got the stupid spell working the way I want it to, I think. I had to use two unit groups.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top