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

Starburst Stream GUI

This bundle is marked as awaiting update. A staff member has requested changes to it before it can be approved.
  • Like
Reactions: Vinz
Starburst Stream by Berato, Inspired with anime Sword Art Online so i decide to create this spell.This spell are MUI. :):)
  • Preload
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Point = (Center of (Playable map area))
      • Set DummyCaster = Dummy Caster
      • Unit - Create 1 DummyCaster for Player 1 (Red) at Point facing Default building facing degrees
      • Unit - Add Storm Bolt (Starburst) to (Last created unit)
      • Unit - Hide (Last created unit)
      • Custom script: call RemoveLocation(udg_Point)
      • -------- For Prevent Loop Bug --------
      • Set StarburstLoop = 0
      • -------- Delay for Starburst Required --------
      • Set KiritoDelay = 10.00
      • -------- Count per slash --------
      • Set KiritoSlashCount = 30.00
      • -------- Delay for Final Blow --------
      • Set KiritoFinalDelay = 11.00
      • -------- Ability Cast --------
      • Set StarburstAbility = Starburst Stream
      • -------- Damage dealt per hit --------
      • Set StarburstDamage[1] = 15.00
      • Set StarburstDamage[2] = 25.00
      • Set StarburstDamage[3] = 35.00
      • -------- Damage for final blow --------
      • Set StarburstFinalDamage[1] = 300.00
      • Set StarburstFinalDamage[2] = 500.00
      • Set StarburstFinalDamage[3] = 700.00


  • StarbustStreamGeneric
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to StarburstAbility
    • Actions
      • Set StarburstMax = (StarburstMax + 1)
      • Set Kirito[StarburstMax] = (Triggering unit)
      • Set KiritoTarget[StarburstMax] = (Target unit of ability being cast)
      • Set KiritoPoint[StarburstMax] = (Position of Kirito[StarburstMax])
      • Set KiritoPoint2[StarburstMax] = (Position of KiritoTarget[StarburstMax])
      • Set StarburstStage[StarburstMax] = 1
      • Set StarburstCount[StarburstMax] = 0.00
      • Set KiritoSlash[StarburstMax] = 0.00
      • Set KiritoFinal[StarburstMax] = 0.00
      • Set StarburstLevel[StarburstMax] = (Level of StarburstAbility for Kirito[StarburstMax])
      • Unit - Make KiritoTarget[StarburstMax] face Kirito[StarburstMax] over 0.00 seconds
      • Unit - Pause Kirito[StarburstMax]
      • Unit - Pause KiritoTarget[StarburstMax]
      • Special Effect - Create a special effect attached to the head of Kirito[StarburstMax] using Units\NightElf\Wisp\WispExplode.mdl
      • Special Effect - Destroy (Last created special effect)
      • Custom script: call RemoveLocation(udg_KiritoPoint[udg_StarburstMax])
      • Custom script: call RemoveLocation(udg_KiritoPoint2[udg_StarburstMax])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • StarburstMax Equal to 1
        • Then - Actions
          • Trigger - Turn on Starburst StartLoop <gen>
        • Else - Actions

  • Starburst StartLoop
    • Events
      • Time - Every 0.20 seconds of game time
    • Conditions
    • Actions
      • For each (Integer StarburstLoop) from 1 to StarburstMax, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (KiritoTarget[StarburstLoop] is dead) Equal to True
                  • (Kirito[StarburstLoop] is dead) Equal to True
            • Then - Actions
              • Animation - Change Kirito[StarburstLoop]'s animation speed to 100.00% of its original speed
              • Unit - Unpause Kirito[StarburstLoop]
              • Unit - Unpause KiritoTarget[StarburstLoop]
              • Animation - Reset Kirito[StarburstLoop]'s animation
              • Set Kirito[StarburstLoop] = Kirito[StarburstMax]
              • Set Kirito[StarburstMax] = No unit
              • Set KiritoTarget[StarburstLoop] = KiritoTarget[StarburstMax]
              • Set KiritoTarget[StarburstMax] = No unit
              • Set StarburstCount[StarburstLoop] = StarburstCount[StarburstMax]
              • Set KiritoSlash[StarburstLoop] = KiritoSlash[StarburstMax]
              • Set KiritoFinal[StarburstLoop] = KiritoFinal[StarburstMax]
              • Set StarburstStage[StarburstLoop] = StarburstStage[StarburstMax]
              • Set StarburstLoop = (StarburstLoop - 1)
              • Set StarburstMax = (StarburstMax - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • StarburstMax Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • StarburstStage[StarburstLoop] Equal to 1
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • StarburstCount[StarburstLoop] Equal to KiritoDelay
                • Then - Actions
                  • Set StarburstStage[StarburstLoop] = 2
                  • Set KiritoPoint[StarburstLoop] = (Position of Kirito[StarburstLoop])
                  • Set KiritoPoint2[StarburstLoop] = (Position of KiritoTarget[StarburstLoop])
                  • Set KiritoPoint3[StarburstLoop] = (KiritoPoint2[StarburstLoop] offset by 30.00 towards (Facing of Kirito[StarburstLoop]) degrees)
                  • Set KiritoPoint4[StarburstLoop] = (KiritoPoint2[StarburstLoop] offset by -120.00 towards (Angle from KiritoPoint[StarburstLoop] to KiritoPoint2[StarburstLoop]) degrees)
                  • Unit - Move Kirito[StarburstLoop] instantly to KiritoPoint4[StarburstLoop]
                  • Unit - Move KiritoTarget[StarburstLoop] instantly to KiritoPoint3[StarburstLoop]
                  • Custom script: call RemoveLocation(udg_KiritoPoint4[udg_StarburstLoop])
                  • Custom script: call RemoveLocation(udg_KiritoPoint2[udg_StarburstLoop])
                  • Custom script: call RemoveLocation(udg_KiritoPoint3[udg_StarburstLoop])
                  • Custom script: call RemoveLocation(udg_KiritoPoint[udg_StarburstLoop])
                • Else - Actions
                  • Set StarburstCount[StarburstLoop] = (StarburstCount[StarburstLoop] + 1.00)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • StarburstStage[StarburstLoop] Equal to 2
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • KiritoSlash[StarburstLoop] Equal to KiritoSlashCount
                • Then - Actions
                  • Set KiritoAnimationDelay[StarburstLoop] = True
                  • Set StarburstStage[StarburstLoop] = 3
                • Else - Actions
                  • Set KiritoSlash[StarburstLoop] = (KiritoSlash[StarburstLoop] + 1.00)
                  • Set KiritoPoint[StarburstLoop] = (Position of Kirito[StarburstLoop])
                  • Set KiritoPoint2[StarburstLoop] = (Position of KiritoTarget[StarburstLoop])
                  • Set KiritoPoint4[StarburstLoop] = (KiritoPoint2[StarburstLoop] offset by 30.00 towards (Facing of Kirito[StarburstLoop]) degrees)
                  • Set KiritoPoint3[StarburstLoop] = (KiritoPoint2[StarburstLoop] offset by -120.00 towards (Angle from KiritoPoint[StarburstLoop] to KiritoPoint2[StarburstLoop]) degrees)
                  • Animation - Change Kirito[StarburstLoop]'s animation speed to 200.00% of its original speed
                  • Animation - Play KiritoTarget[StarburstLoop]'s hit animation
                  • Animation - Play Kirito[StarburstLoop]'s attack -1 animation
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (KiritoTarget[StarburstLoop] is A structure) Equal to False
                    • Then - Actions
                      • Unit - Move KiritoTarget[StarburstLoop] instantly to KiritoPoint4[StarburstLoop]
                      • Unit - Move Kirito[StarburstLoop] instantly to KiritoPoint3[StarburstLoop]
                    • Else - Actions
                  • Special Effect - Create a special effect at KiritoPoint2[StarburstLoop] using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect attached to the chest of KiritoTarget[StarburstLoop] using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Cause Kirito[StarburstLoop] to damage KiritoTarget[StarburstLoop], dealing StarburstDamage[StarburstLevel[StarburstLoop]] damage of attack type Spells and damage type Normal
                  • Custom script: call RemoveLocation(udg_KiritoPoint4[udg_StarburstLoop])
                  • Custom script: call RemoveLocation(udg_KiritoPoint3[udg_StarburstLoop])
                  • Custom script: call RemoveLocation(udg_KiritoPoint2[udg_StarburstLoop])
                  • Custom script: call RemoveLocation(udg_KiritoPoint[udg_StarburstLoop])
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • StarburstStage[StarburstLoop] Equal to 3
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • KiritoFinal[StarburstLoop] Greater than or equal to KiritoFinalDelay
                • Then - Actions
                  • Set KiritoPoint[StarburstLoop] = (Position of Kirito[StarburstLoop])
                  • Set KiritoPoint2[StarburstLoop] = (Position of KiritoTarget[StarburstLoop])
                  • Unit - Cause Kirito[StarburstLoop] to damage KiritoTarget[StarburstLoop], dealing StarburstFinalDamage[StarburstLevel[StarburstLoop]] damage of attack type Spells and damage type Normal
                  • Special Effect - Create a special effect at KiritoPoint2[StarburstLoop] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
                  • Special Effect - Set Scale of (Last created special effect) to 3.00
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 DummyCaster for (Owner of Kirito[StarburstLoop]) at KiritoPoint2[StarburstLoop] facing Default building facing degrees
                  • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                  • Unit - Add Storm Bolt (Starburst) to (Last created unit)
                  • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt KiritoTarget[StarburstLoop]
                  • Animation - Change Kirito[StarburstLoop]'s animation speed to 100.00% of its original speed
                  • Unit - Unpause Kirito[StarburstLoop]
                  • Unit - Unpause KiritoTarget[StarburstLoop]
                  • Animation - Reset Kirito[StarburstLoop]'s animation
                  • Custom script: call RemoveLocation(udg_KiritoPoint2[udg_StarburstLoop])
                  • Custom script: call RemoveLocation(udg_KiritoPoint[udg_StarburstLoop])
                  • Set Kirito[StarburstLoop] = Kirito[StarburstMax]
                  • Set Kirito[StarburstMax] = No unit
                  • Set KiritoTarget[StarburstLoop] = KiritoTarget[StarburstMax]
                  • Set Kirito[StarburstMax] = No unit
                  • Set StarburstCount[StarburstLoop] = StarburstCount[StarburstMax]
                  • Set KiritoSlash[StarburstLoop] = KiritoSlash[StarburstMax]
                  • Set KiritoFinal[StarburstLoop] = KiritoFinal[StarburstMax]
                  • Set StarburstStage[StarburstLoop] = StarburstStage[StarburstMax]
                  • Set StarburstMax = (StarburstMax - 1)
                  • Set StarburstLoop = (StarburstLoop - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • StarburstMax Equal to 0
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set KiritoFinal[StarburstLoop] = (KiritoFinal[StarburstLoop] + 1.00)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • KiritoAnimationDelay[StarburstLoop] Equal to True
                    • Then - Actions
                      • Animation - Change Kirito[StarburstLoop]'s animation speed to 25.00% of its original speed
                      • Animation - Play Kirito[StarburstLoop]'s attack slam animation
                      • Set KiritoAnimationDelay[StarburstLoop] = False
                    • Else - Actions
            • Else - Actions

- Add more info (damage dealt , slash count, slash delay).
- No longer Invulnerabe when casting.
- Replace Death animation to Hit animation.
- Replace dummy unit effect to special effect

Contents

Starburst Stream. GUI (Map)

Reviews
MyPad
Spell Review: Resource Description: The spell lacks description as to what it does, requiring one to look for its' basis in the web. Insufficient information about the spell regarding damage dealt, number of slashes, stun duration, etc., has been...
KILLCIDE
Needs Fixed Make the loop timer much shorter. 0.2 seconds imo is too slow and can cause bugs if there are multiple instances running. There are a few hard-configured aspects of your spell like special effects and their attachement points. I recommend...
Level 39
Joined
Feb 27, 2007
Messages
4,992
Daffa's correct; the preload only needs to be done once and it should happen at the start of the map. You already have an init trigger, just put it in that. You should put your triggers in between [trigger][/trigger] tags so people can easily read them.
 
please provide few screenshots.

and put the preload and configuration in one trigger.
when preloading a dummy, don't add an expiration to it.
Instead of creating a dummy every time you cast, Create a dummy in the configuration spawning at the center of the map and just order it to do actions.
(e.g)
Preloading:
  • -------- Below is the Dummy's raw/ Its variable is integer --------
  • Custom scrpt: set udg_DummyRaw = 'o000'
  • -------- Below is the Dummy's ability raw/ Its variable is integer --------
  • Custom script: set udg_AbilRaw = 'A000'
  • -------- Below is Creating a unit and assigning it instantly in one --------
  • Custom script: set udg_Dummy = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), udg_DummyRaw, 0, 0, 0)
  • -------- Below is Adding an ability to Dummy --------
  • Custom script: call UnitAddAbility(udg_Dummy, udg_AbilRaw)
 

