Spell Omnislash

D

Dreyfuss

Guest
I think it would, if I knew what the heck you were talking about T_T

I'm a creative person, not a technical one ^^;;;

-EDIT- I got it mostly working but I need to know if there's a way to do Units in Range Matching Condition using two conditions. I want to make a unit group of units that are both alive AND not heroes.

-EDIT2- Nevermind... that's what the and comparison is for ^^;;;;;;;;;;; Now I really feel like a noob >_>

-EDIT3- Done. It was a little harder than I expected but considering that I was actually able to do it, I suppose it wasn't that hard in the long run. Here's my version: Cleaver. FF6 fans should recognize it :D

-EDIT4- Now upon trying to stick the skill in a spellbook with other skills it has become completely messed up. I think it has something to do with the fact that the other skills have different casting times. It seems to always end the channeling for Cleaver after 2 seconds, the amount of charge time for the fastest skill, and then Cleaver never actually activates.
 

Attachments

  • Cleaver.w3x
    24.9 KB · Views: 317
N

Negative

Guest
on my ongoing search for a possible proper way to fix cooldowns on skills like these i managed to find this interesting thread. it seemed like this skill was well made, and i had my hopes up, but i encountered the same old problem as before. basically i tested your map and the skill cooldown does not activate at all (regardless of there being a "starts the effect of an ability" thing in the events area), so i was wondering, is there any possible solution or way of fixing this? i've fiddled around with the activating skill's cooldown and certain few things, but still no results. are there any other ideas? because i'm sure its possible, since the dota version had a 100% working cooldown after the skill activation.

many thanks to the person who can help me out =\ (this problem has been plaguing me for the past while on skills like these)
 

Tinki3

Special Member
Reaction score
418
I'm actually not too sure as to how you fix a spell that has no cooldown, even though it has one in the Object Editor..

This problem does, however, have something to do with the spell being triggered.

I suggest, or, advise to mess around with some different events for the trigger, or even base the ability of another, such as Channel.

I've never had this problem when I base my custom triggered spell of Channel before, and since its meant to be used strictly for triggered spells, it is probably alot more reliable than others.

That's all I can think of, so I hope it helps.
 

denmax

You can change this now in User CP.
Reaction score
155
Well, the only thing you lack now is the double slash, critical strike and the (random) sound effects

