1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Find your way through the deepest dungeon in the 18th Mini Mapping Contest Poll.
    Dismiss Notice
  3. A brave new world lies beyond the seven seas. Join the 34th Modeling Contest today!
    Dismiss Notice
  4. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
Hive 3 Remoosed BETA - NOW LIVE. Go check it out at BETA Hive Workshop! Post your feedback in this new forum BETA Feedback.
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

[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. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,220
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    CHangelog - 0.0.5

    • 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.


    Please note that the map has been renamed, but the engine is still in it.
     
  2. Axarion

    Axarion

    Joined:
    Sep 30, 2009
    Messages:
    675
    Resources:
    1
    Spells:
    1
    Resources:
    1
    o_O

    Thought you left mapping???
     
  3. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,220
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Yes, but this version will hopefully have less bugs, Hives Battlefield is using my systems and I can't give them shit, I had the responsability.
    (I made this version some month ago)
     
  4. Darkzealot_128

    Darkzealot_128

    Joined:
    Jun 29, 2010
    Messages:
    736
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Wow. This would have been great for my abandoned project, I had been looking for something like this.

    5/5
     
  5. Aierou

    Aierou

    Joined:
    Jul 4, 2010
    Messages:
    29
    Resources:
    0
    Resources:
    0
    And another great system from anachron :p

    Really useful and well coded
     
  6. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,220
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    This system is months old, but I updated it because I already nearly-finished the new version. But thanks.
     
  7. Prince.Zero

    Prince.Zero

    Joined:
    Jun 6, 2010
    Messages:
    217
    Resources:
    3
    Spells:
    3
    Resources:
    3
    I see quite a lot of positive comments
    This is indeed a nice work but let me be harsh for a couple of lines

    Code (vJASS):
    public method isUnitHit takes unit u returns boolean
                return IsUnitInGroup(u, .enumGroup)
            endmethod
           
            public method hitUnit takes unit u returns nothing
                call GroupAddUnit(.enumGroup, u)
            endmethod
           
            public method unhitUnit takes unit u returns nothing
                call GroupRemoveUnit(.enumGroup, u)
            endmethod

    Why?Because you don't want the mods to think your script isnt pretty?

    • Also did you notice that this DOESN'T compile? You should point out that users need a more recent or older version of their JNGP so they can use the same version with you.
    [library CustomMissile requires CustomEffect, Loc, GroupUtils, optional MissileGroup]
    [Missing Requirements:Optional(Libraries cannot require scopes)] Although missilegroup is not even a scope.

    • Everyone in the hive except gui users which is inevitable for them hates BJ's (well most of the BJ's) and is against them. Why shouldn't i a big BJ Hater hate this huge BJ?
    If you want to state i'm wrong and this is not a BJ then go compile your map, substract your map script and see a 200+ kb script full of arrays, functions that call hundreds of functions and such.


    This is a good system BUT not for a big map or AOS type map that uses a lot of code within it. It will definetly ruin the performance of the map.
    Think of 100 units using your projectile system simultaneusly and another 7000+ handles running from the map's core.
    The only thing you can do to improve your performance is to stop using your library for locations and starting using X,Y. It's faster, safier and lagless.

    Don't go all rage on me after this. I'm pointing some good statements here with a friendly approach.
     
  8. Berb

    Berb

    Joined:
    Jan 21, 2006
    Messages:
    2,539
    Resources:
    2
    JASS:
    2
    Resources:
    2
    These sorts of things have already been discussed in the pages of arguments between me and Anachron; he claims that it is more simple, or makes it more efficient, or something along those lines. Read up.
     
  9. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,220
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Did you even read my script? I never use locations. (Only GetLocationZ())

    Its not even 100kb with a testmap, so dude, calm down.

    You just have to use the latest JassNewGenPack version, which is a must for all hiveworkshop spells.

    Because I don't want the user to be able to touch .enumGroup but that he can still hit his own units that he wants to be targeted.
     
  10. Prince.Zero

    Prince.Zero

    Joined:
    Jun 6, 2010
    Messages:
    217
    Resources:
    3
    Spells:
    3
    Resources:
    3
    I tested both your custom missiles, Anachron's runs about 22-29 fps smoother.
    But i don't know... Both look good in different aspects.
    Maybe you two should work out on one big system that works perfect instead of fighting.
     
  11. Berb

    Berb

    Joined:
    Jan 21, 2006
    Messages:
    2,539
    Resources:
    2
    JASS:
    2
    Resources:
    2
    I don't think you really know what you're talking about to be honest. You're running both of our systems worse than my desktop that's 7 years old, indicating you either are trying to test these when your processor is already booked up or you just don't know what you're doing.

    Personally I don't know what right you have coming in here (you're obviously new, you joined 2010) to a community of people who have been doing this for years and telling us that we don't know how to do things properly.
     
  12. Prince.Zero

    Prince.Zero

    Joined:
    Jun 6, 2010
    Messages:
    217
    Resources:
    3
    Spells:
    3
    Resources:
    3
    No Mr.experience sir, i'm opening your eyes.
    And maybe i was around this community long before you even had a glimpse of it.

    Then explain to me again. How come Archons system work faster than yours? Is it my rotting laptop' fault? As i stated his runs at 40-45 fps, yours barely ran at 20fps.

    DotA Runs at 63 fps the whole time. No sir, you need a better angle of view of yourself.
     
  13. Berb

    Berb

    Joined:
    Jan 21, 2006
    Messages:
    2,539
    Resources:
    2
    JASS:
    2
    Resources:
    2
    I highly doubt that. I bought the game when it came out, and have been modding it since.

    I don't know what is wrong with your tests, but your outputs don't make any sense. This system is slower, and it is confirmed by people other than you. Clearly your methods of testing scripts are not adequate enough to be accurate. If you would kindly visit the Custom Projectiles thread to discuss it though that would be perfect. I've already prepared some facts and screen-shots for you.

    I'm not going to argue about this in Anachron's thread. Either PM me or discuss my projectile library in the actual thread for it.
     
  14. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,220
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    Update. I have upgrades this system.
    Changelog

    ChainMissile is now a new helper. You can make missiles that are chaining with it. SpellHelper makes it even easier and takes the default actions so that you only need a few lines to create an ChainMissile.


    A very basic jump limited ChainSpell have I made with the following script:
    Code (vJASS):

    library ParalyzingChain requires SpellHelper

        struct ParalyzingChain extends SpellHelper
            private integer chainTimes = 0
            implement SpellHelper_Module
            implement ChainMissile_Module
           
            method onCreate takes nothing returns nothing
                set .sfx            = "Abilities\\Weapons\\SpiritOfVengeanceMissile\\SpiritOfVengeanceMissile.mdl"
                set .scale          = 0.55  //: 55% size
               
                set .turnSpeed      = 1.   //: Can turn 360° degrees in 0.15 seconds
                set .hitRange       = 100.  //: Hits units and missles in range of 100
                set .h              = 50.   //: Has a height of 50.
                set .hitsUnits      = true  //: Hits units
               
                set .moveSpeed      = 400.
                set .checkHeight    = false
                set .checkAimHeight = false
                set .autoSetZ       = false //: Don't correct my z-value please
               
                set .chainRange     = 500.  //: Jumps in a range of 250.
            endmethod
           
            method chainFilter takes unit theUnit returns boolean
                local boolean unitCheck = IsUnitEnemy(theUnit, GetOwningPlayer(.caster)) and GetUnitState(theUnit, UNIT_STATE_LIFE) > 0.405
           
                return unitCheck and .chainTimes < 2 + .lvl
            endmethod
           
            method onChainTargetReach takes unit theTarget returns nothing
                set .chainTimes = .chainTimes +1
                call UnitDamageTarget(.caster, theTarget, 100. + 25. * .lvl, false, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
            endmethod
           
            private static method onInit takes nothing returns nothing
                set thistype.ABILITY_ID = 'plzc'
            endmethod
        endstruct
    endlibrary
     


    I made this version for Hives Battlefield. Please test this.
     

    Attached Files:

  15. Zealon

    Zealon

    Joined:
    Mar 13, 2010
    Messages:
    1,142
    Resources:
    0
    Resources:
    0
    Exellent!!!!! 6/5
     
  16. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,220
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    1k downloads. Thanks everyone :)
     
  17. RushHour

    RushHour

    Joined:
    Dec 14, 2009
    Messages:
    11
    Resources:
    0
    Resources:
    0
    =\ whoops
     

    Attached Files:

    • asd.JPG
      asd.JPG
      File size:
      67.4 KB
      Views:
      74
  18. Lender

    Lender

    Joined:
    Oct 16, 2010
    Messages:
    667
    Resources:
    6
    Models:
    4
    Spells:
    2
    Resources:
    6
    this is weird . the .sfx effect doesn't works for me. even if i import your chain spell example

    everything works fine except the effect that doesn't showed up.
    any idea?
     
  19. Berb

    Berb

    Joined:
    Jan 21, 2006
    Messages:
    2,539
    Resources:
    2
    JASS:
    2
    Resources:
    2
    Are you sure you've got the right model unit for your dummy? If this works anything like mine then you probably need the special dummy to attach special effects to it. If you copied his dummy without importing the model then it will be as good as NULL, in which case the special effect will not be displayed.

    Try making sure you've got the imported dummy (if there is one in the downloadable map).
     
  20. Lender

    Lender

    Joined:
    Oct 16, 2010
    Messages:
    667
    Resources:
    6
    Models:
    4
    Spells:
    2
    Resources:
    6
    hey, am i the only one the SpellHelper works for only one ability?or at least one per unit
    i tried out on the test map with the same script of that chain spell(except i changed the struct name...)
    gave the new abil to mirana , and the same occurs
    the first(the original) spell won't do anything and the second (copy of the original) will fire two projectiles(also changed the order id's,and the thistype.abilityid)
    why is this?