Spell Unit Shield

U are a noob

Mega Super Ultra Cool Member
Reaction score
152
MUI
Uses Uareanoob's GUI MUI System.
Grab all enemy the units in 500 range and swings it around the hero. When one of the swinging units hits another unit that unit will be launched back.150 damage will be dealt to hit unit and swinging unit. After spell is done the swinging units will be launched forward.
Code:
Unit Sheild
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Unit Sheild 
    Actions
        Set Caster = (Triggering unit)
        Set CasterLoc = (Position of Caster)
        Set CustomValue = (Custom value of Caster)
        Set CasterArray[CustomValue] = Caster
        Set AreaGroup[CustomValue] = (Units within 500.00 of CasterLoc matching ((((Matching unit) belongs to an enemy of (Owner of Caster)) Equal to True) and (((Matching unit) is A structure) Equal to False)))
        Set LengthCount[CustomValue] = 0
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                CustomValue Greater than HighestCustomValue
            Then - Actions
                Set HighestCustomValue = CustomValue
            Else - Actions
        Unit Group - Pick every unit in AreaGroup[CustomValue] and do (Actions)
            Loop - Actions
                Set PickedUnit = (Picked unit)
                Unit - Make PickedUnit face 360.00 over 0.00 seconds
                Unit - Pause PickedUnit
                Unit - Turn collision for PickedUnit Off
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Number of units in AreaGroup[CustomValue]) Not equal to 0
            Then - Actions
                Trigger - Turn on Unit Sheild Periodic <gen>
            Else - Actions
                Custom script:   call DestroyGroup (udg_AreaGroup[udg_CustomValue])
        Custom script:   call RemoveLocation(udg_CasterLoc)