Spell Review:

Resource Description:


The spell lacks description as to what it does, requiring one to look for its' basis in the web. Insufficient information about the spell regarding damage dealt, number of slashes, stun duration, etc., has been noted. It is almost unnecessary to post the triggers, since the ability to preview them within the resource bundle is available.

Spell Mechanics:


Notes and Recommended Actions:

  • In trigger Starburst Stream Loop, in the first conditional statement, under Then - actions, the line:

    • Sound - Stop StarburstSound[StarburstLoop] Immediately
    does not appear to have any bearing on the spell. It would be best to remove the line from the trigger.

  • The triggers Preload and SA can be merged into a config/init trigger.

  • In trigger Starburst Stream Loop, in the third conditional statement, under Then - actions,
    the function of the newly-created units seem to be for visual purposes only. It is recommended to use special effects instead.

  • In the same trigger above, in the fourth (and final) conditional statement, under Then - actions, a dummy caster is dynamically created, and given a stun effect ability. The stun duration does not appear to adapt to the level of the caster's ability. It is recommended to use a global dummy unit instead for the spell, since the spell effect behavior is instant, and have the stun effect ability adapt to the level of the caster's ability.

  • In the same trigger, a lot of (last created unit) function calls have been spotted. It would be better to save it into a temporary variable and reference that instead.

