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

[GUI]Multicast v1.2

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
GUI Multicast ability.
Right now!, I made it into one trigger and change the chance variable from integer variable become to real variable.


  • Multicast Learn
  • Multicast Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Chaotic Multicast
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Learning Hero) is in Multicast_Learn) Equal to False
        • Then - Actions
          • Unit Group - Add (Learning Hero) to Multicast_Learn
        • Else - Actions

  • Multicast Loop
  • Multicast Loop
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • ((Triggering unit) is in Multicast_Learn) Equal to True
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Storm Bolt [0]
          • (Ability being cast) Equal to Storm Bolt [1]
          • (Ability being cast) Equal to Storm Bolt [2]
          • (Ability being cast) Equal to Storm Bolt [3]
          • (Ability being cast) Equal to Shockwave [0]
          • (Ability being cast) Equal to Shockwave [1]
          • (Ability being cast) Equal to Shockwave [2]
          • (Ability being cast) Equal to Shockwave [3]
          • (Ability being cast) Equal to War Stomp [0]
          • (Ability being cast) Equal to War Stomp [1]
          • (Ability being cast) Equal to War Stomp [2]
          • (Ability being cast) Equal to War Stomp [3]
    • Actions
      • Set Multicast_Cast = (Triggering unit)
      • Set Multicast_CastPoint = (Position of Multicast_Cast)
      • Set Multicast_DummyPoint = (Multicast_CastPoint offset by 25.00 towards (Facing of Multicast_Cast) degrees)
      • Set Multicast_Target = (Target unit of ability being cast)
      • Set Multicast_TargetPoint = (Target point of ability being cast)
      • Set Multicast_MultiLv = (Level of Chaotic Multicast for Multicast_Cast)
      • Set Multicast_Type_Ability_Cast = (Ability being cast)
      • Set Multicast_AbilityLv = (Level of Multicast_Type_Ability_Cast for Multicast_Cast)
      • Set Multicast_Order = (Current order of Multicast_Cast)
      • Set Multicast_Up_To = 0
      • Set Chance_Multicast = (Random real number between 1.00 and 100.00)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multicast_MultiLv Equal to 1
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Chance_Multicast Less than or equal to 25.00
            • Then - Actions
              • Set Multicast_Up_To = 1
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than or equal to 26.00) and (Chance_Multicast Less than or equal to 35.00)
            • Then - Actions
              • Set Multicast_Up_To = 2
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than or equal to 36.00) and (Chance_Multicast Less than or equal to 40.00)
            • Then - Actions
              • Set Multicast_Up_To = 3
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multicast_MultiLv Equal to 2
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Chance_Multicast Less than or equal to 35.00
            • Then - Actions
              • Set Multicast_Up_To = 1
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 35.00) and (Chance_Multicast Less than or equal to 55.00)
            • Then - Actions
              • Set Multicast_Up_To = 2
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 55.00) and (Chance_Multicast Less than or equal to 65.00)
            • Then - Actions
              • Set Multicast_Up_To = 3
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 65.00) and (Chance_Multicast Less than or equal to 70.00)
            • Then - Actions
              • Set Multicast_Up_To = 4
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 70.00) and (Chance_Multicast Less than or equal to 71.00)
            • Then - Actions
              • Set Multicast_Up_To = 5
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multicast_MultiLv Equal to 3
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Chance_Multicast Less than or equal to 40.00
            • Then - Actions
              • Set Multicast_Up_To = 1
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 40.00) and (Chance_Multicast Less than or equal to 65.00)
            • Then - Actions
              • Set Multicast_Up_To = 2
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 65.00) and (Chance_Multicast Less than or equal to 80.00)
            • Then - Actions
              • Set Multicast_Up_To = 3
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 80.00) and (Chance_Multicast Less than or equal to 90.00)
            • Then - Actions
              • Set Multicast_Up_To = 4
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 90.00) and (Chance_Multicast Less than or equal to 95.00)
            • Then - Actions
              • Set Multicast_Up_To = 5
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 95.00) and (Chance_Multicast Less than or equal to 98.00)
            • Then - Actions
              • Set Multicast_Up_To = 6
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Chance_Multicast Greater than 98.00) and (Chance_Multicast Less than or equal to 99.00)
            • Then - Actions
              • Set Multicast_Up_To = 7
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multicast_Up_To Greater than 0
        • Then - Actions
          • Floating Text - Create floating text that reads (Multicast x + (String((Multicast_Up_To + 1)))) at Multicast_CastPoint with Z offset 0.00, using font size 13.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
          • Floating Text - Change (Last created floating text): Disable permanence
          • Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
          • Floating Text - Change the fading age of (Last created floating text) to 3.00 seconds
          • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TriggerCheck Equal to True
            • Then - Actions
              • Cinematic - Clear the screen of text messages for (Player group((Owner of Multicast_Cast)))
            • Else - Actions
          • For each (Integer Multicast_Create_Loop) from 1 to Multicast_Up_To, do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TriggerCheck Equal to True
                • Then - Actions
                  • Quest - Display to (All players) the Quest Update message: (+ + ((String(Multicast_Create_Loop)) + dummy))
                • Else - Actions
              • Unit - Create 1 Dummy for (Owner of Multicast_Cast) at Multicast_DummyPoint facing Default building facing degrees
              • Set Multicast_Dummy_Array[Multicast_Create_Loop] = (Last created unit)
              • Unit - Add a 1.50 second Generic expiration timer to Multicast_Dummy_Array[Multicast_Create_Loop]
              • Unit - Add Multicast_Type_Ability_Cast to Multicast_Dummy_Array[Multicast_Create_Loop]
              • Unit - Set level of Multicast_Type_Ability_Cast for Multicast_Dummy_Array[Multicast_Create_Loop] to (Level of Multicast_Type_Ability_Cast for Multicast_Cast)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TriggerCheck Equal to True
            • Then - Actions
              • Quest - Display to (All players) the Quest Update message: -------------------...
            • Else - Actions
          • For each (Integer Multicast_Up_To_Loop) from 1 to Multicast_Up_To, do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TriggerCheck Equal to True
                • Then - Actions
                  • Quest - Display to (All players) the Quest Update message: (+ + ((String(Multicast_Up_To_Loop)) + cast))
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Playable map area) contains Multicast_TargetPoint) Equal to True
                • Then - Actions
                  • Custom script: call IssuePointOrderByIdLoc( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_TargetPoint )
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Multicast_Target Not equal to No unit
                • Then - Actions
                  • Custom script: call IssueTargetOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_Target )
                  • Custom script: call IssueImmediateOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order )
                • Else - Actions
              • Custom script: set udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop] = null
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TriggerCheck Equal to True
            • Then - Actions
              • Quest - Display to (All players) the Quest Update message: -------------------...
            • Else - Actions
        • Else - Actions
      • Custom script: set udg_Multicast_Cast = null
      • Custom script: call RemoveLocation(udg_Multicast_CastPoint)
      • Custom script: call RemoveLocation(udg_Multicast_DummyPoint)
      • Custom script: set udg_Multicast_Target = null
      • Custom script: call RemoveLocation(udg_Multicast_TargetPoint)
      • Custom script: set udg_Multicast_Order = GetUnitCurrentOrder(null)
      • Custom script: set udg_Chance_Multicast = 100


