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

Chaos Banner v1.02

Chaos Banner


Description

Triggers

Credits

Places a banner at the target location for 10/15/20 seconds. Each second it will apply a random negative or positive buff (depends on whether the target is allied or not) on a random unit in 450/600/750 AoE. Cooldown of 10 seconds. Buffs get stronger with levels.

  • Chaos Banner Configuration
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Your ability --------
      • Set CB_Ability = Chaos Banner
      • -------- Dummy --------
      • Set CB_Dummy = Dummy (Vexorian/Anitarf/Infrane)
      • -------- Banner model --------
      • Set CB_BannerModel = Objects\InventoryItems\BattleStandard\BattleStandard.mdl
      • -------- Banner size (percentage) --------
      • Set CB_BannerSize[1] = 100.00
      • Set CB_BannerSize[2] = 125.00
      • Set CB_BannerSize[3] = 150.00
      • -------- Special Effect for indicating spell AoE --------
      • Set CB_Indicator = Abilities\Spells\Demon\DarkPortal\DarkPortalTarget.mdl
      • -------- Indicator count --------
      • Set CB_IndicatorCount = 15
      • -------- Dummy player --------
      • Set CB_DummyPlayer = Neutral Extra
      • -------- Duration of the ability --------
      • Set CB_CDuration[1] = 10.00
      • Set CB_CDuration[2] = 15.00
      • Set CB_CDuration[3] = 20.00
      • -------- Banner AoE --------
      • Set CB_AoE[1] = 450.00
      • Set CB_AoE[2] = 600.00
      • Set CB_AoE[3] = 750.00
      • -------- Buff count (FOR ENEMIES) --------
      • Set CB_NegBuffCount[1] = 9
      • Set CB_NegBuffCount[2] = 9
      • Set CB_NegBuffCount[3] = 9
      • -------- Ability list and Order ID's (FOR ENEMIES) (Taken from http://www.thehelper.net/threads/order-ids.148097/ , if you're using other ability order strings, change them according to the website) --------
      • Set CB_NegBuff[1] = Banish (Banner)
      • Set CB_NegOrderID[1] = 852486
      • Set CB_NegBuff[2] = Cripple (Banner)
      • Set CB_NegOrderID[2] = 852189
      • Set CB_NegBuff[3] = Curse (Banner)
      • Set CB_NegOrderID[3] = 852190
      • Set CB_NegBuff[4] = Cyclone (Banner)
      • Set CB_NegOrderID[4] = 852144
      • Set CB_NegBuff[5] = Ensnare (Banner)
      • Set CB_NegOrderID[5] = 852106
      • Set CB_NegBuff[6] = Faerie Fire (Banner)
      • Set CB_NegOrderID[6] = 852149
      • Set CB_NegBuff[7] = Polymorph (Banner)
      • Set CB_NegOrderID[7] = 852074
      • Set CB_NegBuff[8] = Sleep (Banner)
      • Set CB_NegOrderID[8] = 852227
      • Set CB_NegBuff[9] = Slow (Banner)
      • Set CB_NegOrderID[9] = 852075
      • -------- Buff count (FOR ALLIES) --------
      • Set CB_PosBuffCount[1] = 5
      • Set CB_PosBuffCount[2] = 5
      • Set CB_PosBuffCount[3] = 5
      • -------- Ability list and Order ID's (FOR ALLIES) (Taken from http://www.thehelper.net/threads/order-ids.148097/ , if you're using other ability order strings, change them according to the website) --------
      • Set CB_PosBuff[1] = Anti-magic Shell (Banner)
      • Set CB_PosOrderID[1] = 852186
      • Set CB_PosBuff[2] = Bloodlust (Banner)
      • Set CB_PosOrderID[2] = 852101
      • Set CB_PosBuff[3] = Frost Armor (Banner)
      • Set CB_PosOrderID[3] = 852225
      • Set CB_PosBuff[4] = Inner Fire (Banner)
      • Set CB_PosOrderID[4] = 852066
      • Set CB_PosBuff[5] = Unholy Frenzy (Banner)
      • Set CB_PosOrderID[5] = 852209
      • -------- Cast effect --------
      • Set CB_CastEffect = Abilities\Spells\Other\HowlOfTerror\HowlCaster.mdl
      • -------- Time between casts --------
      • Set CB_Interval = 1.00
      • -------- Affect allies? --------
      • Set CB_AffectAllies = True
      • -------- Effect used at the end of the spell. --------
      • Set CB_DestructionSFX = Abilities\Spells\Orc\FeralSpirit\feralspirittarget.mdl
      • -------- Circular formation (better not change this) --------
      • Set CB_Circle = (360.00 / (Real(CB_IndicatorCount)))
      • -------- Definitely don't touch this --------
      • Trigger - Add to Chaos Banner Loop <gen> the event (Time - Every CB_Interval seconds of game time)

  • Chaos Banner
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to CB_Ability
    • Actions
      • -------- Turning on the loop if there are no instances running yet. --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CB_MaxIndex Equal to 0
        • Then - Actions
          • Trigger - Turn on Chaos Banner Loop <gen>
        • Else - Actions
      • -------- Initializing the ability. --------
      • Set CB_MaxIndex = (CB_MaxIndex + 1)
      • Set CB_Caster = (Triggering unit)
      • Set CB_Player[CB_MaxIndex] = (Triggering player)
      • Set CB_AbilityIndex[CB_MaxIndex] = (Level of CB_Ability for CB_Caster)
      • Set CB_Duration[CB_MaxIndex] = CB_CDuration[CB_AbilityIndex[CB_MaxIndex]]
      • Set CB_TempPoint = (Target point of ability being cast)
      • Unit - Create 1 CB_Dummy for CB_DummyPlayer at CB_TempPoint facing CB_TempPoint
      • Set CB_Banner[CB_MaxIndex] = (Last created unit)
      • Animation - Change CB_Banner[CB_MaxIndex]'s size to (CB_BannerSize[CB_AbilityIndex[CB_MaxIndex]]%, CB_BannerSize[CB_AbilityIndex[CB_MaxIndex]]%, CB_BannerSize[CB_AbilityIndex[CB_MaxIndex]]%) of its original size
      • Special Effect - Create a special effect attached to the origin of CB_Banner[CB_MaxIndex] using CB_BannerModel
      • Set CB_BannerSFX[CB_MaxIndex] = (Last created special effect)
      • Unit - Create 1 CB_Dummy for CB_DummyPlayer at CB_TempPoint facing CB_TempPoint
      • Set CB_DummyCaster[CB_MaxIndex] = (Last created unit)
      • Custom script: call RemoveLocation(udg_CB_TempPoint)

  • Chaos Banner Loop
    • Events
    • Conditions
    • Actions
      • -------- Initializing the loop. --------
      • For each (Integer CB_TempIndex) from 1 to CB_MaxIndex, do (Actions)
        • Loop - Actions
          • Set CB_Duration[CB_TempIndex] = (CB_Duration[CB_TempIndex] - CB_Interval)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CB_Duration[CB_TempIndex] Greater than 0.00
            • Then - Actions
              • -------- Setting up the group --------
              • Set CB_TempPoint = (Position of CB_Banner[CB_TempIndex])
              • Special Effect - Create a special effect attached to the origin of CB_Banner[CB_TempIndex] using CB_CastEffect
              • Special Effect - Destroy (Last created special effect)
              • Set CB_Group = (Units within CB_AoE[CB_AbilityIndex[CB_TempIndex]] of CB_TempPoint)
              • -------- Getting the random unit. --------
              • Unit Group - Pick every unit in CB_Group and do (Actions)
                • Loop - Actions
                  • Set CB_PickedUnit = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • CB_AffectAllies Equal to False
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (CB_PickedUnit is alive) Equal to True
                          • (CB_PickedUnit is A structure) Equal to False
                          • (CB_PickedUnit is Magic Immune) Equal to False
                          • (CB_PickedUnit has buff Cyclone) Equal to False
                          • (CB_PickedUnit has buff Invulnerable) Equal to False
                          • (CB_PickedUnit belongs to an ally of CB_Player[CB_TempIndex]) Equal to False
                        • Then - Actions
                        • Else - Actions
                          • Unit Group - Remove CB_PickedUnit from CB_Group
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (CB_PickedUnit is alive) Equal to True
                          • (CB_PickedUnit is A structure) Equal to False
                          • (CB_PickedUnit is Magic Immune) Equal to False
                          • (CB_PickedUnit has buff Cyclone) Equal to False
                          • (CB_PickedUnit has buff Invulnerable) Equal to False
                          • (CB_PickedUnit has buff Anti-magic Shell) Equal to False
                          • (CB_PickedUnit has buff Anti-magic Shell (Extra)) Equal to False
                        • Then - Actions
                        • Else - Actions
                          • Unit Group - Remove CB_PickedUnit from CB_Group
              • Set CB_RandomUnit = (Random unit from CB_Group)
              • -------- Issuing the ability order --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (CB_RandomUnit belongs to an ally of CB_Player[CB_TempIndex]) Equal to False
                • Then - Actions
                  • Set CB_RandomInteger = (Random integer number between 1 and CB_NegBuffCount[CB_AbilityIndex[CB_TempIndex]])
                  • Unit - Add CB_NegBuff[CB_RandomInteger] to CB_DummyCaster[CB_TempIndex]
                  • Unit - Set level of CB_NegBuff[CB_RandomInteger] for CB_DummyCaster[CB_TempIndex] to CB_AbilityIndex[CB_TempIndex]
                  • Custom script: call IssueTargetOrderById(udg_CB_DummyCaster[udg_CB_TempIndex], udg_CB_NegOrderID[udg_CB_RandomInteger], udg_CB_RandomUnit)
                • Else - Actions
                  • Set CB_RandomInteger = (Random integer number between 1 and CB_PosBuffCount[CB_AbilityIndex[CB_TempIndex]])
                  • Unit - Add CB_PosBuff[CB_RandomInteger] to CB_DummyCaster[CB_TempIndex]
                  • Unit - Set level of CB_PosBuff[CB_RandomInteger] for CB_DummyCaster[CB_TempIndex] to CB_AbilityIndex[CB_TempIndex]
                  • Custom script: call IssueTargetOrderById(udg_CB_DummyCaster[udg_CB_TempIndex], udg_CB_PosOrderID[udg_CB_RandomInteger], udg_CB_RandomUnit)
              • -------- Creating the indicators --------
              • Set CB_TempAbilityIndex = CB_AbilityIndex[CB_TempIndex]
              • Set CB_TempPoint = (Position of CB_Banner[CB_TempIndex])
              • For each (Integer CB_TempInteger) from 1 to CB_IndicatorCount, do (Actions)
                • Loop - Actions
                  • Set CB_TempAngle = (CB_Circle x (Real(CB_TempInteger)))
                  • Set CB_TempPoint2 = (CB_TempPoint offset by CB_AoE[CB_TempAbilityIndex] towards CB_TempAngle degrees)
                  • Special Effect - Create a special effect at CB_TempPoint2 using CB_Indicator
                  • Special Effect - Destroy (Last created special effect)
                  • Custom script: call RemoveLocation(udg_CB_TempPoint2)
              • Custom script: call RemoveLocation(udg_CB_TempPoint)
              • -------- Cleaning. --------
              • Custom script: call DestroyGroup(udg_CB_Group)
              • Custom script: call RemoveLocation(udg_CB_TempPoint)
              • -------- The random unit has to be nulled, otherwise if there are no units in specified AoE, the last randomed unit will be constantly affected. --------
              • Set CB_RandomUnit = No unit
            • Else - Actions
              • -------- Deindexing. --------
              • Set CB_TempPoint = (Position of CB_Banner[CB_TempIndex])
              • Special Effect - Create a special effect at CB_TempPoint using CB_DestructionSFX
              • Special Effect - Destroy (Last created special effect)
              • Custom script: call RemoveLocation(udg_CB_TempPoint)
              • Special Effect - Destroy CB_BannerSFX[CB_TempIndex]
              • Set CB_BannerSFX[CB_TempIndex] = CB_BannerSFX[CB_MaxIndex]
              • Unit - Remove CB_Banner[CB_TempIndex] from the game
              • Set CB_Banner[CB_TempIndex] = CB_Banner[CB_MaxIndex]
              • Unit - Remove CB_DummyCaster[CB_TempIndex] from the game
              • Set CB_DummyCaster[CB_TempIndex] = CB_DummyCaster[CB_MaxIndex]
              • Set CB_Player[CB_TempIndex] = CB_Player[CB_MaxIndex]
              • Set CB_Duration[CB_TempIndex] = CB_Duration[CB_MaxIndex]
              • Set CB_AbilityIndex[CB_TempIndex] = CB_AbilityIndex[CB_MaxIndex]
              • Set CB_TempIndex = (CB_TempIndex - 1)
              • Set CB_MaxIndex = (CB_MaxIndex - 1)
              • -------- Turning off the loop if there are no instances running. --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CB_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off Chaos Banner Loop <gen>
                • Else - Actions