Suggestions/Recommendations:

  • Why not base the ability off a channel ability? That way, one can, through the Object Editor, manipulate the delay between spell effect (channel) and triggered effects (channel finished). This can even give the players a clue as to when the triggered effects will occur.

  • As a supplement to the above, do not grant invulnerability to the caster upon spell effect. This will add a risk factor when casting the spell, making it rewarding.

Spell Interactions:


The spell grants the caster invulnerability while channeling (triggered). This part can be quite cumbersome for opponents, since it cannot be interrupted, and they also lose control of the targeted unit, thereby making it a little bit unfair for them.

The caster strikes only in a single direction, without the possibility of variable location displacement, even if within the field of view of the target unit.

The repeated death animations of the target unit would not appear to make sense, as the target unit is (based on the Starburst Stream in SAO) expected to be struck and kept alive until the final slash.

The aesthetics of the spell feel more like a drawn-out fight sequence than a rewarding incantation, taking away much of the freedom of usage of that particular unit from the player. The feeling of blandness that arises from the spell affects the overall rating of the resource.

Rating given: 2.7/5.0

Status:

  • Awaiting Update
 
Level 37
Joined
Jul 22, 2015
Messages
3,485

Needs Fixed

  • Make the loop timer much shorter. 0.2 seconds imo is too slow and can cause bugs if there are multiple instances running.
  • There are a few hard-configured aspects of your spell like special effects and their attachement points. I recommend going through them and making them configurable.

Suggestions

  • I'd add a multi-configurable array for the other aspects of the spell because why not :p
  • I'm not sure what the interactions are with Pause unit now, but I was never a big fan of it. If there are no problems with it now, I guess we can let it slide.
  • You store the caster and target locations in onCast, but never used them
  • Consider using Linked List instead of Dynamic Indexing >:)

Status

Awaiting Update[/COLOR
 
Top