//Version 1.0
-First release version

//Version 1.1
-Add command to remove a leak by custom trigger.(that I forgot to add in older version)
-Get rid of the waits triggers.

//Version 1.2
-Squeeze Multicast lv 1,2,3 trigger into Multicast Loop.
-Change the chance variable from integer variable become to real variable.
-Aet variable to create dummy instead.
>>>Old: For each (Integer A) from 1 to (3/5/7), do (Actions)
>>>New: For each (Integer Variable) from 1 to Variable, do (Actions)
-Aeduce duration time dummy life from 2.50 to be 1.25 seconds.
-Add the action checker.
-Add command for learn abilities.


Keywords:
multicast, chaotic multicast, spellpack, spell, ability
Contents

Chaotic Multicast v1.2 (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 11:14 23 Apr 2014 BPower: Still lacking important things I've mentioned one month ago. Furthermore the whole script does match the required standart for approval. I suggest you check out...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

11:14 23 Apr 2014
BPower:
Still lacking important things I've mentioned one month ago.
Furthermore the whole script does match the required standart for approval.
I suggest you check out other approved systems or go through some tutorials in our tutorial section. In its current form I can't approve this system.

13:38, 21st Mar 2014
BPower:
The issues I mentioned still exist. I'll set this now to "Need Fix".
 
Level 10
Joined
Aug 21, 2010
Messages
316
  • Multicast Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Chaotic Multicast
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Learning Hero) is in Multicast_Learn) Equal to False
        • Then - Actions
          • Unit Group - Add (Learning Hero) to Multicast_Learn
        • Else - Actions
  • Multicast Lv1
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • ((Triggering unit) is in Multicast_Learn) Equal to True
      • (Level of Chaotic Multicast for (Triggering unit)) Equal to 1
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Storm Bolt [0]
          • (Ability being cast) Equal to Storm Bolt [1]
          • (Ability being cast) Equal to Storm Bolt [2]
          • (Ability being cast) Equal to Storm Bolt [3]
          • (Ability being cast) Equal to Shockwave [0]
          • (Ability being cast) Equal to Shockwave [1]
          • (Ability being cast) Equal to Shockwave [2]
          • (Ability being cast) Equal to Shockwave [3]
          • (Ability being cast) Equal to War Stomp [0]
          • (Ability being cast) Equal to War Stomp [1]
          • (Ability being cast) Equal to War Stomp [2]
          • (Ability being cast) Equal to War Stomp [3]
    • Actions
      • Set Multicast_Cast = (Triggering unit)
      • Set Multicast_CastPoint = (Position of Multicast_Cast)
      • Set Multicast_DummyPoint = (Multicast_CastPoint offset by 25.00 towards (Facing of Multicast_Cast) degrees)
      • Set Multicast_Target = (Target unit of ability being cast)
      • Set Multicast_TargetPoint = (Target point of ability being cast)
      • Set Multicast_Type_Ability_Cast = (Ability being cast)
      • Set Multicast_Order = (Current order of Multicast_Cast)
      • Set Multicast_Up_To = 1
      • Set Chance_Multicast = (Random integer number between 1 and 100)
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for (Owner of Multicast_Cast) at Multicast_DummyPoint facing Default building facing degrees
          • Set Multicast_Dummy_Array[(Integer A)] = (Last created unit)
          • Unit - Add a 4.00 second Generic expiration timer to Multicast_Dummy_Array[(Integer A)]
          • Unit - Add Multicast_Type_Ability_Cast to Multicast_Dummy_Array[(Integer A)]
          • Unit - Set level of Multicast_Type_Ability_Cast for Multicast_Dummy_Array[(Integer A)] to (Level of Multicast_Type_Ability_Cast for Multicast_Cast)
      • Wait 0.01 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Chance_Multicast Less than or equal to 25
        • Then - Actions
          • Set Multicast_Up_To = 2
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 26) and (Chance_Multicast Less than or equal to 35)
        • Then - Actions
          • Set Multicast_Up_To = 3
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 36) and (Chance_Multicast Less than or equal to 40)
        • Then - Actions
          • Set Multicast_Up_To = 4
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multicast_Up_To Greater than 1
        • Then - Actions
          • Floating Text - Create floating text that reads (Multicast x + (String(Multicast_Up_To))) at Multicast_CastPoint with Z offset 0.00, using font size 13.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
          • Floating Text - Change (Last created floating text): Disable permanence
          • Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
          • Floating Text - Change the fading age of (Last created floating text) to 3.00 seconds
          • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
        • Else - Actions
      • Set Multicast_Up_To = (Multicast_Up_To - 1)
      • Wait 0.01 seconds
      • For each (Integer Multicast_Up_To_Loop) from 1 to Multicast_Up_To, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Playable map area) contains Multicast_TargetPoint) Equal to True
            • Then - Actions
              • call IssuePointOrderByIdLoc( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_TargetPoint )
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Multicast_Target Not equal to No unit
            • Then - Actions
              • call IssueTargetOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_Target )
              • call IssueImmediateOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order )
            • Else - Actions
      • Wait 0.01 seconds
      • call RemoveLocation(udg_Multicast_CastPoint)
      • call RemoveLocation(udg_Multicast_TargetPoint)
  • Multicast Lv2
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • ((Triggering unit) is in Multicast_Learn) Equal to True
      • (Level of Chaotic Multicast for (Triggering unit)) Equal to 2
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Storm Bolt [0]
          • (Ability being cast) Equal to Storm Bolt [1]
          • (Ability being cast) Equal to Storm Bolt [2]
          • (Ability being cast) Equal to Storm Bolt [3]
          • (Ability being cast) Equal to Shockwave [0]
          • (Ability being cast) Equal to Shockwave [1]
          • (Ability being cast) Equal to Shockwave [2]
          • (Ability being cast) Equal to Shockwave [3]
          • (Ability being cast) Equal to War Stomp [0]
          • (Ability being cast) Equal to War Stomp [1]
          • (Ability being cast) Equal to War Stomp [2]
          • (Ability being cast) Equal to War Stomp [3]
    • Actions
      • Set Multicast_Cast = (Triggering unit)
      • Set Multicast_CastPoint = (Position of Multicast_Cast)
      • Set Multicast_DummyPoint = (Multicast_CastPoint offset by 25.00 towards (Facing of Multicast_Cast) degrees)
      • Set Multicast_Target = (Target unit of ability being cast)
      • Set Multicast_TargetPoint = (Target point of ability being cast)
      • Set Multicast_Type_Ability_Cast = (Ability being cast)
      • Set Multicast_Order = (Current order of Multicast_Cast)
      • Set Multicast_Up_To = 1
      • Set Chance_Multicast = (Random integer number between 1 and 100)
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for (Owner of Multicast_Cast) at Multicast_DummyPoint facing Default building facing degrees
          • Set Multicast_Dummy_Array[(Integer A)] = (Last created unit)
          • Unit - Add a 4.00 second Generic expiration timer to Multicast_Dummy_Array[(Integer A)]
          • Unit - Add Multicast_Type_Ability_Cast to Multicast_Dummy_Array[(Integer A)]
          • Unit - Set level of Multicast_Type_Ability_Cast for Multicast_Dummy_Array[(Integer A)] to (Level of Multicast_Type_Ability_Cast for Multicast_Cast)
      • Wait 0.01 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Chance_Multicast Less than or equal to 35
        • Then - Actions
          • Set Multicast_Up_To = 2
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 36) and (Chance_Multicast Less than or equal to 55)
        • Then - Actions
          • Set Multicast_Up_To = 3
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 56) and (Chance_Multicast Less than or equal to 65)
        • Then - Actions
          • Set Multicast_Up_To = 4
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 66) and (Chance_Multicast Less than or equal to 70)
        • Then - Actions
          • Set Multicast_Up_To = 5
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Chance_Multicast Equal to 71
        • Then - Actions
          • Set Multicast_Up_To = 6
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multicast_Up_To Greater than 1
        • Then - Actions
          • Floating Text - Create floating text that reads (Multicast x + (String(Multicast_Up_To))) at Multicast_CastPoint with Z offset 0.00, using font size 13.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
          • Floating Text - Change (Last created floating text): Disable permanence
          • Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
          • Floating Text - Change the fading age of (Last created floating text) to 3.00 seconds
          • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
        • Else - Actions
      • Set Multicast_Up_To = (Multicast_Up_To - 1)
      • Wait 0.01 seconds
      • For each (Integer Multicast_Up_To_Loop) from 1 to Multicast_Up_To, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Playable map area) contains Multicast_TargetPoint) Equal to True
            • Then - Actions
              • call IssuePointOrderByIdLoc( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_TargetPoint )
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Multicast_Target Not equal to No unit
            • Then - Actions
              • call IssueTargetOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_Target )
              • call IssueImmediateOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order )
            • Else - Actions
      • Wait 0.01 seconds
      • call RemoveLocation(udg_Multicast_CastPoint)
      • call RemoveLocation(udg_Multicast_TargetPoint)
  • Multicast Lv3
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • ((Triggering unit) is in Multicast_Learn) Equal to True
      • (Level of Chaotic Multicast for (Triggering unit)) Equal to 3
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Storm Bolt [0]
          • (Ability being cast) Equal to Storm Bolt [1]
          • (Ability being cast) Equal to Storm Bolt [2]
          • (Ability being cast) Equal to Storm Bolt [3]
          • (Ability being cast) Equal to Shockwave [0]
          • (Ability being cast) Equal to Shockwave [1]
          • (Ability being cast) Equal to Shockwave [2]
          • (Ability being cast) Equal to Shockwave [3]
          • (Ability being cast) Equal to War Stomp [0]
          • (Ability being cast) Equal to War Stomp [1]
          • (Ability being cast) Equal to War Stomp [2]
          • (Ability being cast) Equal to War Stomp [3]
    • Actions
      • Set Multicast_Cast = (Triggering unit)
      • Set Multicast_CastPoint = (Position of Multicast_Cast)
      • Set Multicast_DummyPoint = (Multicast_CastPoint offset by 25.00 towards (Facing of Multicast_Cast) degrees)
      • Set Multicast_Target = (Target unit of ability being cast)
      • Set Multicast_TargetPoint = (Target point of ability being cast)
      • Set Multicast_Type_Ability_Cast = (Ability being cast)
      • Set Multicast_Order = (Current order of Multicast_Cast)
      • Set Multicast_Up_To = 1
      • Set Chance_Multicast = (Random integer number between 1 and 100)
      • For each (Integer A) from 1 to 7, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for (Owner of Multicast_Cast) at Multicast_DummyPoint facing Default building facing degrees
          • Set Multicast_Dummy_Array[(Integer A)] = (Last created unit)
          • Unit - Add a 4.00 second Generic expiration timer to Multicast_Dummy_Array[(Integer A)]
          • Unit - Add Multicast_Type_Ability_Cast to Multicast_Dummy_Array[(Integer A)]
          • Unit - Set level of Multicast_Type_Ability_Cast for Multicast_Dummy_Array[(Integer A)] to (Level of Multicast_Type_Ability_Cast for Multicast_Cast)
      • Wait 0.01 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Chance_Multicast Less than or equal to 40
        • Then - Actions
          • Set Multicast_Up_To = 2
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 41) and (Chance_Multicast Less than or equal to 65)
        • Then - Actions
          • Set Multicast_Up_To = 3
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 66) and (Chance_Multicast Less than or equal to 80)
        • Then - Actions
          • Set Multicast_Up_To = 4
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 81) and (Chance_Multicast Less than or equal to 90)
        • Then - Actions
          • Set Multicast_Up_To = 5
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 91) and (Chance_Multicast Less than or equal to 95)
        • Then - Actions
          • Set Multicast_Up_To = 6
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Chance_Multicast Greater than or equal to 96) and (Chance_Multicast Less than or equal to 98)
        • Then - Actions
          • Set Multicast_Up_To = 7
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Chance_Multicast Equal to 99
        • Then - Actions
          • Set Multicast_Up_To = 8
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multicast_Up_To Greater than 1
        • Then - Actions
          • Floating Text - Create floating text that reads (Multicast x + (String(Multicast_Up_To))) at Multicast_CastPoint with Z offset 0.00, using font size 13.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
          • Floating Text - Change (Last created floating text): Disable permanence
          • Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
          • Floating Text - Change the fading age of (Last created floating text) to 3.00 seconds
          • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
        • Else - Actions
      • Set Multicast_Up_To = (Multicast_Up_To - 1)
      • Wait 0.01 seconds
      • For each (Integer Multicast_Up_To_Loop) from 1 to Multicast_Up_To, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Playable map area) contains Multicast_TargetPoint) Equal to True
            • Then - Actions
              • call IssuePointOrderByIdLoc( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_TargetPoint )
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Multicast_Target Not equal to No unit
            • Then - Actions
              • call IssueTargetOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order, udg_Multicast_Target )
              • call IssueImmediateOrderById( udg_Multicast_Dummy_Array[udg_Multicast_Up_To_Loop], udg_Multicast_Order )
            • Else - Actions
      • Wait 0.01 seconds
      • call RemoveLocation(udg_Multicast_CastPoint)
      • call RemoveLocation(udg_Multicast_TargetPoint)
  • added
    • Events
      • Time - Elapsed game time is 1.00 seconds
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) is in SD_Group) Equal to False)) and do (Actions)
        • Loop - Actions
          • Trigger - Add to sd loop <gen> the event (Unit - (Picked unit) Takes damage)
          • Unit Group - Add (Picked unit) to SD_Group
  • sd loop
    • Events
    • Conditions
    • Actions
      • Floating Text - Create floating text that reads (String((Integer((Damage taken))))) above (Triggering unit) with Z offset 25.00, using font size 10.00, color (70.00%, 15.00%, 15.00%), and 10.00% transparency
      • Floating Text - Change (Last created floating text): Disable permanence
      • Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
      • Floating Text - Change the fading age of (Last created floating text) to 3.00 seconds
      • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
