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

Demon's Grip v0.2

  • Like
Reactions: gorillabull
-Tooltip-
Demon's Grip

Grips the target with demon's hand.Making the target fly upwards.When it reaches the max height,the demon's hand grips the target again killing the target.

Level 1 - Slow height increasing rate.
Level 2 - Medium height increasing rate.
Level 3 - Fast height increasing rate.

Cooldown = 0 seconds.(for MUI Test)
Mana Cost = 0


v0.2 Triggers

  • DeGr Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- -------------------------CONFIGURATION START----------------------------------- --------
      • -------- Is the caster alive?? --------
      • Set DeGr_Condition_Config[0] = True
      • -------- Is the target alive?? --------
      • Set DeGr_Condition_Config[1] = True
      • -------- Determines the damage for each level according to arrays --------
      • -------- These should to be killing-damage.But you can configure it as you like. --------
      • Set DeGr_Damage[1] = 1000000000.00
      • Set DeGr_Damage[2] = 1000000000.00
      • Set DeGr_Damage[3] = 1000000000.00
      • -------- Determines the speed of the target spins for each level according to arrays --------
      • Set DeGr_Angle_Increase[1] = 22.00
      • Set DeGr_Angle_Increase[2] = 22.00
      • Set DeGr_Angle_Increase[3] = 22.00
      • -------- Determines the speed of the height increase for each level according to arrays --------
      • Set DeGr_Height_Increase[1] = 2.50
      • Set DeGr_Height_Increase[2] = 3.50
      • Set DeGr_Height_Increase[3] = 4.00
      • -------- Determines the rate of height decrease after the death of the target.(NOTE: This is a rate and not similar to [DeGr_Height_Increase] ) --------
      • Set DeGr_Final_Height_Decrease[1] = 200.00
      • Set DeGr_Final_Height_Decrease[2] = 250.00
      • Set DeGr_Final_Height_Decrease[3] = 300.00
      • -------- Determines the maximum height that the target will be killed for each level according to arrays --------
      • Set DeGr_Max_Height[1] = 500.00
      • Set DeGr_Max_Height[2] = 500.00
      • Set DeGr_Max_Height[3] = 500.00
      • -------- Determines the attachment of the special effect 1 --------
      • Set DeGr_Target_Attachment[1] = origin
      • -------- Determines the model of the special effect 1 --------
      • Set DeGr_Target_Effect_Model[1] = Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
      • -------- Determines the attachment of the special effect 2 --------
      • Set DeGr_Target_Attachment[2] = chest
      • -------- Determines the model of the special effect 2 --------
      • Set DeGr_Target_Effect_Model[2] = Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
      • -------- Determines the attachment of the final special effect --------
      • Set DeGr_Target_Attachment[3] = chest
      • -------- Determines the model of the final special effect --------
      • Set DeGr_Target_Effect_Model[3] = Objects\Spawnmodels\Human\HumanLargeDeathExplode\HumanLargeDeathExplode.mdl
      • -------- Saves the ability into variable --------
      • Set DeGr_Spell = Demon's Grip
      • -------- -------------------------CONFIGURATION ENDS----------------------------------- --------


  • DeGr Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to DeGr_Spell
    • Actions
      • -------- ------------------------------------------------------------ --------
      • -------- IMPORTANT SYSTEM START --------
      • -------- ------------------------------------------------------------ --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • DeGr_Index_Listener Equal to 0
        • Then - Actions
          • Trigger - Turn on DeGr Loop <gen>
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • DeGr_Recycle_Size Greater than 0
        • Then - Actions
          • Set DeGr_Recycle_Size = (DeGr_Recycle_Size - 1)
          • Set DeGr_Current_Index = DeGr_Recycle_Container[DeGr_Recycle_Size]
        • Else - Actions
          • Set DeGr_Current_Index = DeGr_Index_Size
          • Set DeGr_Index_Size = (DeGr_Index_Size + 1)
      • -------- ------------------------------------------------------------ --------
      • -------- IMPORTANT SYSTEM END --------
      • -------- ------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------ --------
      • -------- Sets the caster for its current index --------
      • -------- ------------------------------------------------------------ --------
      • Set DeGr_Caster[DeGr_Current_Index] = (Triggering unit)
      • -------- ------------------------------------------------------------ --------
      • -------- Sets the level of the spell of Caster --------
      • -------- ------------------------------------------------------------ --------
      • Set DeGr_Level[DeGr_Current_Index] = (Level of DeGr_Spell for DeGr_Caster[DeGr_Current_Index])
      • -------- ------------------------------------------------------------ --------
      • -------- Sets the target for its current index --------
      • -------- ------------------------------------------------------------ --------
      • Set DeGr_Target[DeGr_Current_Index] = (Target unit of ability being cast)
      • -------- ------------------------------------------------------------ --------
      • -------- Adds the Crow Form to the target to enable flying height --------
      • -------- ------------------------------------------------------------ --------
      • Custom script: if UnitAddAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') then
      • Custom script: call UnitRemoveAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf')
      • Custom script: endif
      • -------- ------------------------------------------------------------ --------
      • -------- Pauses the target --------
      • -------- ------------------------------------------------------------ --------
      • Custom script: call PauseUnit(udg_DeGr_Target[udg_DeGr_Current_Index], true)
      • -------- ------------------------------------------------------------ --------
      • -------- IMPORTANT SYSTEM START --------
      • -------- ------------------------------------------------------------ --------
      • Set DeGr_Index_Container[DeGr_Index_Listener] = DeGr_Current_Index
      • Set DeGr_Index_Listener = (DeGr_Index_Listener + 1)
      • -------- ------------------------------------------------------------ --------
      • -------- IMPORTANT SYSTEM END --------
      • -------- ------------------------------------------------------------ --------


  • DeGr Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • -------- ------------------------------------------------------------ --------
      • -------- IMPORTANT SYSTEM START --------
      • -------- ------------------------------------------------------------ --------
      • For each (Integer DeGr_Loop) from 0 to (DeGr_Index_Listener - 1), do (Actions)
        • Loop - Actions
          • Set DeGr_Current_Index = DeGr_Index_Container[DeGr_Loop]
          • -------- ------------------------------------------------------------ --------
          • -------- IMPORTANT SYSTEM END --------
          • -------- ------------------------------------------------------------ --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (DeGr_Caster[DeGr_Current_Index] is alive) Equal to DeGr_Condition_Config[0]
              • (DeGr_Target[DeGr_Current_Index] is alive) Equal to DeGr_Condition_Config[1]
              • DeGr_Height[DeGr_Current_Index] Less than or equal to DeGr_Max_Height[DeGr_Level[DeGr_Current_Index]]
            • Then - Actions
              • -------- ------------------------------------------------------------ --------
              • -------- Sets the height for the target which is increased by [DeGr_Height_Increase] every loop --------
              • -------- ------------------------------------------------------------ --------
              • Set DeGr_Height[DeGr_Current_Index] = (DeGr_Height[DeGr_Current_Index] + DeGr_Height_Increase[DeGr_Level[DeGr_Current_Index]])
              • -------- ------------------------------------------------------------ --------
              • -------- Sets the angle for the target which is increased by [DeGr_Angle_Increase] every loop --------
              • -------- ------------------------------------------------------------ --------
              • Set DeGr_Angle[DeGr_Current_Index] = (DeGr_Angle[DeGr_Current_Index] + DeGr_Angle_Increase[DeGr_Level[DeGr_Current_Index]])
              • -------- ------------------------------------------------------------ --------
              • -------- If the angle is greater than 0 then --------
              • -------- ------------------------------------------------------------ --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DeGr_Angle[DeGr_Current_Index] Greater than or equal to 360.00
                • Then - Actions
                  • -------- ------------------------------------------------------------ --------
                  • -------- Sets it back to 0 to make it smooth --------
                  • -------- ------------------------------------------------------------ --------
                  • Set DeGr_Angle[DeGr_Current_Index] = 0.00
                • Else - Actions
              • -------- ------------------------------------------------------------ --------
              • -------- Making the unit face the angle saved earlier --------
              • -------- ------------------------------------------------------------ --------
              • Unit - Make DeGr_Target[DeGr_Current_Index] face DeGr_Angle[DeGr_Current_Index] over 0.00 seconds
              • -------- ------------------------------------------------------------ --------
              • -------- Changes the target's flying height to the height that saved earlier --------
              • -------- ------------------------------------------------------------ --------
              • Animation - Change DeGr_Target[DeGr_Current_Index] flying height to DeGr_Height[DeGr_Current_Index] at 0.00
              • -------- ------------------------------------------------------------ --------
              • -------- Creates and Removes the [DeGr_Target_Effect_Model_1] on the attachment [DeGr_Target_Attachment_1] --------
              • -------- ------------------------------------------------------------ --------
              • Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_DeGr_Target_Effect_Model[1], udg_DeGr_Target[udg_DeGr_Current_Index],udg_DeGr_Target_Attachment[1]))
              • -------- ------------------------------------------------------------ --------
              • -------- Creates and Removes the [DeGr_Target_Effect_Model_2] on the attachment [DeGr_Target_Attachment_2] --------
              • -------- ------------------------------------------------------------ --------
              • Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_DeGr_Target_Effect_Model[2], udg_DeGr_Target[udg_DeGr_Current_Index],udg_DeGr_Target_Attachment[2]))
            • Else - Actions
              • -------- ------------------------------------------------------------ --------
              • -------- Causes the killing-damage to kill the unit.Why not use Kill-Unit Action?? It will have no killer. --------
              • -------- ------------------------------------------------------------ --------
              • Unit - Cause DeGr_Caster[DeGr_Current_Index] to damage DeGr_Target[DeGr_Current_Index], dealing DeGr_Damage[DeGr_Level[DeGr_Current_Index]] damage of attack type Spells and damage type Normal
              • -------- ------------------------------------------------------------ --------
              • -------- Creates and Removes the [DeGr_Final_Effect_Model] on the attachment [DeGr_Final_Effect_Attachment] --------
              • -------- ------------------------------------------------------------ --------
              • Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_DeGr_Target_Effect_Model[3], udg_DeGr_Target[udg_DeGr_Current_Index],udg_DeGr_Target_Attachment[3]))
              • -------- ------------------------------------------------------------ --------
              • -------- Change the flying height back to 0 at the rate of [DeGr_Final_Height_Decrease] --------
              • -------- ------------------------------------------------------------ --------
              • Animation - Change DeGr_Target[DeGr_Current_Index] flying height to 0.00 at DeGr_Final_Height_Decrease[DeGr_Level[DeGr_Current_Index]]
              • -------- ------------------------------------------------------------ --------
              • -------- Resets the height and angle for the next spell --------
              • -------- ------------------------------------------------------------ --------
              • Set DeGr_Angle[DeGr_Current_Index] = 0.00
              • Set DeGr_Height[DeGr_Current_Index] = 0.00
              • -------- ------------------------------------------------------------ --------
              • -------- UnPauses the target --------
              • -------- ------------------------------------------------------------ --------
              • Custom script: call PauseUnit(udg_DeGr_Target[udg_DeGr_Current_Index], false)
              • -------- ------------------------------------------------------------ --------
              • -------- IMPORTANT SYSTEM START --------
              • -------- ------------------------------------------------------------ --------
              • Set DeGr_Index_Listener = (DeGr_Index_Listener - 1)
              • Set DeGr_Index_Container[DeGr_Loop] = DeGr_Index_Container[DeGr_Index_Listener]
              • Set DeGr_Recycle_Container[DeGr_Current_Index] = DeGr_Current_Index
              • Set DeGr_Recycle_Size = (DeGr_Recycle_Size + 1)
              • Set DeGr_Loop = (DeGr_Loop - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DeGr_Index_Listener Equal to 0
                • Then - Actions
                  • Trigger - Turn off DeGr Loop <gen>
                • Else - Actions
              • -------- ------------------------------------------------------------ --------
              • -------- IMPORTANT SYSTEM END --------
              • -------- ------------------------------------------------------------ --------




FIRST UPLOADED HERE


Changed the variables to arrays instead of using many of them.
Added array to the level variable



sgrip.jpg



Never describe a book with its cover


Keywords:
MUI,GUI,TRIGGER,Demonic,Grip,Fly,Spell
Contents

Demon's Grip v0.2 (Map)

Reviews
23:31, 30th Nov 2012 Magtheridon96: Approved. This deserves a 4/5 because of your use of comments and the cleanliness of the code. The configuration is wonderful too. There are tiny improvements that could be done here and there. Check out...

Moderator

M

Moderator

23:31, 30th Nov 2012
Magtheridon96: Approved.
This deserves a 4/5 because of your use of comments and the cleanliness of the code. The configuration is wonderful too.

There are tiny improvements that could be done here and there.
Check out Radamantus' last posts for more information.
 
Make the spell effect array.
[jass=] if UnitAddAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') then
call UnitRemoveAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf')
endif[/code]
To this.
[jass=]if UnitAddAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') and UnitRemoveAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') then
endif[/code]

