1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. 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
  3. Melee Mapping Contest #3 - Results are out! Congratulate the winners and check plenty of new 4v4 melee maps designed for this competition!
    Dismiss Notice
  4. 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

Phantasm

Submitted by doomhammer99
This bundle is marked as approved. It works and satisfies the submission rules.
Phantasm
Description: Blademaster conjures an illusion of himself spinning towards the target point, causing certain damage to enemies within AoE.
Level 1: 125 Damage / 100 Radius
Level 2: 225 Damage / 150 Radius
Level 3: 325 Damage / 200 Radius
Level 4: 425 Damage / 250 Radius
How to Import:
1. File>Preferences>General Tab>Check [Automatically create unknown variables]
2. Trigger Module>Copy [Phantasm] Folder>Paste to your map
3. Object Editor Module>Copy [Dummy], Copy [Create Illusion], & Copy [Phantasm]>Paste to your map
Credits:
@Hanky - GUI Dynamic Indexing
Changelogs:
v1.0 - Release
v1.1 - (Minor Changes)
Changed button position for Phantasm
Added a screenshot
Transferred
  • Unit spawns a summoned unit

to Phantasm Illusion
v1.2 - Replaced
  • Move unit instantly to

with SetUnitX and SetUnitY
Previews
Contents

Just another Warcraft III map (Map)

Reviews
MyPad
Spell Review: Notes: There is a certain variable that would be better off being declared as another GUI type, since one can't guarantee that the imported spell has the same rawcode. udg__P_Dummy_Ability In trigger Phantasm Loop, there is a For...
  1. doomhammer99

    doomhammer99

    Joined:
    Dec 5, 2011
    Messages:
    319
    Resources:
    5
    Models:
    1
    Spells:
    3
    Tutorials:
    1
    Resources:
    5
    ~Reserved

    EDIT: Please leave a comment and a rating if you're satisfied
     
    Last edited: Nov 4, 2018
  2. Ofel

    Ofel

    Joined:
    Mar 29, 2012
    Messages:
    428
    Resources:
    10
    Spells:
    10
    Resources:
    10
    I think some more screenshot would be good. :)
     
  3. Daffa the Mage

    Daffa the Mage

    Map Moderator

    Joined:
    Jan 30, 2013
    Messages:
    7,451
    Resources:
    26
    Packs:
    1
    Maps:
    8
    Spells:
    16
    Tutorials:
    1
    Resources:
    26
    Why do you add Phantasm Illusion event on-cast?
     
  4. doomhammer99

    doomhammer99

    Joined:
    Dec 5, 2011
    Messages:
    319
    Resources:
    5
    Models:
    1
    Spells:
    3
    Tutorials:
    1
    Resources:
    5
    @Ofel: Copy that
    I'll move it
     
  5. Ofel

    Ofel

    Joined:
    Mar 29, 2012
    Messages:
    428
    Resources:
    10
    Spells:
    10
    Resources:
    10
    Though the idea is simple, but I like it.

    Another suggestion from me is that you should use Linked List. ;)
    You can search for "Linked List" here. Or I thought you understand JASS syntax, you can see my spell for how to apply this indexing system.
     
  6. JC Helas

    JC Helas

    Joined:
    Oct 19, 2014
    Messages:
    153
    Resources:
    0
    Resources:
    0
    [​IMG][​IMG][​IMG]Unit - Move P__Illusion[P_TempInt] instantly to (Point(P__X[P_TempInt], P__Y[P_TempInt])), facing (Point(P__TargetX[P_TempInt], P__TargetY[P_TempInt]))
    Doing this takes ''(Point(P__X[P_TempInt], P__Y[P_TempInt])" inside of a calls? I think you will make a point that cannot be removed.

    Do this way instead:
    [​IMG][​IMG][​IMG]Custom script: call SetUnitX(udg_P__Dummy, udg_P__X[udg_P_TempInt])
    [​IMG][​IMG][​IMG]Custom script: call SetUnitY(udg_P__Dummy, udg_P__Y[udg_P_TempInt])

    [​IMG][​IMG][​IMG]Custom script: set udg_P__Illusion[udg_P_TempInt] = GetSummonedUnit()
    what is the purpose of scriping this one?

    [​IMG][​IMG][​IMG]Trigger - Add to Phantasm_Illusion <gen> the event (A unit Spawns a summoned unit)
    I think putting this on a cast trigger without condition that has a reason to create it once, you just spam creating that event into your trigger
    this will happen

    Events
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Unit - A unit Spawns a summoned unit
    Conditions
    Actions

    I suggest to put it right through :)
     
  7. doomhammer99

    doomhammer99

    Joined:
    Dec 5, 2011
    Messages:
    319
    Resources:
    5
    Models:
    1
    Spells:
    3
    Tutorials:
    1
    Resources:
    5
    I think there's no problem with that since I am not storing any variable every call.
    The point of this one, Is storing the last summoned unit or illusion into a variable.
    forgot to upload the updated version, thanks to you

    Thank you for your comment, please leave a rating if you find this resource useful.
     
  8. Pyrogasm

    Pyrogasm

    Joined:
    Feb 27, 2007
    Messages:
    1,938
    Resources:
    0
    Resources:
    0
    Wrong; you in fact leak two points every time that line is run. Using Point(someX, someY) creates a point (location) object whether you store it or not. If you did it by SetUnitX/Y as @JC Helas suggested, then you would be using the X/Y coordinates directly and wouldn't be 'making' a point, thus no leak. The other advantage of SetUnitX/Y is that they don't take unit model collision or ground pathing into account when placing the unit precisely there.
    No, JC means why write that line as a custom script line instead of a normal GUI set variable line?
     
  9. doomhammer99

    doomhammer99

    Joined:
    Dec 5, 2011
    Messages:
    319
    Resources:
    5
    Models:
    1
    Spells:
    3
    Tutorials:
    1
    Resources:
    5
    Already updated, thanks tho
     
  10. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,165
    Resources:
    3
    Models:
    1
    Icons:
    1
    JASS:
    1
    Resources:
    3

    Spell Review:



    Notes:


    • There is a certain variable that would be better off being declared as another GUI type, since one can't guarantee that the imported spell has the same rawcode.
      udg__P_Dummy_Ability


    • In trigger
      Phantasm Loop
      , there is a For Group subroutine that also utilizes the
      FirstOfGroup
      native instead of the GUI provided
      (Picked unit)
      . Is this intended or a functional error?

    • In the filters within the For Group subroutine (mentioned above), the conditions behave in an odd manner, such that the filtering system only compares the unit state of a target unit to the flag, and not act as a switch, whereby the aforementioned comparison will only be made if the filter flag is false. [1]

    Overview:



    The spell functions properly, and does not have leaks, as of the most recent version. There might be a few logical flaws, but these are not of great bearing that they bring the spell to Awaiting Update. As referenced in index [1]:

    Index 1 Notes

    The filters are like this
    unit.getState(unitstate) == filterFlag


    and not like this
    filterFlag or (not filterFlag and (unit.getState(unitstate) == false)) 


    Status:


    • Approved