• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Feedback] Request Features for JASS and the World Editor

Status
Not open for further replies.
Level 15
Joined
Nov 30, 2007
Messages
1,202
Many games rely on anonymity of players, however there is a problem with it, as you are able to memorize the player order from the game lobby and match it up with players as seen in Allies window (F11). A solution to this would be to shuffle the players once the game starts or add a function to do so.

So basically functions to change race/player number in-game. Changing player number should in essence switch 2 player slots.
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
EDIT: A way to have red text instead of green when modifying the movement speed of units via triggers. This one also has a negative value aura over it.
NegativeValuesRedTextPlease.png

Sorry for the mutlipost-esque comments.
 
Last edited:
- Universally replace a global variable's uses with a variable of the same type
- Replace variable usage within a trigger
- Replace variable usage within the selected actions/conditions
- Replace variable usage with each other
- Replace usage of a variable's array with a non-arrayed variable

- Mass alteration of variable prefixes
- Merge compatible variables
- Quit emptying array settings when changing arrayed globals
- Automatically enable references to pasted trigger data
- Automatically enable references to deleted triggers once a trigger of the same name is created
- Automatically convert compatible values when switching between reals and integers, instead of clearing the value field
- More decimal places in GUI reals

- Option for Fan of Knives to damage targets in fog
- Option for other abilities not to damage units in fog
- Option for abilities to reveal a specified area around them
- Remove lag when units get knocked into unpathable areas
- Event: A unit is healed, Event Response: Heal Amount & Source
- Event: A unit morphs, Event Response: Morphing Unit, Morphing Ability
- Option for abilities not/to interrupt chain of command (looking at you, channel)
- Fix bugs caused by Channel with regards to Unit/Point target orders hindering triggered commands for abilities with those commands as default
- Setting whether abilities follow backswing or ignore it
- Option for which abilities show when the unit is paused
- Option to make anims time-scale for cast backswing value

- Allow Undo for tileset modifications
- Aligning to Center and Right for Leaderboards/Multiboards
- Click multiboard column headers to toggle cells underneath it between a.) default position, b.) highest to lowest, and c.) lowest to highest
- Expiration timers for special effects
- Locally add items to a market and sell them
- Make notes for whether functions return decimals or wholes
- Quit forcefully moving the mouse when tabbing during Ctrl + F9 Loading
- (Option to) quit flashing the hero icon red when taking damage below 0
- Start up item-picking windows in the Trigger Editor scrolled to the selected item
- Allow scrolling for all unit/item selection windows
- Configurable attack notification interval

- Quit resetting import manager to the top when editing a file path
- Mass editing for import paths
- Group selection by type or folder
- Option to import only one the active version for each icon, and have the game use a modifiable black mask for all the disabled versions
- Option to import borderless icons, and have the game superimpose the necessary borders for all
- Separate map saving folder locations from exports/imports
- Allow editor map saving during gameplay
- Option to separate revive/awaken costs from hero costs
- Fix inability to remove hero skills through triggers
- Map description settings templates/profiles for all newly created maps
- Option to quit showing dialogs about your map no longer being melee/RoC

- Option for particles to move towards the emitter's location
- Option for (such) particles to have varying speed dictated by lifetime
- Option to use geosets as particles
- Non-Structure target type
- Trigger condition to check whether a player is holding a key (Ctrl/Alt/Shift, etc.)
- Native for a unit to copy another's orders, option for their queues
- Percentage current/max (on top of flat) health and mana costs for abilities, and automatically calculate them in the tooltips
- Native to bind units to control keys
- Make UnitAlive *actually* check whether the unit is alive, rather than just performing a health check
- Option to heal dead units and revive them through it
- Option for negative healing to flash the unit icon red

- Affect custom scripts when globals are renamed
- Quit resorting to dodgy custom text scrolling tactics (focusing the custom text box sometimes scrolls it)
- Option to use a font that doesn't cause eye pain
- Quit doing horrible things when pasting large amounts of custom text (adding indecipherable characters)

Notepad++ functionality for custom text
Includes, but is not restricted to:
- Colored text
- Auto-indent
- Highlight matching brackets
- Minimize code blocks
- Option to remember which code blocks are minimized on-save
- Ctrl + F, Backwards, Count, Cycle Through, Mass Replace
- Make custom text compatible with notepad++ indentation

Additionally,
- Multi-Line Replace
- Option to minimize all codeblocks of a type in a trigger/s
- Option to minimize all codeblocks under the minimized codeblocks
- Option to mouse-over object ids to see their editor/game name and some info
- Run JASShelper on current trigger only

