1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. The 30th edition of the Modeling Contest is finally up! The Portable Buildings need your attention, so come along and have a blast!
    Dismiss Notice
  3. The Aftermath has been revealed for the 19th Terraining Contest! Be sure to check out the Results and see what came out of it.
    Dismiss Notice
  4. Melee Mapping Contest #3 - Results are out! Congratulate the winners and check plenty of new 4v4 melee maps designed for this competition!
    Dismiss Notice
  5. The winners of our cinematic soundtrack competition have been decided! Step by the Music Contest #11 - Results to check the entries and congratulate the winners!
    Dismiss Notice

[vJass] (system) Missile

Submitted by Anachron
This bundle is marked as approved. It works and satisfies the submission rules.
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!

And thanks for downloading.
Preview image by Furby. Thanks a lot!

Edit:
I've updated the testmap and added a second spell.
There is a lot of improvements in version 0.1.7 and I plan to make it even faster and even more modular. I also plan to create an easy to understand API.

Used librarys:

Changelog for 0.1.7

Changed all constants (TRUE, FALSE) to true/false
Changed interval to 0.03125
Fixed object leaks
Performance improvements on MissileMovement: Less object generation
Merged MissileLocHelpers to Missile<type>Target
Removed HomingMissile wrapper
Added second spell (Rain of Fire)
Removed Libraries from Modules


ChangeLog for 0.1.4

Changed name to Missile.
Completely remade in modules, supports now a lot of optional stuff.
Added SpellHelper, fixed a lot of problems, made the Miranas Arrow example WAY more powerful to show what this system is able to be capable of.


Keywords:
Missile, Projectile, xe, xemissile, xecollider, projectile, collider, awesome, anachron, collide, colliding, vJass
Contents

CustomMissile 0.1.7 (Map)

