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 raddest synthwave tracks were chosen - Check out our Music Contest #12 - Results and congratulate the winners!
    Dismiss Notice
  4. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  5. Travel to distant realms and encounter scenes unknown to the common folk. The Greatest of Adventures is upon us with the 8th Cinematic Contest. Join in on a fun ride.
    Dismiss Notice
  6. The 18th Icon Contest is ON! Choose any ingame unit and give him/her Hero abilities. Good luck to all.
    Dismiss Notice
  7. Contestants are to create a scene set in the Stone Age. Come and see what you can come up with. We wish you the best of luck!
    Dismiss Notice
  8. Colour outside the lines! Techtree Contest #13 is a go. The contest is optionally paired.
    Dismiss Notice
  9. Greetings cerebrates, our Swarm needs new spawners that will have numerous children. Join the HIVE's 31st Modeling Contest - Spawners and Spawned! The contest is optionally paired.
    Dismiss Notice
  10. 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.

[Feedback] Request Features for JASS and the World Editor

Discussion in 'Patch & Reforged Discussion' started by TriggerHappy, Aug 23, 2018.

  1. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I only use GUI except for some few custom script triggers to clean leaks.
    But thanks anyway!
    Hey, thanks, I had no idea. Even weirder, those spells are based on Magic and they act like Chaos damage.
     
  2. Jimpanse1

    Jimpanse1

    Joined:
    Sep 29, 2016
    Messages:
    31
    Resources:
    0
    Resources:
    0
    I know I'm gonna be called crazy for this, but here it goes:

    A simple way to add X custom Buffs to a unit (with duration and stuff) without stacking problems or using weird Aura ways to do it. Oh, and add a real Dummy Buff Ability, no using of Slow Aura where you have to color the text to make it look like an actual positive buff.

    Edit: Also it would be great, if you remove an ability of one of the Unit Spellbooks (Slow Aura Ability Buff for example), to stay in the UI and not get forced back to the main UI every time. Maybe an Option to toggle automatic Spellbook Cancel for cases like that one.
     
  3. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    A XY-variant of
    GetUnitRallyPoint
    .
     
  4. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Means to write a description for the Spell Book ability which currently has none.
     
  5. Mythic

    Mythic

    Joined:
    Apr 24, 2012
    Messages:
    7,702
    Resources:
    101
    Models:
    86
    Icons:
    4
    Maps:
    3
    Spells:
    6
    Tutorials:
    2
    Resources:
    101
    • Cooldown Reduction, flat and percentage:
    • for specific unit's ability
    • for specific unit, categorically
    • for all instances of an ability
    • for all instances of an ability for a player
    • by player, categorically
    • Increase maximum item tooltip size
     
  6. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    This has been done. Depends if you mean even more or not.
     
  7. Warseeker

    Warseeker

    Joined:
    Feb 18, 2014
    Messages:
    2,475
    Resources:
    1
    Maps:
    1
    Resources:
    1
    • Give us a way to Add/Remove items from a unit's Drop Table.
    • A way to detect when a unit drops an item after death.
     
  8. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Is there a way to know which map file was saved most recently? With the new type of map loading you can't even right click to see the map file's properties (last modified date).
     
  9. Prometheus3375

    Prometheus3375

    Joined:
    Jul 20, 2018
    Messages:
    91
    Resources:
    0
    Resources:
    0
    In the editor there is a list of the latest opened maps.
     
  10. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Out of the question if you open too many after another and if you have multiple backups.
     
  11. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    A means to change the text size within strings so things like in the picture below won't happen:
    footmenShields.png
    heroesNameText.png
    heroesNameTextHero.png

    The unit classification is over the secondary attack. Same would probably happen with neutral hostile level and the hero's experience bar.
    Strangely on heroes it becomes smaller as that of the unit classification. Well, at least heroes don't have their classification visible.

    I understand that with the UI natives things could be modified but that's not GUI.
     
    Last edited: Aug 13, 2019
  12. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Triggers with arrays so that if you use loops you turn on/off each trigger based on the array instead of the whole trigger of the loop.

    There's a Trigger variable which can have an array. They question is, would setting it as this trigger after the trigger's event fires make it a different trigger so that turning it off won't close all it's array numbers?
     
  13. Prometheus3375

    Prometheus3375

    Joined:
    Jul 20, 2018
    Messages:
    91
    Resources:
    0
    Resources:
    0
    May you explain this more deeply? I do not understand what you want.

    trigger array and trigger are different types, you cannot assign to a trigger array variable a single trigger. You can assign a single trigger to specific cell of the array.

    GetTriggeringTrigger()
    (This Trigger in GUI) is just a link to a trigger object. Trigger vars hold links to trigger objects too. So, whenever you assign a trigger to a variable, trigger is not copied. To create a different trigger, you need to call
    CreateTrigger()
    .
     
  14. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    So it doesn't work like

    • Shields Regenerate
      • Events
        • Time - Every 0.50 seconds of game time
      • Conditions
      • Actions
        • For each (Integer ShieldsRegenerateLoopInteger) from 1 to ShieldsIndexInteger, do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • ShieldsInitialValue[ShieldsRegenerateLoopInteger] Less than ShieldsMaxValue[ShieldsRegenerateLoopInteger]
              • Then - Actions
                • Set ShieldsInitialValue[ShieldsRegenerateLoopInteger] = (ShieldsInitialValue[ShieldsRegenerateLoopInteger] + 1)
                • Game - Display to (All players) the text: ((ShieldValue + (String(ShieldsRegenerateLoopInteger))) + (String(ShieldsMaxValue[ShieldsRegenerateLoopInteger])))
                • Floating Text - Change text of ShieldsFloatingText[ShieldsRegenerateLoopInteger] to ((String(ShieldsInitialValue[ShieldsRegenerateLoopInteger])) + ( / + (String(ShieldsMaxValue[ShieldsRegenerateLoopInteger])))) using font size 8.00
              • Else - Actions
            • -------- Surplus Decrease --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • ShieldsInitialValue[ShieldsRegenerateLoopInteger] Greater than ShieldsMaxValue[ShieldsRegenerateLoopInteger]
              • Then - Actions
                • Set ShieldsInitialValue[ShieldsRegenerateLoopInteger] = (ShieldsInitialValue[ShieldsRegenerateLoopInteger] - 1)
                • Game - Display to (All players) the text: ((ShieldValue + (String(ShieldsRegenerateLoopInteger))) + (String(ShieldsMaxValue[ShieldsRegenerateLoopInteger])))
                • Floating Text - Change text of ShieldsFloatingText[ShieldsRegenerateLoopInteger] to ((String(ShieldsInitialValue[ShieldsRegenerateLoopInteger])) + ( / + (String(ShieldsMaxValue[ShieldsRegenerateLoopInteger])))) using font size 8.00
              • Else - Actions
            • -------- Floating Text with Armour --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • ShieldsArmourValue[ShieldsRegenerateLoopInteger] Greater than 0
              • Then - Actions
                • Floating Text - Change text of ShieldsArmourFloatingText[ShieldsRegenerateLoopInteger] to ((+ + ((String(ShieldsArmourValue[ShieldsRegenerateLoopInteger])) + ))) using font size 8.00
              • Else - Actions


    ?

    I would need something like this:
    Event: Every 0.5s

    For Each integer TriggerInteger from 1 to IndexInteger do actions:
    Set variable Trigger[TriggerInteger]=this trigger.

    If Unit has Buff Shield Bonus then:
    Set var ShieldValueInteger=ShieldValueInteger+ShieldBonusValueInteger.
    Turn OFF Trigger[TriggerInteger].
    Else Turn ON Trigger[TriggerInteger]
     
  15. Prometheus3375

    Prometheus3375

    Joined:
    Jul 20, 2018
    Messages:
    91
    Resources:
    0
    Resources:
    0
    So, all cells of that array will be just pointers to This Trigger.
     
  16. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    The idea is for the trigger to turn off only for a certain integer meeting the condition. I don't want the trigger to turn off for every integer value within the loop.
     
  17. Prometheus3375

    Prometheus3375

    Joined:
    Jul 20, 2018
    Messages:
    91
    Resources:
    0
    Resources:
    0
    You need to create IndexInteger distinct triggers. Otherwise all cells points to 1 trigger, so passing any of the them to TurnOn\Off function enables\disabled the trigger that a cell points to, i. e. your trigger is either turned off for all integers, or turned on for all integers.

    UPD: a trigger is like a unit. You have one unit. You assign this unit to 0..N cells of an unit array (ex. UnitArray). If you call PauseUnit() for any cell of UnitArray from 0 to N, unit will be (un)paused.

    WC3 has only 3 value types - boolean, integer and real. Value type = a variable stores value itself. Whenever you do some action witch such vars, you do action with their own value.

    Other types are reference, i. e. vars of such type do not hold value, they hold a pointer (reference) to an object. Whenever you do some action witch such vars (except assignment), you do action with the object that is pointed by var. Assignment forces a var to point to another object.

    Such types are code, handle and string. Code vars point to a function in code, string vars point to a string in String Table, handle vars point to other objects in memory. Unit and trigger are handle descendants.
     
    Last edited: Aug 15, 2019
  18. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    A "Hard-coded" Unit Name action/variable option. Considering the earlier example here [Feedback] Request Features for JASS and the World Editor if you change the unit name it will integrate all that text there instead of the object data field name. There's probably a workaround by creating an arrayed string verified by a condition but that would become annoying when having to create multiple units sharing the same trigger loops. Sure, it's better than copying the loops for each unit type separately.
     
  19. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,257
    Resources:
    1
    Maps:
    1
    Resources:
    1
    A way to make units show as mana/health bars in that they won't be covered by other (usually flying) units. Basically, I need them to always stay on top.

    Same happens with special effects. They are also masked by air units if their height is lower than the that of the hovering units.
     
    Last edited: Aug 17, 2019
  20. Mythic

    Mythic

    Joined:
    Apr 24, 2012
    Messages:
    7,702
    Resources:
    101
    Models:
    86
    Icons:
    4
    Maps:
    3
    Spells:
    6
    Tutorials:
    2
    Resources:
    101
    - Modify/retrieve specific ability cast range for unit/unit-type/player
    - Modify all abilities' cast ranges for unit/unit-type/player

    - Option to make changes to Attack Interval permanent, even if the unit morphs