(i actually didn't notice that you made another post here, so i just posted again here)

I can help you in Double Slash and Random Pawn Sound Effects, but not in Critical Damages, as you said in the Tutorial Post that in DotA, Juggy can critical even in Omnislash

I think you should try it like this..

If your unit's attacks are in heavy slice, then.
Go to Sound Editor then get the Combat Sounds in Metal Heavy (found in Sounds: Units)
I would prefer picking only the 3 metal heavy slice flesh sound effects
So it would be like this.

Code:
Events
      Unit - A unit Starts the effect of an ability
Conditions
      (Ability being cast) Equal to [Name of Abiltiy that you like
Actions
      Set [Unit Omnislasher Variable] = (Triggering/Casting Unit)
      Set [Unit Omnislashed Variable] = (Target unit of ability being cast)
      Set [Point Omnislashed Variable] = (Position of Unit Omnislashed Variable)
      [B]Set [RandomS Interger Variable] = (Random integer number between 1 and 3 [not sure what it typed)[/B]
      If .....
      If ....
      If ....
      Unit - Make [Unit Omnislasher Variable] Invulnerable
      Animation - Change [Unit Omnislasher Variable] vertex coloring....
      Selection - Remove ...
      Unit - Move ....
      [B]If [RandomS Integer Variable] Equal to 1 then do Sound - Play (MetalHeavySlice1) at [Point Omnislashed Variable] volume 100%....
      [THEN CONTINUE UNTIL IT GOES TO 3 AND THE LAST SOUND]
      Set [RandomS Integer Variable] = 0[/B]
      Custom Script: call Remove....
      ......

Then you just do the same thing at the bottom of loops, just change the point in making the sound

Now creating Double Slash..
I've noticed that its never gonna dual slash when you still cast the spell (first jump to be more specific)
Then you would only put this in the loops already..

So..
Code:
.....
      Then - Actions
             Unit Group - Pick every unit in [UnitGroup[2] - (this is not part of the name, if you checked the array in your variable, then this would be available)
                   Loop - Actions
                         Set ...
                         Set ...
                         Set [RandomS Interger Variable] = (Random integer number between 1 and 3 [not sure what it typed)
                         [B]Set [DoubleSlashChance] = Random integer number between 1 and (10)[/B]
                         Selection - ....
                         Unit - .........
                         If [RandomS Integer Variable]...
                         If [RandomS...
                         If [RandomS...
                         Custom Script: ........
                         Animation - .......
                         SFX - .......
                         SFX .........
                         [B]If [DoubleSlashChance] Equal to (1) then Do Nothing else do Do Nothing
                             (Keep doing this, just change the number after Equal to until it goes to the half (5 if ten is highest random - [Equal to (--)])
                         If [DoubleSlashChance] Equal to (5) then do (Actions
                                   Then - Actions
                                         (Just copy whole thing from top, just remove the Picked Unit Variable)
                                               Else - Actions
                                                    Do Nothing
                         If [DoubleSlashChance] Equal to (6) then Do Nothing else do Do Nothing
                              (Keep doing this until it reaches 10)[/B]

I didn't use..
Code:
If - Conditions
  [DoubleSlashChance] Equal to (5)
  Random integer number between 1 to 100 Less than or Equal to (10 - [chance])
..this kind of condition bcuz i think it creates a buggy..

And, im tired of writing the Floating Text -.-Zzzzzz.. I have Floating Text in my map but just go to the Chat Over Units Tutorial and put the Floating Text Actions in between Set [RandomS.. and Custom Script: call...

EDIT: The RandomS Integer Variable and the DoubleSlashChance Variable is an INTEGER Variable..
That's INTEGER..
 

Tinki3

Special Member
Reaction score
418

Prometheus

Everything is mutable; nothing is sacred
Reaction score
589
Just looking over your spells Tinki3 and I found 2 things in this one.
1. You should pause the caster, he started to run away!
2. "Abilities/Spells/Human/Invisibility/InvisibilityTarget.mdx" is almost exactly like DotA's effect but you have to re-add it in the loop because it doesn't stay.
 

Tinki3

Special Member
Reaction score
418
> You should pause the caster, he started to run away!
Pausing abolishes the ability to physically attack targets at times.
ie: Cause a critical strike, or cleave extra targets.

> 2
I made this Omnislash as a replica to DotA's some time last year,
which means that the eye-candy is most probably not up-to-date.
 
I

Itachy.Hyuga

Guest
Hi,
Cool, well done, I like that you did it in GUI.
Although i have a question, when you atack a solo target the casting unit stays at the same position infront of the atacked unit, just blinks and does damage.
I don't really know how to change, that the Casting Unit (for exsample) turns around the solo Atacked Unit.

*with solo i mean: a unit is beeing atacked with the speel and no other unit besides the Atacking Unit and the Atacked Unit are in the range*

Thanks in advance XD

pills11.com ;))
 

Tinki3

Special Member
Reaction score
418
All you need to do, Itachy.Hyuga, is to move the casting unit to a point with a polar offset, with a random angle.

For example:
Set loc[1] = Position of (some unit)
Set loc[2] = loc[1] offset by 125.00 towards random angle degrees.
 
B

B4kudan

Guest
Night/day spell

How can i make the balanars ability that significantly increase as/ms at night.
 

RedRage

New Member
Reaction score
7
Well good job, i was going to make omnislash in GUI =D

Don't mind this, just for me to look at

Code:
Omnislash
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Omnislash 
    Actions
        Set o = (Triggering unit)
        Set t = (Target unit of ability being cast)
        Set tl = (Position of t)
        If ((Level of Omnislash  for o) Equal to 1) then do (Set loops = 2) else do (Do nothing)
        If ((Level of Omnislash  for o) Equal to 2) then do (Set loops = 4) else do (Do nothing)
        If ((Level of Omnislash  for o) Equal to 3) then do (Set loops = 7) else do (Do nothing)
        Unit - Make o Invulnerable
        Animation - Change o's vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
        Selection - Remove o from selection
        Unit - Move o instantly to tl
        Custom script:   call RemoveLocation(udg_tl)
        Animation - Play o's attack animation
        Unit - Cause o to damage t, dealing (Random real number between 150.00 and 250.00) damage of attack type Hero and damage type Normal
        Special Effect - Create a special effect attached to the chest of o using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
        Special Effect - Destroy (Last created special effect)
        For each (Integer A) from 1 to loops, do (Actions)
            Loop - Actions
                Wait 0.30 game-time seconds
                Set o_current_loc = (Position of o)
                Set EG[1] = (Units within 600.00 of o_current_loc matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of o)) Equal to True) and ((((Matching unit) is A flying 
                Set EG[2] = (Random 1 units from EG[1])
                Custom script:   call RemoveLocation(udg_o_current_loc)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Number of units in EG[1]) Greater than 0
                    Then - Actions
                        Unit Group - Pick every unit in EG[2] and do (Actions)
                            Loop - Actions
                                Set p = (Picked unit)
                                Set pl = (Position of p)
                                Selection - Remove o from selection
                                Unit - Move o instantly to pl
                                Custom script:   call RemoveLocation(udg_pl)
                                Animation - Play o's attack animation
                                Unit - Cause o to damage p, dealing (Random real number between 150.00 and 250.00) damage of attack type Hero and damage type Normal
                                Special Effect - Create a special effect attached to the chest of o using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                                Special Effect - Destroy (Last created special effect)
                        Custom script:   call DestroyGroup(udg_EG[1])
                        Custom script:   call DestroyGroup(udg_EG[2])
                    Else - Actions
                        Custom script:   call DestroyGroup(udg_EG[1])
                        Custom script:   call DestroyGroup(udg_EG[2])
                        Selection - Add o to selection for (Owner of o)
                        Animation - Change o's vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                        Unit - Make o Vulnerable
        Selection - Add o to selection for (Owner of o)
        Animation - Change o's vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
        Unit - Make o Vulnerable
 
L

Lord_jatyu

Guest
Look I just wanna thank you for a GUI Omnislash for in my map cloud needed an ultimate :D
 

Doomhammer

Bob Kotick - Gamers' corporate spoilsport No. 1
Reaction score
67
can I add my JASS rewrite?

my version comes along with quite a few function calls less, and does the whole thing without the need for handle vars, while still being JESP.
 

Doomhammer

Bob Kotick - Gamers' corporate spoilsport No. 1
Reaction score
67
count the bj's :D


JASS:
constant function MultiSlash_SpellId takes nothing returns integer
    return 'A03X'
endfunction

constant function MultiSlash_Damage takes integer level returns real
    return 50.0 + level * 35.0
endfunction

constant function MultiSlash_Area takes integer level returns real
    return 225.0 + level * 75.0
endfunction

constant function MultiSlash_Delay takes nothing returns real
    return 0.35   //delay between the single hits
endfunction

constant function MultiSlash_TargetAmount takes integer level returns integer
    return 2 + level * 3
endfunction

constant function MultiSlash_TrailEffect takes nothing returns string
    return "Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl"
endfunction

constant function MultiSlash_BlinkEffect takes nothing returns string
    return "Abilities\\Spells\\NightElf\\Blink\\BlinkCaster.mdl"
endfunction

function MultiSlash_Filter takes nothing returns boolean
    return IsUnitEnemy(GetFilterUnit(), bj_groupEnumOwningPlayer)==true and GetWidgetLife(GetFilterUnit()) > 0.405 and IsUnitType(GetFilterUnit(),UNIT_TYPE_GROUND)==true 
endfunction

function MultiSlash takes nothing returns nothing
    local unit c=GetTriggerUnit()
    local unit u=GetSpellTargetUnit()
    local player p=GetOwningPlayer(c)
    local boolexpr b=Filter(function MultiSlash_Filter)
    local integer l=GetUnitAbilityLevel(c, MultiSlash_SpellId())
    local effect fx=AddSpecialEffectTarget(MultiSlash_TrailEffect(),c,"weapon")
    local integer i=MultiSlash_TargetAmount(l)
    local group g=CreateGroup()
    local real x=GetUnitX(u)
    local real y=GetUnitY(u)   
    local real deg
  
    call SetUnitInvulnerable(c,true)
    call SelectUnit(c,false)
    call SetUnitVertexColor(c, 150, 150, 150, 150 )
    set bj_groupEnumOwningPlayer=p
    call GroupEnumUnitsInRange(g,x,y, MultiSlash_Area(l),b)
    
    loop
        exitwhen i<1
        if i<MultiSlash_TargetAmount(l) then
            set u=FirstOfGroup(g)
            if u==null then
		set bj_groupEnumOwningPlayer=p
                call GroupEnumUnitsInRange(g,GetUnitX(c),GetUnitY(c), MultiSlash_Area(l),b)
                set u=FirstOfGroup(g)
            endif
	    exitwhen u==null
            set x=GetUnitX(u)
            set y=GetUnitY(u)
        endif
        set deg=GetRandomReal(0,2*bj_PI)
        set x=x+100*Cos(deg)
        set y=y+100*Sin(deg)    
        call SetUnitFacing( c, deg*bj_RADTODEG )
        call SetUnitPosition( c, x, y )
        call DestroyEffect(AddSpecialEffectTarget(MultiSlash_BlinkEffect(),c, "chest"))
        call SetUnitAnimation(c,"attack")    
        call UnitDamageTarget(c, u, MultiSlash_Damage(l), false, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, null)
        call GroupRemoveUnit(g,u)
        call TriggerSleepAction(MultiSlash_Delay())
        set i=i-1
    endloop
    
    call SetUnitInvulnerable(c,false)
    call SetUnitVertexColor(c, 255, 255, 255, 255 )    
    if p==GetLocalPlayer() then
        call SelectUnit(c,true)
    endif
    
    call DestroyEffect(fx)
    call DestroyBoolExpr(b)
    call DestroyGroup(g)
    set fx=null
    set g=null
    set c=null
    set u=null
    set p=null
endfunction

//===========================================================================
function InitTrig_MultiSlash takes nothing returns nothing
call OnAbilityEffect(MultiSlash_SpellId(), "MultiSlash")
endfunction
 

Prometheus

Everything is mutable; nothing is sacred
Reaction score
589
Doom, can I steal this?

JASS:
constant function MultiSlash_TrailEffect takes nothing returns string
    return "Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl"
endfunction

local effect fx=AddSpecialEffectTarget(MultiSlash_TrailEffect(),c,"weapon")
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top