Code:
Unit Sheild Periodic
    Events
        Time - Every 0.02 seconds of game time
    Conditions
    Actions
        For each (Integer A) from 1 to HighestCustomValue, do (Actions)
            Loop - Actions
                Set IntegerA = (Integer A)
                Set LengthCount[IntegerA] = (LengthCount[IntegerA] + 1)
                Set CasterLoc = (Position of CasterArray[IntegerA])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        FacingAngle[IntegerA] Less than or equal to 0.00
                    Then - Actions
                        Set FacingAngle[IntegerA] = (FacingAngle[IntegerA] - 6.00)
                    Else - Actions
                        Set FacingAngle[IntegerA] = 360.00
                Unit Group - Pick every unit in AreaGroup[IntegerA] and do (Actions)
                    Loop - Actions
                        Set PickedUnit = (Picked unit)
                        Set PickedUnitLoc = (Position of PickedUnit)
                        Set DistanceDifference = (Distance between PickedUnitLoc and CasterLoc)
                        Set PickedUnitMoveTo = (CasterLoc offset by DistanceDifference towards FacingAngle[IntegerA] degrees)
                        Destructible - Pick every destructible within 100.00 of PickedUnitMoveTo and do (Actions)
                            Loop - Actions
                                Destructible - Kill (Picked destructible)
                        Unit - Move PickedUnit instantly to PickedUnitMoveTo
                        Unit - Make PickedUnit face (FacingAngle[IntegerA] - 90.00) over 0.00 seconds
                        Custom script:   set bj_wantDestroyGroup=true
                        Unit Group - Pick every unit in (Units within 100.00 of PickedUnitMoveTo matching ((((Matching unit) belongs to an enemy of (Owner of CasterArray[IntegerA])) Equal to True) and ((((Matching unit) is in AreaGroup[IntegerA]) Equal to False) and ((((Matching unit) is in PushGroup) Equal to Fal and do (Actions)
                            Loop - Actions
                                Unit Group - Add (Picked unit) to PushGroup
                                Unit - Make (Picked unit) face (FacingAngle[IntegerA] - 90.00) over 0.01 seconds
                                Unit - Add DistanceTraveled  to (Picked unit)
                                Special Effect - Create a special effect attached to the origin of PickedUnit using Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
                                Special Effect - Destroy (Last created special effect)
                                Unit - Cause CasterArray[IntegerA] to damage (Picked unit), dealing 150.00 damage of attack type Spells and damage type Normal
                                Unit - Cause CasterArray[IntegerA] to damage PickedUnit, dealing 150.00 damage of attack type Spells and damage type Normal
                                Unit - Set level of DistanceTraveled  for (Picked unit) to 1
                                Unit - Turn collision for (Picked unit) Off
                        Custom script:   call RemoveLocation(udg_PickedUnitLoc)
                        Custom script:   call RemoveLocation(udg_PickedUnitMoveTo)
                Custom script:   call RemoveLocation(udg_CasterLoc)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        LengthCount[IntegerA] Greater than or equal to 600
                    Then - Actions
                        Unit Group - Pick every unit in AreaGroup[IntegerA] and do (Actions)
                            Loop - Actions
                                Set PickedUnit = (Picked unit)
                                Unit - Turn collision for PickedUnit Off
                                Unit Group - Add PickedUnit to PushGroup
                                Unit - Add DistanceTraveled  to PickedUnit
                                Unit - Set level of DistanceTraveled  for PickedUnit to 1
                                Unit - Unpause PickedUnit
                        Set LengthCount[IntegerA] = 0
                        Custom script:   call DestroyGroup (udg_AreaGroup[GetForLoopIndexA()])
                    Else - Actions
        Unit Group - Pick every unit in PushGroup and do (Actions)
            Loop - Actions
                Set PickedUnit = (Picked unit)
                Set PickedUnitLoc = (Position of PickedUnit)
                Set PickedUnitMoveTo = (PickedUnitLoc offset by (15.00 - ((Real((Level of DistanceTraveled  for PickedUnit))) x 0.15)) towards (Facing of PickedUnit) degrees)
                Unit - Pause PickedUnit
                Unit - Move PickedUnit instantly to PickedUnitMoveTo
                Unit - Increase level of DistanceTraveled  for PickedUnit
                Destructible - Pick every destructible within 100.00 of PickedUnitMoveTo and do (Actions)
                    Loop - Actions
                        Destructible - Kill (Picked destructible)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Random integer number between 1 and 3) Equal to 1
                    Then - Actions
                        Special Effect - Create a special effect attached to the origin of PickedUnit using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                        Special Effect - Destroy (Last created special effect)
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of DistanceTraveled  for PickedUnit) Greater than or equal to 100
                    Then - Actions
                        Unit Group - Remove PickedUnit from PushGroup
                        Unit - Remove DistanceTraveled  from (Triggering unit)
                        Unit - Unpause PickedUnit
                        Unit - Turn collision for PickedUnit On
                    Else - Actions
                Custom script:   call RemoveLocation(udg_PickedUnitLoc)
                Custom script:   call RemoveLocation(udg_PickedUnitMoveTo)
Code:
Preload
    Events
        Map initialization
    Conditions
    Actions
        Unit - Remove Perload 0104 <gen> from the game
        Visibility - Disable fog of war
        Visibility - Disable black mask
        Visibility - Create an initially Enabled visibility modifier for Player 1 (Red) emitting Visibility across (Entire map)
 

Attachments

  • WC3ScrnShot_071807_161718_01.jpg
    WC3ScrnShot_071807_161718_01.jpg
    119.5 KB · Views: 555
  • WC3ScrnShot_071807_161721_02.jpg
    WC3ScrnShot_071807_161721_02.jpg
    110.4 KB · Views: 430
  • Unit Sheild.w3x
    53.8 KB · Views: 326

WarLuvr3393

Hmmm...too many things to play (WoW, COD4, WC3)
Reaction score
54
Nice pictures, nice spell. Great job.

Offtopic: An Anti-JASS'er! :eek: I say we hang him!

+Rep

BTW: Nice GUI MUI system, I tried that out and it's nice also. But JASS will ALWAYS PWN GUI.
 

Prometheus

Everything is mutable; nothing is sacred
Reaction score
589
I noticed 2 things.

1. It seems that there are no leaks, but the spell lagged me like crazy.

2. I'm not sure if you lose the unit after you hit another unit but I hit a unit and that unit died and I didn't lose a unit.
 

U are a noob

Mega Super Ultra Cool Member
Reaction score
152
I noticed 2 things.

1. It seems that there are no leaks, but the spell lagged me like crazy.

2. I'm not sure if you lose the unit after you hit another unit but I hit a unit and that unit died and I didn't lose a unit.

1.Weird I got no lag what so ever.

2. When one of the swinging units hit a unit it deals 150 damage to the hit unit and swinging unit.
Edit: Some reason in JASS New Gen it lags.
 

Prometheus

Everything is mutable; nothing is sacred
Reaction score
589
1.Weird I got no lag what so ever.

2. When one of the swinging units hit a unit it deals 150 damage to the hit unit and swinging unit.

1. New Gen lags, don't test this spell in New Gen! (Me and Uare just found this out, were talking on AIM)

2. So they swing till they die?
 

Tinki3

Special Member
Reaction score
418
Good spell. "Appears" to be leakless, apart from one thing that seems suspicious to me:
The variable "AreaGroup" - are you sure your removing it correctly?

Also, units were flinged outside the map boundaries.
You should check to see if the point they are supposed to be moved to is pathable first.
 

Blackrage

Ultra Cool Member
Reaction score
25
You should make the units in the shield be invulnarable because when I used it, my units attacked the units being swung by the shield. Also, i would ike it if its channeling because if they ae under the shield in a AoS map and then gt pulled into the base, they will DIE :eek:


Anyway, nice spell, i really enjoyed playing around with it, especially tweaking the spell to max range and lagging the game :p
 

Joker(Div)

Always Here..
Reaction score
86
Destroy your locations!! Reason it lags on NewGen is b/c of all the undestroyed locations its updating on text. The NewGen never lies.
 

U are a noob

Mega Super Ultra Cool Member
Reaction score
152
Good spell. "Appears" to be leakless, apart from one thing that seems suspicious to me:
The variable "AreaGroup" - are you sure your removing it correctly?

Also, units were flinged outside the map boundaries.
You should check to see if the point they are supposed to be moved to is pathable first.
Fixing it soon.
Group gets destroy correctly.
You should make the units in the shield be invulnarable because when I used it, my units attacked the units being swung by the shield. Also, i would ike it if its channeling because if they ae under the shield in a AoS map and then gt pulled into the base, they will DIE :eek:


Anyway, nice spell, i really enjoyed playing around with it, especially tweaking the spell to max range and lagging the game :p
Meh they are put that way for a reason.
If you want to put it in your map just make it shorter.
 

elmstfreddie

The Finglonger
Reaction score
203
You ARE allowed to say
"Uses my GUI MUI system"
I like how you always say
"Uses Uareanoob's GUI MUI system"

Random I know >_>
 

Prometheus

Everything is mutable; nothing is sacred
Reaction score
589
Destroy your locations!! Reason it lags on NewGen is b/c of all the undestroyed locations its updating on text. The NewGen never lies.
New Gen recoreded NO unremoved locations.

I think its because of the constant text updating.
 

Tinki3

Special Member
Reaction score
418
Look at the actions in bold:

Code:
Unit Group - Pick every unit in AreaGroup[IntegerA] and do (Actions)
    Loop - Actions
        Set PickedUnit = (Picked unit)
        Set PickedUnitLoc = (Position of PickedUnit)
        Set DistanceDifference = (Distance between PickedUnitLoc and CasterLoc)
        Set PickedUnitMoveTo = (CasterLoc offset by DistanceDifference towards FacingAngle[IntegerA] degrees)
        Destructible - Pick every destructible within 100.00 of PickedUnitMoveTo and do (Actions)
            Loop - Actions
                Destructible - Kill (Picked destructible)
        Unit - Move PickedUnit instantly to PickedUnitMoveTo
        Unit - Make PickedUnit face (FacingAngle[IntegerA] - 90.00) over 0.00 seconds
        [B]If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Is PickedUnitMoveTo Walkability) Equal to True  //Is this whole If-Then-Else function meant to be here?
            Then - Actions
            Else - Actions[/B]
            ....

Code:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
        (Level of DistanceTraveled  for PickedUnit) Greater than or equal to 100
    Then - Actions
        Unit Group - Remove PickedUnit from PushGroup
        [B]Unit - Remove DistanceTraveled  from (Triggering unit)[/B]  //I presume triggering unit should be picked unit =p
        Unit - Unpause PickedUnit
        Unit - Turn collision for PickedUnit On
    Else - Actions

-Units still got trapped outside the map boundaries.
-"Sheild" needs to be changed to "Shield" (correct spelling)
-You should also change the icon of the spell to something else other than a bell :)
 

emjlr3

Change can be a good thing
Reaction score
395
i would say no to this system, simply cuz it uses another system, which is required, that I do not agree with/think ppl should be made to use

no from me
 

emjlr3

Change can be a good thing
Reaction score
395
it requires ur MUI system for GUI though, no?
 

emjlr3

Change can be a good thing
Reaction score
395
that was generic for everyone to make anything that was really anything, untill vJASS

this uses your system that quite francly, only you use

my decision remains
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top