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

Reaper's Claws

This bundle is marked as high quality. It exceeds standards and is highly desirable.

Reaper's Claws

Previews: Tilted 0, 45, and 135 degrees at various heights

Roll goes counter-clockwise, so the demo uses negative angles.
TimeScale determines the effect's speed, where 1 = 100%.

JASS:
    local unit u = GetTriggerUnit()
    local effect fx
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    local real face = Deg2Rad(GetUnitFacing(u))
    local real tilt

    set tilt = 0
    set fx = AddSpecialEffect("war3mapImported\\Reapers Claws Red.mdx", x, y)
    call BlzSetSpecialEffectOrientation( fx, face, 0, Deg2Rad(tilt))
    call BlzSetSpecialEffectHeight(fx, 90 + BlzGetUnitZ(u))
    call DestroyEffect(fx)

    set tilt = -45
    set fx = AddSpecialEffect("war3mapImported\\Reapers Claws Red.mdx", x, y)
    call BlzSetSpecialEffectOrientation( fx, face, 0, Deg2Rad(tilt))
    call BlzSetSpecialEffectHeight(fx, 110 + BlzGetUnitZ(u))
    call BlzSetSpecialEffectTimeScale(fx, 0.8)
    call DestroyEffect(fx)

    set tilt = -135
    set fx = AddSpecialEffect("war3mapImported\\Reapers Claws Red.mdx", x, y)
    call BlzSetSpecialEffectOrientation( fx, face, 0, Deg2Rad(tilt))
    call BlzSetSpecialEffectHeight(fx, 110 + BlzGetUnitZ(u))
    call BlzSetSpecialEffectTimeScale(fx, 0.7)
    call DestroyEffect(fx)

    set u = null
    set fx = null


  • Changelog
17.11.20
-
Uploaded​


  • Notes
Feel free to modify. Give credits.


  • Frequent Issues

Magos' Model Editor
If a.) the model/s present an error regarding a ribbon emitter upon opening, or b.) the models go blank in-game after editing them in Magos', use MdlxConv to convert the uncorrupted file to mdl, edit the model as you wish, and then convert back to mdx before importing.

In-Game
If models with omnilights light up the whole map after conversion, make sure you're using version 1.04 of MdlxConv.
Previews
Contents

Reaper's Claws Blue (Model)

Reaper's Claws Gold (Model)

Reaper's Claws Green (Model)

Reaper's Claws Orange (Model)

Reaper's Claws Pink (Model)

Reaper's Claws Purple (Model)

Reaper's Claws Red (Model)

Reviews
loktar
Beautiful effect. Works well, approved.
Can you share the triggers for the effect your example gifs?
Those are tilted units.
But the config for FX would go:

  • Special Effect - Set Orientation of FX to yaw: (Radians((Facing of U))), pitch: 0.00, roll: (Radians(TiltAngle))
  • Special Effect - Set Height of FX to: (90 + Position - Z of U)
JASS:
call BlzSetSpecialEffectOrientation(fx, Deg2Rad(GetUnitFacing(u)), 0, Deg2Rad(tilt))
call BlzSetSpecialEffectHeight(fx, 90 + BlzGetUnitZ(u))
 
@Mythic
Whats "TiltAngle"? you gob
It's the amount of degrees the effect will turn clockwise when viewing from the front.

Where is the target point of the effect model attached? Is it a hand or a weapon?
Oh, missed this. Create the effect at the unit's location, and then use the trigger actions I posted above.
 
Level 4
Joined
Jul 23, 2014
Messages
73
looks very good, though imho a team color effect would be perfect (but I don't know how to model, maybe it's impossibile or whatever)
 
@Devalut I have yet to release a generic on-hit effect. What you're using works nicely.

@FranzLiszt I tried team color, but it did not look anywhere near as good.

@Teo_omant Feel free to provide more info about your situation. If you are using a game version below 1.31, you'll have to switch the values for Yaw and Roll. The result would be:

JASS:
call BlzSetSpecialEffectOrientation( udg_FX, Deg2Rad(-45.00), 0.0, Deg2Rad(GetUnitFacing(gg_unit_Hpal_0000)))

Also, make sure you are creating the effect where you need it.
 
Last edited:
Level 4
Joined
Nov 4, 2019
Messages
47
@Teo_omant Feel free to provide more info about your situation. If you are using a game version below 1.31, you'll have to switch the values for Yaw and Roll. The result would be:

JASS:
call BlzSetSpecialEffectOrientation( udg_FX, Deg2Rad(45.00), 0.0, Deg2Rad(GetUnitFacing(gg_unit_Hpal_0000)))

Also, make sure you are creating the effect where you need it.[/QUOTE]

I use the latest version, the official one. Switching data also gave no result.The effect appears in the standard position. I tried playing with the values - nothing works.
 
Level 4
Joined
Nov 4, 2019
Messages
47
Code:
    call AddSpecialEffectTargetUnitBJ( "origin", GetTriggerUnit(), "war3mapImported\\Reapers Claws Red.mdx" )
    call BlzSetSpecialEffectOrientation( GetLastCreatedEffectBJ(), Deg2Rad(45.00), 0.0, Deg2Rad(GetUnitFacing(GetTriggerUnit())) )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )

But because of this feature, the game just closes without an error:

Code:
call BlzSetSpecialEffectHeight(fx, 90 + BlzGetUnitZ(u))
 
Level 18
Joined
Jan 1, 2018
Messages
728
Code:
    call AddSpecialEffectTargetUnitBJ( "origin", GetTriggerUnit(), "war3mapImported\\Reapers Claws Red.mdx" )
    call BlzSetSpecialEffectOrientation( GetLastCreatedEffectBJ(), Deg2Rad(45.00), 0.0, Deg2Rad(GetUnitFacing(GetTriggerUnit())) )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