- Option to allow animation-play natives to respect animation tags
- Option for morphs to keep the old unit's attack speed
- Remove discrepancy in healthbar size for a unit turning vulnerable
- Alliance Aspect: Enemy with Shared Vision and (Fully Shared) Units, would be perfect for testing
- Attack Speed Natives, since stacking Agility for Attack Speed does *not* affect "Attack Interval"
- Gameplay Constants for maximum Attack Speed/Bonuses
- Option to change projectile during an Attack Launch event
- Make Unit Selection Limit configurable in lobby; add Upper and Lower soft limits to Gameplay Constants
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
A way to copy doodads in their current height position. It always resets and you have to put them to the height you want again unless you specify the doodad's height in the object data. But that would mean multiple copies of the same doodad just for some height differences.

EDIT: same with moving them afterwards. They reset to their initial height.
 
Last edited:
Level 5
Joined
Sep 29, 2016
Messages
43
It would be cool to have a GUI way to save the rawcode Int of an Ability in a Hashtable. Right now you can only save the Ability Handle, which is okay, but not what I need. Since they already did the same with saving Unit Types in a Hashtable, I guess it wouldn't be too hard to realize. Maybe call it AbilityType.
 

Wrda

Spell Reviewer
Level 25
Joined
Nov 18, 2012
Messages
1,873
Most icons don't even have visible team color parts to begin with, so this whole idea is stupid, doesn't add anything to aesthetics, just makes it more confusing to see icons. Icons are supposed to be universal so everyone can clearly see what's the type of unit they're using.
Can it be don with the editor now?
No.
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
Most icons don't even have visible team color parts to begin with
He-he. I was referring for custom maps and stuff, like a Warcraft II remake etc. Funny thing is that the upgrade/research icons didn't not follow this trend except for those having unit portraits like the Troll Berserker, Ogre Magi, Elven Ranger and the Paladin.
 
Level 9
Joined
Jul 20, 2018
Messages
176
Well, this won't actually do it unless someone makes like 24 coloured versions of the icon, which is something that nobody wants.
It is necessary only to make an icon with alpha channel (i. e. make transparent some places of the icon), duplicate it 24 times, merge each layer with a colored background and then export each layer as a separate icon.
I have a .psd with 24 colors (attached), so if someone wants to make teamcolored icons in own map, you can use it.
 

Attachments

  • PlayerColor.psd
    50.6 KB · Views: 100