Vexorian/Anitarf/Infrane for their amazing dummy.
Tank-Commander for giving me the order ID list.

v1.01 - Did all the things on Tank-Commander's list, now all the dummies are created for Neutral Extra, fixed a deindex leak.
v1.02 - Added allied buffs which are cast if CB_AffectAllies = true, using Dark Portal special effects to indicate AoE instead of dummy units. Fixed crash bug.

Feedback is always appreciated.


Keywords:
Chaos Banner, Chaos, Banner, Buff, Affect, Meatmuffin, GUI, MUI, kek
Contents

Chaos Banner v1.02 (Map)

Reviews
19:23, 8th Feb 2016 Tank-Commander: Changes made, works as intended. Couldn't find any bugs and the code is clean and efficient, object data passes as well. Notes: You may want to add the dummy abilities used at the start rather than as it needs...

Moderator

M

Moderator

19:23, 8th Feb 2016
Tank-Commander: Changes made, works as intended. Couldn't find any bugs and the code is clean and efficient, object data passes as well.

Notes: You may want to add the dummy abilities used at the start rather than as it needs them so it doesn't attempt to add the ability and set the level every time it tries to cast the same one


21:36, 7th Feb 2016
Tank-Commander: Spell set to needs fix until the fatal crash error has been solved
 
  • For each (Integer CB_TempInteger) from 1 to CB_IndicatorCount, do (Actions)
    • Loop - Actions
      • Set CB_TempUnit = (Triggering unit)
      • Set CB_TempAbilityIndex = (Level of CB_Ability for CB_TempUnit)
      • Set CB_TempPlayer = (Triggering player)
      • Set CB_TempPoint = (Position of CB_TempBanner)