Post your triggers in the spell description...

As I have said above remove integer A / B. They are slower and less efficient.
Removing leaks is not to make spell look better or worse. It is for cleaning leaks that would otherwise add up and cause game to lag out.

Take a look at my tutorial. Things You Should Know When Using Triggers / GUI
It is in my sig.
 
Level 19
Joined
Mar 18, 2012
Messages
1,716
Hello enterprise,
we always appreciate if the spell description also contains the Triggers of the current version. The BB code for posting Triggers is TRIGGER ... /TRIGGER.

I've taken a look into the uploaded map and currently it is "Need Fix" material.
I'll leave the spell as "Pending" for a few more days and see how the code develops.
You can always start a thread in Triggers&Scripts, if you need help.

1. Your first goal should be to squeeze multicast lvl 1,2,3 into one trigger.
2. Reduce the number of dummy casters to a minimum. At least only 1 per cast. I would prefer 1 caster for the whole game season.
3. Like every spell submission multicast requires a decent user configuration. In GUI you create a second trigger running on map init. Every constant configurable variable will be set there. Magic numbers should also be configurable. A good rule is that only the number 0, 1 and -1 is not configurable inside your scipt code. I'm talking about multicast chances.
4. The if then else conditions are quite messy.
5. Preferable don't use IntegerA/B, but a custom integer variable. Mainly because they are more safe to use. You also gain a little bit of execution speed, which is a welcome bonus.
6. You shouldn't check explicit for the ability beeing cast inside the condition. Multicasts should apply for any casted spell, if the caster has the multicast ability learned.
Providing different effects based on the ability id is quite difficult in GUI, therefore I think it's best to just order that spell x times over and over again.
 
