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

Deafening Strike v2.1

Hi everyone,

This is the second real spell I ever made.
It is MUI and should be quite user-friendly.

To use this spell, copy the "Defeaning Strike" folder and paste it into your trigger.
IMPORTANT: You should go into your preferences and set auto create variables for important trigger to yes before importing.
Then you have to import the dummy unit in the object editor or create your own.
The same you have to do with the "Defeaning Strike" spell, or create another spell.

This spell is free to use, but I would appreciate, if you gave me credits, when using it.
If you have any suggestions, detect any leaks/bugs or just to tell me it's a good spell (;D), just wirte a PM at hiveworkshop.com to Roflcoptor.

Credits go to the almighty paladon (again) for the respawn things, for just being almighty and for fixing a bug
(as everytime) and of course all hail to palaslayer, who brought me to real mapping (other than just changing model datas ;)), who tought me a lot, and the most important thing: who explained me MUI, and besides, from whom I got this beautiful testmap.

That's all so far
Roflcoptor (R0flc0pt0r)

v1.3:
-changed the targets so you can't target destrucibles (thx to Mage Goo)
-changed name (thx to hvo-busterkomo)
v2.0
-Now the caster first charges the target, then throws it up in the air while he blinks to the location where the target will be and then smacks the target to the ground. Thx to Deuterium
v2.1
-replaced the order stop with a pause, making it way more efficient one the one hand and looking neater on the other


Keywords:
Defeaning, Strike, Slash, Smash, Slay, Hack, MUI, GUI
Contents

Defeaning Strike (Map)

Reviews
07:00, 3rd Jun 2009 hvo-busterkomo: Leak free and MUI. It seems indexing systems in GUI have become quite popular. The documentation was extensive, allowing anyone to easily modify it. The only suggestion I have is to combine the "Deafening Strike...

Moderator

M

Moderator

07:00, 3rd Jun 2009
hvo-busterkomo: Leak free and MUI. It seems indexing systems in GUI have become quite popular. The documentation was extensive, allowing anyone to easily modify it. The only suggestion I have is to combine the "Deafening Strike Init" and "Actions to Apply" into a single trigger (it doesn't really matter). I guess people may find it easier to read the way you have it set up. One last thing; it's 'deafening', not 'defening' :)

The_Reborn_Devil:
The triggering looks good, but you don't need to null globals.
Approved.
 
Level 7
Joined
Aug 30, 2008
Messages
347
nice spell! ill try it.

Edit: i tried the spell and here are my comments
-i think its a bit strange that the enemy flies up to meet the blade masters "Blade" face first only to be knocked back down, unless the blade master is a telekinetic of course.


it would be best if its melee or if an illusion knocks them from behind.

My rating is 3.2/5 may be useful for some people.
 
Last edited:
Level 17
Joined
Mar 17, 2009
Messages
1,349
Since the spell seems flawless and I'm really tired and sleepy, I won't be doing that huge review I always use.

First, (some people would nag about this being a BJ as they don't know the core of this) don't use bj_wantDestroyGroup unless you know how it functions. It's not wrong to use it if you don't know how it functions, but why not use call DestroyGroup() manually then?

Anyways, in case you don't know how it functions, it interacts with a part of a BJ function when picking units which contains an if/then/else to automatically call DestroyGroup() if the bj_wantDestroyGroup is set to true.

It's one additional action and the decrease of efficiency due to it would be very minimal, so it's not that much of a big deal.

Yet I still prefer removing it manually.


You've nulled globals that don't leak and I usually know that is unnecessary. However, that's a controversial matter so I'd let you do what you want considering that.


Now the one big problem, the animations and effects.
I looks really weird that the enemy unit is flying before being hit.

I don't know about your mathematical abilities, but if they're high enough you can use some advanced math make the triggering unit's motion arc-ish so that he takes the unit up and then slams:
45820868.jpg


Scratch your head a bit and try to find out how to do it. ;)

Combine linear movement, with an arc-ish motion, then linear, then slam to the ground!


Other than that, everything seemed nice and functioning as supposed to!

Amazing job for a second spell!

All-in-all:

Spell is well done and functions as it should. Idea is nice and can be useful. Triggering is MUI, leakless and as efficient as it could be in GUI. Units' elevation could be improved and adjusted, but that does not affect that badly.
 
Level 24
Joined
Jun 16, 2008
Messages
1,939
First, (some people would nag about this being a BJ as they don't know the core of this) don't use bj_wantDestroyGroup unless you know how it functions. It's not wrong to use it if you don't know how it functions, but why not use call DestroyGroup() manually then?

Anyways, in case you don't know how it functions, it interacts with a part of a BJ function when picking units which contains an if/then/else to automatically call DestroyGroup() if the bj_wantDestroyGroup is set to true.


about the bj thingy, in gui it is just shorter and as a result more effective. and it sucks to set a variable first, use it and then manually remove it..
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
Palaslayer said:
about the bj thingy, in gui it is just shorter and as a result more effective. and it sucks to set a variable first, use it and then manually remove it..
Well after second thought, it's almost the same thing.
Using bj_wantDestroyGroup you set a boolean, manually you set a Unit Group Variable.
So in both cases you are setting a variable.

The difference is that later you have to script call DestroyGroup() when and however using if bj_wantDestroyGrouo it runs the call DestroyGroup() automatically.

So it's the same thing in the end...
 
Level 9
Joined
Nov 25, 2008
Messages
194
Well @ Deut: some globals have to be nulled, not because they leak but just because they are set like this (example):
  • Set X[A]=(X[A]+1)
Now if X[A] has reached for example the value 10, and the trigger runs the second time with the same index it would start with 11 and end with 20 and so on......

Well btw updated^^

I'll perhaps workout a second version of this spell working with setUnitX and setUnitY, but I'm currently working on hero contest
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
Just to mention:
bj_wantDestroyGroup() is less efficent than manualy calling DestroyGroup().
All bj functions are bad cause they are functions which call another function.
Unfourtanetly almost all GUI functions are bj.
Point is, if you want efficency use DestroyGroup() over bj_wantDestroyGroup().
Though it is only a minor efficency improvement, it is an improvement.
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
Well, Kingz I don't think in GUI it's gonna make any difference :p

I mean here's what's gonna happen in the Jass background:

If you use the bj as true
JASS:
set bj_wantDestroyGroup = true //this happens before the pick units function

    //here's the function
    local boolean wantDestroy = bj_wantDestroyGroup
    set bj_wantDestroyGroup = false
    call ForGroup(whichGroup, callback)
    if (wantDestroy) then // since it's true it'll call the destroy
        call DestroyGroup(whichGroup)
    endif

If done manually
JASS:
    local boolean wantDestroy = bj_wantDestroyGroup
    set bj_wantDestroyGroup = false
    call ForGroup(whichGroup, callback)
    if (wantDestroy) then // since it's false it'll skip this
        call DestroyGroup(whichGroup)
    endif
    call DestroyGroup(whichGroup) //manually destroying

So in GUI, same thing :p correct me if I'm wrong
 
Level 9
Joined
Nov 25, 2008
Messages
194
More comments on the spell plox ;)

I don't really think, that it's much of a big deal anyway, since it only happens once per cast and it only is (if Kingz is right) such a small issue that it won't effect performance anyway unless you have like 100 casters casting simultanously
 
Top