All these actions in the loop need to only be done once as they don't change (move it outside of the loop)

  • Set CB_TempBanner = (Last created unit)
This is uneeded, you already have
  • Set CB_Banner[CB_MaxIndex] = (Last created unit)
to refer to the unit

- you should make the actual debuff abilities have levels as well as the banner itself (it'd make sense that a stronger banner could give more powerful debuffs)
- Dummy units should be owned by a dummy player to prevent it from messing with the scorescreen (since you save the player you can still filter units to target)

Now going to test for bugs - will edit this post when complete
Edit:
- Tooltip is good and explains the ability very well (though the learn tooltip should state what the next level to learn is)
- The spell lacks an appropriate AOE indicator
- Indicator dummies are able to leave the map:
--- When testing with a large AOE (I tested with 5000) the pathfinding of the indicator dummies began glitching: I recommend using SetUnitX/Y as opposed to the normal pathfinding to prevent this (processing would also decrease)
--- While the game should not crash from dummies leaving the map (as if you tell them to move to a point that would do so they don't, see: set AOE to 15000) resolving the above issue(s) would introduce the risk of this crash happening (as they're no longer running checks for a valid point)
- I see what you mean when we spoke in chat about the banner moving a little when casting an ability - I would suggest setting the turning circle of the dummy to 3.00 (see if that resolves the issue) or do as you suggested though I wouldn't describe the change as necessary
 
Last edited:
Level 11
Joined
Jul 25, 2014
Messages
490
All these actions in the loop need to only be done once as they don't change (move it outside of the loop)
Alrighty.

This is uneeded
Alrighty

you should make the actual debuff abilities have levels as well as the banner itself (it'd make sense that a stronger banner could give more powerful debuffs)
Err this is going to be a pain, but alrighty.

Will wait for the next comment until update.

Checked & Updated.
 
Last edited:
Level 37
Joined
Jul 22, 2015
Messages
3,485
This is a pretty similar concept to TheSpoon's Chaosphere.
  • Consider using a global dummy caster created on init. I see no need of having to create a "special one" for every single spell instance
  • I'm not a big fan of adding expiration timers for special effect dummies. For your spell, the conditions are okay. However, if you had a spell that relied on the caster, these special effects wouldn't go away when the caster died, but after their expiration timer ends. Just keep this as a note for the future :)
  • TempAbilityIndx is redundant. You can just refer to AbilityIndex[MaxIndex]

Also for the future, place more than one caster and or give the spell a low cooldown :)
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,464
Hey Meatmuffin,