Level 10
Joined
Aug 21, 2010
Messages
316
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 1
  • Then - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Chance_Multicast Less than or equal to 25.00
  • Then - Actions
  • Set Multicast_Up_To = 1
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than or equal to 26.00) and (Chance_Multicast Less than or equal to 35.00)
  • Then - Actions
  • Set Multicast_Up_To = 2
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than or equal to 36.00) and (Chance_Multicast Less than or equal to 40.00)
  • Then - Actions
  • Set Multicast_Up_To = 3
  • Else - Actions
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 2
  • Then - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Chance_Multicast Less than or equal to 35.00
  • Then - Actions
  • Set Multicast_Up_To = 1
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 35.00) and (Chance_Multicast Less than or equal to 55.00)
  • Then - Actions
  • Set Multicast_Up_To = 2
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 55.00) and (Chance_Multicast Less than or equal to 65.00)
  • Then - Actions
  • Set Multicast_Up_To = 3
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 65.00) and (Chance_Multicast Less than or equal to 70.00)
  • Then - Actions
  • Set Multicast_Up_To = 4
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 70.00) and (Chance_Multicast Less than or equal to 71.00)
  • Then - Actions
  • Set Multicast_Up_To = 5
  • Else - Actions
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 3
  • Then - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Chance_Multicast Less than or equal to 40.00
  • Then - Actions
  • Set Multicast_Up_To = 1
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 40.00) and (Chance_Multicast Less than or equal to 65.00)
  • Then - Actions
  • Set Multicast_Up_To = 2
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 65.00) and (Chance_Multicast Less than or equal to 80.00)
  • Then - Actions
  • Set Multicast_Up_To = 3
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 80.00) and (Chance_Multicast Less than or equal to 90.00)
  • Then - Actions
  • Set Multicast_Up_To = 4
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 90.00) and (Chance_Multicast Less than or equal to 95.00)
  • Then - Actions
  • Set Multicast_Up_To = 5
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 95.00) and (Chance_Multicast Less than or equal to 98.00)
  • Then - Actions
  • Set Multicast_Up_To = 6
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 98.00) and (Chance_Multicast Less than or equal to 99.00)
  • Then - Actions
  • Set Multicast_Up_To = 7
  • Else - Actions
  • Else - Actions
 