Reviews
Moderator
BPower: 11:02, 25th Feb 2016 Reason for re-review: Nowadays the spell section is packed full of missile systems from different authors, therefore a more qualified moderator comment than "this is neat stuff" is required. There is keen...
  1. BPower:
    11:02, 25th Feb 2016

    Reason for re-review:
    Nowadays the spell section is packed full of missile systems from different authors, therefore a more qualified
    moderator comment than "this is neat stuff" is required. There is keen competition, hence your new
    review may not be as good as it was before.

    Criticism:

    • A system released for public usage needs a proper documentation, at least about its API.
      You didn't write a single line of comments for other users. Compare it to the JassHelper
      without Jass Helper Manual or the WorldEditor with neither blizzard.j nor common.j.
      ---
    • It's very unusual to use a timer interval, which can't be multiplied with an integer to a result of 1.
      The most common timer interval in JASS is 1/32 which equals 0.03125.
      You use
      public      static          real                period          = 0.03175
      which is ~1/31.49
      ---
    • TRUE
      and
      FALSE
      are constants for
      true
      and
      false
      .
      It's not required to use them. I guess you know that.
      ---
    • GetUnitState(theUnit, UNIT_STATE_LIFE) > 0.405
      could be optimized to
      GetWidgetLife(theUnit) > 0.405

      ---
    • I guess it's your very own style of writting code, but your functions are arranged in a way, that the
      Jass Helper must generate a lot of pseudo-code to obtain a valid function order.
      Just look into MissileUnitHit. Functions are placed precise in the wrong order. Jass Helper fixes that, but for which price?
      ---
    • The unit enumeration radius is inaccurate, but that's the case in most missile systems.
      You must add the maximum collision size used in the map to get all units in collision range.
      ---
    • You hide units which are below terrain level, very neat, but where do you restore the full range
      of the locust effect after showing the unit
      ? Btw In that function you have a unit leak.
      ---
    • set .destHitGroup[GetHandleId(theDest)] = 1
      is good, not perfect. Handle ids get recycled once there
      is not reference to their object and the object is removed from the map. Therefore it must be
      set .destHitGroup.destructable[GetHandleId(theDest)] = theDest
      .
      One of many reasons why Vexorians Table is compared to Bribes not perfect in API.
      ---
    • public method checkMissileHit takes nothing returns nothing
      does nothing, but takes space.
      ---
    • The math used in missile movement is cool. It's unfair to only criticise your work.
      ---
    • Array handle variables should be nulled once no longer needed.
      ---
    • Missile cast helper should be a seperate library named CastHelper. We have that better executed namely SpellEffectEvent.
      ---
    • Overall a bit unread-able code and even harder to use for someone who didn't code the system by him/her-self.

    I don't know why a DC was taken into consideration in the past, obviously not out of objective reasons.
    I depreciate the rating form 5/5 to 2,5/5. As we give out integer ratings you'll get a 3/5.
    The entire system is good for own usage. For public submission
    I would like to see a proper API documentation.

    12:32, 8th Apr 2010

    TriggerHappy's review

    TriggerHappy:

    Review 1

    I have not yet tested the system.

    • You might as well comment out ParabolaZ2 as it serves the same purpose as the first one. The only reason is should even be in the library is to give a better explanation as to how the first one works. so yeah.. just comment it out (/* */).
    • Your globals are private, don't give them prefixes (CM_NAME).
    • You could store
      (2. * bj_PI * CM_PERIOD)
      in a constant instead of doing the operation each time.
    • Is there really a need for the local in enumDestsInRange?
    • You are using a group per instance, either A) recycle them or B) use a global group.
    • Is there a reason why you're creating the timer in onInit instead of just initializing it?
    • It would be more efficient if you placed the contents of all your update functions directly in the move method. Yes it's going to be harder to read but just make some comments explaining them. Because currently you are doing a bunch of unnecessary function calls.
    • The system name is horrible. Just by using a system not made by blizzard already indicates that it's custom. You might was well call it Missile.


    I have tested the system and the demo map is really lacking.
    If you want to show people the power of your system include some really awesome eyecandy examples.

    • Still need to recycle groups.
    • Your comments explaining the interface use the wrong grammar. It's ran, not runned.
    • You still need to remove the prefixes on your globals.
    • 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.
    • You realize you are destroying enumGroup twice, right?


    The_Reborn_Devil:
    Due to Trigger's demotion I am now the only spell mod and thus I can finally review your system.

    Hmm, it would seem my review is gone, but the system is great.


    Status: Approved
    Rating: Highly Recommended [Director's Cut]

    hvo-busterkomo: After evaluating this system I do not think it meets the standards to be a Director's Cut. However, in respect to The_Reborn_Devil, I have left it as Highly Recommended.
     
  2. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Thanks for downloading. Have fun guys!

    Before I forget, subscribing (and reserved)
     
    Last edited: May 19, 2010
  3. hellblazer-14

    hellblazer-14

    Joined:
    Apr 16, 2007
    Messages:
    243
    Resources:
    9
    Models:
    9
    Resources:
    9
    Will definetely prove useful in my revived project. Thank you for this, and of course, plus Rep ^^
     
  4. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    No problem glad you like it.
     
  5. Xarwin

    Xarwin

    Joined:
    Nov 16, 2006
    Messages:
    2,233
    Resources:
    3
    Icons:
    1
    Maps:
    1
    Tutorials:
    1
    Resources:
    3
    We will... overcome anything with this :D
     
  6. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    I am so glad I finished this :)
     
  7. Inferior

    Inferior

    Joined:
    Nov 3, 2008
    Messages:
    110
    Resources:
    3
    Icons:
    1
    Spells:
    2
    Resources:
    3
    Ok, what makes this better then xecollider ??

    Yeah ok there are some more features but i'd say you can have those with xecollider aswell :p.

    Scripting is very well done as allways.

    5/5 +rep
     
  8. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Some more features?

    A hell more.
    • Unit Collision
    • Terrain Collision
    • Destructable Collision
    • Missile Collision
    • xyArc
    • zArc
    • haze
    • clean
    • very organized

    And this is just the beta. I'll implement more features later.
     
  9. 88WaRCraFT3

    88WaRCraFT3

    Joined:
    Jun 9, 2009
    Messages:
    1,139
    Resources:
    1
    Spells:
    1
    Resources:
    1
    What you think about making unit attacks to be this missile system? When unit is targeted, then this system turns on and missile start. That can be new system or whatever.
    rep of course
     
  10. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Yes, that was my next idea, using this to make a CustomAttack system.
     
  11. 88WaRCraFT3

    88WaRCraFT3

    Joined:
    Jun 9, 2009
    Messages:
    1,139
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Ok, good. I will use it on my RPG.
     
  12. CHA_Owner

    CHA_Owner

    Joined:
    Feb 11, 2008
    Messages:
    799
    Resources:
    2
    Spells:
    2
    Resources:
    2
    um i cant open this and i have WC3 version 1.24.4 can you explain why?
     
  13. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Can you open it in JNGP, save it and post it here?
    I do not have the latest wc3.
     
  14. CHA_Owner

    CHA_Owner

    Joined:
    Feb 11, 2008
    Messages:
    799
    Resources:
    2
    Spells:
    2
    Resources:
    2
    shure here you go
     

    Attached Files:

  15. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    #Updated the map with the CHA_Owner saved map.
     
  16. CHA_Owner

    CHA_Owner

    Joined:
    Feb 11, 2008
    Messages:
    799
    Resources:
    2
    Spells:
    2
    Resources:
    2
    also i just got done testing it a little bit and how come it looks like the hero is attacking along with the missile every time the spell is casted?
     
  17. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Because it's kael :D He does that with channeling spells.
    Will try to fix though.
     
  18. CHA_Owner

    CHA_Owner

    Joined:
    Feb 11, 2008
    Messages:
    799
    Resources:
    2
    Spells:
    2
    Resources:
    2
    Also i noticed instead of traveling on the surface the missile will go through the ground to reach its target can you make it so the missile always stays above ground or is that impossible?
     
  19. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    :D I made it that way, I think that is most realistic.
    (That would be cheating instead)
    However, you can still enable terrain hitting (but then missiles that hit terrain die, however, you can overwrite this behavior as well)