1. Find your way through the deepest dungeon in the 18th Mini Mapping Contest Poll.
    Dismiss Notice
  2. A brave new world lies beyond the seven seas. Join the 34th Modeling Contest today!
    Dismiss Notice
  3. 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.

[Feedback] Request Features for JASS and the World Editor

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

  1. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    161
    Resources:
    1
    Tools:
    1
    Resources:
    1
    A request for world editor:
    Make it possible to customize the user-interface (UI) for a map. I think it is very important for people who want to develop a map with ultrahigh quality. This is also the trend of the wc3 modding.
     
  2. Death Adder

    Death Adder

    Joined:
    Nov 3, 2013
    Messages:
    928
    Resources:
    0
    Resources:
    0
    Edit: A couple of months late edit, but I just saw this in Producer Update: Natives List:

    Code (vJASS):
        unitevent EVENT_UNIT_BUFF_APPLIED
        unitevent EVENT_UNIT_BUFF_EXPIRED


    And other buff-related stuff as well.


    __________________________________________________________________________________


    I think two new events could be handy, a unit gains a buff and a unit loses a buff. Ideally also with the source of the buff. (So a new event response as well)


    So for instance, if a unit receives a buff from an aura, you'll be able to use
    GetBuffSource takes unit buffedUnit integer buffId returns unit


    Also, an "Ability being cast" equivalent event response for buffs would be nice to go along with that as well.

    So presumably it would look like this:
    constant native GetBuffId takes nothing returns integer



    Now I don't know if wc3 actually keep track on what the source of a buff was, so maybe one will only be able to use GetBuffSource as an event response instead of being able to check the source of any buff on any unit at any time, but it would still be useful I think. (Since it can be worked around.)
     
    Last edited: Apr 5, 2019
  3. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    15,065
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Make Divine Shield (and invulnerability potions) trigger goblin land mines again.
     
  4. Idaero Ace

    Idaero Ace

    Joined:
    Dec 21, 2013
    Messages:
    720
    Resources:
    0
    Resources:
    0
    Make a text based object editor (or whatever it called) Typing is faster than clicking :p Idk where i get this idea but it sounds great when i thought it but i forget what it is -_-
     
  5. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    7,014
    Resources:
    12
    Models:
    5
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    JASS:
    4
    Resources:
    12
    You can use vjass textmacros for this.
     
  6. apsyll

    apsyll

    Joined:
    Aug 28, 2015
    Messages:
    212
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I just recognize that the "Unit Enters Region" event with the "Region Contains Unit" Condition still use to fail many times, so I would like to either fix this that the condition will always return true or have a "Triggering Region" variable for this kind of event so we can check which region is entered.
     
  7. Drake53

    Drake53

    Joined:
    Jan 1, 2018
    Messages:
    469
    Resources:
    0
    Resources:
    0
    This already exists:
    constant native GetTriggeringRegion takes nothing returns region


    Keep in mind that the region type in JASS is not usable with GUI, and what's called a region in GUI is really the rect type in JASS.
    "Unit Enters Region" event from Blizzard.j:

    Code (vJASS):
    function TriggerRegisterEnterRectSimple takes trigger trig, rect r returns event
        local region rectRegion = CreateRegion()
        call RegionAddRect(rectRegion, r)
        return TriggerRegisterEnterRegion(trig, rectRegion, null)
    endfunction
     
  8. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    15,065
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I don't remember if it's been mentioned or how it is right now in the most recent PTR but it would be nice to have a scrollbar for the map's description. Many melee (and not only; I'm not sure if also Blizzard ones though) have a description ingame which cannot be seen wholly.
     
  9. Sieben

    Sieben

    Joined:
    Nov 23, 2013
    Messages:
    661
    Resources:
    0
    Resources:
    0
    Some suggestions, some of which were already made in other threads, but I think I'm not the only wanting this:
    - Allow advanced building (like Warcraft 2 and Starcraft). With one advanced building button or perhaps even more.
    - Increase the max number of units selection (up to 24? 36? using tabs like Starcraft II?)
    - Allow multiple language managing: wherever there is text (map description, object editor, triggers displaying text (quests, dialogs, floating text…), make an option to display one or more columns with the text equivalent in other language(s).
    - Take advantage of widescreen support to add new features such as extra slots of action buttons (or even extra slots of hero inventory?)
     
  10. Mister_Haudrauf

    Mister_Haudrauf

    Model Reviewer

    Joined:
    Mar 14, 2014
    Messages:
    1,206
    Resources:
    58
    Models:
    53
    Icons:
    2
    Packs:
    3
    Resources:
    58
    "Request Features for JASS and the World Editor"

    Well i have nothing to do with the JASS-Language, i however like to experiment and play around with the World Editor.

    So Here's a Request that i made some time ago:
    Of course it is a bit more demanding than requesting.
     
  11. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,563
    Resources:
    9
    Models:
    1
    Icons:
    2
    Maps:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    9
    Can something like this be implemented?

    Code (C):

    int haha1  = 0;

    void foo() {
        int haha2  = &haha1;

        *haha2 = 1;
    }
     
     
  12. Ether

    Ether

    Joined:
    Nov 13, 2017
    Messages:
    740
    Resources:
    3
    Skins:
    3
    Resources:
    3
    Quoting my post from a discontinued thread, thanks to @deepstrasz for notifying me. ;)

     
  13. Nowow

    Nowow

    Joined:
    Jun 15, 2016
    Messages:
    463
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    • Naval AI would be a welcome addition. Fixing the broken behavior of zeppelins would be a start, then maybe it can be expended to include naval units.
    • Changing AI script by triggers might not be possible, but you can get close to that using JASS AI: it is very much possible to send a command to the AI via triggers and have it change the behavior entirely.
    • What do you mean by patrol and scouting AI. Do you want to be able to send a lot of small groups of units to different locations?
     
  14. Mister_Haudrauf

    Mister_Haudrauf

    Model Reviewer

    Joined:
    Mar 14, 2014
    Messages:
    1,206
    Resources:
    58
    Models:
    53
    Icons:
    2
    Packs:
    3
    Resources:
    58
    I would welcome it for Hostile Creeps. Make them more unpredictable by patroling and moving on their own.
     
  15. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    15,065
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Does the ability Wander not work for that? However, they will move randomly like critters and not in a group, organized. This would not work in melee and honestly for campaigns and custom maps, you can use triggers to do it.
     
  16. Mister_Haudrauf

    Mister_Haudrauf

    Model Reviewer

    Joined:
    Mar 14, 2014
    Messages:
    1,206
    Resources:
    58
    Models:
    53
    Icons:
    2
    Packs:
    3
    Resources:
    58
    The Wander Ability makes them non-aggressive. They only attack, if you attack first or it just happens out of nowhere. And even then they flee from you due to the Wander ability. (At least it was like this the last time i testet that)

    And while Triggers can do the Job, i agree, you would have to make a nearly perfect Creep AI, that keeps surprising even the Veterans of War3. And then Import it to other Maps, which takes time.

    Edit: However let's stop this small discussion and continue with the wishes/demands.
     
  17. Mythic

    Mythic

    Media Manager

    Joined:
    Apr 24, 2012
    Messages:
    8,275
    Resources:
    144
    Models:
    122
    Icons:
    6
    Skins:
    1
    Maps:
    5
    Spells:
    6
    Reforged HD Icons:
    1
    Tutorials:
    3
    Resources:
    144
    My Request Megapost

    Note: Some of these were written before Reforged was announced, and so may be outdated in the long view.

    Gameplay

    • Perhaps turn the Quests menu into an Info menu, with Quests only being a submenu. It'd be a good place to put notes about the map.
    • Infinite timeouts and saves in multiplayer games
    • Option to Fill Empty Slots with Bots in lobbies, like in Dota 2. It's exhausting to have to set each player individually when testing an 11v11 map.
    • Built-in option for QWER-cast
    • Comprehensive binding options
    • Option for quick cast, with instant and on-release variants
    • Better unit management, larger selection groups
    • Targeting images including linear abilities
    • Allow attachments to play their wielder's animation
    • Remove Movement Speed Limit
    • New abilities for Reforged, please. The old ones are old.


    Imports

    • Load imports upon import, not upon map load/save
    • View imports without going to the Object Editor
    • Copy folders in the Object Editor
    • Copy multiple folders in the Trigger Editor
    • Import a map's terrain, automatically creating missing object data (with the option of exporting source map's imports)
    • Tags for custom object data, and the option to copy all data with a specific tag
    • Option not to overwrite existing data when importing object data
    • Option to automatically add missing terrain tiles when copying terrain


    JASS


    Set unit's current ability cooldown
    • BlzSetUnitAbilityCooldownRemaining(unit u, integer abilId, real cd) (MyPad's name idea)

    Modify unit attack range
    • BlzGetUnitAtkRange(takes unit u, integer weapon index returns real)
    • BlzGetUnitTotalAtkRange(takes unit u, integer weapon index returns real)
    • BlzSetUnitAtkRange(unit u, real range, integer weapon index)

    When I saw BlzSetAbilityExtendedTooltip, I thought I could finally display scaling ability damage in the tooltip. But the native doesn't even take a unit, and the effect is global. I'd like the option to customize individual unit ability tooltips.
    • BlzSetUnitAbilityxxTooltip(unit u, integer abilID, string text)

    • Support for locally adding items to shops
    Native to retrieve the unit/object the player is mousing over. I recently tried to recreate League's summon commands, where reactivating the ability orders the summoned unit to do stuff where your mouse is. And boy was it inaccurate for tall structures.
    • BlzGetPlayerMouseObj(takes player p, returns object)

    • Enhanced speed and efficiency for selection events. The delay is quite noticeable. Sometimes they don't even fire correctly
    • Custom region shapes (more than four anchor points)
    • Full Damage Detection, with support for multiple damage types
    • Expose the code of default abilities for modification
    • GetTotalAttackDamage(takes u returns integer)
    • Expanded generic events - we would never have to pick player or unit groups and filter units entering playable map area if generic events covered all that shit.
    • Option to automatically write handle destructors when setting var
    • Option to automatically create u groups when a null one is used/referenced
    • Optimize BJs
    • Using python in the Trigger Editor
    • IsAtkIndexEnabled(takes unit u, integer index, returns boolean)
    • EnableUnitAtkIndex(unit u, integer index, boolean true)
    • Modify unit weapon data from triggers
    • Event for attack being launched


    Map Data

    • Allow morphing units to adapt to their target unit-type's vertex/team coloring, etc.
    • Make building facing configurable
    • Support for importing Object Data into Campaign Editor
    • Actually change Base Order IDs
    • Turn units into heroes in the Object Editor
    • Option to remove base commands from the Command Bar
    • Detect player keystrokes
    • Allow usage of model formats other than .mdx
    • Map sizes not in multiples of 32
    • Comprehensive base abilities/settings, so that we don't have to code all sorts of silly missiles with buggy height.
    • Terrain Editor rotation wheel for doodads and units (xyz axes, with option to align axes to view)
    • Option to adopt new doodad size when using Replace Doodad (currently, they retain the old scale)
    • Option to automatically add missing terrain tiles when copying terrain
    • Adopt JNGP's features/absorb it, so my technician can stop thinking it's a virus
    • Blizz? Orb Effects? Let them stack?
    • Object groups in the Terrain Editor. When using enormous glows, every other doodad becomes impossible to select
    • Default cameras below 0 height
    • Increase maximum attack indices


    Models

    For Reforged model editing:
    • A model finalizer with an option to update used textures when they are modified, for a smoother workflow between skinning and modeling
    • Allow .MDX files to make use of seams
    Currently, importing meshes with seams to .mdx duplicates the vertices.

    • Wrap vertices differently to multiple textures from their geoset's material

    - Option for particles to face the direction they're flying
    - Support for quad faces
    - Option to change particle emitter facing without resorting to animating helpers
    - Model viewer where ribbons work
    - Model viewer that can simulate motion to preview particle and ribbon trails
    - Model viewer that can support game lighting

    - Introduce force fields
    - Allow more than three particle segments
    - Allow animated ribbon emission rate and life span
    - Y-Billboard ribbons

    - Model viewer that can change bone/object hierarchy and duplicate
    - Allow saving animated translations and rotations for cameras
    - Allow naming of geosets, their anims, and materials
    - Allow saving animated textures
    - Allow functional saving between mdl/mdx (Magos' only works halfway)
     
    Last edited: Feb 14, 2019
  18. Sieben

    Sieben

    Joined:
    Nov 23, 2013
    Messages:
    661
    Resources:
    0
    Resources:
    0
    Give an option to allow units to switch between attack 1 and attack 2 depending on the distance of the target. For example, a hunter could automatically use melee attacks against close units, and ranged attacks against distant units.
     
  19. Mufanza

    Mufanza

    Joined:
    Dec 8, 2006
    Messages:
    331
    Resources:
    4
    Models:
    1
    Skins:
    1
    Maps:
    2
    Resources:
    4
    I second the PathExist idea, would make making mazing tower-defense maps a hella lot easier :)

    I think that some way of protecting a map from outside modifications would be supper appreciated by the community. We can already do this by hacking the map file so why not make it official.

    Could you also allow us to draw on the minimap? A massive amount of maps built around procedural terrain generation could emerge from something like that (and procedurally generated stuff are a big thing in games these days).
     
    Last edited: Nov 5, 2018
  20. Hartog

    Hartog

    Joined:
    Jul 1, 2012
    Messages:
    25
    Resources:
    0
    Resources:
    0
    Add some version control ability to the editor like Git. I currently write triggers and such in notepad++ and then paste them into the world editor when i want to commit the changes i made to the map in order to be able to see what has been changed. More general version control would be great and needed for stuff like object editor.

    Add a native to change unit animation cast time and backswing. I wanted to make an ability that decreases the cast time for a unit and since there is no natives for it i figured I had to morph a unit into an alternate form. Using a modified Robo-Goblin ability that seemed to work... at first but then I discovered a minor bug. Robo-Goblin morphed form retains the same cast point and backswing times as the original form for some reason. Just placing the morph variant and standard variant on the map via world edit shows clear differences in cast time. I don't know if it's the same for combat damage point and backswing but I'd consider looking into that too.

    So in essence
    1. version control.
    2. natives for changing animation casts and backswings.
    3. Fix Robo-Goblin bug. Haven't tested other morph abilites though.