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

You can help me with the ultimate sniper?

Status
Not open for further replies.
Level 13
Joined
Oct 12, 2016
Messages
769
If you mean Sniper from DotA, it's basically "storm bolt" with a casting time.
You can make a trigger with the targeting effect on the target unit when you begin "channeling" the ability.
 
Level 7
Joined
Mar 16, 2014
Messages
152
Here is a version of Dota Sniper's ult I made to more resemble the version seen in the game. It's not MUI.

Code:
Assassinate Cast

    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Assassinate
    Actions
        Set AssassinateVictim = (Target unit of ability being cast)
        Set Pinstripe = (Triggering unit)
        Set Temp_Point = (Position of AssassinateVictim)
        Unit - Create 1 Dummy unit spells for (Owner of Pinstripe) at Temp_Point facing Default building facing degrees
        Custom script:   call RemoveLocation (udg_Temp_Point)
        Set Temp_Unit = (Last created unit)
        Unit - Add Faerie Fire (Assassinate) to Temp_Unit
        Unit - Order Temp_Unit to Night Elf Druid Of The Talon - Faerie Fire AssassinateVictim
        Unit - Add a 1.00 second Generic expiration timer to Temp_Unit
        Unit - Pause Pinstripe
        Sound - Play Assassinateprecast <gen> at 100.00% volume, attached to Pinstripe
        Set TempInteger = (Random integer number between 1 and 3)
        If (TempInteger Equal to 1) then do (Sound - Play Pinstripeyouremine <gen> at 100.00% volume, attached to Pinstripe) else do (Do nothing)
        If (TempInteger Equal to 2) then do (Sound - Play Pinstripesaygoodnight <gen> at 100.00% volume, attached to Pinstripe) else do (Do nothing)
        If (TempInteger Equal to 3) then do (Sound - Play Pinstripehavesomeofthis <gen> at 100.00% volume, attached to Pinstripe) else do (Do nothing)
        Countdown Timer - Start AssassinateTimer[1] as a One-shot timer that will expire in 2.00 seconds

Code:
Assassinate Projectile Spawn
    Events
        Time - AssassinateTimer[1] expires
    Conditions
    Actions
        Countdown Timer - Pause AssassinateTimer[1]
        Unit - Unpause Pinstripe
        If ((Pinstripe is alive) Equal to True) then do (Do nothing) else do (Skip remaining actions)
        Animation - Play Pinstripe's attack animation
        Set Temp_Point = (Position of Pinstripe)
        Set TempLoc = (Position of AssassinateVictim)
        Unit - Create 1 Big Bullet for (Owner of Pinstripe) at Temp_Point facing TempLoc
        Custom script:   call RemoveLocation (udg_Temp_Point)
        Custom script:   call RemoveLocation (udg_TempLoc)
        Set AssassinateProjectile = (Last created unit)
        Sound - Play Assassinatecast <gen> at 100.00% volume, attached to Pinstripe
        Countdown Timer - Start AssassinateTimer[2] as a One-shot timer that will expire in 0.02 seconds

Code:
Assassinate Projectile Move
    Events
        Time - AssassinateTimer[2] expires
    Conditions
    Actions
        Countdown Timer - Pause AssassinateTimer[2]
        Set Temp_Point = (Position of AssassinateProjectile)
        Set TempLoc = (Position of AssassinateVictim)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Distance between Temp_Point and TempLoc) Less than or equal to 75.00
            Then - Actions
                Unit - Kill AssassinateProjectile
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (AssassinateVictim is A structure) Equal to False
                        (AssassinateVictim is Magic Immune) Equal to False
                        (AssassinateVictim is Mechanical) Equal to False
                    Then - Actions
                        Unit - Cause Pinstripe to damage AssassinateVictim, dealing (155.00 + (165.00 x (Real((Level of Assassinate  for Pinstripe))))) damage of attack type Chaos and damage type Universal
                        Unit - Remove Assassinate  buff from AssassinateVictim
                        Set TempInteger = (Random integer number between 1 and 4)
                        If (TempInteger Equal to 1) then do (Sound - Play Pinstripelaugh1 <gen> at 100.00% volume, attached to Pinstripe) else do (Do nothing)
                        If (TempInteger Equal to 2) then do (Sound - Play Pinstripelaugh2 <gen> at 100.00% volume, attached to Pinstripe) else do (Do nothing)
                        If (TempInteger Equal to 3) then do (Sound - Play Pinstripeyes <gen> at 100.00% volume, attached to Pinstripe) else do (Do nothing)
                        If (TempInteger Equal to 4) then do (Sound - Play Pinstripeoverthetop <gen> at 100.00% volume, attached to Pinstripe) else do (Do nothing)
                    Else - Actions
            Else - Actions
                Set TempLoc2 = (Temp_Point offset by 80.00 towards (Angle from Temp_Point to TempLoc) degrees)
                Unit - Move AssassinateProjectile instantly to TempLoc2, facing TempLoc
                Custom script:   call RemoveLocation (udg_Temp_Point)
                Custom script:   call RemoveLocation (udg_TempLoc)
                Custom script:   call RemoveLocation (udg_TempLoc2)
                Countdown Timer - Start AssassinateTimer[2] as a One-shot timer that will expire in 0.02 seconds
 
Status
Not open for further replies.
Top