Level 3
Joined
Oct 8, 2012
Messages
24
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 1
  • Then - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Chance_Multicast Less than or equal to 25.00
  • Then - Actions
  • Set Multicast_Up_To = 1
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than or equal to 26.00) and (Chance_Multicast Less than or equal to 35.00)
  • Then - Actions
  • Set Multicast_Up_To = 2
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than or equal to 36.00) and (Chance_Multicast Less than or equal to 40.00)
  • Then - Actions
  • Set Multicast_Up_To = 3
  • Else - Actions
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 2
  • Then - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Chance_Multicast Less than or equal to 35.00
  • Then - Actions
  • Set Multicast_Up_To = 1
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 35.00) and (Chance_Multicast Less than or equal to 55.00)
  • Then - Actions
  • Set Multicast_Up_To = 2
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 55.00) and (Chance_Multicast Less than or equal to 65.00)
  • Then - Actions
  • Set Multicast_Up_To = 3
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 65.00) and (Chance_Multicast Less than or equal to 70.00)
  • Then - Actions
  • Set Multicast_Up_To = 4
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 70.00) and (Chance_Multicast Less than or equal to 71.00)
  • Then - Actions
  • Set Multicast_Up_To = 5
  • Else - Actions
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 3
  • Then - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Chance_Multicast Less than or equal to 40.00
  • Then - Actions
  • Set Multicast_Up_To = 1
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 40.00) and (Chance_Multicast Less than or equal to 65.00)
  • Then - Actions
  • Set Multicast_Up_To = 2
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 65.00) and (Chance_Multicast Less than or equal to 80.00)
  • Then - Actions
  • Set Multicast_Up_To = 3
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 80.00) and (Chance_Multicast Less than or equal to 90.00)
  • Then - Actions
  • Set Multicast_Up_To = 4
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 90.00) and (Chance_Multicast Less than or equal to 95.00)
  • Then - Actions
  • Set Multicast_Up_To = 5
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 95.00) and (Chance_Multicast Less than or equal to 98.00)
  • Then - Actions
  • Set Multicast_Up_To = 6
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • (Chance_Multicast Greater than 98.00) and (Chance_Multicast Less than or equal to 99.00)
  • Then - Actions
  • Set Multicast_Up_To = 7
  • Else - Actions
  • Else - Actions
