2014-08-04 12:12:15 +00:00
// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
// https://alliedmods.net/amxmodx-license
//
// Natural Selection Module Functions
//
2004-08-21 21:55:57 +00:00
# if defined NS_INC
# endinput
# endif
2015-02-24 22:56:17 +00:00
# define NS_INC
2004-08-21 21:55:57 +00:00
2015-02-24 22:56:17 +00:00
# pragma reqlib ns
# if !defined AMXMODX_NOAUTOLOAD
# pragma loadlib ns
2006-05-10 10:42:49 +00:00
# endif
2005-07-15 19:05:31 +00:00
2007-08-02 16:37:57 +00:00
# include <ns_const>
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Called whenever the client ' s class is changed .
*
* @ param id The index of the player who changed .
* @ param newclass The class the client changed to . Check the class enum in ns_const . inc .
* @ param oldclass The class the client changed from . Check the class enum in ns_const . inc .
* @ noreturn
* /
forward client_changeclass ( id , newclass , oldclass ) ;
/ * *
2008-03-04 18:55:54 +00:00
* Called whenever the client builds a structure .
2007-08-02 16:37:57 +00:00
*
* @ param idPlayer The player index who triggered the building .
* @ param idStructure The structure index that was created .
* @ param type The type of structure that was built ( 1 for marine , 2 for alien ) .
* @ param impulse The impulse command that was issued to build this structure .
* @ noreturn
* /
forward client_built ( idPlayer , idStructure , type , impulse ) ;
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Tell whether or not the map is combat .
*
* @ return 1 if combat , 0 otherwise .
* /
2004-08-21 21:55:57 +00:00
native ns_is_combat ( ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Returns the gameplay type for the currently active map .
* Refer to ns_const . inc ' s NSGameplay enum for details .
*
* @ note The earliest this is guaranteed to be accurate is during plugin_init ( ) . It needs
* the info_gameplay entity to be properly set within the map , or it will return " Unknown " ,
* or " Cantfind " .
*
* @ return Return the gameplay mode , as accurate as the module can tell .
* /
native NSGameplay : ns_get_gameplay ( ) ;
2007-08-03 02:57:59 +00:00
/ * *
* Exact syntax as get_user_team , but should be more accurate .
*
* @ param id Player id .
* @ param buff Buffer to store team name in .
* @ param len Buffer length .
* @ return The pev_team setting for the player .
* /
native ns_get_user_team ( id , buff [ ] , len ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Send an NS - style popup message .
*
* @ param target The client to receive the message . Set to 0 to send to everybody .
* @ param szMsg The message to send , 180 characters max .
* @ param ah Whether to only display the message on clients who have the cvar " cl_autohelp " set to 1.
* @ noreturn
* /
2007-08-10 04:52:12 +00:00
native ns_popup ( target , const szMsg [ 180 ] , ah = 0 ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets a player model . Omit the second parameter to return to default
*
* @ note The model does not revert on death , teamswitch , gestation , etc .
*
* @ param id The player id to change .
* @ param szModel The model to change to .
* @ noreturn
* /
native ns_set_player_model ( id , const szModel [ ] = " " ) ;
/ * *
* Sets a player skin . Omit the second parameter to return to default
*
* @ note The skin does not revert on death , teamswitch , gestation , etc .
*
* @ param id The player id to change .
* @ param skin The skin number to change to .
* @ noreturn
* /
native ns_set_player_skin ( id , skin = - 1 ) ;
/ * *
* Sets a player body . Omit the second parameter to return to default
*
* @ note The body does not revert on death , teamswitch , gestation , etc .
*
* @ param id The player id to change .
* @ param body The body number to change to .
* @ noreturn
* /
native ns_set_player_body ( id , body = - 1 ) ;
/ * *
* Set this to modify the player ' s speed by a certain amount .
*
* @ note The speed does not revert on death , teamswitch , gestation , etc .
*
* @ param id The player id to change .
* @ param speedchange The speed to modify the player speed by . Set to 0 to revert to default speed .
* @ noreturn
* /
native ns_set_speedchange ( id , speedchange = 0 ) ;
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Returns a client ' s current speed modifier .
*
* @ param id The client id to check .
* @ return The module ' s current speed modifier for the client .
* /
2004-08-21 21:55:57 +00:00
native ns_get_speedchange ( id ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Returns a client ' s maxspeed before the speed change modifier is factored in .
*
* @ param id The client id to check .
* @ return The maxspeed for the client .
* /
2004-08-21 21:55:57 +00:00
native ns_get_maxspeed ( id ) ;
/* Returns whether or not this mask is set from the entity's iuser4 field. Use the "mask" enum for reference. */
native ns_get_mask ( id , mask ) ;
/* Sets or removes the mask from the entity's iuser4 field. Set "value" to 1 to turn the mask on, 0 to turn it off. */
native ns_set_mask ( id , mask , value ) ;
/ * Returns built / unbuilt structures .
If :
builtOnly is 1 ( default ) :
Only fully built structures are counted .
builtOnly is 0 :
Any structure meeting the classname is counted .
Number is 0 ( default ) :
The total number of matching structures is returned .
Number is any other value :
The index of the # th matching structure is returned .
* /
2007-01-26 05:56:10 +00:00
native ns_get_build ( const classname [ ] , builtOnly = 1 , Number = 0 ) ;
2004-08-21 21:55:57 +00:00
/ * Returns if the player has the weapon or not in their pev - > weapons field .
set " setweapon " to 0 to turn the bit off , set to 1 to turn it on . Or omit it to just return the value . * /
2005-07-29 19:18:45 +00:00
native ns_has_weapon ( id , weapon , setweapon = - 1 ) ;
2004-08-21 21:55:57 +00:00
/ * Gets spawn point for specified team ( type ) .
If :
Team is equal to 0 :
Ready room spawns are returned .
Team is greater than 0 :
Spawns for the team are returned .
Number is equal to 0 :
Total number of spawns is returned .
Number is greater than 0 :
The location of the specified spawn is returned .
* /
native ns_get_spawn ( team , number = 0 , Float : ret [ 3 ] ) ;
/* Returns the class of the player. Look in the classes enum in ns_const.inc for the value's meaning. */
native ns_get_class ( id ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Gets the player ' s jetpack fuel reserve .
*
* @ param id The player to get fuel from .
* @ return The amount of fuel in the player ' s reserve . ( 0.0 through 100.0 )
* /
2004-08-21 21:55:57 +00:00
native Float : ns_get_jpfuel ( id ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the player ' s jetpack fuel reserve .
*
* @ param id The player to set fuel .
* @ param fuel The amount of fuel to set , as a percentage ( 0.0 through 100.0 )
* @ noreturn
* /
native ns_set_jpfuel ( id , Float : fuel ) ;
/ * *
* Adds to the player ' s jetpack fuel reserve .
*
* @ param id The player to add fuel to .
* @ param amount The amount of fuel to add , as a percentage ( 0.0 through 100.0 )
* @ return The new amount of fuel in the player ' s reserve . ( 0.0 through 100.0 )
* /
native Float : ns_add_jpfuel ( id , Float : amount ) ;
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Gets the player ' s energy percentage .
*
* @ param id The player to get the energy from .
* @ return The amount of energy the player has ( 0.0 through 100.0 )
* /
2004-08-21 21:55:57 +00:00
native Float : ns_get_energy ( id ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the player ' s energy percentage .
*
* @ param id The player to set the energy on .
* @ param energy The amount of energy to set ( 0.0 through 100.0 )
* @ noreturn
* /
native ns_set_energy ( id , Float : energy ) ;
/ * *
* Adds to the player ' s energy percentage .
*
* @ param id The player to add the energy to .
* @ param amount The amount of energy to add to the player .
* @ return The new amount of energy the player has ( 0.0 through 100.0 )
* /
native Float : ns_add_energy ( id , Float : amount ) ;
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Returns a player ' s resources .
*
* @ note This is only for alien players .
* @ param id The id of the player to check .
* @ return Amount of resources this player has .
* /
2004-08-21 21:55:57 +00:00
native Float : ns_get_res ( id ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets a player ' s resources .
*
* @ note This is only for alien players .
* @ param id The id of the player to set .
* @ param res Amount of resources to set on this player .
* @ noreturn
* /
native ns_set_res ( id , Float : res ) ;
/ * *
* Adds an amount of resources to the player .
*
* @ note This is only for alien players .
* @ param id The id of the player to add resources to .
* @ param amount The amount to add to the player .
* @ return The new amount of resources the player has .
* /
native Float : ns_add_res ( id , Float : amount ) ;
/ * *
* Returns the team ' s resources .
*
* @ param Team 1 for teama , 2 for teamb . ( eg : in MvA maps , 1 is marines ,
2 is aliens . In mvm , 1 is marine1 , 2 is marine2 )
* @ return The amount of resources in this team ' s resource pool .
* /
native Float : ns_get_teamres ( Team ) ;
/ * *
* Sets the team ' s resources in the resource pool .
*
* @ note If this is used on an alien team , the resources will be
* distributed between all of the players who need resources .
* @ param Team 1 for teama , 2 for teamb . ( eg : in MvA maps , 1 is marines ,
* 2 is aliens . In mvm , 1 is marine1 , 2 is marine2 )
* @ param value The amount to set the resources to set to .
* @ noreturn
* /
native ns_set_teamres ( Team , Float : value ) ;
/ * *
* Adds to the team ' s resources in the resource pool .
*
* @ note If this is used on an alien team , the resources will be
* distributed between all of the players who need resources .
* @ param Team 1 for teama , 2 for teamb . ( eg : in MvA maps , 1 is marines ,
* 2 is aliens . In mvm , 1 is marine1 , 2 is marine2 )
* @ param value The amount to set the resources to add to the pool
* @ return The new amount of resources in the resource pool .
* /
native Float : ns_add_teamres ( Team , Float : value ) ;
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Returns the player ' s experience .
*
* @ note Combat only .
* @ param id The player to get experience value from .
* @ return The amount of experience this player has .
* /
2004-08-21 21:55:57 +00:00
native Float : ns_get_exp ( id ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the player ' s experience .
*
* @ note Combat only .
* @ param id The player to set experience value on .
* @ param exp The amount of experience this player will have .
* @ noreturn
* /
2004-08-21 21:55:57 +00:00
native ns_set_exp ( id , Float : exp ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Adds to the player ' s experience .
*
* @ note Combat only .
* @ param id The player to add experience value to .
* @ param value The amount of experience this player will receive .
* @ return The new amount of experience this player has .
* /
native Float : ns_add_exp ( id , Float : value ) ;
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Gets the player ' s points spent count in combat .
*
* @ param id The player to check .
* @ return The amount of points this player has spent .
* /
native ns_get_points ( id ) ;
2004-08-21 21:55:57 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Sets the player ' s points spent count in combat .
*
* @ param id The player to set this on .
* @ param points The amount to set this to .
* @ noreturn
* /
native ns_set_points ( id , points ) ;
/ * *
* Adds to the player ' s points spent count in combat .
*
* @ param id The player to add this to .
* @ param value The value to add to the points spent .
* @ return The new value of the points spent variable .
* /
native ns_add_points ( id , points ) ;
/ * *
* Gets the damage for this weapon .
*
* @ note Use weapon index , not player index !
* @ param idWeapon The entity index of the weapon to check .
* @ return The damage this weapon does .
* /
2004-08-21 21:55:57 +00:00
native Float : ns_get_weap_dmg ( idWeapon ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the damage for this weapon .
*
* @ note Use weapon index , not player index !
* @ param idWeapon The entity index of the weapon to set .
* @ param damage The damage to make this weapon cause .
* @ noreturn
* /
native ns_set_weap_dmg ( idWeapon , Float : damage ) ;
/ * *
* Gets the maximum range for this weapon .
*
* @ note Use weapon index , not player index !
* @ param idWeapon The entity index of the weapon to check .
* @ return The maximum range this weapon has .
* /
2004-08-21 21:55:57 +00:00
native Float : ns_get_weap_range ( idWeapon ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the maximum range for this weapon .
*
* @ note Use weapon index , not player index !
* @ param idWeapon The entity index of the weapon to set .
* @ param range The maximum range this weapon will have .
* @ noreturn
* /
native ns_set_weap_range ( idWeapon , Float : range ) ;
/ * *
* Gets the weapon ' s clip ammo .
*
* @ note Use weapon index , not player index !
* @ param idWeapon The weapon to get the clip ammo from .
* @ return The amount of ammunition in the weapon ' s clip .
* /
2004-08-21 21:55:57 +00:00
native ns_get_weap_clip ( idWeapon ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the weapon ' s ammo in the clip .
*
* @ note Use weapon index , not player index !
* @ param idWeapon The weapon to set the clip ammo on .
* @ param clipsize The amount of ammunition to set in the weapon ' s clip .
* @ noreturn
* /
native ns_set_weap_clip ( idWeapon , clipsize ) ;
/ * *
* Gets the player ' s weapon reserve ( backpack ammo ) for the specified
* type of weapon .
*
* @ note Use player index , not weapon index !
* @ param id The player id to check ammo count on .
* @ param weapon The weapon type to check ammo count for .
* @ return The ammunition count in the player ' s reserve .
* /
2004-08-21 21:55:57 +00:00
native ns_get_weap_reserve ( id , weapon ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the player ' s weapon reserve ( backpack ammo ) for the specified
* type of weapon .
*
* @ note Use player index , not weapon index !
* @ param id The player id to set ammo count on .
* @ param weapon The weapon type to set ammo count for .
* @ param ammo The ammunition count to set .
* @ noreturn
* /
2004-08-21 21:55:57 +00:00
native ns_set_weap_reserve ( id , weapon , ammo ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Gets the player ' s score .
*
* @ note The score from level is automatically factored into the scoreboard in combat .
* @ param idPlayer The player to get the score for .
* @ return The player ' s score .
* /
2004-08-21 21:55:57 +00:00
native ns_get_score ( idPlayer ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Sets the player ' s score .
*
* @ note The score from level is automatically factored into the scoreboard in combat .
* @ param idPlayer The player to get the score for .
* @ param score What to set the player ' s score as .
* @ noreturn
* /
native ns_set_score ( idPlayer , score ) ;
/ * Adds to a player ' s score
* Returns the new score on success
* /
native ns_add_score ( idPlayer , score ) ;
2004-08-21 21:55:57 +00:00
/* Gets a player's death count. */
native ns_get_deaths ( idPlayer ) ;
/* Sets a player's death count. */
native ns_set_deaths ( idPlayer , numdeaths ) ;
2007-08-02 16:37:57 +00:00
/ * Adds to a player ' s death count
* Returns the new death count on success
* /
native ns_add_deaths ( idPlayer , numdeaths ) ;
2004-09-05 15:54:38 +00:00
/* Gets the index of the owner of a structure. -1 for no owner. */
native ns_get_struct_owner ( idStructsure ) ;
2004-08-21 21:55:57 +00:00
2004-09-05 15:54:38 +00:00
/* Sets the index of the owner of a structure. -1 for no owner. */
native ns_set_struct_owner ( idStructure , indexOwner ) ;
2004-08-21 21:55:57 +00:00
/* Gets the trait type tied to the hive. Look at the hivetrait enum for the values. */
native ns_get_hive_trait ( idHive ) ;
/* Sets the trait type tied to the hive. Look at the hivetrait enum for the values. */
native ns_set_hive_trait ( idHive , trait ) ;
2004-08-24 21:36:39 +00:00
/* Sets the players field of view, set "_fov" to 0.0 (or omit it) to return to normal. FOV change will persist until disconnect unless reset by a plugin */
2004-08-21 21:55:57 +00:00
native ns_set_fov ( idPlayer , Float : _fov = 0.0 ) ;
2004-08-24 21:36:39 +00:00
2007-08-02 16:37:57 +00:00
/ * *
* Give the player an item .
*
* @ param id The player to give the item to .
* @ param class The map - classname of the entity to give to the player .
* @ noreturn
* /
native ns_give_item ( id , const class [ ] ) ;
/ * *
* Returns 1 if a player has the hive ability number .
* If ability is 0 , it will return the number of active hives .
*
* @ param idPlayer The player index to look up .
* @ param ability The ability number to check , set to 0 to get number of active hives .
* @ return If ability is ! = 0 , returns 1 or 0 depending on if the client has the ability .
* If ability is 0 , returns the number of active hives .
* /
2006-02-13 14:23:43 +00:00
native ns_get_hive_ability ( idPlayer , ability = 0 ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Triggered whenever a client ' s pev - > team changes .
*
* @ param id The id of the client .
* @ param newteam The team number of the new team .
* @ param oldteam The team number of the old team .
* @ noreturn
* /
forward client_changeteam ( id , newteam , oldteam ) ;
/ * *
* Triggered whenever a client ' s pev - > deadflag changes from > 0 to 0.
*
* @ param id The id of the client .
* @ noreturn
* /
forward client_spawn ( id ) ;
/ * *
* Calls NS ' s private damage routine on the victim entity .
*
* @ deprecated
* @ note This is provided for backwards compatibility with peachy ' s module .
* It is suggested to use hamsandwich for this action instead .
*
* @ param IDVictim The victim that is taking the damage .
* @ param IDInflictor The entity that is causing the damage ( weapon , etc ) .
* @ param IDAttacker The attacker who is triggering the damage ( person shooting ) .
* @ param Damage The amount of damage being done .
* @ param DamageType The damage type being done ( bitmask ) .
* /
2014-08-13 11:18:33 +00:00
# pragma deprecated It is suggested to use hamsandwich for this action instead.
2007-08-02 16:37:57 +00:00
native ns_takedamage ( IDVictim , IDInflictor , IDAttacker , Float : Damage , DamageType ) ;
/ * *
* Attempts to unstick a player .
*
* @ param id Player to unstick .
* @ param StartDistance Distance to start from the player to check for a new location .
* @ param MaxAttempts How many attempts to try to find a new spot before giving up .
* @ return 1 on success , 0 on cannot find a place to move player to ,
* - 1 on invalid state ( stunned / webbed ) , - 2 on invalid class ( comm / egg )
* - 3 if the player is dead or a spectator , - 4 on invalid player ,
* - 5 if the player is not connected .
* /
native ns_unstick_player ( id , StartDistance = 32 , MaxAttempts = 128 ) ;
/ * *
* Whether or not there is a game in progress .
*
* @ return true if a game is in progress , false otherwise .
* /
native bool : ns_round_in_progress ( ) ;
/ * *
* Called at the approximate time that a round is started .
*
* @ noreturn
* /
forward round_start ( ) ;
/ * *
* Called immediately when a round ends
*
* @ param roundtime The length of the round in seconds .
* @ noreturn
* /
forward round_end ( Float : roundtime ) ;
forward map_reset ( isload ) ;
native ns_get_weapon ( idPlayer , weaponid , & weapontype = 0 ) ;
/ * Returns the location name of the provided x / y position
* ( z origin is ignored ; can ' t have location over location )
* -
* Note that as of NS 3.2 beta 2 , on the following maps
* the returned string should be passed through ns_lookup_title
* to be human readable :
* ns_bast , ns_hera , ns_nothing , ns_tanith ,
* ns_nancy , ns_caged , ns_eclipse , ns_veil
*
* Passing the 5 th parameter as non zero will auto look up
* the title if it exists .
* /
native ns_get_locationname ( Float : x , Float : y , name [ ] , len , titlelookup = 0 ) ;
/ * Looks up a key from titles . txt
* Returns - 1 if the key is not found
* Otherwise it returns the length of the output
* /
native ns_lookup_title ( const KeyName [ ] , Output [ ] , length ) ;
/ * Forces the structure to fully build
* Removes the ghost state from marine structures .
* Do not use this on hives ! It wont work .
* /
native ns_build_structure ( idStructure ) ;
/ * Forces the structure to begin recycling
* Passing an index other than a marine structure will
* have undefined results !
* -
* Note : This calls a private NS function !
* Be careful when using this !
* /
native ns_recycle ( idStructure ) ;
/ * Forces the weldable to trigger
* Passing an index other than a weldable
* will have undefined results !
* -
* NS renames func_weldable to avhweldable
* at map load .
* -
* Note : This calls a private NS function !
* Be careful when using this !
* /
native ns_finish_weldable ( idWeldable ) ;
/ * Gets the total time needed to weld this
* func_weldable shut .
* Note : NS renames " func_weldable " s to " avhweldable " s
* at run time !
* /
native Float : ns_get_weld_time ( idWeldable ) ;
2004-10-06 17:57:57 +00:00
2007-08-02 16:37:57 +00:00
/ * Sets the total time needed to weld this
* func_weldable shut .
* /
native ns_set_weld_time ( idWeldable , Float : value ) ;
/ * Adds to the weldable ' s time required to open .
* Returns the new required time on success .
* Note this native clamps the low value to 0.
* /
native Float : ns_add_weld_time ( idWeldable , Float : value ) ;
/ * Gets the total time this func_weldable
* has been welded .
* /
native Float : ns_get_weld_done ( idWeldable ) ;
/ * Sets the total time this func_weldable
* has been welded .
* /
native ns_set_weld_done ( idWeldable , Float : value ) ;
/ * Adds to the total time this func_weldable
* has been welded . Returns the new value .
* Note this native clamps the low value to 0.0
* /
native Float : ns_add_weld_done ( idWeldable , Float : value ) ;
/* Gets/sets/adds to the energy pool of this observatory. */
native Float : ns_get_obs_energy ( idObs ) ;
native ns_set_obs_energy ( idObs , Float : value ) ;
native Float : ns_add_obs_energy ( idObs , Float : value ) ;
2008-04-26 21:40:56 +00:00
/ * *
* Removes an upgrade from the player ' s bought and active upgrade lists .
* This will not refund the points spent on the upgrade , nor will it
* immediately strip the upgrade if the player is alive . Rather , it will
* make it so the player no longer receives the upgrade on spawn .
*
* @ note This only works in combat .
* @ params idPlayer The player index to change upgrades for .
* @ params ugprade The impulse number for the upgrade to strip .
* @ return 2 for upgrade removed from player ' s bought and active list .
* 1 for upgrade removed from player ' s bought list only .
* 3 for upgrade removed from player ' s active list only ( shouldn ' t happen , just incase . )
* 0 for the player didn ' t have the upgrade in either list .
* /
native ns_remove_upgrade ( idPlayer , upgrade ) ;
2007-08-02 16:37:57 +00:00
/ * *
* Particle system natives
* -
* The particle system emulates a map - based custom particle system .
* Familiarity with the keyvalues from the map - based particle systems
* is recommended ! You will be lost otherwise !
* -
* prsearle ' s NSPEdit is also recommended for designing the systems :
* http : //homepage.ntlworld.com/pr.searle/NSPSEdit/NSPSEdit.html
* /
/ * Creates a handle to the a particle system to configure
* -
* Note ! this is not a particle system you can pass to
* ns_fire_ps ( ) !
* /
native RawPS : ns_create_ps ( ) ;
/ * Sets the name of the particle system .
* -
* This is used for things like ns_get_ps_id ( )
* and through calling another particle system
* through the " ps_to_gen " field
* /
native ns_set_ps_name ( RawPS : system , const name [ ] ) ;
/ * Sets the sprite to use for the particle system
* -
* You do NOT have to precache the sprite , BUT
* the sprite must obviously be on the client to
* display .
* /
native ns_set_ps_sprite ( RawPS : system , const sprite [ ] ) ;
/ * Finalizes the particle system . Do not configure it after this .
* A usable particle system handle is returned .
* /
native Particle : ns_spawn_ps ( RawPS : system ) ;
/ * Draws a particle system at the given origin ( and angles )
* Flags are the FEV_ * defines from hlsdk_const . inc
* Only use handles returned by ns_spawn_ps or ns_get_ps_id here !
* /
native ns_fire_ps ( Particle : system , const Float : origin [ 3 ] , const Float : angles [ 3 ] = { 0.0 , 0.0 , 0.0 } , flags = 0 ) ;
/ * Looks up a particle system by name
* Returns a usable particle system handle .
* /
native Particle : ns_get_ps_id ( const Name [ ] ) ;
/ * The following are the parameters for configuring the
* particle system . Look through the fgd and NSPSEdit
* for details !
* /
native ns_set_ps_genrate ( RawPS : system , genrate ) ;
native ns_set_ps_genshape ( RawPS : system , NSPS_GenShape : genshape ) ;
native ns_set_ps_genshape_params ( RawPS : system , const params [ ] ) ;
native ns_set_ps_spriteframes ( RawPS : system , spriteframes ) ;
native ns_set_ps_numparticles ( RawPS : system , numparticles ) ;
native ns_set_ps_size ( RawPS : system , Float : size ) ;
native ns_set_ps_vel_params ( RawPS : system , const params [ ] ) ;
native ns_set_ps_vel_shape ( RawPS : system , NSPS_VelShape : shape ) ;
native ns_set_ps_sys_life ( RawPS : system , Float : lifetime ) ;
native ns_set_ps_particle_life ( RawPS : system , Float : lifetime ) ;
native ns_set_ps_rendermode ( RawPS : system , NSPS_RenderMode : rendermode ) ;
native ns_set_ps_to_gen ( RawPS : system , const name [ ] ) ;
native ns_set_ps_anim_speed ( RawPS : system , speed ) ;
native ns_set_ps_spawn_flags ( RawPS : system , NSPS_Flags : flags ) ;
native ns_set_ps_base_color ( RawPS : system , const colors [ ] ) ;
native ns_set_ps_scale ( RawPS : system , Float : scale ) ;
native ns_set_ps_max_alpha ( RawPS : system , Float : maxalpha ) ;