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

Ryujinzan 1.07

The caster draw his sword and perform a high speed cut around the caster. Stuns the enemy and deal damage around him, dealing 60 damage per second to nearby enemy land units and stunning them for 2 seconds.

ya the picture doesn't show anything
thats why I made a video


Credits
the6thmessenger
judash
black stan
i may misspell anyone's name sorry

due to the lack of time
explanation and way to import will be putted later

and how to post trigger?

for the model complain
here showing couple of model with the spell

at least for me
i think the hero i currently used is the best option


  • Start Ryujinzan
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to RYU_Abilities
    • Actions
      • -------- MuiIndex + 1 --------
      • Set RYU_MUI = (RYU_MUI + 1)
      • -------- Set the Caster --------
      • Set RYU_Caster[RYU_MUI] = (Triggering unit)
      • -------- Level of Ability of the spell --------
      • Set RYU_LevelofAbility[RYU_MUI] = (Level of RYU_Abilities for RYU_Caster[RYU_MUI])
      • -------- Aoe that done with the base and add thing --------
      • Set RYU_Aoe[RYU_MUI] = (Cons_RYU_Aoe_Base + (Cons_RYU_Aoe_Add x (Real(RYU_LevelofAbility[RYU_Loop_IntergerA]))))
      • -------- Damage that done with the base and add thing --------
      • Set RYU_Damage[RYU_MUI] = (Cons_RYU_Damage_Base + (Cons_RYU_Damage_Add x (Real(RYU_LevelofAbility[RYU_Loop_IntergerA]))))
      • -------- Duration that done with the base and add thing --------
      • Set RYU_Timer[RYU_MUI] = (Cons_RYU_Duration_Base + (Cons_RYU_Duration_Add x (Real(RYU_LevelofAbility[RYU_Loop_IntergerA]))))
      • -------- to make sure you start once the spell cast --------
      • Set RYU_Interval01[RYU_MUI] = 0
      • -------- Animation Speed for afterimage that done with the base and add thing --------
      • Set RYU_Animationspd[RYU_MUI] = (Con_RYU_AnimationSpdBase + (Cons_RYU_AnimationSpdAdd x (Real(RYU_LevelofAbility[RYU_MUI]))))
      • -------- Player of the Caster --------
      • Set RYU_Player[RYU_MUI] = (Owner of RYU_Caster[RYU_MUI])
      • -------- Range for the knockback per second that done with the base and add thing --------
      • Set RYU_Speed[RYU_MUI] = (Cons_RYU_SpeedBase + (Cons_RYU_SpeedAdd x (Real(RYU_LevelofAbility[RYU_MUI]))))
      • -------- Simply turn on the loop --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RYU_MUI Equal to 1
        • Then - Actions
          • Trigger - Turn on Loop Ryujinzan <gen>
        • Else - Actions
  • Loop Ryujinzan
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer RYU_Loop_IntergerA) from 1 to RYU_MUI, do (Actions)
        • Loop - Actions
          • -------- countdown --------
          • -------- Duration/Timer --------
          • Set RYU_Timer[RYU_Loop_IntergerA] = (RYU_Timer[RYU_Loop_IntergerA] - 1.00)
          • -------- Interval --------
          • Set RYU_Interval01[RYU_Loop_IntergerA] = (RYU_Interval01[RYU_Loop_IntergerA] - 1)
          • -------- This is action, but every 0.03 instead of following the interval --------
          • Animation - Play RYU_Caster[RYU_Loop_IntergerA]'s Attack Walk Stand Spin animation
          • -------- ACTION!!! --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RYU_Interval01[RYU_Loop_IntergerA] Less than or equal to 0
            • Then - Actions
              • -------- ACTION!!! --------
              • -------- Reset Interval so that the action will be done again --------
              • Set RYU_Interval01[RYU_Loop_IntergerA] = Cons_RYU_Interval
              • -------- Position of the caster --------
              • Set TempPoint001 = (Position of RYU_Caster[RYU_Loop_IntergerA])
              • -------- Group --------
              • Set Temp001Group = (Units within RYU_Aoe[RYU_Loop_IntergerA] of TempPoint001 matching ((((Matching unit) belongs to an enemy of RYU_Player[RYU_Loop_IntergerA]) Equal to True) and (((Matching unit) is dead) Equal to False)))
              • -------- Dummy --------
              • Unit - Create 1 RYU_DummyType for RYU_Player[RYU_Loop_IntergerA] at TempPoint001 facing (Random angle) degrees
              • Set RYU_Dummy1[RYU_Loop_IntergerA] = (Last created unit)
              • Unit - Add a 0.40 second Generic expiration timer to RYU_Dummy1[RYU_Loop_IntergerA]
              • -------- Make it 50% transparent so it look like afterimage --------
              • Animation - Change RYU_Dummy1[RYU_Loop_IntergerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with RYU_Transparency% transparency
              • -------- Animation speed --------
              • Animation - Change RYU_Dummy1[RYU_Loop_IntergerA]'s animation speed to RYU_Animationspd[RYU_Loop_IntergerA]% of its original speed
              • Animation - Play RYU_Dummy1[RYU_Loop_IntergerA]'s RYU_DummyAnimation animation
              • -------- Play Dummy Animation --------
              • Animation - Reset RYU_Caster[RYU_Loop_IntergerA]'s animation
              • -------- So the caster don't just spin all over --------
              • Unit - Move RYU_Caster[RYU_Loop_IntergerA] instantly to TempPoint001, facing (Random angle) degrees
              • -------- Turn random face --------
              • -------- And make caster stand still (if you think it is) --------
              • Unit Group - Pick every unit in Temp001Group and do (Actions)
                • Loop - Actions
                  • -------- Damage and knockback --------
                  • Set RYU_GroupUnit[RYU_Loop_IntergerA] = (Picked unit)
                  • Set TempPoint002 = (Position of RYU_GroupUnit[RYU_Loop_IntergerA])
                  • Set TempPoint003 = (TempPoint002 offset by RYU_Speed[RYU_Loop_IntergerA] towards (Facing of RYU_GroupUnit[RYU_Loop_IntergerA]) degrees)
                  • Unit - Move RYU_GroupUnit[RYU_Loop_IntergerA] instantly to TempPoint003, facing TempPoint001
                  • Unit - Cause RYU_Caster[RYU_Loop_IntergerA] to damage RYU_GroupUnit[RYU_Loop_IntergerA], dealing RYU_Damage[RYU_Loop_IntergerA] damage of attack type RYU_AttackType and damage type RYU_damagetype
                  • -------- Destroy leak( or not ifyou think is not) --------
                  • Custom script: call RemoveLocation (udg_TempPoint002)
                  • Custom script: call RemoveLocation (udg_TempPoint003)
              • -------- Destroy leak( or not ifyou think is not) --------
              • Custom script: call RemoveLocation (udg_TempPoint001)
              • Custom script: call DestroyGroup (udg_Temp001Group)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RYU_Timer[RYU_Loop_IntergerA] Less than or equal to 0.00
            • Then - Actions
              • -------- Finish Spell --------
              • Animation - Reset RYU_Caster[RYU_Loop_IntergerA]'s animation
              • -------- Index elimination and off this trigger if needed --------
              • Set RYU_Aoe[RYU_Loop_IntergerA] = RYU_Aoe[RYU_MUI]
              • Set RYU_Caster[RYU_Loop_IntergerA] = RYU_Caster[RYU_MUI]
              • Set RYU_Damage[RYU_Loop_IntergerA] = RYU_Damage[RYU_MUI]
              • Set RYU_Interval01[RYU_Loop_IntergerA] = RYU_Interval01[RYU_MUI]
              • Set RYU_Timer[RYU_Loop_IntergerA] = RYU_Timer[RYU_MUI]
              • Set RYU_Loop_IntergerA = (RYU_Loop_IntergerA - 1)
              • Set RYU_MUI = (RYU_MUI - 1)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RYU_MUI Equal to 0
            • Then - Actions
              • Trigger - Turn off (This trigger)
            • Else - Actions


can suggest a way to make the spell can have different unit type with different shadow dummy?


I HAD MAKE THE VARIABLE NAME MORE UNIFORM
HOPEFULLY ACCEPTABLE


Keywords:
Samurai, Katana, Cut, Fast, Sword, Spell, Speed, Ronin, No Target, Sword man, Japanese, Japan, Sakura, Ryujin, Anime, Bushi
Contents

Ryujinzan (Map)

Reviews
18th 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: Very simple in concept and coding. The code is...

Moderator

M

Moderator

18th 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:

Very simple in concept and coding. The code is leakless and MUI.

The knockback is done poor and eventually bugs in corners or in reach of unpathable terrain tiles.
I can strongly recommend Bribe's GUI Knockback 2.5D.

Troubleshooting:

  • The dummy death event trigger is not required. Can't raise, Does not decay is all you need.

Review changelog:
  1. -
 

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
hey, this is just a quick look
- put the dummy trigger in different category
- use Map Initialization for constant ryugan
- give explanation to each variable in the constant ryugan
- use real for timer variable so that you can decrease it by 0.03
- you leaked temp point002, put the RemoveLocation inside the pick action
- store picked unit into a variable
- store main ability into a variable
- give instruction how to import your spell

will add more soon :p

hey, more additions: (don't take this seriously :p)
- you dont need to turn on the loopn on each cast
- store last created unit into a variable
- there is my mistake above, just delete the dummy trigger (unecessary)
- create the sfx using trigger so that user could configure it
- actualy there still more but just fix those above first :p
 
thx for the advice..
but if i don't put the dummy trigger it will have death sound that is very noisy

- store picked unit into a variable <-how to do this?
i mean is it possible just to like
set unit xx = picked unit
cause is unit group isn't it?
- store main ability into a variable
just wondering what does this do?

- create the sfx using trigger so that user could configure it
not sure understand


i'm still beginner in spell making so
thank you for helping me
just updated (haven't put instruction because i have no time) (just a quick fix)

i don't want to update the whole post yet cause is not done yet (not even test if it works after the fix)

and is this MUI?
please if can check it for me
 

Attachments

  • Ryujinzan2.w3x
    225.4 KB · Views: 131
Top