thank you zv27 that it have a lines so much too. I ever think that it should be reduced.
Of course!, if I use "If/then/else" instead this "If/then/else(multi action)" :thumbs_up:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Multicast_MultiLv Equal to 1
    • Then - Actions
      • If (Chance_Multicast Less than or equal to 25.00) then do (Set Multicast_Up_To = 1) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 26.00) and (Chance_Multicast Less than or equal to 35.00)) then do (Set Multicast_Up_To = 2) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 36.00) and (Chance_Multicast Less than or equal to 40.00)) then do (Set Multicast_Up_To = 3) else do (Do nothing)
    • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Multicast_MultiLv Equal to 2
    • Then - Actions
      • If (Chance_Multicast Less than or equal to 35.00) then do (Set Multicast_Up_To = 1) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 35.00) and (Chance_Multicast Less than or equal to 55.00)) then do (Set Multicast_Up_To = 2) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 55.00) and (Chance_Multicast Less than or equal to 65.00)) then do (Set Multicast_Up_To = 3) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 65.00) and (Chance_Multicast Less than or equal to 70.00)) then do (Set Multicast_Up_To = 4) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 70.00) and (Chance_Multicast Less than or equal to 71.00)) then do (Set Multicast_Up_To = 5) else do (Do nothing)
    • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Multicast_MultiLv Equal to 3
    • Then - Actions
      • If (Chance_Multicast Less than or equal to 40.00) then do (Set Multicast_Up_To = 1) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 40.00) and (Chance_Multicast Less than or equal to 65.00)) then do (Set Multicast_Up_To = 2) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 65.00) and (Chance_Multicast Less than or equal to 80.00)) then do (Set Multicast_Up_To = 3) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 80.00) and (Chance_Multicast Less than or equal to 90.00)) then do (Set Multicast_Up_To = 4) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 90.00) and (Chance_Multicast Less than or equal to 95.00)) then do (Set Multicast_Up_To = 5) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 95.00) and (Chance_Multicast Less than or equal to 98.00)) then do (Set Multicast_Up_To = 6) else do (Do nothing)
      • If ((Chance_Multicast Greater than or equal to 98.00) and (Chance_Multicast Less than or equal to 99.00)) then do (Set Multicast_Up_To = 7) else do (Do nothing)
    • Else - Actions
 
