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

Front Lotus

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
The user kicks their opponent into the air and then uses Shadow of the Dancing Leaf. Once behind their opponent, the user restrains them and pile-drives them into the ground head first while rotating at a ferocious speed.


  • Front Lotus
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Front Lotus
    • Actions
      • Set FL_U[0] = (Triggering unit)
      • Set FL_U[1] = (Target unit of ability being cast)
      • Set FL_I = 0
      • Unit - Pause FL_U[0]
      • Unit - Pause FL_U[1]
      • Unit - Turn collision for FL_U[0] Off
      • Custom script: call SetUnitAnimationByIndex(GetTriggerUnit(),13)
      • Trigger - Turn on FL move <gen>
      • Wait until (FL_I Equal to 1), checking every 0.10 seconds
      • Set FL_P[0] = (Position of FL_U[0])
      • Set FL_P[1] = (Position of FL_U[1])
      • Animation - Play FL_U[0]'s Spell Slam animation
      • Unit - Cause FL_U[0] to damage FL_U[1], dealing ((Real((Agility of FL_U[0] (Include bonuses)))) x 5.00) damage of attack type Hero and damage type Universal
      • Special Effect - Create a special effect attached to the right foot of FL_U[0] using Wave.mdx
      • Special Effect - Destroy (Last created special effect)
      • Unit - Hide FL_U[1]
      • Wait 0.20 seconds
      • Special Effect - Create a special effect at FL_P[0] using blackblink.mdx
      • Special Effect - Destroy (Last created special effect)
      • Wait 0.40 seconds
      • Unit - Unhide FL_U[1]
      • Unit - Create 1 Dummy for (Owner of FL_U[0]) at FL_P[1] facing Default building facing degrees
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • For each (Integer A) from 1 to 24, do (Actions)
        • Loop - Actions
          • Set FL_P[2] = (FL_P[1] offset by 150.00 towards ((Real((Integer A))) x 15.00) degrees)
          • Special Effect - Create a special effect at FL_P[2] using earthsmash.mdx
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_FL_P[2])
      • Special Effect - Create a special effect at FL_P[1] using slam.mdx
      • Special Effect - Destroy (Last created special effect)
      • Set FL_G[0] = (Units within 300.00 of FL_P[1] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of FL_U[0])) Equal to True)))
      • Unit Group - Pick every unit in FL_G[0] and do (Actions)
        • Loop - Actions
          • Set FL_P[2] = (Position of (Picked unit))
          • Special Effect - Create a special effect at FL_P[2] using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Cause FL_U[0] to damage (Picked unit), dealing ((Real((Level of Front Lotus for FL_U[0]))) x 15.00) damage of attack type Hero and damage type Universal
          • Custom script: call RemoveLocation(udg_FL_P[2])
      • Custom script: call DestroyGroup(udg_FL_G[0])
      • Unit - Turn collision for FL_U[0] On
      • Unit - Order FL_U[0] to Stop
      • Custom script: call RemoveLocation(udg_FL_P[0])
      • Custom script: call RemoveLocation(udg_FL_P[1])
      • Unit - Unpause FL_U[0]
      • Unit - Unpause FL_U[1]
      • Set FL_U[0] = No unit
      • Set FL_U[1] = No unit
  • FL move
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Set FL_P[0] = (Position of FL_U[0])
      • Set FL_P[1] = (Position of FL_U[1])
      • Set FL_R[0] = (Angle from FL_P[0] to FL_P[1])
      • Set FL_P[2] = (FL_P[0] offset by 40.00 towards FL_R[0] degrees)
      • Set FL_R[1] = (Distance between FL_P[0] and FL_P[1])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FL_R[1] Greater than or equal to 200.00
        • Then - Actions
          • Custom script: call SetUnitAnimationByIndex(GetLastCreatedUnit(),13)
          • Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 75.00% transparency
          • Animation - Change (Last created unit)'s animation speed to 500.00% of its original speed
          • Unit - Add a 0.10 second Generic expiration timer to (Last created unit)
          • Unit - Move FL_U[0] instantly to FL_P[2], facing FL_R[0] degrees
          • Special Effect - Create a special effect at FL_P[0] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_FL_P[0])
          • Custom script: call RemoveLocation(udg_FL_P[1])
          • Custom script: call RemoveLocation(udg_FL_P[2])
        • Else - Actions
          • Set FL_I = 1
          • Trigger - Turn off (This trigger)
