Help improving this Spell

Weep

Godspeed to the sound of the pounding
Reaction score
400
For your consideration: I just had an idea for another approach to creating special effects at a certain Z-offset. It uses one dummy unit and one unit ability per special effect model; the dummy unit has a highly negative Projectile Impact Z, and the ability is an instant-hit self-targetable missile spell (Absorb Mana), thus creating a special effect (death animation only, of course) at a variable Z offset which may be below ground (ground level is obtained by adding the inverse of the negative Projectile Impact Z to the flying height). Since it's a projectile detonation, it won't move with the dummy and thus can be "multi-cast" with proper effect. The dummy's scale at the instant of cast will vary the effect's scale.

Demo map attached.
 

Attachments

  • SpecialEffectZ Hack.w3x
    18.6 KB · Views: 186

SerraAvenger

Cuz I can
Reaction score
234
Errr ... this thread is about improving my spell, not his one, though his one is awfully triggered, I agree.
For the performance improvement, use struct.

How fast were hashtables again?
77% slower than arrays.
And they're smoking fast. Do you REALLY believe that the tiny bit of time you save with that is enough?

use global variable instead function, more readable and fast <i think>
No. Neither.

BTT:
Using one model (as Narks suggested) should be the best idea. Since it only lags in multiplayer, it should be something handle related, the amount of created/destroyed units suggests that too.
 

Zwiebelchen

You can change this now in User CP.
Reaction score
60
For your consideration: I just had an idea for another approach to creating special effects at a certain Z-offset. It uses one dummy unit and one unit ability per special effect model; the dummy unit has a highly negative Projectile Impact Z, and the ability is an instant-hit self-targetable missile spell (Absorb Mana), thus creating a special effect (death animation only, of course) at a variable Z offset which may be below ground (ground level is obtained by adding the inverse of the negative Projectile Impact Z to the flying height). Since it's a projectile detonation, it won't move with the dummy and thus can be "multi-cast" with proper effect. The dummy's scale at the instant of cast will vary the effect's scale.

Demo map attached.
Is it instant? I really doubt that, as it uses a dummy casting a spell, so I can not instantly reuse the dummy for multiple effects again during the same trigger instance, even if I am able to move it without also moving the effect.
And they're smoking fast. Do you REALLY believe that the tiny bit of time you save with that is enough?
Actually, I really doubt that. I - as you do - think its the creation and destruction of all those dummy units that is causing the lag. I use an indexing system. And also I got one or two "A unit is killed" events in my map script. I think it should be more a problem regarding this than any other.

I will add a global boolean check wether those events should fire something or not. Hopefully this adds speed.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
Is it instant? I really doubt that, as it uses a dummy casting a spell, so I can not instantly reuse the dummy for multiple effects again during the same trigger instance, even if I am able to move it without also moving the effect.
If you'll notice, I do exactly that in the demo map, creating 10 effects per period with the same unit...
 

kingkingyyk3

Visitor (Welcome to the Jungle, Baby!)
Reaction score
216
How fast were hashtables again?
77% slower than arrays.
And they're smoking fast. Do you REALLY believe that the tiny bit of time you save with that is enough?

Single case does not matter, but Zweibelchen is attaching mass loads of data to hashtable.
 

Zwiebelchen

You can change this now in User CP.
Reaction score
60

Single case does not matter, but Zweibelchen is attaching mass loads of data to hashtable.

I switched to using a struct now and also slightly removed the number of spawned effects. I also switched to Weed's nifty little trick instead of creating dummy units. Seems to work perfectly now.

Thread closed and thanks for all the fish :>
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top