Level 3
Joined
Oct 8, 2012
Messages
24
Don't use DoNothing...
Comment instead...
DoNothing is a useless call that slows your code...

Use "comment" instead "DoNothing" :thumbs_up: or :thumbs_down:
:fp:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Multicast_MultiLv Equal to 1
    • Then - Actions
      • If (Chance_Multicast Less than or equal to 25.00) then do (Set Multicast_Up_To = 1) else do (-------- 25.00% chance to cast twice time --------)
      • If ((Chance_Multicast Greater than or equal to 26.00) and (Chance_Multicast Less than or equal to 35.00)) then do (Set Multicast_Up_To = 2) else do (-------- 10.00% chance to cast third time --------)
      • If ((Chance_Multicast Greater than or equal to 36.00) and (Chance_Multicast Less than or equal to 40.00)) then do (Set Multicast_Up_To = 3) else do (-------- 5.00% chance to cast fourth time --------)
    • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Multicast_MultiLv Equal to 2
    • Then - Actions
      • If (Chance_Multicast Less than or equal to 35.00) then do (Set Multicast_Up_To = 1) else do (-------- 35.00% chance to cast twice time --------)
      • If ((Chance_Multicast Greater than or equal to 35.00) and (Chance_Multicast Less than or equal to 55.00)) then do (Set Multicast_Up_To = 2) else do (-------- 25.00% chance to cast third time --------)
      • If ((Chance_Multicast Greater than or equal to 55.00) and (Chance_Multicast Less than or equal to 65.00)) then do (Set Multicast_Up_To = 3) else do (-------- 10.00% chance to cast fourth time --------)
      • If ((Chance_Multicast Greater than or equal to 65.00) and (Chance_Multicast Less than or equal to 70.00)) then do (Set Multicast_Up_To = 4) else do (-------- 5.00% chance to cast fifth time --------)
      • If ((Chance_Multicast Greater than or equal to 70.00) and (Chance_Multicast Less than or equal to 71.00)) then do (Set Multicast_Up_To = 5) else do (-------- 1.00% chance to cast sixth time --------)
    • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Multicast_MultiLv Equal to 3
    • Then - Actions
      • If (Chance_Multicast Less than or equal to 40.00) then do (Set Multicast_Up_To = 1) else do (-------- 40.00% chance to cast twice time --------)
      • If ((Chance_Multicast Greater than or equal to 40.00) and (Chance_Multicast Less than or equal to 65.00)) then do (Set Multicast_Up_To = 2) else do (-------- 25.00% chance to cast third time --------)
      • If ((Chance_Multicast Greater than or equal to 65.00) and (Chance_Multicast Less than or equal to 80.00)) then do (Set Multicast_Up_To = 3) else do (-------- 15.00% chance to cast fourth time --------)
      • If ((Chance_Multicast Greater than or equal to 80.00) and (Chance_Multicast Less than or equal to 90.00)) then do (Set Multicast_Up_To = 4) else do (-------- 10.00% chance to cast fifth time --------)
      • If ((Chance_Multicast Greater than or equal to 90.00) and (Chance_Multicast Less than or equal to 95.00)) then do (Set Multicast_Up_To = 5) else do (-------- 5.00% chance to cast sixth time --------)
      • If ((Chance_Multicast Greater than or equal to 95.00) and (Chance_Multicast Less than or equal to 98.00)) then do (Set Multicast_Up_To = 6) else do (-------- 3.00% chance to cast seventh time --------)
      • If ((Chance_Multicast Greater than or equal to 98.00) and (Chance_Multicast Less than or equal to 99.00)) then do (Set Multicast_Up_To = 7) else do (-------- 1.00% chance to cast eighth time --------)
    • Else - Actions
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Yea thats fine. But "DoNothing" isnt really a problem either, if you are so desperate for performance that you care about a few empty functioncalls then you shouldnt use GUI. Also your whole design isnt 100% optimized for performance.

