Knockback

Cokemonkey11

New Member
Reaction score
18
I've been trying to get an ability for my map to work, the ability - War Shout.
Whats it do?
75 dammage and knockback to any unit within 300 gu.

It works great! But it lags!
Interpolation time is set to .04 seconds, but a visible lag is still there!
Trigger 1 -
Code:
War Shout
    Events
        Unit - A unit Begins casting an ability
    Conditions
        (Ability being cast) Equal to War Shout
    Actions
        Wait 0.40 seconds
        Unit Group - Pick every unit in (Units within 300.00 of (Position of (Casting unit))) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Not equal to (Casting unit)
                    Then - Actions
                        Unit - Make (Picked unit) face (Casting unit) over 0.00 seconds
                        Unit Group - Remove all units from OS_WarShout_Victim
                        Set OS_WarShout_Victim = (Last created unit group)
                        Trigger - Run War Shout2 <gen> (checking conditions)
                    Else - Actions

Trigger 2 -

Code:
War Shout2
    Events
    Conditions
    Actions
        Unit Group - Pick every unit in OS_WarShout_Victim and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Not equal to (Casting unit)
                    Then - Actions
                        Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 75.00 towards ((Facing of (Picked unit)) - 180.00) degrees)
                    Else - Actions
        Wait 0.04 seconds
        Unit Group - Pick every unit in OS_WarShout_Victim and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Not equal to (Casting unit)
                    Then - Actions
                        Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 75.00 towards ((Facing of (Picked unit)) - 180.00) degrees)
                    Else - Actions
        Wait 0.04 seconds
        Unit Group - Pick every unit in OS_WarShout_Victim and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Not equal to (Casting unit)
                    Then - Actions
                        Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 75.00 towards ((Facing of (Picked unit)) - 180.00) degrees)
                    Else - Actions
        Wait 0.04 seconds
        Unit Group - Pick every unit in OS_WarShout_Victim and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Not equal to (Casting unit)
                    Then - Actions
                        Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 75.00 towards ((Facing of (Picked unit)) - 180.00) degrees)
                    Else - Actions
        Wait 0.04 seconds
        Unit Group - Pick every unit in OS_WarShout_Victim and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Not equal to (Casting unit)
                    Then - Actions
                        Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 75.00 towards ((Facing of (Picked unit)) - 180.00) degrees)
                    Else - Actions
        Wait 0.04 seconds

This is very confusing to me... If anyone can help, or direct me to a tutorial, taht would be great.

Peace,
 
I

IKilledKEnny

Guest
Every unit group set variable to and every point define as variable aswell. Should fix it if you do it right. Unless I'm totally wrong :p
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
That "Wait .04 seconds" can't be .04. The lowest default is .1. If you go any lower than that (i.e. your .04) it will read it as .1. Sorry. (As far as I know anyway - you might like to read up about timers.)

In your first trigger you also have .40 instead of maybe .04? I don't know if thats deliberate but that might be whats causing the lagging.

Also check out some memory leak tutorials. You're getting two different types of "lag" from your triggers - 1) a delay in the working of the trigger and 2) memory leaks.
 
T

Tele-Z-Apper

Guest
You can have lower than .1 in time triggers, just not in setting a units size. <.<
But yes, in your first trigger, the first wait is .40, don't know if that is it though..
 

uberfoop

~=Admiral Stukov=~
Reaction score
177
You can have lower than .1 in time triggers, just not in setting a units size. <.<

Not on waits. Try making a slide using a standard JASS loop. It's disgusting, the unit moves like 4 times a second.

Therefore you use timers.
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
You can have lower than .1 in time triggers, just not in setting a units size. <.<
But yes, in your first trigger, the first wait is .40, don't know if that is it though..

You can SET a WAIT to anything lower than .1 but WC3 will not READ it as lower than .1.
 

hell_knight

Playing WoW
Reaction score
126
Not on waits. Try making a slide using a standard JASS loop. It's disgusting, the unit moves like 4 times a second.

Therefore you use timers.

Oh what IS the difference from a JASS loop and a GUI periodic event?

Ive heard all this stuff about JASS slides are better than GUI but how can they be smoother, if GUI moves every 0.01 seconds.
 

uberfoop

~=Admiral Stukov=~
Reaction score
177
erm..people don't use standard loops for slides. That would be retarted.
This is a basic standard loop:

Code:
loop
//ACTIONS
set i = i+1
exitwhen i > timestoloop
endloop
 

Joker(Div)

Always Here..
Reaction score
86
If he wanted jass, then he would have posted it in the jass section. the loop in jass is equivalent to this:
Code:
For each (Integer A) from # to #, do (Actions)
    Loop - Actions
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
What he wants is an result. How he does it is entirely up to him. All we're doing is pointing him in the general direction of where to go if he wants a better result.

Please people, if your going to argue, do some research before posting. The difference with a GUI slide and a JASS slide (which is essentially the knockback result he wants), is like the difference between driving a 1956 Ford with a 2006 Ferrari. If you want to go faster use the Ferrari!

Sure you can use the Ford. But it's clunky and jerky.
 

Cokemonkey11

New Member
Reaction score
18
Well... .1 second wait time is equivelent to 10 frames per second, and im not sure thats fast enough..

I also have no JASS knowledge, and am avoiding it. The only thing left for me to try is the For integer A between # and # option..

I'll try it.

Thanks

{Some time later}

Integer a thing doesn't work. Jumps to 500apx gu.. if anyone can think of a good way to do it please tell me.
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
Try Mem's Periodic Slide tutorial thread. Practise with that and with modifying his scripts (gui & JASS - don't leave jass alone because you don't understand it - try it out) and you will get the result you want in no time.

Keep asking questions, keep asking for help, you'll get there. :)
 

Cokemonkey11

New Member
Reaction score
18
Figured it out. Works perfect.

20apx fps, (i can make it higher too) GUI based. Still no jass.


Trigger 1:
Code:
War Shout
    Events
        Unit - A unit Begins casting an ability
    Conditions
        (Ability being cast) Equal to War Shout
    Actions
        Wait 0.30 seconds
        Unit Group - Pick every unit in (Units within 300.00 of (Position of (Casting unit))) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Not equal to (Casting unit)
                    Then - Actions
                        Unit - Make (Picked unit) face (Casting unit) over 0.00 seconds
                        Unit Group - Remove all units from OS_WarShout_Victim
                        Set OS_WarShout_Victim = (Last created unit group)
                        Set OS_WarShoutNum = 0
                        Trigger - Run War Shout2 <gen> (checking conditions)
                    Else - Actions

Trigger 2:
Code:
War Shout2
    Events
        Time - Every 0.06 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in OS_WarShout_Victim and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        OS_WarShoutNum Not equal to 7
                    Then - Actions
                        Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 50.00 towards ((Facing of (Picked unit)) - 180.00) degrees)
                        Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Human\Defend\DefendCaster.mdl
                        Set OS_WarShoutNum = (OS_WarShoutNum + 1)
                    Else - Actions

!!!Hopefully this helps someone.
 
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