This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Topics - Kam
« on: January 12, 2018, 04:08:02 PM »
JASS improvements for the upcoming versions of Warcraft III
This post comes from https://www.hiveworkshop.com/threads/producer-update-natives-list.301405/
LIBRARIES & SCOPES
The ability to declare global variable directly in code. This tremendously facilitates installation of new system without the need for a separate 'variable creator' trigger.
Dynamically Change Fields At Runtime: the following is just a list of commonly requested
properties that map-makers would enjoy having access to via triggers:
- Get and set a unit’s ability/item cooldown time
- Get and set attack damage, armor, attack range, attack speed, attack index, backswing, etc.
- Get and set object editor fields at runtime, e.g. a unit’s model, a unit’s attack missile, set tooltips
for units/abilities/items, set icons, etc.
- Set a unit’s facing, pitch, and roll instantly (setting a unit’s facing currently has turn-speed delay)
- Better control over a unit’s portrait
- Set a unit’s maximum hit points and mana points++
- Get a unit’s damage type
- ‘Attack released event’ - an event that fires when an attack is released i.e. released projectile
Some example are provided below, but in order of importance, 'getters' come before 'setters'. (eg: GetUnitGoldCost() is more important that SetUnitGoldCost(),
though having both would be tremendously helpful in a lot of circumstances)
native GetWidgetLife takes widget
w returns real //The real is not exact? Details lacking.
native EnableOcclusion takes boolean
flag returns nothing //Possibly in reference to occlusion being broken in general? Details lacking.
native TriggerRegisterUnitStateEvent takes trigger
limitval returns event
//EQUAL is broken? Details lacking.
native AddUnitToStock takes unit
stockMax returns nothing
//The main tooltip of the added unit will always ignore color tags so the text will always appear to be white. Color tags should be parsed the same as all unit tooltips.
With each of call of this function, the minimap is modified in a bugged way :
The positions of units and the fog of war are modified to fit to the new camera bound but not the terrain, nor the destructables.
The minimap is compressed (vertically) according to the current camera's rotation. With a rotation of 90°, there is no compression. With a rotation of 227.40, the minimap is fully compressed. Between 227.5 and 312.6, the game crashes.
Moreover, the camera bounds will also be adjusted according to the rotation of the current camera. The camera bounds created will be a rectangle going trough the 4 points given and whose sides will be parallel to the camera.
native SetCameraBounds takes real
y4 returns nothing
Destroy all bound triggeraction objects.
Currently it only destroys all bound events, triggercondition and the trigger itself leaving all triggeraction objects to leak unless explicitly destroyed before.
Also destroy all currently scheduled trigger threads from that trigger.
Currently destroying a trigger with scheduled trigger threads can cause handle stack corruption which has a high chance to cause Warcraft III to crash.
function SmartCameraPanBJ takes player
duration returns nothing
//This BJ function is currently not net safe. Details explained: https://www.hiveworkshop.com/threads/fixing-smartcamerapanbj-desync.243334/
constant native GetEventDamage takes nothing returns real //Return the amount of life damage taken through an imperfect mana shield. Currently returns 0 or negative only even if the unit takes life damage through the shield.
native SetUnitState takes unit
newVal returns nothing
//Add support for modifying both maximum and regeneration for life and mana. Currently only supports modifying current life.
//Change it so that displaying text to a player with unique x and y does not move any other messages.
« on: August 05, 2012, 01:44:13 PM »