1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  4. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  5. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  8. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Icon/Model/Spell Team Contest - Hive Member[+100 Rep]

Discussion in 'Contest Archive' started by IcemanBo, Nov 5, 2017.

Thread Status:
Not open for further replies.
  1. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,324
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Previous:
    EDIT: Sorry for the confusion earlierearly.
    #Message 441 - 460

    @IcemanBo

    Would the image above suffice as a WIP on the model?

    Now:
    I would be showing the second WIP here, what it looks like as of now (I understand some complaints on violation, but we'll do our best to remake the skin of the spider itself.

    Model WIP 2

    [​IMG]
     
    Last edited: Dec 27, 2017
  2. KILLCIDE

    KILLCIDE

    Administrator

    Joined:
    Jul 22, 2015
    Messages:
    3,501
    Resources:
    20
    Models:
    2
    Icons:
    10
    Spells:
    7
    Tutorials:
    1
    Resources:
    20
    Welp I guess it's my turn to post WIPs.

    Our Hero basically has a sub-ability that lets them switch the color of their paint. The color of the paint will decide the mechanic of the primary ability. As you can see below, when they learn the ability, they start off a default color.

    GIF Preview
    [​IMG]


    This shouldn't have been the case, but the Switch Paint mechanic took forever to make ._.

    • SPaint Cast
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to SPaint_ABILITY
      • Actions
        • -------- SPaint Cast --------
        • -------- this trigger will switch the "color mode" for the unit --------
        • -------- if the unit reaches the end of the color palette, it will moved back to color #1 --------
        • -------- --------
        • -------- --------
        • Set SPaint_TempUnit = (Triggering unit)
        • Custom script: set udg_SPaint_UnitId = GetHandleId(udg_SPaint_TempUnit)
        • Set SPaint_CurrentColor = (Load PBomb_KEY_CURRENT_COLOR of SPaint_UnitId from PBomb_Hash)
        • Unit - Remove SPaint_SFX_ABILITY[SPaint_CurrentColor] from SPaint_TempUnit
        • Unit - Remove SPaint_SFX_BUFF[SPaint_CurrentColor] buff from SPaint_TempUnit
        • -------- --------
        • -------- checking which color the unit will now have --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • SPaint_CurrentColor Not equal to SPaint_TOTAL_COLORS
          • Then - Actions
            • -------- unit is not at the end of the color palette; move up one --------
            • Set SPaint_CurrentColor = (SPaint_CurrentColor + 1)
          • Else - Actions
            • -------- unit is at the end of the color palette; move back to the beginning --------
            • Set SPaint_CurrentColor = 1
        • -------- --------
        • Unit - Add SPaint_SFX_ABILITY[SPaint_CurrentColor] to SPaint_TempUnit
        • -------- --------
        • Hashtable - Save SPaint_CurrentColor as PBomb_KEY_CURRENT_COLOR of SPaint_UnitId in PBomb_Hash
     
  3. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    7,911
    Resources:
    1
    Models:
    1
    Resources:
    1
    Well hey now, that's nifty. Nice use of SFX (though I foresee possible issues with confusion, i.e. "does it have Frost armor/inner fire/immolation, or not?")
     
  4. KILLCIDE

    KILLCIDE

    Administrator

    Joined:
    Jul 22, 2015
    Messages:
    3,501
    Resources:
    20
    Models:
    2
    Icons:
    10
    Spells:
    7
    Tutorials:
    1
    Resources:
    20
    The effects I chose are placeholders :D
     
  5. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,324
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    It's quite impressive, even if the preview of the sfx-es are just the placeholder equivalents of the final spell.

    It would have been difficult to maintain the overall idea in creating such a behaviour (spell mechanic, not the switch) in vJASS alone, even more so in JASS, but you did it in GUI, which is another level altogether.

    Just a suggestion, you could use less than as a comparison instead of not equal to just to be safe.
     
  6. KILLCIDE

    KILLCIDE

    Administrator

    Joined:
    Jul 22, 2015
    Messages:
    3,501
    Resources:
    20
    Models:
    2
    Icons:
    10
    Spells:
    7
    Tutorials:
    1
    Resources:
    20
    Thank you, but I only finished the switch xD I haven't started on the primary ability yet. Although, I do already have something in mind that should make it really easy.

    Out of curiousity, why would
    a < b
    be safer than
    a != b
    ?
     
  7. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,324
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    ^^ I think that somewhere out there, there will be a user who would not understand enough of the spell to change the current colour to something higher than the total. If it does happen, the counter will always increase without ever returning to the preset of colours.

    Example:
    Code (WurstScript):

    Total=4
    Current_color=5

    If Current_color != Total
        Current_color++
    else
        Current_color = 1
     
     
    Last edited: Dec 27, 2017
  8. KILLCIDE

    KILLCIDE

    Administrator

    Joined:
    Jul 22, 2015
    Messages:
    3,501
    Resources:
    20
    Models:
    2
    Icons:
    10
    Spells:
    7
    Tutorials:
    1
    Resources:
    20
    @Kyrbi0 turns out my team members are too good for me. They already finished the effects for it, but I didnt see it :p (its much more visible ingame)
    GIF
    [​IMG]


    Ahh okay. CurrentColor acts as a private member basically. The user would have to physically go into the code to change the current color.
     
  9. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    7,911
    Resources:
    1
    Models:
    1
    Resources:
    1
    Looks great. : ) I smell a winning every.
     
  10. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,324
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Yeah, nice spell.

    @Kyrbi0 Your senses serve you well
     
  11. IcemanBo

    IcemanBo

    Joined:
    Sep 6, 2013
    Messages:
    6,185
    Resources:
    22
    Maps:
    3
    Spells:
    11
    Template:
    1
    Tutorials:
    4
    JASS:
    3
    Resources:
    22
    Literally no interaction happened from your side after any of these ...
    ... nor any attempt or statement to solve the issue anyhow, or to talk with Murloc, or me.

    I don't believe it's valid WIP for model.
     
  12. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,324
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    It is what I had done, freely choosing not to discuss with either of you about the modeller problem because I had thought that the problem would be easily resolved, (assuming that a modeller will be available). I would only request, therefore that we may be allowed to proceed with the contest, as @Darkfang and I are also the modellers in the Scourge team.

    The models which you saw are partially done by both @Darkfang and I, and I express guilt for any misunderstanding that I have caused inasmuch as I prefer actions to words.


    After realizing this problem would not be so easily resolved, we decided to do the modelling ourselves, and how fun it was to make a model. The intricacy of every procedure confounds and interests me, who is firstly a coder.
     
    Last edited: Dec 27, 2017
  13. IcemanBo

    IcemanBo

    Joined:
    Sep 6, 2013
    Messages:
    6,185
    Resources:
    22
    Maps:
    3
    Spells:
    11
    Template:
    1
    Tutorials:
    4
    JASS:
    3
    Resources:
    22
    Yes, but this exactly is the problem that you decided yourself even I explicitly mentioned it to you, and implied to look for dicussion in case something won't work as planned. But as in mostly all other situations between us both, you just ignore.

    I'm passionless with the outcome now when it's already pretty the end of contest. @Murlocologist , could you make some statement towards the situation - and then we will make it.
     
  14. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    7,911
    Resources:
    1
    Models:
    1
    Resources:
    1
    I must admit, the conversation has been... difficult to follow. But as far as I've read, the Rules only state that it has to stay in the team. As long as the team members get together & make it themselves, I don't see why there should be an issue. The detriment of not having a dedicated modeler will naturally be found in the final Judging.
     
  15. KILLCIDE

    KILLCIDE

    Administrator

    Joined:
    Jul 22, 2015
    Messages:
    3,501
    Resources:
    20
    Models:
    2
    Icons:
    10
    Spells:
    7
    Tutorials:
    1
    Resources:
    20
    ->
     
  16. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    7,911
    Resources:
    1
    Models:
    1
    Resources:
    1
    OK, so that's a Rule that would generally preclude going *into* a situation like this, that way.

    So the question is: how (again; wasn't paying attention) did this come about? Did they intentionally start a team with only 2 members? Or did they lose their modeler? If the latter, it's not uncommon to extend them the mercy of allowing them to continue (with the innate handicap).
     
  17. Murlocologist

    Murlocologist

    Joined:
    Mar 22, 2016
    Messages:
    657
    Resources:
    178
    Models:
    6
    Icons:
    172
    Resources:
    178
    How many modelers have you asked to join your team? Or have you just waited for some to approach you? Team consists of three members. What part about that isn't clear? Or you think rules listed in first post are only a decoration? Where did then the trolling with ''no where in rules it is listed that one member can't join two teams'' come from, as it seems that rules are irrelevant for your team?

    Instead of asking us earlier or asking someone to join your team, you continued to work on entry, even the model. If the two of you can create model, than one would take role of modeler and look for icon or spell maker. But you obviously didn't care to find third member.

    IcemanBo and I have discussed this situation earlier and even though there is no excuse for not finding or even not looking for third member, we'll let your team enter the contest with the penalty points for not having three members. IcemanBo will announce how many points will be taken in the poll thread.
     
  18. Flux

    Flux

    Joined:
    Feb 6, 2014
    Messages:
    2,333
    Resources:
    28
    Maps:
    1
    Spells:
    19
    Tutorials:
    2
    JASS:
    6
    Resources:
    28
    Speaking of lacking teammates, unfortunately our team won't be able to submit anything (lack of communication) thus we're withdrawing from the contest.
     
  19. KILLCIDE

    KILLCIDE

    Administrator

    Joined:
    Jul 22, 2015
    Messages:
    3,501
    Resources:
    20
    Models:
    2
    Icons:
    10
    Spells:
    7
    Tutorials:
    1
    Resources:
    20
    Ayyyy all that is left is to make the mechanics for the 3 different paint colors ;_; starting to regret agreeing to this spell concept.
    GIF
    WIP.gif

    Hoorah for error messages!


    Obligatory code WIP
    Config
    • PBomb Config
      • Events
        • Map initialization
      • Conditions
      • Actions
        • -------- --------
        • -------- CONFIG START --------
        • -------- --------
        • -------- --------
        • -------- imported object editor data --------
        • Set PBomb_ABILITY = Paint Bomb
        • -------- --------
        • -------- imported triggers --------
        • Set PBomb_TRIGGER_LOOP = PBomb Loop <gen>
        • Set PBomb_TRIGGER_PLAY_ERROR = PBomb Error Msg <gen>
        • -------- --------
        • -------- order string for PBomb_ABILITY --------
        • Set PBomb_ORDER_ID = channel
        • -------- --------
        • -------- minimum cast range PBomb_ABILITY can be casted at (NEVER make this value 0) --------
        • Set PBomb_MIN_CAST_RANGE = 200.00
        • -------- --------
        • -------- maximum height the missile can reach --------
        • Set PBomb_MaxHeight = 275.00
        • -------- time (in seconds) it will take for the missile to reach the target location --------
        • Set PBomb_TRAVEL_TIME = 0.75
        • Set PBomb_TRAVEL_TIME_PER_LEVEL = 0.00
        • -------- --------
        • -------- other --------
        • Set PBomb_PERIODIC_TIMER = 0.03
        • -------- error message that will display to the player if they cast PBomb_ABILITY inside PBomb_MIN_CAST_RANGE --------
        • Set PBomb_ERROR_MSG1 = Target is inside minimum cast range.
        • -------- error message that will display if the player tries to cast more puddles than they are allowed to --------
        • Set PBomb_ERROR_MSG2 = You cannot create any more puddles of that color.
        • -------- --------
        • -------- --------
        • -------- CONFIG END --------
        • -------- --------
        • Trigger - Add to PBomb_TRIGGER_LOOP the event (Time - Every PBomb_PERIODIC_TIMER seconds of game time)
        • Custom script: set udg_PBomb_ERROR_SOUND = CreateSoundFromLabel("InterfaceError", false, false, false, 10, 10)
        • Hashtable - Create a hashtable
        • Set PBomb_Hash = (Last created hashtable)
        • Set PBomb_KEY_CURRENT_COLOR = 0
        • -------- child keys for active puddle count in CPalete Config --------
        • Set PBomb_LocZ = (Center of (Playable map area))
        • -------- preload --------
        • Custom script: set udg_PBomb_TempUnit = GetRecycledDummyAnyAngle(0.00, 0.00, 0.00)
        • For each (Integer PBomb_TempInt) from 1 to SPaint_TOTAL_COLORS, do (Actions)
          • Loop - Actions
            • Special Effect - Create a special effect attached to the PBomb_SFX_MISSILE_AP[PBomb_TempInt] of PBomb_TempUnit using PBomb_SFX_MISSILE[PBomb_TempInt]
            • Special Effect - Destroy (Last created special effect)
        • Custom script: call RecycleDummy(udg_PBomb_TempUnit)



    Order
    • PBomb Order
      • Events
        • Unit - A unit Is issued an order targeting a point
      • Conditions
        • (Issued order) Equal to (Order(PBomb_ORDER_ID))
      • Actions
        • -------- PBomb Order --------
        • -------- this trigger will ensure that the caster does not cast the spell inside PBomb_MIN_CAST_RANGE --------
        • -------- and that they cant create another puddle if they reached the MAX_PUDDLES for that color --------
        • -------- if the caster casts the spell too close, the order will be interrupted --------
        • -------- --------
        • -------- --------
        • -------- there can be multiple spells in a map with the same order id. to ensure it's the one we are looking for, check for the level of the PBomb_ABILITY on the triggering unit --------
        • Set PBomb_TempUnit = (Triggering unit)
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Level of PBomb_ABILITY for PBomb_TempUnit) Greater than or equal to 1
          • Then - Actions
            • -------- PBomb_ABILITY was casted; check if the distance meets the minimum requirement --------
            • -------- --------
            • Set PBomb_TempLoc1 = (Position of PBomb_TempUnit)
            • Set PBomb_TempLoc2 = (Target point of issued order)
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Distance between PBomb_TempLoc1 and PBomb_TempLoc2) Less than PBomb_MIN_CAST_RANGE
              • Then - Actions
                • -------- PBomb_ABILITY was casted too close; interrupt cast order --------
                • -------- --------
                • Unit - Pause PBomb_TempUnit
                • Unit - Order PBomb_TempUnit to Stop
                • Unit - Unpause PBomb_TempUnit
                • -------- play error message --------
                • Set PBomb_TempPlayer = (Triggering player)
                • Set PBomb_ErrorMsg = PBomb_ERROR_MSG1
                • Trigger - Run PBomb_TRIGGER_PLAY_ERROR (ignoring conditions)
              • Else - Actions
                • -------- PBomb_ABILITY met the minimum cast range requirement; check to make sure that caster hasn't reached MAX_PUDDLES for active color --------
                • -------- --------
                • Custom script: set udg_PBomb_UnitId = GetHandleId(udg_PBomb_TempUnit)
                • Set SPaint_CurrentColor = (Load PBomb_KEY_CURRENT_COLOR of PBomb_UnitId from PBomb_Hash)
                • Set PBomb_TempInt = (PBomb_MAX_PUDDLES[SPaint_CurrentColor] + (PBomb_MAX_PUDDLES_PER_LEVEL[SPaint_CurrentColor] x (Level of PBomb_ABILITY for PBomb_TempUnit)))
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Load PBomb_KEY_ACTIVE_COUNT[SPaint_CurrentColor] of PBomb_UnitId from PBomb_Hash) Greater than or equal to PBomb_TempInt
                  • Then - Actions
                    • -------- caster is already at maximum puddle count; interrupt cast order --------
                    • -------- --------
                    • Unit - Pause PBomb_TempUnit
                    • Unit - Order PBomb_TempUnit to Stop
                    • Unit - Unpause PBomb_TempUnit
                    • -------- play error message --------
                    • Set PBomb_ErrorMsg = PBomb_ERROR_MSG2
                    • Set PBomb_TempPlayer = (Triggering player)
                    • Trigger - Run PBomb_TRIGGER_PLAY_ERROR (ignoring conditions)
                  • Else - Actions
                    • -------- caster has not reached the maximum puddle count for the color; do nothing --------
            • -------- --------
            • Custom script: call RemoveLocation(udg_PBomb_TempLoc1)
            • Custom script: call RemoveLocation(udg_PBomb_TempLoc2)
          • Else - Actions
            • -------- not PBomb_ABILITY; do nothing --------


    Cast
    • PBomb Cast
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to PBomb_ABILITY
      • Actions
        • -------- PBomb Cast --------
        • -------- this trigger will create a new instance to move the missile to the targeted location --------
        • -------- --------
        • -------- members --------
        • -------- Caster[] = unit that casted the spell --------
        • -------- Owner[] = player that owns Caster[] --------
        • -------- AbilityLvl[] = current ability level of PBomb_ABILITY for Caster[] --------
        • -------- CurrentColor[] = current color selected for Caster[] --------
        • -------- MissileUnit[] = dummy unit with special effect --------
        • -------- Cos[] = cosine of the angle MissileUnit[] will move towards --------
        • -------- Sin[] = sine of the angle MissileUnit[] will move towards --------
        • -------- DistanceTraveled[] = total distance moved by MissileUnit[] --------
        • -------- MoveRate[] = how fast MissileUnit[] will move per iteration --------
        • -------- --------
        • -------- --------
        • Set PBomb_SpellCount = (PBomb_SpellCount + 1)
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • PBomb_SpellCount Equal to 1
          • Then - Actions
            • Trigger - Turn on PBomb_TRIGGER_LOOP
          • Else - Actions
            • -------- do nothing --------
        • -------- --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • PBomb_RecycledSize Equal to 0
          • Then - Actions
            • Set PBomb_MaxIndex = (PBomb_MaxIndex + 1)
            • Set PBomb_SpellId = PBomb_MaxIndex
          • Else - Actions
            • Set PBomb_RecycledSize = (PBomb_RecycledSize - 1)
            • Set PBomb_SpellId = PBomb_RecycledStack[PBomb_RecycledSize]
        • Set PBomb_NodeNext[PBomb_SpellId] = 0
        • Set PBomb_NodePrev[PBomb_SpellId] = PBomb_NodePrev[0]
        • Set PBomb_NodeNext[PBomb_NodePrev[0]] = PBomb_SpellId
        • Set PBomb_NodePrev[0] = PBomb_SpellId
        • -------- --------
        • Set PBomb_Caster[PBomb_SpellId] = (Triggering unit)
        • Set PBomb_Owner[PBomb_SpellId] = (Triggering player)
        • Set PBomb_AbilityLvl[PBomb_SpellId] = (Level of PBomb_ABILITY for PBomb_Caster[PBomb_SpellId])
        • Set PBomb_CurrentColor[PBomb_SpellId] = (Load PBomb_KEY_CURRENT_COLOR of (Key (Triggering unit)) from PBomb_Hash)
        • -------- --------
        • Set PBomb_TempLoc1 = (Position of PBomb_Caster[PBomb_SpellId])
        • Set PBomb_TempLoc2 = (Target point of ability being cast)
        • Set PBomb_TempReal1 = (Angle from PBomb_TempLoc1 to PBomb_TempLoc2)
        • Set PBomb_TempReal2 = (Current flying height of PBomb_Caster[PBomb_SpellId])
        • Custom script: set udg_PBomb_StartZ[udg_PBomb_SpellId] = GetLocationZ(udg_PBomb_TempLoc1) + udg_PBomb_TempReal2
        • Custom script: set udg_PBomb_EndZ[udg_PBomb_SpellId] = GetLocationZ(udg_PBomb_TempLoc2)
        • -------- --------
        • Custom script: set udg_PBomb_MissileUnit[udg_PBomb_SpellId] = GetRecycledDummy(GetLocationX(udg_PBomb_TempLoc1), GetLocationY(udg_PBomb_TempLoc1), udg_PBomb_TempReal2, udg_PBomb_TempReal1)
        • Special Effect - Create a special effect attached to the PBomb_SFX_MISSILE_AP[PBomb_CurrentColor[PBomb_SpellId]] of PBomb_MissileUnit[PBomb_SpellId] using PBomb_SFX_MISSILE[PBomb_CurrentColor[PBomb_SpellId]]
        • Set PBomb_MissileSfx[PBomb_SpellId] = (Last created special effect)
        • -------- --------
        • Set PBomb_Cos[PBomb_SpellId] = (Cos(PBomb_TempReal1))
        • Set PBomb_Sin[PBomb_SpellId] = (Sin(PBomb_TempReal1))
        • Set PBomb_DistanceTraveled[PBomb_SpellId] = 0.00
        • Set PBomb_TotalDistance[PBomb_SpellId] = (Distance between PBomb_TempLoc1 and PBomb_TempLoc2)
        • Set PBomb_MoveRate[PBomb_SpellId] = (PBomb_TotalDistance[PBomb_SpellId] / ((PBomb_TRAVEL_TIME + (PBomb_TRAVEL_TIME_PER_LEVEL x (Real(PBomb_AbilityLvl[PBomb_SpellId])))) / PBomb_PERIODIC_TIMER))
        • -------- --------
        • Custom script: call RemoveLocation(udg_PBomb_TempLoc1)
        • Custom script: call RemoveLocation(udg_PBomb_TempLoc2)


    Loop
    • PBomb Loop
      • Events
      • Conditions
      • Actions
        • Custom script: local real newX
        • Custom script: local real newY
        • Custom script: local real currentD
        • Custom script: local real totalD
        • Custom script: local real originZ
        • Custom script: local real aimZ
        • Custom script: local real adjustZ
        • -------- --------
        • Set PBomb_SpellId = 0
        • For each (Integer PBomb_LoopInt) from 1 to PBomb_SpellCount, do (Actions)
          • Loop - Actions
            • Set PBomb_SpellId = PBomb_NodeNext[PBomb_SpellId]
            • -------- --------
            • -------- xy adjustment --------
            • Custom script: set newX = GetUnitX(udg_PBomb_MissileUnit[udg_PBomb_SpellId]) + udg_PBomb_MoveRate[udg_PBomb_SpellId] * udg_PBomb_Cos[udg_PBomb_SpellId]
            • Custom script: set newY = GetUnitY(udg_PBomb_MissileUnit[udg_PBomb_SpellId]) + udg_PBomb_MoveRate[udg_PBomb_SpellId] * udg_PBomb_Sin[udg_PBomb_SpellId]
            • Set PBomb_DistanceTraveled[PBomb_SpellId] = (PBomb_DistanceTraveled[PBomb_SpellId] + PBomb_MoveRate[PBomb_SpellId])
            • -------- z adjustment (need to use locals or else editor will crash from lengthy custom script) --------
            • Custom script: call MoveLocation(udg_PBomb_LocZ, newX, newY)
            • Custom script: set currentD = udg_PBomb_DistanceTraveled[udg_PBomb_SpellId]
            • Custom script: set totalD = udg_PBomb_TotalDistance[udg_PBomb_SpellId]
            • Custom script: set originZ = udg_PBomb_StartZ[udg_PBomb_SpellId]
            • Custom script: set aimZ = udg_PBomb_EndZ[udg_PBomb_SpellId]
            • Custom script: set adjustZ = originZ - GetLocationZ(udg_PBomb_LocZ)
            • Custom script: set udg_PBomb_Height = adjustZ + 4 * udg_PBomb_MaxHeight * currentD * (totalD-currentD) / (totalD*totalD) + currentD * (aimZ-originZ) / totalD
            • -------- apply adjustment --------
            • Custom script: call SetUnitX(udg_PBomb_MissileUnit[udg_PBomb_SpellId], newX)
            • Custom script: call SetUnitY(udg_PBomb_MissileUnit[udg_PBomb_SpellId], newY)
            • Animation - Change PBomb_MissileUnit[PBomb_SpellId] flying height to PBomb_Height at 0.00
            • -------- --------
            • -------- checking if missile reached target location --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • PBomb_DistanceTraveled[PBomb_SpellId] Greater than or equal to PBomb_TotalDistance[PBomb_SpellId]
              • Then - Actions
                • -------- missile has reached target location; begin phase 2 --------
                • Trigger - Run PBomb_TRIGGER_INDEX_COLOR[PBomb_CurrentColor[PBomb_SpellId]] (ignoring conditions)
                • -------- --------
                • Special Effect - Destroy PBomb_MissileSfx[PBomb_SpellId]
                • Custom script: call DummyAddRecycleTimer(udg_PBomb_MissileUnit[udg_PBomb_SpellId], udg_PBomb_SFX_DEATH_TIMER[udg_PBomb_CurrentColor[udg_PBomb_SpellId]])
                • -------- --------
                • Set PBomb_RecycledStack[PBomb_RecycledSize] = PBomb_SpellId
                • Set PBomb_RecycledSize = (PBomb_RecycledSize + 1)
                • Set PBomb_NodeNext[PBomb_NodePrev[PBomb_SpellId]] = PBomb_NodeNext[PBomb_SpellId]
                • Set PBomb_NodePrev[PBomb_NodeNext[PBomb_SpellId]] = PBomb_NodePrev[PBomb_SpellId]
                • -------- --------
                • Set PBomb_SpellCount = (PBomb_SpellCount - 1)
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • PBomb_SpellCount Equal to 0
                  • Then - Actions
                    • Trigger - Turn off PBomb_TRIGGER_LOOP
                  • Else - Actions
                    • -------- do nothing --------
              • Else - Actions
                • -------- missile has not reached target location; continue moving missile --------


    Bonus image of what my trigger editor looks like ;D
    Beware: GUI ahead
    Capture.PNG
     
  20. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,324
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Seems okay to me, as long as we get to submit our entries. Thank you.

    EDIT:

    I hope this one can be considered as WIP.

    Model Work

    [​IMG]
     
    Last edited: Dec 27, 2017
Thread Status:
Not open for further replies.