Last edited:

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
What's the point of using other language's characters and seeing them if no one can understand? If only with a translator...
There is a point. Say, you want to create a puzzle with the runic alphabet. You would then have to go for a mild search on wikipedia to get an idea what those things mean (of course you'd get a hint about it).
That's one example.
 
Level 9
Joined
Jul 20, 2018
Messages
176
I'm not sure if this already exists, but i'd be great to have a GUI way to read out a Unit's Attack Damage on Weapon index X, with bonus damage (Green text), not just the Base Damage.
BlzGetUnitBaseDamage() returns base damage with green bonus. Watch this post.
If you need white value, you should use this code.
call BlzGetUnitWeaponIntegerField(unit, UNIT_WEAPON_IF_ATTACK_DAMAGE_BASE, 0)
 
Level 5
Joined
Sep 29, 2016
Messages
43
BlzGetUnitBaseDamage() returns base damage with green bonus. Watch this post.
If you need white value, you should use this code.
call BlzGetUnitWeaponIntegerField(unit, UNIT_WEAPON_IF_ATTACK_DAMAGE_BASE, 0)
That's pretty cool, do you know if there is a GUI-like function for that? I do find the Base Damage depending on the weapon index, which is probably the BlzGetUnitWeaponIntegerField. However i can't find the other one :(

What's the point of using other language's characters and seeing them if no one can understand? If only with a translator...
Afaik having a different language like chinese or russian means to load a complete different Wc3-Client. Just being able to use other chars doesn't mean the game intends you (The Player) to understand it (in my map for example) It just looks cool/different. For Maps like Naruto Castle Defence (chinese version) it would already help to see them, so that the whole formatting for the Tooltips isn't filled with lots of blanks.

Here are my next feature suggestions:
- GUI: Usually the "Load from Hashtable"-Function is at the top of the list, well except for Boolean. I'm not sure why, but it's kinda odd for that function to be somewhere in the middle of the list.

- (GUI) It would be cool to have a way to change the Techtree Requirements of an ability in Real-Time. You can change a lot of things, but i didn't find a value for that. 'areq'

- GUI: If you check the variable list, you can search for variables easily by typing the variable name. However that does not work, if you want to select a variable in an action. You can only search for the first letter. Further button presses overwrite the first letter you're searching for.

- Spellbook: If you have a Unit with Spellbook, which uses a spell that will Trigger-Pause & Unpause the unit, the UI interface is empty when trying to GUI-Select any unit. Only solution right now: Force-Press Esc for the Owner of the Unit or manual doubleclick something in the map. (Weird Selection Bug using Channel+Spellbook) It would be great to have a force deselect that can get you out of the Spellbook UI and the Unit UI, or a function to exit out of the spellbook UI for a Player.

- UI Refresh. It would be great to have a way to refresh the current UI. If you change the mana cost of an ability, when it's used, the UI doesn't update in Realtime. The only way to "force" it, is to issue an order, like Stop. It destroys the rhythm of the spell, if your following actions are sometimes forced to stop.

That's it for now. I guess i'll go and search for more things, that could be improved. Long live the GUI Users! (which use a few self written functions and stuff)
 
Level 28
Joined
Feb 18, 2014
Messages
3,579
Add the ability to change water tinting color and fog style for a specific area :
  • Environment - Change water tinting color at (Center of (Playable map area)) to (100.00%, 100.00%, 100.00%) with 0.00% transparency
  • Environment - Set fog at (Center of (Playable map area)) to style Exponentiel 1, z-start 1000.00, z-end 8000.00, density 0.00 and color (100.00%, 100.00%, 100.00%)
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
- UI Refresh. It would be great to have a way to refresh the current UI. If you change the mana cost of an ability, when it's used, the UI doesn't update in Realtime. The only way to "force" it, is to issue an order, like Stop. It destroys the rhythm of the spell, if your following actions are sometimes forced to stop.
add and remove any dummy ability like AIde
 
Level 9
Joined
Jul 20, 2018
Messages
176
That's pretty cool, do you know if there is a GUI-like function for that? I do find the Base Damage depending on the weapon index, which is probably the BlzGetUnitWeaponIntegerField.
There is no getters functions in GUI for that, only setters.

This stands for BlzSetUnitBaseDamage(whichUnit, newValue, weaponIndex)

Снимок 195.PNG


And this for BlzSetUnitWeaponIntegerFieldBJ(whichUnit, UNIT_WEAPON_IF_ATTACK_DAMAGE_BASE, weaponIndex, newValue)

Снимок 196.PNG

 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,183
Agreed. There are libraries that allow this, but the lack of visible regions in the editor is not cutting it for me.

Ideally, I would like something like "create poly region" button. Then you click anywhere on the map which create a point. And then maybe right click to generate the area given the clicked locations.
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
We've got the event for mouse up/down (which I assume refers to the mouse wheel since there's also mouse move) but what we need is also a unit presses DELETE or just an event to detect if the current camera view is modified. Would help a lot on those parts you want to keep a custom camera view without it being reset to the game's default.
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
A way to colour floating text and text in general without having to add multiple concatenate strings, one before a converted value and one after to change the value's text colour.
Also, concatenate strings like with multiple conditions to be individually manipulated instead of everything to be in one line of GUI code.
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
I'm curious why there are so many damage types you could use as an action to damage units but no conditions for these for the event A Unit Takes Damage.

Would be nice to be able to copy "strings" from one "string field" to another when using concatenate strings and the like like so:
TriggerFieldCopy01.png

Some spells ignore armour like Finger of Death, Firebolt. Do they deal Chaos damage? Would be neat to know what kind of damage a spell deals since I assumed all dealt Spell type. Would be even neater to be able to specify in the object data what kind of damage a spell should deal.
 
Level 9
Joined
Jul 20, 2018
Messages
176
but no conditions for these for the event A Unit Takes Damage
You can get attack\damage\weapon type and compare with desired.

JASS:
native BlzGetEventAttackType                         takes nothing returns attacktype
native BlzGetEventDamageType                       takes nothing returns damagetype
native BlzGetEventWeaponType                         takes nothing returns weapontype

JASS:
    constant attacktype         ATTACK_TYPE_NORMAL              = ConvertAttackType(0)
    constant attacktype         ATTACK_TYPE_MELEE               = ConvertAttackType(1)
    constant attacktype         ATTACK_TYPE_PIERCE              = ConvertAttackType(2)
    constant attacktype         ATTACK_TYPE_SIEGE               = ConvertAttackType(3)
    constant attacktype         ATTACK_TYPE_MAGIC               = ConvertAttackType(4)
    constant attacktype         ATTACK_TYPE_CHAOS               = ConvertAttackType(5)
    constant attacktype         ATTACK_TYPE_HERO                = ConvertAttackType(6)

    constant damagetype         DAMAGE_TYPE_UNKNOWN             = ConvertDamageType(0)
    constant damagetype         DAMAGE_TYPE_NORMAL              = ConvertDamageType(4)
    constant damagetype         DAMAGE_TYPE_ENHANCED            = ConvertDamageType(5)
    constant damagetype         DAMAGE_TYPE_FIRE                = ConvertDamageType(8)
    constant damagetype         DAMAGE_TYPE_COLD                = ConvertDamageType(9)
    constant damagetype         DAMAGE_TYPE_LIGHTNING           = ConvertDamageType(10)
    constant damagetype         DAMAGE_TYPE_POISON              = ConvertDamageType(11)
    constant damagetype         DAMAGE_TYPE_DISEASE             = ConvertDamageType(12)
    constant damagetype         DAMAGE_TYPE_DIVINE              = ConvertDamageType(13)
    constant damagetype         DAMAGE_TYPE_MAGIC               = ConvertDamageType(14)
    constant damagetype         DAMAGE_TYPE_SONIC               = ConvertDamageType(15)
    constant damagetype         DAMAGE_TYPE_ACID                = ConvertDamageType(16)
    constant damagetype         DAMAGE_TYPE_FORCE               = ConvertDamageType(17)
    constant damagetype         DAMAGE_TYPE_DEATH               = ConvertDamageType(18)
    constant damagetype         DAMAGE_TYPE_MIND                = ConvertDamageType(19)
    constant damagetype         DAMAGE_TYPE_PLANT               = ConvertDamageType(20)
    constant damagetype         DAMAGE_TYPE_DEFENSIVE           = ConvertDamageType(21)
    constant damagetype         DAMAGE_TYPE_DEMOLITION          = ConvertDamageType(22)
    constant damagetype         DAMAGE_TYPE_SLOW_POISON         = ConvertDamageType(23)
    constant damagetype         DAMAGE_TYPE_SPIRIT_LINK         = ConvertDamageType(24)
    constant damagetype         DAMAGE_TYPE_SHADOW_STRIKE       = ConvertDamageType(25)
    constant damagetype         DAMAGE_TYPE_UNIVERSAL           = ConvertDamageType(26)

    constant weapontype         WEAPON_TYPE_WHOKNOWS            = ConvertWeaponType(0)
    constant weapontype         WEAPON_TYPE_METAL_LIGHT_CHOP    = ConvertWeaponType(1)
    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_CHOP   = ConvertWeaponType(2)
    constant weapontype         WEAPON_TYPE_METAL_HEAVY_CHOP    = ConvertWeaponType(3)
    constant weapontype         WEAPON_TYPE_METAL_LIGHT_SLICE   = ConvertWeaponType(4)
    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_SLICE  = ConvertWeaponType(5)
    constant weapontype         WEAPON_TYPE_METAL_HEAVY_SLICE   = ConvertWeaponType(6)
    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_BASH   = ConvertWeaponType(7)
    constant weapontype         WEAPON_TYPE_METAL_HEAVY_BASH    = ConvertWeaponType(8)
    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_STAB   = ConvertWeaponType(9)
    constant weapontype         WEAPON_TYPE_METAL_HEAVY_STAB    = ConvertWeaponType(10)
    constant weapontype         WEAPON_TYPE_WOOD_LIGHT_SLICE    = ConvertWeaponType(11)
    constant weapontype         WEAPON_TYPE_WOOD_MEDIUM_SLICE   = ConvertWeaponType(12)
    constant weapontype         WEAPON_TYPE_WOOD_HEAVY_SLICE    = ConvertWeaponType(13)
    constant weapontype         WEAPON_TYPE_WOOD_LIGHT_BASH     = ConvertWeaponType(14)
    constant weapontype         WEAPON_TYPE_WOOD_MEDIUM_BASH    = ConvertWeaponType(15)
    constant weapontype         WEAPON_TYPE_WOOD_HEAVY_BASH     = ConvertWeaponType(16)
    constant weapontype         WEAPON_TYPE_WOOD_LIGHT_STAB     = ConvertWeaponType(17)
    constant weapontype         WEAPON_TYPE_WOOD_MEDIUM_STAB    = ConvertWeaponType(18)
    constant weapontype         WEAPON_TYPE_CLAW_LIGHT_SLICE    = ConvertWeaponType(19)
    constant weapontype         WEAPON_TYPE_CLAW_MEDIUM_SLICE   = ConvertWeaponType(20)
    constant weapontype         WEAPON_TYPE_CLAW_HEAVY_SLICE    = ConvertWeaponType(21)
    constant weapontype         WEAPON_TYPE_AXE_MEDIUM_CHOP     = ConvertWeaponType(22)
    constant weapontype         WEAPON_TYPE_ROCK_HEAVY_BASH     = ConvertWeaponType(23)
Some spells ignore armour like Finger of Death, Firebolt. Do they deal Chaos damage? Would be neat to know what kind of damage a spell deals since I assumed all dealt Spell type.
Such information is collected in this thread.
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,828
Level 5
Joined
Sep 29, 2016
Messages
43
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.
 
Status
Not open for further replies.
Top