You dont need a script to pause a unit.
Use stun instead of pause,because pause is bad.
I suggest using an arc method will do.
 
Make the spell effect array.
[jass=] if UnitAddAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') then
call UnitRemoveAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf')
endif[/code]
To this.
[jass=]if UnitAddAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') and UnitRemoveAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') then
endif[/code]

You dont need a script to pause a unit.
Use stun instead of pause,because pause is bad.
I suggest using an arc method will do.

That ain't spell effect.
It's a Script for adding and removing Ability.
 
I told you to fix this:
  • :
    • Custom script:if UnitAddAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') then
    • Custom script: call UnitRemoveAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf')
    • Custom script: endif
to this:
  • Custom script:if UnitAddAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') and UnitRemoveAbility(udg_DeGr_Target[udg_DeGr_Current_Index],'Amrf') then
  • Custom script: endif
this trigger:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • DeGr_Angle[DeGr_Current_Index] Greater than or equal to 360.00
  • Then - Actions
  • -------- ------------------------------------------------------------ --------
  • -------- Sets it back to 0 to make it smooth --------
  • -------- ------------------------------------------------------------ --------
  • Set DeGr_Angle[DeGr_Current_Index] = 0.00
  • Else - Actions
Isnt needed,because the degrees are currently recycled automatically by the world editor.So if the angle is -90,then the world editor will recycle it then the result would be 270.

  • -------- ------------------------------------------------------------ --------
  • -------- Creates and Removes the [DeGr_Target_Effect_Model_1] on the attachment [DeGr_Target_Attachment_1] --------
  • -------- ------------------------------------------------------------ --------
  • Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_DeGr_Target_Effect_Model[1], udg_DeGr_Target[udg_DeGr_Current_Index],udg_DeGr_Target_Attachment[1]))
  • -------- ------------------------------------------------------------ --------
  • -------- Creates and Removes the [DeGr_Target_Effect_Model_2] on the attachment [DeGr_Target_Attachment_2] --------
  • -------- ------------------------------------------------------------ --------
  • Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_DeGr_Target_Effect_Model[2], udg_DeGr_Target[udg_DeGr_Current_Index],udg_DeGr_Target_Attachment[2]))
Put the actions on a integer loop,because you are using arrays.

Use an arc method so that it doesnt use any height reset
 
Top