I have edited your spell to use Spell System and attached it to this post. Many of the things which you ended up manually coding are already incorporated by the system, so I took the liberty to show you the results:


  • Chaos Banner Configuration
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Your ability --------
      • Set Spell__Ability = Chaos Banner
      • -------- Banner model --------
      • Set CB_BannerModel = Objects\InventoryItems\BattleStandard\BattleStandard.mdl
      • -------- Banner size (percentage) --------
      • Set CB_BannerSize[1] = 100.00
      • Set CB_BannerSize[2] = 125.00
      • Set CB_BannerSize[3] = 150.00
      • -------- Special Effect for indicating spell AoE --------
      • Set CB_Indicator = Abilities\Spells\Demon\DarkPortal\DarkPortalTarget.mdl
      • -------- Indicator count --------
      • Set CB_IndicatorCount = 15
      • -------- Duration of the ability --------
      • Set CB_CDuration[1] = 10.00
      • Set CB_CDuration[2] = 15.00
      • Set CB_CDuration[3] = 20.00
      • -------- Banner AoE --------
      • Set CB_AoE[1] = 450.00
      • Set CB_AoE[2] = 600.00
      • Set CB_AoE[3] = 750.00
      • -------- Buff count (FOR ENEMIES) --------
      • Set CB_NegBuffCount[1] = 9
      • Set CB_NegBuffCount[2] = 9
      • Set CB_NegBuffCount[3] = 9
      • -------- Ability list and Order ID's (FOR ENEMIES) (Taken from [url]http://www.thehelper.net/threads/order-ids.148097/[/url] , if you're using other ability order strings, change them according to the website) --------
      • Set CB_NegBuff[1] = Banish (Banner)
      • Set CB_NegOrderID[1] = 852486
      • Set CB_NegBuff[2] = Cripple (Banner)
      • Set CB_NegOrderID[2] = 852189
      • Set CB_NegBuff[3] = Curse (Banner)
      • Set CB_NegOrderID[3] = 852190
      • Set CB_NegBuff[4] = Cyclone (Banner)
      • Set CB_NegOrderID[4] = 852144
      • Set CB_NegBuff[5] = Ensnare (Banner)
      • Set CB_NegOrderID[5] = 852106
      • Set CB_NegBuff[6] = Faerie Fire (Banner)
      • Set CB_NegOrderID[6] = 852149
      • Set CB_NegBuff[7] = Polymorph (Banner)
      • Set CB_NegOrderID[7] = 852074
      • Set CB_NegBuff[8] = Sleep (Banner)
      • Set CB_NegOrderID[8] = 852227
      • Set CB_NegBuff[9] = Slow (Banner)
      • Set CB_NegOrderID[9] = 852075
      • -------- Buff count (FOR ALLIES) --------
      • Set CB_PosBuffCount[1] = 5
      • Set CB_PosBuffCount[2] = 5
      • Set CB_PosBuffCount[3] = 5
      • -------- Ability list and Order ID's (FOR ALLIES) (Taken from [url]http://www.thehelper.net/threads/order-ids.148097/[/url] , if you're using other ability order strings, change them according to the website) --------
      • Set CB_PosBuff[1] = Anti-magic Shell (Banner)
      • Set CB_PosOrderID[1] = 852186
      • Set CB_PosBuff[2] = Bloodlust (Banner)
      • Set CB_PosOrderID[2] = 852101
      • Set CB_PosBuff[3] = Frost Armor (Banner)
      • Set CB_PosOrderID[3] = 852225
      • Set CB_PosBuff[4] = Inner Fire (Banner)
      • Set CB_PosOrderID[4] = 852066
      • Set CB_PosBuff[5] = Unholy Frenzy (Banner)
      • Set CB_PosOrderID[5] = 852209
      • -------- Cast effect --------
      • Set CB_CastEffect = Abilities\Spells\Other\HowlOfTerror\HowlCaster.mdl
      • -------- Time between casts --------
      • Set CB_Interval = 1.00
      • -------- Affect allies? --------
      • Set Spell__Filter_AllowAlly = True
      • -------- Effect used at the end of the spell. --------
      • Set CB_DestructionSFX = Abilities\Spells\Orc\FeralSpirit\feralspirittarget.mdl
      • -------- Circular formation (better not change this) --------
      • Set CB_Circle = (360.00 / (Real(CB_IndicatorCount)))
      • -------- Definitely don't touch these --------
      • Set Spell__Trigger_OnEffect = Chaos Banner <gen>
      • Set Spell__Trigger_OnLoop = Chaos Banner Loop <gen>
      • Trigger - Run Spell System <gen> (ignoring conditions)
  • Chaos Banner
    • Events
    • Conditions
    • Actions
      • Set Spell__Duration = CB_CDuration[Spell__Level]
      • Set Spell__Time = CB_Interval
      • -------- - --------
      • Unit - Create 1 Spell__DummyType for Spell__DummyOwner at Spell__TargetPoint facing Spell__TargetPoint
      • Set CB_Banner[Spell__Index] = (Last created unit)
      • -------- - --------
      • Unit - Pause CB_Banner[Spell__Index]
      • Animation - Change CB_Banner[Spell__Index]'s size to (CB_BannerSize[Spell__Level]%, 0.00%, 0.00%) of its original size
      • Special Effect - Create a special effect attached to the origin of CB_Banner[Spell__Index] using CB_BannerModel
      • Set CB_BannerSFX[Spell__Index] = (Last created special effect)
      • -------- - --------
      • Unit - Create 1 Spell__DummyType for Spell__DummyOwner at Spell__TargetPoint facing Spell__TargetPoint
      • Set CB_DummyCaster[Spell__Index] = (Last created unit)
  • Chaos Banner Loop
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Spell__Expired Equal to False
        • Then - Actions
          • Special Effect - Create a special effect attached to the origin of CB_Banner[Spell__Index] using CB_CastEffect
          • Special Effect - Destroy (Last created special effect)
          • -------- Setting up the group and getting the random unit. --------
          • Set Spell__InRangePoint = Spell__TargetPoint
          • Set Spell__InRange = CB_AoE[Spell__Level]
          • Set CB_RandomUnit = (Random unit from Spell__InRangeGroup)
          • -------- Issuing the ability order --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (CB_RandomUnit belongs to an ally of Spell__CasterOwner) Equal to False
            • Then - Actions
              • Set CB_RandomInteger = (Random integer number between 1 and CB_NegBuffCount[Spell__Index])
              • Set CB_Ability = CB_NegBuff[CB_RandomInteger]
              • Set CB_TempInteger = CB_NegOrderID[CB_RandomInteger]
            • Else - Actions
              • Set CB_RandomInteger = (Random integer number between 1 and CB_PosBuffCount[Spell__Level])
              • Set CB_Ability = CB_PosBuff[CB_RandomInteger]
              • Set CB_TempInteger = CB_PosOrderID[CB_RandomInteger]
          • Unit - Add CB_Ability to CB_DummyCaster[Spell__Index]
          • Unit - Set level of CB_Ability for CB_DummyCaster[Spell__Index] to Spell__Level
          • Custom script: call IssueTargetOrderById(udg_CB_DummyCaster[udg_Spell__Index], udg_CB_TempInteger, udg_CB_RandomUnit)
          • -------- Creating the indicators --------
          • For each (Integer CB_TempInteger) from 1 to CB_IndicatorCount, do (Actions)
            • Loop - Actions
              • Set CB_TempAngle = (CB_Circle x (Real(CB_TempInteger)))
              • Set CB_TempPoint2 = (Spell__TargetPoint offset by CB_AoE[Spell__Level] towards CB_TempAngle degrees)
              • Special Effect - Create a special effect at CB_TempPoint2 using CB_Indicator
              • Special Effect - Destroy (Last created special effect)
              • Custom script: call RemoveLocation(udg_CB_TempPoint2)
        • Else - Actions
          • -------- Deindexing. --------
          • Special Effect - Create a special effect at Spell__TargetPoint using CB_DestructionSFX
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Destroy CB_BannerSFX[Spell__Index]
          • Unit - Remove CB_Banner[Spell__Index] from the game
          • Unit - Remove CB_DummyCaster[Spell__Index] from the game
Attached is the map.
 

Attachments

  • Chaos Banner v2.0.w3x
    41.3 KB · Views: 95
Level 11
Joined
Jul 25, 2014
Messages
490
Hey Bribe,

I am mesmerized by how well your system works, never thought about that you would rework it using your system. It really reduced the ammount of code lines.
Also I would like to say that I'm honored that you used my ability as an example of your system. Will now check how it works ingame!

EDIT: Astonishing! I also noticed that it the instances work seperately, not all at once, definitely something that catches my eye and amazes me.
 
Level 11
Joined
Jul 25, 2014
Messages
490
That's something that dazzled me in my own spell because I tried using the dummy player as Neutral Passive because that's what is used in most dummy players, but it didn't seem to work.

Then I tried doing that with Neutral Hostile, had a weird interraction, it sometimes affected me (the caster) at weird intervals, so that was a huge nope.

And then I tried using Neutral Extra, that worked out perfectly, well the point of the dummy player is for it to be a non-user, so I guess that doesn't matter in the end.

Tank-Commander did mention that when he used a dummy player in my earlier spell versions, it worked fine, but I didn't get into it, didn't want to roll back and see what the problem was as the spell was already running flawlessly.
 
Top