You can't set the effect's orientation when it's attached to a unit.
 
It seems that effects spawn relative to the terrain and the height of the effect represents the distance between it and the terrain it is spawned on. Because of this, adding BlzGetUnitZ(u), makes the effect spawn above the unit when the unit is at a higher coordinate, since the height of the terrain is added twice. Removing BlzGetUnitZ(u) from each of the 3 effects, makes it always spawn on the unit, if the unit doesn't change its height.
 

Uncle

Warcraft Moderator
Level 63
Joined
Aug 10, 2018
Messages
6,456
im a newbie, can someone say how to add this effect to crit attack?
Hello, assuming you're on the latest version, here's a map with a triggered example that you can use. Note that this isn't identical to the normal Critical Strike ability since it's a rather simple trigger. I believe the only other option is to edit the Model of your Unit and incorporate the Reaper's Claws model into it's "Attack Slam" animation. There MAY be a way to incorporate it through the Ability in the Object Editor but I highly doubt it.

Here are the triggers, which will only work on version 1.31+:
  • Critical Slash Setup
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • -------- Define the chance to crit and damage multiplier per [level]: --------
      • -------- --------
      • Set VariableSet CS_Chance[1] = 25.00
      • Set VariableSet CS_Chance[2] = 25.00
      • Set VariableSet CS_Chance[3] = 25.00
      • -------- --------
      • Set VariableSet CS_Multiplier[1] = 2.00
      • Set VariableSet CS_Multiplier[2] = 3.00
      • Set VariableSet CS_Multiplier[3] = 4.00
  • Critical Slash Proc
    • Events
      • Unit - A unit About to take damage
    • Conditions
    • Actions
      • Set VariableSet CS_DamageSource = (Damage source)
      • Set VariableSet CS_Level = (Level of Critical Slash for CS_DamageSource)
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CS_Level Greater than 0
          • (Random real number between 1.00 and 100.00) Less than or equal to CS_Chance[CS_Level]
          • ((Damage Target) is A structure) Equal to False
        • Then - Actions
          • Special Effect - Create a special effect attached to the chest of CS_DamageSource using Reaper's Claws Red.mdx
          • Special Effect - Destroy (Last created special effect)
          • -------- --------
          • Set VariableSet CS_Damage = ((Damage taken) x CS_Multiplier[CS_Level])
          • Event Response - Set Damage of Unit Damaged Event to CS_Damage
          • -------- --------
          • Floating Text - Create floating text that reads ((String((Integer(CS_Damage)))) + !) above CS_DamageSource with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
          • Set VariableSet CS_FloatingText = (Last created floating text)
          • Floating Text - Change CS_FloatingText: Disable permanence
          • Floating Text - Set the velocity of CS_FloatingText to 64.00 towards 90.00 degrees
          • Floating Text - Change the lifespan of CS_FloatingText to 2.00 seconds
          • Floating Text - Change the fading age of CS_FloatingText to 1.50 seconds
        • Else - Actions
 

Attachments

  • Custom Critical Strike.w3m
    25 KB · Views: 25
Level 5
Joined
Sep 1, 2022
Messages
86
Hello, assuming you're on the latest version, here's a map with a triggered example that you can use. Note that this isn't identical to the normal Critical Strike ability since it's a rather simple trigger. I believe the only other option is to edit the Model of your Unit and incorporate the Reaper's Claws model into it's "Attack Slam" animation. There MAY be a way to incorporate it through the Ability in the Object Editor but I highly doubt it.

Here are the triggers, which will only work on version 1.31+:
  • Critical Slash Setup
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • -------- Define the chance to crit and damage multiplier per [level]: --------
      • -------- --------
      • Set VariableSet CS_Chance[1] = 25.00
      • Set VariableSet CS_Chance[2] = 25.00
      • Set VariableSet CS_Chance[3] = 25.00
      • -------- --------
      • Set VariableSet CS_Multiplier[1] = 2.00
      • Set VariableSet CS_Multiplier[2] = 3.00
      • Set VariableSet CS_Multiplier[3] = 4.00
  • Critical Slash Proc
    • Events
      • Unit - A unit About to take damage
    • Conditions
    • Actions
      • Set VariableSet CS_DamageSource = (Damage source)
      • Set VariableSet CS_Level = (Level of Critical Slash for CS_DamageSource)
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CS_Level Greater than 0
          • (Random real number between 1.00 and 100.00) Less than or equal to CS_Chance[CS_Level]
          • ((Damage Target) is A structure) Equal to False
        • Then - Actions
          • Special Effect - Create a special effect attached to the chest of CS_DamageSource using Reaper's Claws Red.mdx
          • Special Effect - Destroy (Last created special effect)
          • -------- --------
          • Set VariableSet CS_Damage = ((Damage taken) x CS_Multiplier[CS_Level])
          • Event Response - Set Damage of Unit Damaged Event to CS_Damage
          • -------- --------
          • Floating Text - Create floating text that reads ((String((Integer(CS_Damage)))) + !) above CS_DamageSource with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
          • Set VariableSet CS_FloatingText = (Last created floating text)
          • Floating Text - Change CS_FloatingText: Disable permanence
          • Floating Text - Set the velocity of CS_FloatingText to 64.00 towards 90.00 degrees
          • Floating Text - Change the lifespan of CS_FloatingText to 2.00 seconds
          • Floating Text - Change the fading age of CS_FloatingText to 1.50 seconds
        • Else - Actions
As always, you have done something useful.👍
 
Top