// For items
type itemevent extends eventid
constant itemevent EVENT_ITEM_CREATED
constant itemevent EVENT_ITEM_REMOVED
// For destructables
type destructableevent extends eventid
constant destructableevent EVENT_DEST_CREATED
constant destructableevent EVENT_DEST_REMOVED
// For the onDamage event
constant native IsEventDamageAttack takes nothing returns boolean
constant native IsEventDamageOrb takes nothing returns boolean
// For the events EVENT_PLAYER_MOUSE_UP and EVENT_PLAYER_MOUSE_DOWN
type mousebutton extends agent
native GetTriggerMouseButton takes nothing returns mousebutton
// An extension to the ability tooltip alteration
native SetUnitAbilityTooltip takes unit whichUnit, integer abilId, integer level, string tooltip returns nothing
native SetUnitAbilityExtendedTooltip takes unit whichUnit, integer abilId, integer level, string tooltip returns nothing
native SetUnitAbilityResearchTooltip takes unit whichUnit, integer abilId, integer level, string tooltip returns nothing
native GetUnitAbilityTooltip takes unit whichUnit, integer abilId, integer level returns string
native GetUnitAbilityExtendedTooltip takes unit whichUnit, integer abilId, integer level returns string
native GetUnitAbilityResearchTooltip takes unit whichUnit, integer abilId, integer level returns string
// A way to make alterations to the base damage permanent
native SetUnitBaseDamageEx takes unit whichUnit, integer index, integer base, boolean makePermanent returns nothing
// More on unit's attack
type missiletype extends agent
constant missiletype MISSILE_INSTANT
constant missiletype MISSILE_NORMAL
constant missiletype MISSILE_ARTILLERY
constant missiletype MISSILE_LINE
constant missiletype MISSILE_BOUNCE
native SetUnitAttackRange takes unit whichUnit, integer index, real range returns nothing
native SetUnitAttackMissileType takes unit whichUnit, integer index, missiletype missType returns nothing
native SetUnitAttackMissileSpeed takes unit whichUnit, integer index, real speed returns nothing
native SetUnitAttackBounceCount takes unit whichUnit, integer index, integer count returns nothing
native SetUnitAttackBounceRange takes unit whichUnit, integer index, real range returns nothing
native SetUnitAttackWeaponType takes unit whichUnit, integer index, weapontype whichWeapon returns nothing
// Already suggested a lot of times by me, but included for the sake of completeness
native GetUnitAttackRange takes unit whichUnit, integer index returns real
native GetUnitAttackMissileType takes unit whichUnit, integer index returns missiletype
native GetUnitAttackMissileSpeed takes unit whichUnit, integer index returns real
native GetUnitAttackBounceCount takes unit whichUnit, integer index returns integer
native GetUnitAttackBounceRange takes unit whichUnit, integer index returns real
native GetUnitAttackWeaponType takes unit whichUnit, integer index returns weapontype
native GetUnitDefaultBaseDamage takes unit whichUnit, integer index returns integer
// On attack-event related natives
constant unitevent EVENT_UNIT_ATTACK_LAUNCH
constant unitevent EVENT_UNIT_ATTACK_MISS
native GetUnitAttackDefaultBackswing takes unit whichUnit, integer index returns real
native GetUnitAttackDefaultCastpoint takes unit whichUnit, integer index returns real
native GetUnitAttackBackswing takes unit whichUnit, integer index returns real
native GetUnitAttackCastpoint takes unit whichUnit, integer index returns real
// These also affect the speed of the attack animation.
native SetUnitAttackBackswing takes unit whichUnit, integer index, real backswing returns nothing
native SetUnitAttackCastpoint takes unit whichUnit, integer index, real castPoint returns nothing
// These deal with the generated projectile for every ranged attack launched.
type projectileevent extends eventid
type projectile extends effect
constant projectileevent EVENT_PROJECTILE_LAUNCH
// Upon hitting the target or 60 seconds (based on Nes' tests), EVENT_PROJECTILE_EXPIRE catches the moment projectile objects are to be destroyed.
constant projectileevent EVENT_PROJECTILE_EXPIRE
// Returns the generated projectile object.
constant native GetTriggerProjectile takes nothing returns projectile
// Allows additional manipulation of the projectile
native GetProjectileSpeed takes projectile whichProj returns real
native GetProjectileDamage takes projectile whichProj returns real
native GetProjectileAttackType takes projectile whichProj returns attacktype
native GetProjectileDamageType takes projectile whichProj returns damagetype
native GetProjectileWeaponType takes projectile whichProj returns weapontype
native GetProjectileTarget takes projectile whichProj returns widget
native GetProjectileTargetX takes projectile whichProj returns real
native GetProjectileTargetY takes projectile whichProj returns real
native GetProjectileTargetZ takes projectile whichProj returns real
native IsProjectileHoming takes projectile whichProj returns boolean
native IsProjectileDamageAttack takes projectile whichProj returns boolean
native GetProjectileOwner takes projectile whichProj returns unit
native GetProjectileArc takes projectile whichProj returns real
// If set to 0, the missile will hit 0-seconds after.
native SetProjectileSpeed takes projectile whichProj, real speed returns nothing
native SetProjectileDamage takes projectile whichProj, real damage returns nothing
native SetProjectileAttackType takes projectile whichProj, attacktype atkType returns nothing
native SetProjectileDamageType takes projectile whichProj, damagetype atkType returns nothing
native SetProjectileWeaponType takes projectile whichProj, weapontype atkType returns nothing
native SetProjectileTarget takes projectile whichProj, widget target returns nothing
native SetProjectileTargetX takes projectile whichProj, real x returns nothing
native SetProjectileTargetY takes projectile whichProj, real y returns nothing
native SetProjectileTargetZ takes projectile whichProj, real z returns nothing
native SetProjectileHoming takes projectile whichProj, boolean homing returns nothing
// If toAttack is true, then the damage inflicted through the projectile is considered as an attack.
native SetProjectileDamageAttack takes projectile whichProj, boolean toAttack returns nothing
native SetProjectileOwner takes projectile whichProj, unit whichUnit returns nothing
native SetProjectileArc takes projectile whichProj, real arc returns nothing
// On spell-events
constant unitevent EVENT_UNIT_SPELL_MISS
// Model related natives
// As I am not really verbose with models, these suggestions may be improved upon.
// Gets the unit's model
type geoset extends agent
type rendermodelpart extends agent
type rendermodel extends handle
native GetUnitModel takes unit whichUnit returns string
native GetUnitTextureModel takes unit whichUnit, geoset whichGeoset returns string
native GetUnitRenderModel takes unit whichUnit returns rendermodel
native SetUnitModel takes unit whichUnit, string model returns nothing
native SetUnitModelTexture takes unit whichUnit, geoset whichGeoset, string texturePath returns nothing
native GetDestructableRenderModel takes destructable whichDest returns rendermodel
native GetItemRenderModel takes destructable whichDest returns rendermodel
// Allows one to create a new animation based on these info.
native RenderModelWriteStart takes rendermodel whichModel returns nothing
// Clears all in-game generated animations from the write list, preventing them from being written upon a RenderModelWrite call.
native RenderModelClear takes rendermodel whichModel returns nothing
// Saves the changes made in-game to the model.
native RenderModelWrite takes rendermodel whichModel returns nothing
native GetRenderModelTime takes rendermodel whichModel returns real
native SetRenderModelTimer takes rendermodel whichModel, real time returns nothing
// Gets a part, object or event based on the model's info
native GetRenderModelPart takes rendermodel whichModel, integer index returns rendermodelpart
// Localized only to the coordinates of the model
native GetRenderModelPartX takes rendermodel whichModel, rendermodelpart whichPart returns real
native GetRenderModelPartY takes rendermodel whichModel, rendermodelpart whichPart returns real
native GetRenderModelPartZ takes rendermodel whichModel, rendermodelpart whichPart returns real
native SetRenderModelPartX takes rendermodel whichModel, rendermodelpart whichPart, real x returns nothing
native SetRenderModelPartY takes rendermodel whichModel, rendermodelpart whichPart, real y returns nothing
native SetRenderModelPartZ takes rendermodel whichModel, rendermodelpart whichPart, real z returns nothing