(P.S. there are problems with the computer so instead of a screenshot, I uploaded an image from google)

Keywords:
anime, naruto, naruto shippuden, lee, rock lee, front lotus
Contents

Front Lotus (Map)

Reviews
17th Apr 2016 Your resource has been reviewed by BPower. In case of any questions or for reconfirming the moderator's rating, please make use of the Quick Reply function of this thread. Review: Submissions in the spell section should follow...

Moderator

M

Moderator

17th Apr 2016

General Info

Your resource has been reviewed by BPower.
In case of any questions or for reconfirming the moderator's rating,
please make use of the Quick Reply function of this thread.
Review:

Submissions in the spell section should follow the Spell Submission Rules.
These rules inlcude for example a proper ingame screenshot, MUI, configuration options, etc ...

For more detailed information please read Almia's and Meatmuffin's feedback in the first comments of the thread.

Troubleshooting:

  • The code is not MUI.
    ---
  • The spell is entirely hardcoded.
    ---
  • You leak up to three location handles every 0.02 seconds, depending on the
    result of the if the else condition.

Review changelog:
  1. -
 
Level 11
Joined
Jul 25, 2014
Messages
490
Fisrt of all, the screenshot. Ask someone else to take a screenshot, even if you can't do that, throw a pitch black screen on, it's better than something confusing.

Moving on, the description. There's no description at all, you just throw triggers on and be done with it. You should drop a tooltip, explain some mechanics and then put triggers. Also triggers should be seperately hidden tagged, not altogether.

Trigger commentary, there is none. You are going to need that, ESPECIALLY when your spell structure is waaaay different from hive spell's, which I will cover later.

Actual triggers, you should read up on some tutorials or look at some other spells on hive before trying to upload one of your own. We appreciate you trying to fill up the spell section with content, but it also should be quality content. The trigger structure would be like this:
  1. Comment of import - explain how to import the spell. The instructions should be clear even to newbies. If you look through most GUI spells, you'll find that.

  2. Configuration trigger - The trigger filled with configurations, also made so a newbie would understand. It should be: Comment on what the following configuration does -> Configuartion -> Comment -> Configuration, and so on. Right now your spell is not configurable, let alone importable. Even if the importer does import this spell, it will not work because "Ability being cast" equal to "Front Lotus", a spell which the importer doesn't yet have in their map.

    Configuration variables should also be indexed so they can be seperated into multiple levels.

  3. Spell initialization trigger - it is not properly done. The variable namings are way off, try looking at your variable names after some time and say what they do without looking at the triggers, I bet you couldn't do that.

    Pause dummies is okay, but pausing units is not and can lead to bad consequences.

    Moving on, there are GUI functions and then bam, SetUnitAnimationByIndex. Does it really have to be a custom script?

    Waits are disallowed in hive spells. They have many problems within theirselves that lead to other problems -- it's a big nope.

    Put (Last created unit) into a variable for better efficiency.

    Instead of instantly filtering out all units in a group, pick all units in range and filter them out with an If/Then/Else block inside.

    You don't have to null global unit variables, they're harmless. In fact, it's better not to null them, for example they can interfere with a DDS or a kill/death tally for one's map.

  4. Loop trigger - 0.02 seconds per loop iteration is too fast. It lags most spells even on high performance computers. Acceptable values are 0.03-0.04. Alternatively you can use (1/32) which is 32 times per second.

    Most of the loop code lines also have the problems you had in the initialization function.

    Nothing much to say here, since the loop is really short.

Would also like to highlight what Almia said:
- not MUI
That's the most important part. Spell submission rules clearly state that spells must be MUI. Yours only works for one unit. I suggest reading up on tutorials on how to make your spell MUI. Preferably dynamic indexing as it is not hard to understand and is modern, and lots of people still use it.

Overall rating of 1/5, Unacceptable.
 
Last edited:
Top