But none of this matters, its not like your trigger runs 200 times every second, so you wont be able to notice a difference.
 
Level 3
Joined
Oct 8, 2012
Messages
24
Yea thats fine. But "DoNothing" isnt really a problem either, if you are so desperate for performance that you care about a few empty functioncalls then you shouldnt use GUI. Also your whole design isnt 100% optimized for performance.

But none of this matters, its not like your trigger runs 200 times every second, so you wont be able to notice a difference.

Thank you for knowledge :goblin_good_job:
 
Level 10
Joined
Aug 21, 2010
Messages
316
I said a few lines...hmmm
This is worse shit than the previous

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 1
  • Then - Actions
  • If (Chance_Multicast Less than or equal to 25.00) then do (Set Multicast_Up_To = 1) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 26.00) and (Chance_Multicast Less than or equal to 35.00)) then do (Set Multicast_Up_To = 2) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 36.00) and (Chance_Multicast Less than or equal to 40.00)) then do (Set Multicast_Up_To = 3) else do (Do nothing)
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 2
  • Then - Actions
  • If (Chance_Multicast Less than or equal to 35.00) then do (Set Multicast_Up_To = 1) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 35.00) and (Chance_Multicast Less than or equal to 55.00)) then do (Set Multicast_Up_To = 2) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 55.00) and (Chance_Multicast Less than or equal to 65.00)) then do (Set Multicast_Up_To = 3) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 65.00) and (Chance_Multicast Less than or equal to 70.00)) then do (Set Multicast_Up_To = 4) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 70.00) and (Chance_Multicast Less than or equal to 71.00)) then do (Set Multicast_Up_To = 5) else do (Do nothing)
  • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • Multicast_MultiLv Equal to 3
  • Then - Actions
  • If (Chance_Multicast Less than or equal to 40.00) then do (Set Multicast_Up_To = 1) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 40.00) and (Chance_Multicast Less than or equal to 65.00)) then do (Set Multicast_Up_To = 2) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 65.00) and (Chance_Multicast Less than or equal to 80.00)) then do (Set Multicast_Up_To = 3) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 80.00) and (Chance_Multicast Less than or equal to 90.00)) then do (Set Multicast_Up_To = 4) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 90.00) and (Chance_Multicast Less than or equal to 95.00)) then do (Set Multicast_Up_To = 5) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 95.00) and (Chance_Multicast Less than or equal to 98.00)) then do (Set Multicast_Up_To = 6) else do (Do nothing)
  • If ((Chance_Multicast Greater than or equal to 98.00) and (Chance_Multicast Less than or equal to 99.00)) then do (Set Multicast_Up_To = 7) else do (Do nothing)
  • Else - Actions
 
Level 3
Joined
Oct 8, 2012
Messages
24
I shouldn't do anything so better then waiting this post become to "Need Fix". If you tell an unclear suggestion. Also it hard too for me to made it with GUI.

I'm lazy and bored to fix it. Just it's look good and recommend for newbies. Not for you that are specialization and can make it with Jass code that I can't do it. So you should understand about this reason.
 
Level 10
Joined
Aug 21, 2010
Messages
316
Just it's look good and recommend for newbies. Not for you that are specialization and can do it with Jass code that I can't do it. So you should understand about this reason.

That's OK.

You do not need JASS to optimize this

BTW, I'm not a specialist. Trust me I'm a bigger nob than you
 
Top