System [system] (vJass) CustomMissile

Anachron

New Member
Reaction score
53
I have worked on this missle engine for 2 months now and start the first official beta today.

Please post feedback, critism, pros, cons, bugs, etc.
Thanks all for your patience!

I guess I forgot some really great features:
  • Change everything ingame. (Even collision size, the effect, the movespeed etc!)
  • Do anything you want and get any value you want from your missile, everytime!
  • Detects unit, destructable, terrain and missilecollides!
  • Faster then XE!
  • Group recycling!
  • Supports ARGB for unit colors.
  • Simple to use.
  • Very powerful functionality, which is optional.
  • Very organized code.
  • Extendable.

And thanks for downloading.

Used librarys:

  • Changed testmap.
  • New test spell is now more awesome. (You know, its miranas arrow with some side effects)
  • Increased game engine.
  • Completely removed some annoying bugs.
  • Added .zAngle
  • Fixed collision bug
  • Tons of other bug fixes
  • Rewritten of code areas
  • Increased efficiency
  • Fixed a few small stuff.
  • Remade a lot of the engine.
  • Added a dummy engine. Missiles now have to be actived with .use.
  • You can now clone missiles. That is why I made the dummy engine.
  • You can now enumerate missiles.
  • Fixed the math functions The_Reborn_Devil told me to fix. Thanks.
  • The effect unit isn't an hero any longer.
  • A lot of fixes have been added to the whole system.
  • You can now load/save missiles easily with CustomMissile.load(HandleIdOfMissile) and Instance.save()
  • Very much new updates, I don't remember everything.
  • Remade a lot of the engine.
  • Very much code fixes.
  • Engine cares about minX/minY/maxX/maxY now.
  • Implemented offset.
  • Faster then ever.
  • Renamed a bunch of stuff.
  • You can decide whether to automatically update xy/z or not.
  • You can now decide for autoFacing of XY (zArc is still in progress)
  • Please check whether haze works.
  • Please check whether every else works correctly.
  • Please forgive me to not update this earlier and to have a lot of stuff renamed.
  • Decay has been overworked. No decay counts the elapsed time.
  • xyArc and zArc now are able to interact with each other.
  • Missiles now automatically get destroyed when flying out of playable map. (Preventing bugs & crashes.
  • Final fix of zArc.
  • set cm.checkheight = true/false now says whether a missile should check heights for collision.
  • SetTargetPos is working now.
  • Increased testmap.
  • Fixed testmap issues.
  • Fixed zArc. Works perfectly now! Check it out on the units on the high walls!
  • (optional) ARGB support
  • Uses GroupUtils to recycle groups
  • Your comments explaining the interface use the wrong grammar. It's ran, not runned. - Fixed
  • You still need to remove the prefixes on your globals. - Fixed
  • Why don't you just make locRect static? As of now you are creating and destroying rects when you could just be re-using the same one. - Fixed
  • You realize you are destroying enumGroup twice, right? - Fixed
 

Attachments

  • PS_UP_v.0.0.5.w3x
    102.9 KB · Views: 301
  • war3map.txt
    91 KB · Views: 331
Reaction score
91
Your missiles go below terrain cliffs ... which is kinda wrong. o_O

EDIT: Why the part with xe replacement? You feel xe is a competition or something else?
 

Anachron

New Member
Reaction score
53
Your missiles go below terrain cliffs ... which is kinda wrong. o_O
It's a feature, you can disable it with setting
JASS:
set cm.hitwalls = true


Why the part with xe replacement? You feel xe is a competition or something else?
Yes, I am replacing xe more and more because its old and vexorian doesn't see any sense in updating it, so I am creating my own one.

Edit:
In the new version I maybe will use Vector instead of Loc. I did not know about that library of Anitarf.
 

Chaos_Knight

New Member
Reaction score
39
Bug found(I think)

When you shoot the "not the chain spell", and target a unit which is higher up than yourself, the missile doesnt show when "it" reaches the target.
 

Viikuna

No Marlo no game.
Reaction score
265
You might wanna consider using corpses for missile dummies.

They can be animated in same way as living units, picked with GroupEnumUnitInRange and still are unselectable like locust units.

This way you wouldnt have to loop through missiles, but you could use only one GroupEnum for doing collinsions for both missiles and units.
 

Chaos_Knight

New Member
Reaction score
39
You might wanna consider using corpses for missile dummies.

They can be animated in same way as living units, picked with GroupEnumUnitInRange and still are unselectable like locust units.

This way you wouldnt have to loop through missiles, but you could use only one GroupEnum for doing collinsions for both missiles and units.

So Yes or No?
 

Viikuna

No Marlo no game.
Reaction score
265
He uses dummy [lJASS]unit[/lJASS] and attaches a missile model to it via [lJASS]effect[/lJASS].

( you need an unit to be able to move your effect )
 

Anachron

New Member
Reaction score
53
Speed increase could (would) be added by ripping off T32.
AKA your periodic struct loop could be optimised.
If it only would be allowed on wc3c.

Bug found(I think)

When you shoot the "not the chain spell", and target a unit which is higher up than yourself, the missile doesnt show when "it" reaches the target.
It's not a bug, it's a feature.
You can disable it with set hitswalls = true.

You might wanna consider using corpses for missile dummies.

They can be animated in same way as living units, picked with GroupEnumUnitInRange and still are unselectable like locust units.

This way you wouldnt have to loop through missiles, but you could use only one GroupEnum for doing collinsions for both missiles and units.
Dead units have a bugged behavior.
Also, how can I freeze an unit's decay?
 

Viikuna

No Marlo no game.
Reaction score
265
There is a native for that.

They should work just fine for displaying model file for projectile. You should try it.

The only real problem really is those corpse manipulating native wc3 abilities, but then again, its not hard to make triggered versions of those.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
As far as your technique whereby you hide a missile when it would be underground, this looks a bit silly for projectiles with ribbons or particle trails, because the entire trail will suddenly disappear when the unit becomes hidden. Might I suggest modifying the dummy model to have its attachment point some 1000 units below its center, so the dummy can remain above ground (fly height offset +1000) yet permitting the attached effect to go below ground as necessary?

You might wanna consider using corpses for missile dummies.
This also gives the benefit where mousing a spell's AOE indicator over missiles won't tint them green, which looks dumb IMO.
 

Tom_Kazansky

--- wraith it ! ---
Reaction score
157
Might I suggest modifying the dummy model to have its attachment point some 1000 units below its center, so the dummy can remain above ground (fly height offset +1000) yet permitting the attached effect to go below ground as necessary?

I think 100 is enough cuz, isn't, maximum fly height of units is 1000 :confused: and, it's just me that, when the dummy's scale increases, this height increases also.

This also gives the benefit where mousing a spell's AOE indicator over missiles won't tint them green, which looks dumb IMO.

wow, thanks, I didn't notice this :D, +rep for you and Viikuna :thup:
 

Anachron

New Member
Reaction score
53
As far as your technique whereby you hide a missile when it would be underground, this looks a bit silly for projectiles with ribbons or particle trails, because the entire trail will suddenly disappear when the unit becomes hidden. Might I suggest modifying the dummy model to have its attachment point some 1000 units below its center, so the dummy can remain above ground (fly height offset +1000) yet permitting the attached effect to go below ground as necessary?
That is a very nice idea, however, this would give unnesserary calculations since then I have to check whether the fly height is below -1000 to hide it.

This also gives the benefit where mousing a spell's AOE indicator over missiles won't tint them green, which looks dumb IMO.
What about spells that slow/freeze missiles in an AOE? I don't think it will be useful if you can't actually see the missiles that are slown.

And, isn't maximum fly height of units is 1000
Actually the smallest ist 0 and the heighest: Terrain max size (MaxGroundLevel + something high)

So then you can detect if this unit is in 0.01 range of the Attacked unit?
No. Timer period is too low to be able to calculate range that low.
Yes it will be in a later version, I'll add missile enumeration.
Actually, the timer does not really matter since he said in a range of 0.01, and not every 0.01 seconds. He can still use his own timer and check the range.

Have two versions? TheHelper version and wc3c version.
Oh man, I try to keep only one version of scripts. For example CustomInventory,... It would be a mess to have other scripts for every community just because they like it.
You are free to change my librarys to your needs.
 

Anachron

New Member
Reaction score
53
#Updates - Up to 0.0.I
  • Final fix of zArc.
  • set cm.checkheight = true/false now says whether a missile should check heights for collision.
  • SetTargetPos is working now.
  • Increased testmap.
  • Fixed testmap issues.
  • Fixed zArc. Works perfectly now! Check it out on the units on the high walls!
  • (optional) ARGB support
  • Uses GroupUtils to recycle groups
 
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