Updated includes and spcomp to SourceMod 1.9
This commit is contained in:
		
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							@@ -5,8 +5,8 @@ SOURCEDIR=src
 | 
			
		||||
SMINCLUDES=env/include
 | 
			
		||||
ZRINCLUDES=src/include
 | 
			
		||||
BUILDDIR=build
 | 
			
		||||
SPCOMP_LINUX=env/linux/bin/spcomp-1.7.0
 | 
			
		||||
SPCOMP_DARWIN=env/darwin/bin/spcomp-1.7.0
 | 
			
		||||
SPCOMP_LINUX=env/linux/bin/spcomp
 | 
			
		||||
SPCOMP_DARWIN=env/darwin/bin/spcomp
 | 
			
		||||
DOS2UNIX_LINUX=dos2unix
 | 
			
		||||
DOS2UNIX_DARWIN=env/darwin/bin/dos2unix -p
 | 
			
		||||
VERSIONDUMP=./updateversion.sh
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
set SOURCEDIR=src
 | 
			
		||||
set SMINCLUDES=env\include
 | 
			
		||||
set BUILDDIR=build
 | 
			
		||||
set SPCOMP=env\win32\bin\spcomp-1.7.0.exe
 | 
			
		||||
set SPCOMP=env\win32\bin\spcomp.exe
 | 
			
		||||
set VERSIONDUMP=updateversion.bat
 | 
			
		||||
 | 
			
		||||
:: Dump version and revision information first.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								env/darwin/bin/spcomp
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/darwin/bin/spcomp
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								env/include/DynamicTargeting.inc
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								env/include/DynamicTargeting.inc
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
#if defined _DynamicTargeting_Included
 | 
			
		||||
	#endinput
 | 
			
		||||
#endif
 | 
			
		||||
#define _DynamicTargeting_Included
 | 
			
		||||
 | 
			
		||||
native int AmbiguousMenu(int client, char[] sCommand, char[] sArgString, char[] sPattern, int FilterFlags);
 | 
			
		||||
 | 
			
		||||
public SharedPlugin __pl_DynamicTargeting =
 | 
			
		||||
{
 | 
			
		||||
	name = "DynamicTargeting",
 | 
			
		||||
	file = "DynamicTargeting.smx",
 | 
			
		||||
#if defined REQUIRE_PLUGIN
 | 
			
		||||
	required = 1,
 | 
			
		||||
#else
 | 
			
		||||
	required = 0,
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_PLUGIN
 | 
			
		||||
public __pl_DynamicTargeting_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("AmbiguousMenu");
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										266
									
								
								env/include/admin.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										266
									
								
								env/include/admin.inc
									
									
									
									
										vendored
									
									
								
							@@ -168,21 +168,174 @@ enum AdminCachePart
 | 
			
		||||
	AdminCache_Admins = 2,			/**< All admins */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
methodmap AdminId {
 | 
			
		||||
	// Retrieves an admin's user name as made with CreateAdmin().
 | 
			
		||||
	//
 | 
			
		||||
	// @note This function can return UTF-8 strings, and will safely chop UTF-8 strings.
 | 
			
		||||
	//
 | 
			
		||||
	// @param name          String buffer to store name.
 | 
			
		||||
	// @param maxlength     Maximum size of string buffer.
 | 
			
		||||
	// @return              Number of bytes written.
 | 
			
		||||
	public native void GetUsername(char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
	// Binds an admin to an identity for fast lookup later on.  The bind must be unique.
 | 
			
		||||
	//
 | 
			
		||||
	// @param authMethod    Auth method to use, predefined or from RegisterAuthIdentType().
 | 
			
		||||
	// @param ident         String containing the arbitrary, unique identity.
 | 
			
		||||
	// @return              True on success, false if the auth method was not found,
 | 
			
		||||
	//                      ident was already taken, or ident invalid for auth method.
 | 
			
		||||
	public native bool BindIdentity(const char[] authMethod, const char[] ident);
 | 
			
		||||
 | 
			
		||||
	// Sets whether or not a flag is enabled on an admin.
 | 
			
		||||
	//
 | 
			
		||||
	// @param flag          Admin flag to use.
 | 
			
		||||
	// @param enabled       True to enable, false to disable.
 | 
			
		||||
	public native void SetFlag(AdminFlag flag, bool enabled);
 | 
			
		||||
 | 
			
		||||
	// Returns whether or not a flag is enabled on an admin.
 | 
			
		||||
	//
 | 
			
		||||
	// @param flag          Admin flag to use.
 | 
			
		||||
	// @param mode          Access mode to check.
 | 
			
		||||
	// @return              True if enabled, false otherwise.
 | 
			
		||||
	public native bool HasFlag(AdminFlag flag, AdmAccessMode mode=Access_Effective);
 | 
			
		||||
 | 
			
		||||
	// Returns the bitstring of access flags on an admin.
 | 
			
		||||
	//
 | 
			
		||||
	// @param mode          Access mode to use.
 | 
			
		||||
	// @return              A bitstring containing which flags are enabled.
 | 
			
		||||
	public native int GetFlags(AdmAccessMode mode);
 | 
			
		||||
 | 
			
		||||
	// Adds a group to an admin's inherited group list.  Any flags the group has
 | 
			
		||||
	// will be added to the admin's effective flags.
 | 
			
		||||
	//
 | 
			
		||||
	// @param gid           GroupId index of the group.
 | 
			
		||||
	// @return              True on success, false on invalid input or duplicate membership.
 | 
			
		||||
	public native bool InheritGroup(GroupId gid);
 | 
			
		||||
 | 
			
		||||
	// Returns group information from an admin.
 | 
			
		||||
	//
 | 
			
		||||
	// @param index         Group number to retrieve, from 0 to N-1, where N
 | 
			
		||||
	//                      is the value of the GroupCount property.
 | 
			
		||||
	// @param name          Buffer to store the group's name.
 | 
			
		||||
	//                      Note: This will safely chop UTF-8 strings.
 | 
			
		||||
	// @param maxlength     Maximum size of the output name buffer.
 | 
			
		||||
	// @return              A GroupId index and a name pointer, or
 | 
			
		||||
	//                      INVALID_GROUP_ID and NULL if an error occurred.
 | 
			
		||||
	public native GroupId GetGroup(int index, const char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
	// Sets a password on an admin.
 | 
			
		||||
	//
 | 
			
		||||
	// @param password      String containing the password.
 | 
			
		||||
	public native void SetPassword(const char[] password);
 | 
			
		||||
 | 
			
		||||
	// Gets an admin's password.
 | 
			
		||||
	//
 | 
			
		||||
	// @param buffer        Optional buffer to store the admin's password.
 | 
			
		||||
	// @param maxlength     Maximum size of the output name buffer.
 | 
			
		||||
	//                      Note: This will safely chop UTF-8 strings.
 | 
			
		||||
	// @return              True if there was a password set, false otherwise.
 | 
			
		||||
	public native bool GetPassword(char[] buffer="", int maxlength=0);
 | 
			
		||||
 | 
			
		||||
	// Tests whether one admin can target another.
 | 
			
		||||
	//
 | 
			
		||||
	// The heuristics for this check are as follows:
 | 
			
		||||
	// 0. If the targeting AdminId is INVALID_ADMIN_ID, targeting fails.
 | 
			
		||||
	// 1. If the targeted AdminId is INVALID_ADMIN_ID, targeting succeeds.
 | 
			
		||||
	// 2. If the targeted AdminId is the same as the targeting AdminId,
 | 
			
		||||
	//    (self) targeting succeeds.
 | 
			
		||||
	// 3. If the targeting admin is root, targeting succeeds.
 | 
			
		||||
	// 4. If the targeted admin has access higher (as interpreted by
 | 
			
		||||
	//    (sm_immunity_mode) than the targeting admin, then targeting fails.
 | 
			
		||||
	// 5. If the targeted admin has specific immunity from the
 | 
			
		||||
	//    targeting admin via group immunities, targeting fails.
 | 
			
		||||
	// 6. Targeting succeeds.
 | 
			
		||||
	//
 | 
			
		||||
	// @param target        Target admin (may be INVALID_ADMIN_ID).
 | 
			
		||||
	// @return              True if targetable, false if immune.
 | 
			
		||||
	public native bool CanTarget(AdminId other);
 | 
			
		||||
 | 
			
		||||
	// The number of groups of which this admin is a member.
 | 
			
		||||
	property int GroupCount {
 | 
			
		||||
		public native get();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Immunity level used for targetting.
 | 
			
		||||
	property int ImmunityLevel {
 | 
			
		||||
		public native get();
 | 
			
		||||
		public native set(int level);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
methodmap GroupId {
 | 
			
		||||
	// Gets whether or not a flag is enabled on a group's flag set.
 | 
			
		||||
	//
 | 
			
		||||
	// @param flag			Admin flag to retrieve.
 | 
			
		||||
	// @return				True if enabled, false otherwise,
 | 
			
		||||
	public native bool HasFlag(AdminFlag flag);
 | 
			
		||||
 | 
			
		||||
	// Adds or removes a flag from a group's flag set.
 | 
			
		||||
	//
 | 
			
		||||
	// @param flag			Admin flag to toggle.
 | 
			
		||||
	// @param enabled		True to set the flag, false to unset/disable.
 | 
			
		||||
	public native void SetFlag(AdminFlag flag, bool enabled);
 | 
			
		||||
 | 
			
		||||
	// Returns the flag set that is added to users from this group.
 | 
			
		||||
	//
 | 
			
		||||
	// @return				Bitstring containing the flags enabled.
 | 
			
		||||
	public native int GetFlags();
 | 
			
		||||
 | 
			
		||||
	// Returns a group that this group is immune to given an index.
 | 
			
		||||
	//
 | 
			
		||||
	// @param number		Index from 0 to N-1, from GroupImmunitiesCount.
 | 
			
		||||
	// @return				GroupId that this group is immune to, or INVALID_GROUP_ID on failure.
 | 
			
		||||
	public native GroupId GetGroupImmunity(int index);
 | 
			
		||||
 | 
			
		||||
	// Adds immunity to a specific group.
 | 
			
		||||
	//
 | 
			
		||||
	// @param other			Group id to receive immunity to.
 | 
			
		||||
	public native void AddGroupImmunity(GroupId other);
 | 
			
		||||
 | 
			
		||||
	// Retrieves a group-specific command override.
 | 
			
		||||
	//
 | 
			
		||||
	// @param name			String containing command name (case sensitive).
 | 
			
		||||
	// @param type			Override type (specific command or group).
 | 
			
		||||
	// @param rule			Optional pointer to store allow/deny setting.
 | 
			
		||||
	// @return				True if an override exists, false otherwise.
 | 
			
		||||
	public native bool GetCommandOverride(const char[] name, OverrideType type, OverrideRule &rule);
 | 
			
		||||
 | 
			
		||||
	// Adds a group-specific override type.
 | 
			
		||||
	//
 | 
			
		||||
	// @param name			String containing command name (case sensitive).
 | 
			
		||||
	// @param type			Override type (specific command or group).
 | 
			
		||||
	// @param rule			Override allow/deny setting.
 | 
			
		||||
	public native void AddCommandOverride(const char[] name, OverrideType type, OverrideRule rule);
 | 
			
		||||
 | 
			
		||||
	// Number of specific group immunities
 | 
			
		||||
	property int GroupImmunitiesCount {
 | 
			
		||||
		public native get();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Immunity level used for targetting.
 | 
			
		||||
	property int ImmunityLevel {
 | 
			
		||||
		public native get();
 | 
			
		||||
		public native set(int level);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when part of the cache needs to be rebuilt.
 | 
			
		||||
 *
 | 
			
		||||
 * @param part			Part of the admin cache to rebuild.
 | 
			
		||||
 */
 | 
			
		||||
forward OnRebuildAdminCache(AdminCachePart:part);
 | 
			
		||||
forward void OnRebuildAdminCache(AdminCachePart part);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Tells the admin system to dump a portion of the cache.
 | 
			
		||||
 *
 | 
			
		||||
 * @param part			Part of the cache to dump.  Specifying groups also dumps admins.
 | 
			
		||||
 * @param rebuild		If true, the rebuild forwards will fire.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native DumpAdminCache(AdminCachePart:part, bool:rebuild);
 | 
			
		||||
native void DumpAdminCache(AdminCachePart part, bool rebuild);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a global command flag override.  Any command registered with this name
 | 
			
		||||
@@ -191,9 +344,8 @@ native DumpAdminCache(AdminCachePart:part, bool:rebuild);
 | 
			
		||||
 * @param cmd			String containing command name (case sensitive).
 | 
			
		||||
 * @param type			Override type (specific command or group).
 | 
			
		||||
 * @param flags			New admin flag.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native AddCommandOverride(const String:cmd[], OverrideType:type, flags);
 | 
			
		||||
native void AddCommandOverride(const char[] cmd, OverrideType type, int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a command override.
 | 
			
		||||
@@ -203,16 +355,15 @@ native AddCommandOverride(const String:cmd[], OverrideType:type, flags);
 | 
			
		||||
 * @param flags			By-reference cell to store the flag (undefined if not found).
 | 
			
		||||
 * @return				True if there is an override, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetCommandOverride(const String:cmd[], OverrideType:type, &flags);
 | 
			
		||||
native bool GetCommandOverride(const char[] cmd, OverrideType type, int &flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Unsets a command override.
 | 
			
		||||
 *
 | 
			
		||||
 * @param cmd			String containing command name (case sensitive).
 | 
			
		||||
 * @param type			Override type (specific command or group).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native UnsetCommandOverride(const String:cmd[], OverrideType:type);
 | 
			
		||||
native void UnsetCommandOverride(const char[] cmd, OverrideType type);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a new group.  Name must be unique.
 | 
			
		||||
@@ -220,7 +371,7 @@ native UnsetCommandOverride(const String:cmd[], OverrideType:type);
 | 
			
		||||
 * @param group_name	String containing the group name.
 | 
			
		||||
 * @return				A new group id, INVALID_GROUP_ID if it already exists.
 | 
			
		||||
 */
 | 
			
		||||
native GroupId:CreateAdmGroup(const String:group_name[]);
 | 
			
		||||
native GroupId CreateAdmGroup(const char[] group_name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds a group by name.
 | 
			
		||||
@@ -228,7 +379,7 @@ native GroupId:CreateAdmGroup(const String:group_name[]);
 | 
			
		||||
 * @param group_name	String containing the group name.
 | 
			
		||||
 * @return				A group id, or INVALID_GROUP_ID if not found.
 | 
			
		||||
 */
 | 
			
		||||
native GroupId:FindAdmGroup(const String:group_name[]);
 | 
			
		||||
native GroupId FindAdmGroup(const char[] group_name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds or removes a flag from a group's flag set.
 | 
			
		||||
@@ -237,9 +388,8 @@ native GroupId:FindAdmGroup(const String:group_name[]);
 | 
			
		||||
 * @param id			Group id.
 | 
			
		||||
 * @param flag			Admin flag to toggle.
 | 
			
		||||
 * @param enabled		True to set the flag, false to unset/disable.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetAdmGroupAddFlag(GroupId:id, AdminFlag:flag, bool:enabled);
 | 
			
		||||
native void SetAdmGroupAddFlag(GroupId id, AdminFlag flag, bool enabled);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the set value of an add flag on a group's flag set.
 | 
			
		||||
@@ -249,7 +399,7 @@ native SetAdmGroupAddFlag(GroupId:id, AdminFlag:flag, bool:enabled);
 | 
			
		||||
 * @param flag			Admin flag to retrieve.
 | 
			
		||||
 * @return				True if enabled, false otherwise,
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetAdmGroupAddFlag(GroupId:id, AdminFlag:flag);
 | 
			
		||||
native bool GetAdmGroupAddFlag(GroupId id, AdminFlag flag);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the flag set that is added to a user from their group.
 | 
			
		||||
@@ -258,28 +408,27 @@ native bool:GetAdmGroupAddFlag(GroupId:id, AdminFlag:flag);
 | 
			
		||||
 * @param id			GroupId of the group.
 | 
			
		||||
 * @return				Bitstring containing the flags enabled.
 | 
			
		||||
 */
 | 
			
		||||
native GetAdmGroupAddFlags(GroupId:id);
 | 
			
		||||
native int GetAdmGroupAddFlags(GroupId id);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated			Functionality removed.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use SetAdmGroupImmunityLevel() instead.
 | 
			
		||||
native SetAdmGroupImmunity(GroupId:id, ImmunityType:type, bool:enabled);
 | 
			
		||||
native void SetAdmGroupImmunity(GroupId id, ImmunityType type, bool enabled);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated			Functionality removed.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use GetAdmGroupImmunityLevel() instead.
 | 
			
		||||
native bool:GetAdmGroupImmunity(GroupId:id, ImmunityType:type);
 | 
			
		||||
native bool GetAdmGroupImmunity(GroupId id, ImmunityType type);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds immunity to a specific group.
 | 
			
		||||
 *
 | 
			
		||||
 * @param id			Group id.
 | 
			
		||||
 * @param other_id		Group id to receive immunity to.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetAdmGroupImmuneFrom(GroupId:id, GroupId:other_id);
 | 
			
		||||
native void SetAdmGroupImmuneFrom(GroupId id, GroupId other_id);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of specific group immunities.
 | 
			
		||||
@@ -287,7 +436,7 @@ native SetAdmGroupImmuneFrom(GroupId:id, GroupId:other_id);
 | 
			
		||||
 * @param id			Group id.
 | 
			
		||||
 * @return				Number of group immunities.
 | 
			
		||||
 */
 | 
			
		||||
native GetAdmGroupImmuneCount(GroupId:id);
 | 
			
		||||
native int GetAdmGroupImmuneCount(GroupId id);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a group that this group is immune to given an index.
 | 
			
		||||
@@ -296,7 +445,7 @@ native GetAdmGroupImmuneCount(GroupId:id);
 | 
			
		||||
 * @param number		Index from 0 to N-1, from GetAdmGroupImmuneCount().
 | 
			
		||||
 * @return				GroupId that this group is immune to, or INVALID_GROUP_ID on failure.
 | 
			
		||||
 */
 | 
			
		||||
native GroupId:GetAdmGroupImmuneFrom(GroupId:id, number); 
 | 
			
		||||
native GroupId GetAdmGroupImmuneFrom(GroupId id, int number); 
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a group-specific override type.
 | 
			
		||||
@@ -305,9 +454,8 @@ native GroupId:GetAdmGroupImmuneFrom(GroupId:id, number);
 | 
			
		||||
 * @param name			String containing command name (case sensitive).
 | 
			
		||||
 * @param type			Override type (specific command or group).
 | 
			
		||||
 * @param rule			Override allow/deny setting.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native AddAdmGroupCmdOverride(GroupId:id, const String:name[], OverrideType:type, OverrideRule:rule);
 | 
			
		||||
native void AddAdmGroupCmdOverride(GroupId id, const char[] name, OverrideType type, OverrideRule rule);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a group-specific command override.
 | 
			
		||||
@@ -318,16 +466,15 @@ native AddAdmGroupCmdOverride(GroupId:id, const String:name[], OverrideType:type
 | 
			
		||||
 * @param rule			Optional pointer to store allow/deny setting.
 | 
			
		||||
 * @return				True if an override exists, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetAdmGroupCmdOverride(GroupId:id, const String:name[], OverrideType:type, &OverrideRule:rule);
 | 
			
		||||
native bool GetAdmGroupCmdOverride(GroupId id, const char[] name, OverrideType type, OverrideRule &rule);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Registers an authentication identity type.  You normally never need to call this except for 
 | 
			
		||||
 * very specific systems.
 | 
			
		||||
 *
 | 
			
		||||
 * @param name		Codename to use for your authentication type.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native RegisterAuthIdentType(const String:name[]);
 | 
			
		||||
native void RegisterAuthIdentType(const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a new admin entry in the permissions cache.
 | 
			
		||||
@@ -335,7 +482,7 @@ native RegisterAuthIdentType(const String:name[]);
 | 
			
		||||
 * @param name			Name for this entry (does not have to be unique).
 | 
			
		||||
 * 						Specify an empty string for an anonymous admin.
 | 
			
		||||
 */
 | 
			
		||||
native AdminId:CreateAdmin(const String:name[]="");
 | 
			
		||||
native AdminId CreateAdmin(const char[] name="");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves an admin's user name as made with CreateAdmin().
 | 
			
		||||
@@ -347,7 +494,7 @@ native AdminId:CreateAdmin(const String:name[]="");
 | 
			
		||||
 * @param maxlength		Maximum size of string buffer.
 | 
			
		||||
 * @return				Number of bytes written.
 | 
			
		||||
 */
 | 
			
		||||
native GetAdminUsername(AdminId:id, String:name[], maxlength);
 | 
			
		||||
native int GetAdminUsername(AdminId id, char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Binds an admin to an identity for fast lookup later on.  The bind must be unique.
 | 
			
		||||
@@ -358,7 +505,7 @@ native GetAdminUsername(AdminId:id, String:name[], maxlength);
 | 
			
		||||
 * @return				True on success, false if the auth method was not found,
 | 
			
		||||
 *						ident was already taken, or ident invalid for auth method.
 | 
			
		||||
 */
 | 
			
		||||
native bool:BindAdminIdentity(AdminId:id, const String:auth[], const String:ident[]);
 | 
			
		||||
native bool BindAdminIdentity(AdminId id, const char[] auth, const char[] ident);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets whether or not a flag is enabled on an admin.
 | 
			
		||||
@@ -366,9 +513,8 @@ native bool:BindAdminIdentity(AdminId:id, const String:auth[], const String:iden
 | 
			
		||||
 * @param id			AdminId index of the admin.
 | 
			
		||||
 * @param flag			Admin flag to use.
 | 
			
		||||
 * @param enabled		True to enable, false to disable.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetAdminFlag(AdminId:id, AdminFlag:flag, bool:enabled);
 | 
			
		||||
native void SetAdminFlag(AdminId id, AdminFlag flag, bool enabled);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not a flag is enabled on an admin.
 | 
			
		||||
@@ -378,7 +524,7 @@ native SetAdminFlag(AdminId:id, AdminFlag:flag, bool:enabled);
 | 
			
		||||
 * @param mode			Access mode to check.
 | 
			
		||||
 * @return				True if enabled, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetAdminFlag(AdminId:id, AdminFlag:flag, AdmAccessMode:mode=Access_Effective);
 | 
			
		||||
native bool GetAdminFlag(AdminId id, AdminFlag flag, AdmAccessMode mode=Access_Effective);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the bitstring of access flags on an admin.
 | 
			
		||||
@@ -387,7 +533,7 @@ native bool:GetAdminFlag(AdminId:id, AdminFlag:flag, AdmAccessMode:mode=Access_E
 | 
			
		||||
 * @param mode			Access mode to use.
 | 
			
		||||
 * @return				A bitstring containing which flags are enabled.
 | 
			
		||||
 */
 | 
			
		||||
native GetAdminFlags(AdminId:id, AdmAccessMode:mode);
 | 
			
		||||
native int GetAdminFlags(AdminId id, AdmAccessMode mode);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a group to an admin's inherited group list.  Any flags the group has 
 | 
			
		||||
@@ -397,7 +543,7 @@ native GetAdminFlags(AdminId:id, AdmAccessMode:mode);
 | 
			
		||||
 * @param gid			GroupId index of the group.
 | 
			
		||||
 * @return				True on success, false on invalid input or duplicate membership.
 | 
			
		||||
 */
 | 
			
		||||
native bool:AdminInheritGroup(AdminId:id, GroupId:gid);
 | 
			
		||||
native bool AdminInheritGroup(AdminId id, GroupId gid);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of groups this admin is a member of.
 | 
			
		||||
@@ -405,7 +551,7 @@ native bool:AdminInheritGroup(AdminId:id, GroupId:gid);
 | 
			
		||||
 * @param id			AdminId index of the admin.
 | 
			
		||||
 * @return				Number of groups this admin is a member of.
 | 
			
		||||
 */
 | 
			
		||||
native GetAdminGroupCount(AdminId:id);
 | 
			
		||||
native int GetAdminGroupCount(AdminId id);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns group information from an admin.
 | 
			
		||||
@@ -418,17 +564,16 @@ native GetAdminGroupCount(AdminId:id);
 | 
			
		||||
 * @param maxlength		Maximum size of the output name buffer.
 | 
			
		||||
 * @return				A GroupId index and a name pointer, or
 | 
			
		||||
 *						INVALID_GROUP_ID and NULL if an error occurred.
 | 
			
		||||
*/
 | 
			
		||||
native GroupId:GetAdminGroup(AdminId:id, index, const String:name[], maxlength);
 | 
			
		||||
 */
 | 
			
		||||
native GroupId GetAdminGroup(AdminId id, int index, const char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a password on an admin.
 | 
			
		||||
 *
 | 
			
		||||
 * @param id			AdminId index of the admin.
 | 
			
		||||
 * @param password		String containing the password.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetAdminPassword(AdminId:id, const String:password[]);
 | 
			
		||||
native void SetAdminPassword(AdminId id, const char[] password);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets an admin's password.
 | 
			
		||||
@@ -439,7 +584,7 @@ native SetAdminPassword(AdminId:id, const String:password[]);
 | 
			
		||||
 *						Note: This will safely chop UTF-8 strings.
 | 
			
		||||
 * @return				True if there was a password set, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetAdminPassword(AdminId:id, String:buffer[]="", maxlength=0);
 | 
			
		||||
native bool GetAdminPassword(AdminId id, char[] buffer="", int maxlength=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Attempts to find an admin by an auth method and an identity.
 | 
			
		||||
@@ -448,7 +593,7 @@ native bool:GetAdminPassword(AdminId:id, String:buffer[]="", maxlength=0);
 | 
			
		||||
 * @param identity		Identity string to look up.
 | 
			
		||||
 * @return				An AdminId index if found, INVALID_ADMIN_ID otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native AdminId:FindAdminByIdentity(const String:auth[], const String:identity[]);
 | 
			
		||||
native AdminId FindAdminByIdentity(const char[] auth, const char[] identity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes an admin entry from the cache.
 | 
			
		||||
@@ -458,7 +603,7 @@ native AdminId:FindAdminByIdentity(const String:auth[], const String:identity[])
 | 
			
		||||
 * @param id			AdminId index to remove/invalidate.
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:RemoveAdmin(AdminId:id);
 | 
			
		||||
native bool RemoveAdmin(AdminId id);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a flag bit string to a bit array.
 | 
			
		||||
@@ -468,7 +613,7 @@ native bool:RemoveAdmin(AdminId:id);
 | 
			
		||||
 * @param maxSize		Maximum number of flags the array can store.
 | 
			
		||||
 * @return				Number of flags written.
 | 
			
		||||
 */
 | 
			
		||||
native FlagBitsToBitArray(bits, bool:array[], maxSize);
 | 
			
		||||
native int FlagBitsToBitArray(int bits, bool[] array, int maxSize);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a flag array to a bit string.
 | 
			
		||||
@@ -477,7 +622,7 @@ native FlagBitsToBitArray(bits, bool:array[], maxSize);
 | 
			
		||||
 * @param maxSize		Maximum size of the flag array.
 | 
			
		||||
 * @return				A bit string composed of the array bits.
 | 
			
		||||
 */
 | 
			
		||||
native FlagBitArrayToBits(const bool:array[], maxSize);
 | 
			
		||||
native int FlagBitArrayToBits(const bool[] array, int maxSize);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts an array of flags to bits.
 | 
			
		||||
@@ -486,7 +631,7 @@ native FlagBitArrayToBits(const bool:array[], maxSize);
 | 
			
		||||
 * @param numFlags		Number of flags in the array.
 | 
			
		||||
 * @return				A bit string composed of the array flags.
 | 
			
		||||
 */
 | 
			
		||||
native FlagArrayToBits(const AdminFlag:array[], numFlags);
 | 
			
		||||
native int FlagArrayToBits(const AdminFlag[] array, int numFlags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a bit string to an array of flags.
 | 
			
		||||
@@ -496,7 +641,7 @@ native FlagArrayToBits(const AdminFlag:array[], numFlags);
 | 
			
		||||
 * @param maxSize		Maximum size of the flag array.
 | 
			
		||||
 * @return				Number of flags written.
 | 
			
		||||
 */
 | 
			
		||||
native FlagBitsToArray(bits, AdminFlag:array[], maxSize);
 | 
			
		||||
native int FlagBitsToArray(int bits, AdminFlag[] array, int maxSize);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds a flag by its string name.
 | 
			
		||||
@@ -505,7 +650,7 @@ native FlagBitsToArray(bits, AdminFlag:array[], maxSize);
 | 
			
		||||
 * @param flag			Variable to store flag in.
 | 
			
		||||
 * @return				True on success, false if not found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:FindFlagByName(const String:name[], &AdminFlag:flag);
 | 
			
		||||
native bool FindFlagByName(const char[] name, AdminFlag &flag);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds a flag by a given character.
 | 
			
		||||
@@ -514,16 +659,16 @@ native bool:FindFlagByName(const String:name[], &AdminFlag:flag);
 | 
			
		||||
 * @param flag			Variable to store flag in.
 | 
			
		||||
 * @return				True on success, false if not found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:FindFlagByChar(c, &AdminFlag:flag);
 | 
			
		||||
native bool FindFlagByChar(int c, AdminFlag &flag);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds a flag char by a gived admin flag.
 | 
			
		||||
 * Finds the flag char for a given admin flag.
 | 
			
		||||
 *
 | 
			
		||||
 * @param flag                 Flag to look up.
 | 
			
		||||
 * @param c                    Variable to store flag char.
 | 
			
		||||
 * @return                     True on success, false if not found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:FindFlagChar(AdminFlag:flag, &c);
 | 
			
		||||
native bool FindFlagChar(AdminFlag flag, int &c);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a string of flag characters to a bit string.
 | 
			
		||||
@@ -532,7 +677,7 @@ native bool:FindFlagChar(AdminFlag:flag, &c);
 | 
			
		||||
 * @param numchars		Optional variable to store the number of bytes read.
 | 
			
		||||
 * @return				Bit string of ADMFLAG values.
 | 
			
		||||
 */
 | 
			
		||||
native ReadFlagString(const String:flags[], &numchars=0);
 | 
			
		||||
native int ReadFlagString(const char[] flags, int &numchars=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Tests whether one admin can target another.
 | 
			
		||||
@@ -553,7 +698,7 @@ native ReadFlagString(const String:flags[], &numchars=0);
 | 
			
		||||
 * @param target		Target admin (may be INVALID_ADMIN_ID).
 | 
			
		||||
 * @return				True if targetable, false if immune.
 | 
			
		||||
 */
 | 
			
		||||
native CanAdminTarget(AdminId:admin, AdminId:target);
 | 
			
		||||
native bool CanAdminTarget(AdminId admin, AdminId target);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates an admin auth method.  This does not need to be called more than once
 | 
			
		||||
@@ -562,7 +707,7 @@ native CanAdminTarget(AdminId:admin, AdminId:target);
 | 
			
		||||
 * @param method		Name of the authentication method.
 | 
			
		||||
 * @return				True on success, false on failure.
 | 
			
		||||
 */
 | 
			
		||||
native bool:CreateAuthMethod(const String:method[]);
 | 
			
		||||
native bool CreateAuthMethod(const char[] method);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a group's immunity level.
 | 
			
		||||
@@ -571,7 +716,7 @@ native bool:CreateAuthMethod(const String:method[]);
 | 
			
		||||
 * @param level			Immunity level value.
 | 
			
		||||
 * @return				Old immunity level value.
 | 
			
		||||
 */
 | 
			
		||||
native SetAdmGroupImmunityLevel(GroupId:gid, level);
 | 
			
		||||
native int SetAdmGroupImmunityLevel(GroupId gid, int level);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a group's immunity level (defaults to 0).
 | 
			
		||||
@@ -579,7 +724,7 @@ native SetAdmGroupImmunityLevel(GroupId:gid, level);
 | 
			
		||||
 * @param gid			Group Id.
 | 
			
		||||
 * @return				Immunity level value.
 | 
			
		||||
 */
 | 
			
		||||
native GetAdmGroupImmunityLevel(GroupId:gid);
 | 
			
		||||
native int GetAdmGroupImmunityLevel(GroupId gid);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an admin's immunity level.
 | 
			
		||||
@@ -588,7 +733,7 @@ native GetAdmGroupImmunityLevel(GroupId:gid);
 | 
			
		||||
 * @param level			Immunity level value.
 | 
			
		||||
 * @return				Old immunity level value.
 | 
			
		||||
 */
 | 
			
		||||
native SetAdminImmunityLevel(AdminId:id, level);
 | 
			
		||||
native int SetAdminImmunityLevel(AdminId id, int level);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets an admin's immunity level.
 | 
			
		||||
@@ -596,7 +741,7 @@ native SetAdminImmunityLevel(AdminId:id, level);
 | 
			
		||||
 * @param id			Admin Id.
 | 
			
		||||
 * @return				Immunity level value.
 | 
			
		||||
 */
 | 
			
		||||
native GetAdminImmunityLevel(AdminId:id);
 | 
			
		||||
native int GetAdminImmunityLevel(AdminId id);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a flag to its single bit.
 | 
			
		||||
@@ -604,9 +749,9 @@ native GetAdminImmunityLevel(AdminId:id);
 | 
			
		||||
 * @param flag			Flag to convert.
 | 
			
		||||
 * @return				Bit representation of the flag.
 | 
			
		||||
 */
 | 
			
		||||
stock FlagToBit(AdminFlag:flag)
 | 
			
		||||
stock int FlagToBit(AdminFlag flag)
 | 
			
		||||
{
 | 
			
		||||
	return (1<<_:flag);
 | 
			
		||||
	return (1 << view_as<int>(flag));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -616,9 +761,9 @@ stock FlagToBit(AdminFlag:flag)
 | 
			
		||||
 * @param flag			Stores the converted flag by reference.
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:BitToFlag(bit, &AdminFlag:flag)
 | 
			
		||||
stock bool BitToFlag(int bit, AdminFlag &flag)
 | 
			
		||||
{
 | 
			
		||||
	new AdminFlag:array[1];
 | 
			
		||||
	AdminFlag array[1];
 | 
			
		||||
	
 | 
			
		||||
	if (FlagBitsToArray(bit, array, 1))
 | 
			
		||||
	{
 | 
			
		||||
@@ -628,4 +773,3 @@ stock bool:BitToFlag(bit, &AdminFlag:flag)
 | 
			
		||||
	
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								env/include/adminmenu.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								env/include/adminmenu.inc
									
									
									
									
										vendored
									
									
								
							@@ -63,17 +63,15 @@
 | 
			
		||||
 * the Handle or add categories.
 | 
			
		||||
 * 
 | 
			
		||||
 * @param topmenu		Handle to the admin menu's TopMenu.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward OnAdminMenuCreated(Handle topmenu);
 | 
			
		||||
forward void OnAdminMenuCreated(Handle topmenu);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when the admin menu is ready to have items added.
 | 
			
		||||
 * 
 | 
			
		||||
 * @param topmenu		Handle to the admin menu's TopMenu.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward OnAdminMenuReady(Handle topmenu);
 | 
			
		||||
forward void OnAdminMenuReady(Handle topmenu);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the Handle to the admin top menu.
 | 
			
		||||
@@ -95,10 +93,10 @@ native TopMenu GetAdminTopMenu();
 | 
			
		||||
 * @param alive_only 	True to only select alive players.
 | 
			
		||||
 * @return				Number of clients added.
 | 
			
		||||
 */
 | 
			
		||||
native AddTargetsToMenu(Handle:menu, 
 | 
			
		||||
						source_client, 
 | 
			
		||||
						bool:in_game_only=true, 
 | 
			
		||||
						bool:alive_only=false);
 | 
			
		||||
native int AddTargetsToMenu(Handle menu, 
 | 
			
		||||
						int source_client, 
 | 
			
		||||
						bool in_game_only=true, 
 | 
			
		||||
						bool alive_only=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds targets to an admin menu.
 | 
			
		||||
@@ -111,7 +109,7 @@ native AddTargetsToMenu(Handle:menu,
 | 
			
		||||
 * @param flags			COMMAND_FILTER flags from commandfilters.inc.
 | 
			
		||||
 * @return				Number of clients added.
 | 
			
		||||
 */
 | 
			
		||||
native AddTargetsToMenu2(Handle:menu, source_client, flags);
 | 
			
		||||
native int AddTargetsToMenu2(Handle menu, int source_client, int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Re-displays the admin menu to a client after selecting an item.
 | 
			
		||||
@@ -121,7 +119,7 @@ native AddTargetsToMenu2(Handle:menu, source_client, flags);
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @return				True on success, false on failure.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:RedisplayAdminMenu(Handle:topmenu, client)
 | 
			
		||||
stock bool RedisplayAdminMenu(Handle topmenu, int client)
 | 
			
		||||
{
 | 
			
		||||
	if (topmenu == INVALID_HANDLE)
 | 
			
		||||
	{
 | 
			
		||||
@@ -133,7 +131,7 @@ stock bool:RedisplayAdminMenu(Handle:topmenu, client)
 | 
			
		||||
 | 
			
		||||
/* DO NOT EDIT BELOW THIS LINE */
 | 
			
		||||
 | 
			
		||||
public SharedPlugin:__pl_adminmenu = 
 | 
			
		||||
public SharedPlugin __pl_adminmenu = 
 | 
			
		||||
{
 | 
			
		||||
	name = "adminmenu",
 | 
			
		||||
	file = "adminmenu.smx",
 | 
			
		||||
@@ -145,7 +143,7 @@ public SharedPlugin:__pl_adminmenu =
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_PLUGIN
 | 
			
		||||
public __pl_adminmenu_SetNTVOptional()
 | 
			
		||||
public void __pl_adminmenu_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("GetAdminTopMenu");
 | 
			
		||||
	MarkNativeAsOptional("AddTargetsToMenu");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										72
									
								
								env/include/adt_array.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										72
									
								
								env/include/adt_array.inc
									
									
									
									
										vendored
									
									
								
							@@ -9,7 +9,7 @@
 | 
			
		||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
			
		||||
 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
			
		||||
 * Free Software Foundation.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
			
		||||
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
			
		||||
@@ -29,20 +29,20 @@
 | 
			
		||||
 *
 | 
			
		||||
 * Version: $Id$
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
#if defined _adt_array_included
 | 
			
		||||
 #endinput
 | 
			
		||||
#endif
 | 
			
		||||
#define _adt_array_included
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Given a maximum string size (including the null terminator), 
 | 
			
		||||
 * Given a maximum string size (including the null terminator),
 | 
			
		||||
 * returns the number of cells required to fit that string.
 | 
			
		||||
 *
 | 
			
		||||
 * @param size			Number of bytes.
 | 
			
		||||
 * @return				Minimum number of cells required to fit the byte count.
 | 
			
		||||
 */
 | 
			
		||||
stock ByteCountToCells(size)
 | 
			
		||||
stock int ByteCountToCells(int size)
 | 
			
		||||
{
 | 
			
		||||
	if (!size)
 | 
			
		||||
		return 1;
 | 
			
		||||
@@ -52,17 +52,17 @@ stock ByteCountToCells(size)
 | 
			
		||||
methodmap ArrayList < Handle {
 | 
			
		||||
	// Creates a dynamic global cell array.  While slower than a normal array,
 | 
			
		||||
	// it can be used globally AND dynamically, which is otherwise impossible.
 | 
			
		||||
	// 
 | 
			
		||||
	// The contents of the array are uniform; i.e. storing a string at index X 
 | 
			
		||||
	//
 | 
			
		||||
	// The contents of the array are uniform; i.e. storing a string at index X
 | 
			
		||||
	// and then retrieving it as an integer is NOT the same as StringToInt()!
 | 
			
		||||
	// The "blocksize" determines how many cells each array slot has; it cannot
 | 
			
		||||
	// be changed after creation.
 | 
			
		||||
	//
 | 
			
		||||
	// @param blocksize     The number of cells each member of the array can 
 | 
			
		||||
	// @param blocksize     The number of cells each member of the array can
 | 
			
		||||
	//                      hold.  For example, 32 cells is equivalent to:
 | 
			
		||||
	//                      new Array[X][32]
 | 
			
		||||
	// @param startsize     Initial size of the array.  Note that data will 
 | 
			
		||||
	//                      NOT be auto-intialized.
 | 
			
		||||
	// @param startsize     Initial size of the array.  Note that data will
 | 
			
		||||
	//                      NOT be auto-initialized.
 | 
			
		||||
	// @return              New Handle to the array object.
 | 
			
		||||
	public native ArrayList(int blocksize=1, int startsize=0);
 | 
			
		||||
 | 
			
		||||
@@ -106,7 +106,7 @@ methodmap ArrayList < Handle {
 | 
			
		||||
	//
 | 
			
		||||
	// @param values        Block of values to copy.
 | 
			
		||||
	// @param size          If not set, the number of elements copied from the array
 | 
			
		||||
	//                      will be equal to the blocksize.  If set higher than the 
 | 
			
		||||
	//                      will be equal to the blocksize.  If set higher than the
 | 
			
		||||
	//                      blocksize, the operation will be truncated.
 | 
			
		||||
	// @return              Index of the new entry.
 | 
			
		||||
	public native int PushArray(const any[] values, int size=-1);
 | 
			
		||||
@@ -128,7 +128,7 @@ methodmap ArrayList < Handle {
 | 
			
		||||
	// @param maxlength     Maximum size of the buffer.
 | 
			
		||||
	// @return              Number of characters copied.
 | 
			
		||||
	// @error               Invalid index.
 | 
			
		||||
	public native int GetString(int index, char[] buffer, maxlength);
 | 
			
		||||
	public native int GetString(int index, char[] buffer, int maxlength);
 | 
			
		||||
 | 
			
		||||
	// Retrieves an array of cells from an array.
 | 
			
		||||
	//
 | 
			
		||||
@@ -168,15 +168,15 @@ methodmap ArrayList < Handle {
 | 
			
		||||
	// @error               Invalid index.
 | 
			
		||||
	public native void SetArray(int index, const any[] values, int size=-1);
 | 
			
		||||
 | 
			
		||||
	// Shifts an array up.  All array contents after and including the given 
 | 
			
		||||
	// index are shifted up by one, and the given index is then "free."  
 | 
			
		||||
	// Shifts an array up.  All array contents after and including the given
 | 
			
		||||
	// index are shifted up by one, and the given index is then "free."
 | 
			
		||||
	// After shifting, the contents of the given index is undefined.
 | 
			
		||||
	//
 | 
			
		||||
	// @param index         Index in the array to shift up from.
 | 
			
		||||
	// @error               Invalid index.
 | 
			
		||||
	public native void ShiftUp(int index);
 | 
			
		||||
 | 
			
		||||
	// Removes an array index, shifting the entire array down from that position 
 | 
			
		||||
	// Removes an array index, shifting the entire array down from that position
 | 
			
		||||
	// on.  For example, if item 8 of 10 is removed, the last 3 items will then be
 | 
			
		||||
	// (6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged.
 | 
			
		||||
	//
 | 
			
		||||
@@ -191,19 +191,21 @@ methodmap ArrayList < Handle {
 | 
			
		||||
	// @error               Invalid index.
 | 
			
		||||
	public native void SwapAt(int index1, int index2);
 | 
			
		||||
 | 
			
		||||
	// Returns the index for the first occurance of the provided string. If
 | 
			
		||||
	// Returns the index for the first occurrence of the provided string. If
 | 
			
		||||
	// the string cannot be located, -1 will be returned.
 | 
			
		||||
	//
 | 
			
		||||
	// @param item          String to search for
 | 
			
		||||
	// @return              Array index, or -1 on failure
 | 
			
		||||
	public native int FindString(const char[] item);
 | 
			
		||||
	 
 | 
			
		||||
	// Returns the index for the first occurance of the provided value. If the
 | 
			
		||||
 | 
			
		||||
	// Returns the index for the first occurrence of the provided value. If the
 | 
			
		||||
	// value cannot be located, -1 will be returned.
 | 
			
		||||
	//
 | 
			
		||||
	// @param item          Value to search for
 | 
			
		||||
    // @param block         Optionally which block to search in
 | 
			
		||||
	// @return              Array index, or -1 on failure
 | 
			
		||||
	public native int FindValue(any item); 
 | 
			
		||||
	// @error               Invalid block index
 | 
			
		||||
	public native int FindValue(any item, int block=0);
 | 
			
		||||
 | 
			
		||||
	// Retrieve the size of the array.
 | 
			
		||||
	property int Length {
 | 
			
		||||
@@ -214,17 +216,17 @@ methodmap ArrayList < Handle {
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a dynamic global cell array.  While slower than a normal array,
 | 
			
		||||
 * it can be used globally AND dynamically, which is otherwise impossible.
 | 
			
		||||
 * 
 | 
			
		||||
 * The contents of the array are uniform; i.e. storing a string at index X 
 | 
			
		||||
 *
 | 
			
		||||
 * The contents of the array are uniform; i.e. storing a string at index X
 | 
			
		||||
 * and then retrieving it as an integer is NOT the same as StringToInt()!
 | 
			
		||||
 * The "blocksize" determines how many cells each array slot has; it cannot
 | 
			
		||||
 * be changed after creation.
 | 
			
		||||
 *
 | 
			
		||||
 * @param blocksize		The number of cells each member of the array can 
 | 
			
		||||
 * @param blocksize		The number of cells each member of the array can
 | 
			
		||||
 *						hold.  For example, 32 cells is equivalent to:
 | 
			
		||||
 *						new Array[X][32]
 | 
			
		||||
 * @param startsize		Initial size of the array.  Note that data will 
 | 
			
		||||
 *						NOT be auto-intialized.
 | 
			
		||||
 * @param startsize		Initial size of the array.  Note that data will
 | 
			
		||||
 *						NOT be auto-initialized.
 | 
			
		||||
 * @return				New Handle to the array object.
 | 
			
		||||
 */
 | 
			
		||||
native ArrayList CreateArray(int blocksize=1, int startsize=0);
 | 
			
		||||
@@ -254,10 +256,9 @@ native Handle CloneArray(Handle array);
 | 
			
		||||
 *
 | 
			
		||||
 * @param array			Array Handle.
 | 
			
		||||
 * @param newsize		New size.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid Handle or out of memory.
 | 
			
		||||
 */
 | 
			
		||||
native bool ResizeArray(Handle array, int newsize);
 | 
			
		||||
native void ResizeArray(Handle array, int newsize);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the array size.
 | 
			
		||||
@@ -300,7 +301,7 @@ native int PushArrayString(Handle array, const char[] value);
 | 
			
		||||
 * @param array			Array Handle.
 | 
			
		||||
 * @param values		Block of values to copy.
 | 
			
		||||
 * @param size			If not set, the number of elements copied from the array
 | 
			
		||||
 *						will be equal to the blocksize.  If set higher than the 
 | 
			
		||||
 *						will be equal to the blocksize.  If set higher than the
 | 
			
		||||
 *						blocksize, the operation will be truncated.
 | 
			
		||||
 * @return				Index of the new entry.
 | 
			
		||||
 * @error				Invalid Handle or out of memory.
 | 
			
		||||
@@ -330,7 +331,7 @@ native any GetArrayCell(Handle array, int index, int block=0, bool asChar=false)
 | 
			
		||||
 * @return				Number of characters copied.
 | 
			
		||||
 * @error				Invalid Handle or invalid index.
 | 
			
		||||
 */
 | 
			
		||||
native int GetArrayString(Handle array, int index, char[] buffer, maxlength);
 | 
			
		||||
native int GetArrayString(Handle array, int index, char[] buffer, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves an array of cells from an array.
 | 
			
		||||
@@ -383,8 +384,8 @@ native int SetArrayString(Handle array, int index, const char[] value);
 | 
			
		||||
native int SetArrayArray(Handle array, int index, const any[] values, int size=-1);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Shifts an array up.  All array contents after and including the given 
 | 
			
		||||
 * index are shifted up by one, and the given index is then "free."  
 | 
			
		||||
 * Shifts an array up.  All array contents after and including the given
 | 
			
		||||
 * index are shifted up by one, and the given index is then "free."
 | 
			
		||||
 * After shifting, the contents of the given index is undefined.
 | 
			
		||||
 *
 | 
			
		||||
 * @param array			Array Handle.
 | 
			
		||||
@@ -394,7 +395,7 @@ native int SetArrayArray(Handle array, int index, const any[] values, int size=-
 | 
			
		||||
native void ShiftArrayUp(Handle array, int index);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes an array index, shifting the entire array down from that position 
 | 
			
		||||
 * Removes an array index, shifting the entire array down from that position
 | 
			
		||||
 * on.  For example, if item 8 of 10 is removed, the last 3 items will then be
 | 
			
		||||
 * (6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged.
 | 
			
		||||
 *
 | 
			
		||||
@@ -415,7 +416,7 @@ native void RemoveFromArray(Handle array, int index);
 | 
			
		||||
native void SwapArrayItems(Handle array, int index1, int index2);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the index for the first occurance of the provided string. If the string
 | 
			
		||||
 * Returns the index for the first occurrence of the provided string. If the string
 | 
			
		||||
 * cannot be located, -1 will be returned.
 | 
			
		||||
 *
 | 
			
		||||
 * @param array			Array Handle.
 | 
			
		||||
@@ -424,14 +425,15 @@ native void SwapArrayItems(Handle array, int index1, int index2);
 | 
			
		||||
 * @error				Invalid Handle
 | 
			
		||||
 */
 | 
			
		||||
native int FindStringInArray(Handle array, const char[] item);
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the index for the first occurance of the provided value. If the value
 | 
			
		||||
 * Returns the index for the first occurrence of the provided value. If the value
 | 
			
		||||
 * cannot be located, -1 will be returned.
 | 
			
		||||
 *
 | 
			
		||||
 * @param array			Array Handle.
 | 
			
		||||
 * @param item			Value to search for
 | 
			
		||||
 * @param block			Optionally which block to search in
 | 
			
		||||
 * @return				Array index, or -1 on failure
 | 
			
		||||
 * @error				Invalid Handle
 | 
			
		||||
 * @error				Invalid Handle or invalid block
 | 
			
		||||
 */
 | 
			
		||||
native int FindValueInArray(Handle array, any item); 
 | 
			
		||||
native int FindValueInArray(Handle array, any item, int block=0);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								env/include/adt_stack.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								env/include/adt_stack.inc
									
									
									
									
										vendored
									
									
								
							@@ -221,6 +221,6 @@ native bool IsStackEmpty(Handle stack);
 | 
			
		||||
 */
 | 
			
		||||
stock bool PopStack(Handle stack)
 | 
			
		||||
{
 | 
			
		||||
	new value;
 | 
			
		||||
	int value;
 | 
			
		||||
	return PopStackCell(stack, value);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								env/include/adt_trie.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								env/include/adt_trie.inc
									
									
									
									
										vendored
									
									
								
							@@ -166,7 +166,7 @@ methodmap StringMapSnapshot < Handle
 | 
			
		||||
 *
 | 
			
		||||
 * @return 			New Map Handle, which must be freed via CloseHandle().
 | 
			
		||||
 */
 | 
			
		||||
native StringMap:CreateTrie();
 | 
			
		||||
native StringMap CreateTrie();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a value in a hash map, either inserting a new entry or replacing an old one.
 | 
			
		||||
@@ -253,7 +253,7 @@ native bool GetTrieString(Handle map, const char[] key, char[] value, int max_si
 | 
			
		||||
 * @return			True on success, false if the value was never set.
 | 
			
		||||
 * @error			Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveFromTrie(Handle map, const char[] key);
 | 
			
		||||
native bool RemoveFromTrie(Handle map, const char[] key);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Clears all entries from a Map.
 | 
			
		||||
@@ -261,7 +261,7 @@ native RemoveFromTrie(Handle map, const char[] key);
 | 
			
		||||
 * @param map		Map Handle.
 | 
			
		||||
 * @error			Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native ClearTrie(Handle map);
 | 
			
		||||
native void ClearTrie(Handle map);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the number of elements in a map.
 | 
			
		||||
@@ -270,7 +270,7 @@ native ClearTrie(Handle map);
 | 
			
		||||
 * @return			Number of elements in the trie.
 | 
			
		||||
 * @error			Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native GetTrieSize(Handle map);
 | 
			
		||||
native int GetTrieSize(Handle map);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a snapshot of all keys in the map. If the map is changed after this
 | 
			
		||||
@@ -291,7 +291,7 @@ native Handle CreateTrieSnapshot(Handle map);
 | 
			
		||||
 * @return			Number of keys.
 | 
			
		||||
 * @error			Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native TrieSnapshotLength(Handle snapshot);
 | 
			
		||||
native int TrieSnapshotLength(Handle snapshot);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the buffer size required to store a given key. That is, it returns
 | 
			
		||||
@@ -302,7 +302,7 @@ native TrieSnapshotLength(Handle snapshot);
 | 
			
		||||
 * @return 			Buffer size required to store the key string.
 | 
			
		||||
 * @error			Invalid Handle or index out of range.
 | 
			
		||||
 */
 | 
			
		||||
native TrieSnapshotKeyBufferSize(Handle snapshot, int index);
 | 
			
		||||
native int TrieSnapshotKeyBufferSize(Handle snapshot, int index);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the key string of a given key in a map snapshot.
 | 
			
		||||
@@ -314,4 +314,4 @@ native TrieSnapshotKeyBufferSize(Handle snapshot, int index);
 | 
			
		||||
 * @return			Number of bytes written to the buffer.
 | 
			
		||||
 * @error			Invalid Handle or index out of range.
 | 
			
		||||
 */
 | 
			
		||||
native GetTrieSnapshotKey(Handle snapshot, int index, char[] buffer, int maxlength);
 | 
			
		||||
native int GetTrieSnapshotKey(Handle snapshot, int index, char[] buffer, int maxlength);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										69
									
								
								env/include/banning.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										69
									
								
								env/include/banning.inc
									
									
									
									
										vendored
									
									
								
							@@ -54,13 +54,13 @@
 | 
			
		||||
 * @return				Plugin_Handled to block the actual server banning.
 | 
			
		||||
 *						Kicking will still occur.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnBanClient(client,
 | 
			
		||||
						   time, 
 | 
			
		||||
						   flags, 
 | 
			
		||||
						   const String:reason[], 
 | 
			
		||||
						   const String:kick_message[], 
 | 
			
		||||
						   const String:command[],
 | 
			
		||||
						   any:source);
 | 
			
		||||
forward Action OnBanClient(int client,
 | 
			
		||||
						   int time, 
 | 
			
		||||
						   int flags, 
 | 
			
		||||
						   const char[] reason, 
 | 
			
		||||
						   const char[] kick_message, 
 | 
			
		||||
						   const char[] command,
 | 
			
		||||
						   any source);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called for calls to BanIdentity() with a non-empty command.
 | 
			
		||||
@@ -73,12 +73,12 @@ forward Action:OnBanClient(client,
 | 
			
		||||
 * @param source		Source value passed via BanIdentity().
 | 
			
		||||
 * @return				Plugin_Handled to block the actual server banning.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnBanIdentity(const String:identity[],
 | 
			
		||||
							 time,
 | 
			
		||||
							 flags,
 | 
			
		||||
							 const String:reason[],
 | 
			
		||||
							 const String:command[],
 | 
			
		||||
							 any:source);
 | 
			
		||||
forward Action OnBanIdentity(const char[] identity,
 | 
			
		||||
							 int time,
 | 
			
		||||
							 int flags,
 | 
			
		||||
							 const char[] reason,
 | 
			
		||||
							 const char[] command,
 | 
			
		||||
							 any source);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called for calls to RemoveBan() with a non-empty command.
 | 
			
		||||
@@ -89,10 +89,10 @@ forward Action:OnBanIdentity(const String:identity[],
 | 
			
		||||
 * @param source		Source value passed via BanIdentity().
 | 
			
		||||
 * @return				Plugin_Handled to block the actual server banning.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnRemoveBan(const String:identity[],
 | 
			
		||||
						   flags,
 | 
			
		||||
						   const String:command[],
 | 
			
		||||
						   any:source);
 | 
			
		||||
forward Action OnRemoveBan(const char[] identity,
 | 
			
		||||
						   int flags,
 | 
			
		||||
						   const char[] command,
 | 
			
		||||
						   any source);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Bans a client.
 | 
			
		||||
@@ -111,13 +111,13 @@ forward Action:OnRemoveBan(const String:identity[],
 | 
			
		||||
 * @return				True on success, false on failure.
 | 
			
		||||
 * @error				Invalid client index or client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native bool:BanClient(client, 
 | 
			
		||||
					  time, 
 | 
			
		||||
					  flags, 
 | 
			
		||||
					  const String:reason[], 
 | 
			
		||||
					  const String:kick_message[]="", 
 | 
			
		||||
					  const String:command[]="",
 | 
			
		||||
					  any:source=0);
 | 
			
		||||
native bool BanClient(int client, 
 | 
			
		||||
					  int time, 
 | 
			
		||||
					  int flags, 
 | 
			
		||||
					  const char[] reason, 
 | 
			
		||||
					  const char[] kick_message="", 
 | 
			
		||||
					  const char[] command="",
 | 
			
		||||
					  any source=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Bans an identity (either an IP address or auth string).
 | 
			
		||||
@@ -132,12 +132,12 @@ native bool:BanClient(client,
 | 
			
		||||
 *						index of any sort (not actually checked by Core).
 | 
			
		||||
 * @return				True on success, false on failure.
 | 
			
		||||
 */
 | 
			
		||||
native bool:BanIdentity(const String:identity[], 
 | 
			
		||||
						time, 
 | 
			
		||||
						flags, 
 | 
			
		||||
						const String:reason[],
 | 
			
		||||
						const String:command[]="",
 | 
			
		||||
						any:source=0);
 | 
			
		||||
native bool BanIdentity(const char[] identity, 
 | 
			
		||||
						int time, 
 | 
			
		||||
						int flags, 
 | 
			
		||||
						const char[] reason,
 | 
			
		||||
						const char[] command="",
 | 
			
		||||
						any source=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a ban that was written to the server (either in memory or on disk).
 | 
			
		||||
@@ -150,8 +150,7 @@ native bool:BanIdentity(const String:identity[],
 | 
			
		||||
 *						index of any sort (not actually checked by Core).
 | 
			
		||||
 * @return				True on success, false on failure.
 | 
			
		||||
 */
 | 
			
		||||
native bool:RemoveBan(const String:identity[], 
 | 
			
		||||
					  flags, 
 | 
			
		||||
					  const String:command[]="", 
 | 
			
		||||
					  any:source=0);
 | 
			
		||||
 | 
			
		||||
native bool RemoveBan(const char[] identity, 
 | 
			
		||||
					  int flags, 
 | 
			
		||||
					  const char[] command="", 
 | 
			
		||||
					  any source=0);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								env/include/basecomm.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								env/include/basecomm.inc
									
									
									
									
										vendored
									
									
								
							@@ -41,7 +41,7 @@
 | 
			
		||||
 * @param	client		Client index
 | 
			
		||||
 * @param	muteState	True if client was muted, false otherwise
 | 
			
		||||
 */
 | 
			
		||||
 forward BaseComm_OnClientMute(client, bool:muteState);
 | 
			
		||||
 forward void BaseComm_OnClientMute(int client, bool muteState);
 | 
			
		||||
 
 | 
			
		||||
 /**
 | 
			
		||||
 * Called when a client is gagged or ungagged
 | 
			
		||||
@@ -49,7 +49,7 @@
 | 
			
		||||
 * @param	client		Client index
 | 
			
		||||
 * @param	gagState	True if client was gaged, false otherwise
 | 
			
		||||
 */
 | 
			
		||||
 forward BaseComm_OnClientGag(client, bool:gagState);
 | 
			
		||||
 forward void BaseComm_OnClientGag(int client, bool gagState);
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not a client is gagged
 | 
			
		||||
@@ -57,7 +57,7 @@
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @return				True if client is gagged, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:BaseComm_IsClientGagged(client);
 | 
			
		||||
native bool BaseComm_IsClientGagged(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not a client is muted
 | 
			
		||||
@@ -65,7 +65,7 @@ native bool:BaseComm_IsClientGagged(client);
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @return				True if client is muted, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:BaseComm_IsClientMuted(client);
 | 
			
		||||
native bool BaseComm_IsClientMuted(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a client's gag state
 | 
			
		||||
@@ -74,7 +74,7 @@ native bool:BaseComm_IsClientMuted(client);
 | 
			
		||||
 * @param gagState		True to gag client, false to ungag.
 | 
			
		||||
 * @return				True if this caused a change in gag state, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:BaseComm_SetClientGag(client, bool:gagState);
 | 
			
		||||
native bool BaseComm_SetClientGag(int client, bool gagState);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a client's mute state
 | 
			
		||||
@@ -83,11 +83,11 @@ native bool:BaseComm_SetClientGag(client, bool:gagState);
 | 
			
		||||
 * @param muteState		True to mute client, false to unmute.
 | 
			
		||||
 * @return				True if this caused a change in mute state, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:BaseComm_SetClientMute(client, bool:muteState);
 | 
			
		||||
native bool BaseComm_SetClientMute(int client, bool muteState);
 | 
			
		||||
 | 
			
		||||
/* DO NOT EDIT BELOW THIS LINE */
 | 
			
		||||
 | 
			
		||||
public SharedPlugin:__pl_basecomm = 
 | 
			
		||||
public SharedPlugin __pl_basecomm = 
 | 
			
		||||
{
 | 
			
		||||
	name = "basecomm",
 | 
			
		||||
	file = "basecomm.smx",
 | 
			
		||||
@@ -99,7 +99,7 @@ public SharedPlugin:__pl_basecomm =
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_PLUGIN
 | 
			
		||||
public __pl_basecomm_SetNTVOptional()
 | 
			
		||||
public void __pl_basecomm_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("BaseComm_IsClientGagged");
 | 
			
		||||
	MarkNativeAsOptional("BaseComm_IsClientMuted");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								env/include/bitbuffer.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								env/include/bitbuffer.inc
									
									
									
									
										vendored
									
									
								
							@@ -312,7 +312,6 @@ native void BfWriteVecCoord(Handle bf, float coord[3]);
 | 
			
		||||
 *
 | 
			
		||||
 * @param bf			bf_write handle to write to.
 | 
			
		||||
 * @param vec			Vector to write.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or incorrect Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void BfWriteVecNormal(Handle bf, float vec[3]);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										49
									
								
								env/include/clientprefs.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										49
									
								
								env/include/clientprefs.inc
									
									
									
									
										vendored
									
									
								
							@@ -95,7 +95,7 @@ enum CookieMenuAction
 | 
			
		||||
 *                      exists, a handle to it will still be returned.
 | 
			
		||||
 * @error				Cookie name is blank.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:RegClientCookie(const String:name[], const String:description[], CookieAccess:access);
 | 
			
		||||
native Handle RegClientCookie(const char[] name, const char[] description, CookieAccess access);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Searches for a Client preference cookie.
 | 
			
		||||
@@ -106,7 +106,7 @@ native Handle:RegClientCookie(const String:name[], const String:description[], C
 | 
			
		||||
 * @param name			Name of cookie to find.
 | 
			
		||||
 * @return				A handle to the cookie if it is found. INVALID_HANDLE otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:FindClientCookie(const String:name[]);
 | 
			
		||||
native Handle FindClientCookie(const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Set the value of a Client preference cookie.
 | 
			
		||||
@@ -114,10 +114,9 @@ native Handle:FindClientCookie(const String:name[]);
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param cookie		Client preference cookie handle.
 | 
			
		||||
 * @param value			String value to set.
 | 
			
		||||
 * @noreturn			
 | 
			
		||||
 * @error				Invalid cookie handle or invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native SetClientCookie(client, Handle:cookie, const String:value[]);
 | 
			
		||||
native void SetClientCookie(int client, Handle cookie, const char[] value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieve the value of a Client preference cookie.
 | 
			
		||||
@@ -126,10 +125,9 @@ native SetClientCookie(client, Handle:cookie, const String:value[]);
 | 
			
		||||
 * @param cookie		Client preference cookie handle.
 | 
			
		||||
 * @param buffer		Copyback buffer for value.
 | 
			
		||||
 * @param maxlen		Maximum length of the buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid cookie handle or invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientCookie(client, Handle:cookie, String:buffer[], maxlen);
 | 
			
		||||
native void GetClientCookie(int client, Handle cookie, char[] buffer, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the value of a Client preference cookie based on an authID string.
 | 
			
		||||
@@ -137,10 +135,9 @@ native GetClientCookie(client, Handle:cookie, String:buffer[], maxlen);
 | 
			
		||||
 * @param authID		String Auth/STEAM ID of player to set.
 | 
			
		||||
 * @param cookie		Client preference cookie handle.
 | 
			
		||||
 * @param value			String value to set.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid cookie handle.
 | 
			
		||||
 */
 | 
			
		||||
native SetAuthIdCookie(const String:authID[], Handle:cookie, const String:value[]);
 | 
			
		||||
native void SetAuthIdCookie(const char[] authID, Handle cookie, const char[] value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if a clients cookies have been loaded from the database.
 | 
			
		||||
@@ -149,14 +146,14 @@ native SetAuthIdCookie(const String:authID[], Handle:cookie, const String:value[
 | 
			
		||||
 * @return 				True if loaded, false otherwise.
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native bool:AreClientCookiesCached(client);
 | 
			
		||||
native bool AreClientCookiesCached(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called once a client's saved cookies have been loaded from the database.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 */
 | 
			
		||||
forward OnClientCookiesCached(client);
 | 
			
		||||
forward void OnClientCookiesCached(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Cookie Menu Callback prototype
 | 
			
		||||
@@ -166,7 +163,6 @@ forward OnClientCookiesCached(client);
 | 
			
		||||
 * @param info			Info data passed.
 | 
			
		||||
 * @param buffer		Outbut buffer.
 | 
			
		||||
 * @param maxlen		Max length of the output buffer.
 | 
			
		||||
 * @noreturn			
 | 
			
		||||
 */
 | 
			
		||||
typedef CookieMenuHandler = function void (
 | 
			
		||||
  int client,
 | 
			
		||||
@@ -186,10 +182,9 @@ typedef CookieMenuHandler = function void (
 | 
			
		||||
 * @param display		Text to show on the menu.
 | 
			
		||||
 * @param handler		Optional handler callback for translations and output on selection
 | 
			
		||||
 * @param info			Info data to pass to the callback.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid cookie handle.
 | 
			
		||||
 */
 | 
			
		||||
native SetCookiePrefabMenu(Handle:cookie, CookieMenu:type, const String:display[], CookieMenuHandler:handler=INVALID_FUNCTION, info=0);
 | 
			
		||||
native void SetCookiePrefabMenu(Handle cookie, CookieMenu type, const char[] display, CookieMenuHandler handler=INVALID_FUNCTION, any info=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a new item to the client cookie settings menu.
 | 
			
		||||
@@ -199,25 +194,23 @@ native SetCookiePrefabMenu(Handle:cookie, CookieMenu:type, const String:display[
 | 
			
		||||
 * @param handler		A MenuHandler callback function.
 | 
			
		||||
 * @param info			Data to pass to the callback.
 | 
			
		||||
 * @param display		Text to show on the menu.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid cookie handle.
 | 
			
		||||
 */
 | 
			
		||||
native SetCookieMenuItem(CookieMenuHandler:handler, any:info, const String:display[]);
 | 
			
		||||
native void SetCookieMenuItem(CookieMenuHandler handler, any info, const char[] display);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Displays the settings menu to a client.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native ShowCookieMenu(client);
 | 
			
		||||
native void ShowCookieMenu(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a cookie iterator.  Must be freed with CloseHandle().
 | 
			
		||||
 *
 | 
			
		||||
 * @return				A new cookie iterator.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:GetCookieIterator();
 | 
			
		||||
native Handle GetCookieIterator();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads a cookie iterator, then advances to the next cookie if any.
 | 
			
		||||
@@ -230,12 +223,12 @@ native Handle:GetCookieIterator();
 | 
			
		||||
 * @param descLen		Cookie description buffer size.
 | 
			
		||||
 * @return				True on success, false if there are no more commands.
 | 
			
		||||
 */
 | 
			
		||||
native bool:ReadCookieIterator(Handle:iter, 
 | 
			
		||||
								String:name[], 
 | 
			
		||||
								nameLen,
 | 
			
		||||
								&CookieAccess:access, 
 | 
			
		||||
								String:desc[]="", 
 | 
			
		||||
								descLen=0);
 | 
			
		||||
native bool ReadCookieIterator(Handle iter, 
 | 
			
		||||
								char[] name, 
 | 
			
		||||
								int nameLen,
 | 
			
		||||
								CookieAccess &access, 
 | 
			
		||||
								char[] desc="", 
 | 
			
		||||
								int descLen=0);
 | 
			
		||||
								
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the access level of a cookie
 | 
			
		||||
@@ -244,7 +237,7 @@ native bool:ReadCookieIterator(Handle:iter,
 | 
			
		||||
 * @return				CookieAccess access level.
 | 
			
		||||
 * @error				Invalid cookie handle.	
 | 
			
		||||
 */
 | 
			
		||||
native CookieAccess:GetCookieAccess(Handle:cookie);
 | 
			
		||||
native CookieAccess GetCookieAccess(Handle cookie);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the last updated timestamp for a client cookie
 | 
			
		||||
@@ -253,12 +246,12 @@ native CookieAccess:GetCookieAccess(Handle:cookie);
 | 
			
		||||
 * @param cookie		Cookie handle.
 | 
			
		||||
 * @return			Last updated timestamp.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientCookieTime(client, Handle:cookie);
 | 
			
		||||
native int GetClientCookieTime(int client, Handle cookie);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_cprefs = 
 | 
			
		||||
public Extension __ext_cprefs = 
 | 
			
		||||
{
 | 
			
		||||
	name = "Client Preferences",
 | 
			
		||||
	file = "clientprefs.ext",
 | 
			
		||||
@@ -271,7 +264,7 @@ public Extension:__ext_cprefs =
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_EXTENSIONS
 | 
			
		||||
public __ext_cprefs_SetNTVOptional()
 | 
			
		||||
public void __ext_cprefs_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("RegClientCookie");
 | 
			
		||||
	MarkNativeAsOptional("FindClientCookie");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										197
									
								
								env/include/clients.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										197
									
								
								env/include/clients.inc
									
									
									
									
										vendored
									
									
								
							@@ -67,15 +67,12 @@ enum AuthIdType
 | 
			
		||||
/**
 | 
			
		||||
 * MAXPLAYERS is not the same as MaxClients.
 | 
			
		||||
 * MAXPLAYERS is a hardcoded value as an upper limit.  MaxClients changes based on the server.
 | 
			
		||||
 *
 | 
			
		||||
 * Both GetMaxClients() and MaxClients are only available once the map is loaded, and should 
 | 
			
		||||
 * not be used in OnPluginStart().
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define MAXPLAYERS		65	/**< Maximum number of players SourceMod supports */
 | 
			
		||||
#define MAX_NAME_LENGTH 32	/**< Maximum buffer required to store a client name */
 | 
			
		||||
 | 
			
		||||
public const MaxClients;	/**< Maximum number of players the server supports (dynamic) */
 | 
			
		||||
public const int MaxClients;	/**< Maximum number of players the server supports (dynamic) */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called on client connection.  If you return true, the client will be allowed in the server.
 | 
			
		||||
@@ -91,15 +88,14 @@ public const MaxClients;	/**< Maximum number of players the server supports (dyn
 | 
			
		||||
 * @param maxlen		Maximum number of characters for rejection buffer.
 | 
			
		||||
 * @return				True to validate client's connection, false to refuse it.
 | 
			
		||||
 */
 | 
			
		||||
forward bool:OnClientConnect(client, String:rejectmsg[], maxlen);
 | 
			
		||||
forward bool OnClientConnect(int client, char[] rejectmsg, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called once a client successfully connects.  This callback is paired with OnClientDisconnect.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientConnected(client);
 | 
			
		||||
forward void OnClientConnected(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a client is entering the game.
 | 
			
		||||
@@ -113,25 +109,22 @@ forward void OnClientConnected(client);
 | 
			
		||||
 * function, as clients are already in game at this point.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientPutInServer(client);
 | 
			
		||||
forward void OnClientPutInServer(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a client is disconnecting from the server.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientDisconnect(client);
 | 
			
		||||
forward void OnClientDisconnect(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a client is disconnected from the server.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientDisconnect_Post(client);
 | 
			
		||||
forward void OnClientDisconnect_Post(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a client is sending a command.
 | 
			
		||||
@@ -141,17 +134,39 @@ forward void OnClientDisconnect_Post(client);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param args			Number of arguments.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @return				Plugin_Handled blocks the command from being sent,
 | 
			
		||||
 *						and Plugin_Continue resumes normal functionality.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnClientCommand(client, args);
 | 
			
		||||
forward Action OnClientCommand(int client, int args);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a client is sending a KeyValues command.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param kv			Editable KeyValues data to be sent as the command.
 | 
			
		||||
 *						(This handle should not be stored and will be closed
 | 
			
		||||
 *						after this forward completes.)
 | 
			
		||||
 * @return				Plugin_Handled blocks the command from being sent,
 | 
			
		||||
 *						and Plugin_Continue resumes normal functionality.
 | 
			
		||||
 */
 | 
			
		||||
forward Action OnClientCommandKeyValues(int client, KeyValues kv);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called after a client has sent a KeyValues command.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param kv			KeyValues data sent as the command.
 | 
			
		||||
 *						(This handle should not be stored and will be closed
 | 
			
		||||
 *						after this forward completes.)
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientCommandKeyValues_Post(int client, KeyValues kv);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called whenever the client's settings are changed.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientSettingsChanged(client);
 | 
			
		||||
forward void OnClientSettingsChanged(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a client receives an auth ID.  The state of a client's 
 | 
			
		||||
@@ -162,9 +177,8 @@ forward void OnClientSettingsChanged(client);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param auth			Client Steam2 id, if available, else engine auth id.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientAuthorized(client, const String:auth[]);
 | 
			
		||||
forward void OnClientAuthorized(int client, const char[] auth);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called once a client is authorized and fully in-game, but 
 | 
			
		||||
@@ -176,13 +190,13 @@ forward void OnClientAuthorized(client, const String:auth[]);
 | 
			
		||||
 * Note: If handled/blocked, PostAdminCheck must be signalled 
 | 
			
		||||
 * manually via NotifyPostAdminCheck().
 | 
			
		||||
 *
 | 
			
		||||
 * This callback is gauranteed to occur on all clients, and always 
 | 
			
		||||
 * This callback is guaranteed to occur on all clients, and always 
 | 
			
		||||
 * after each OnClientPutInServer() call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @return				Plugin_Handled to block admin checks.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnClientPreAdminCheck(client);
 | 
			
		||||
forward Action OnClientPreAdminCheck(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called directly before OnClientPostAdminCheck() as a method to 
 | 
			
		||||
@@ -197,21 +211,19 @@ forward Action:OnClientPreAdminCheck(client);
 | 
			
		||||
 * See OnClientPostAdminCheck() for more information.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientPostAdminFilter(client);
 | 
			
		||||
forward void OnClientPostAdminFilter(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called once a client is authorized and fully in-game, and 
 | 
			
		||||
 * after all post-connection authorizations have been performed.  
 | 
			
		||||
 *
 | 
			
		||||
 * This callback is gauranteed to occur on all clients, and always 
 | 
			
		||||
 * This callback is guaranteed to occur on all clients, and always 
 | 
			
		||||
 * after each OnClientPutInServer() call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientPostAdminCheck(client);
 | 
			
		||||
forward void OnClientPostAdminCheck(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This function will be deprecated in a future release.  Use the MaxClients variable instead.
 | 
			
		||||
@@ -226,7 +238,7 @@ forward void OnClientPostAdminCheck(client);
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Maximum number of clients allowed.
 | 
			
		||||
 */
 | 
			
		||||
native GetMaxClients();
 | 
			
		||||
native int GetMaxClients();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the maximum number of human players allowed on the server.  This is 
 | 
			
		||||
@@ -241,7 +253,7 @@ native GetMaxClients();
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Maximum number of humans allowed.
 | 
			
		||||
 */
 | 
			
		||||
native GetMaxHumanPlayers();
 | 
			
		||||
native int GetMaxHumanPlayers();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client count put in the server.
 | 
			
		||||
@@ -249,7 +261,7 @@ native GetMaxHumanPlayers();
 | 
			
		||||
 * @param inGameOnly	If false connecting players are also counted.
 | 
			
		||||
 * @return				Client count in the server.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientCount(bool:inGameOnly=true);
 | 
			
		||||
native int GetClientCount(bool inGameOnly=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's name.
 | 
			
		||||
@@ -260,7 +272,7 @@ native GetClientCount(bool:inGameOnly=true);
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				If the client is not connected an error will be thrown.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetClientName(client, String:name[], maxlen);
 | 
			
		||||
native bool GetClientName(int client, char[] name, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a client's IP address.
 | 
			
		||||
@@ -272,7 +284,7 @@ native bool:GetClientName(client, String:name[], maxlen);
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				If the client is not connected or the index is invalid.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetClientIP(client, String:ip[], maxlen, bool:remport=true);
 | 
			
		||||
native bool GetClientIP(int client, char[] ip, int maxlen, bool remport=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a client's authentication string (SteamID).
 | 
			
		||||
@@ -287,7 +299,7 @@ native bool:GetClientIP(client, String:ip[], maxlen, bool:remport=true);
 | 
			
		||||
 * @error				If the client is not connected or the index is invalid.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use GetClientAuthId
 | 
			
		||||
native bool:GetClientAuthString(client, String:auth[], maxlen, bool:validate=true);
 | 
			
		||||
native bool GetClientAuthString(int client, char[] auth, int maxlen, bool validate=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a client's authentication string (SteamID).
 | 
			
		||||
@@ -302,7 +314,7 @@ native bool:GetClientAuthString(client, String:auth[], maxlen, bool:validate=tru
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				If the client is not connected or the index is invalid.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetClientAuthId(client, AuthIdType:authType, String:auth[], maxlen, bool:validate=true);
 | 
			
		||||
native bool GetClientAuthId(int client, AuthIdType authType, char[] auth, int maxlen, bool validate=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's Steam account ID.
 | 
			
		||||
@@ -314,7 +326,7 @@ native bool:GetClientAuthId(client, AuthIdType:authType, String:auth[], maxlen,
 | 
			
		||||
 * @return				Steam account ID or 0 if not available.
 | 
			
		||||
 * @error				If the client is not connected or the index is invalid.
 | 
			
		||||
 */
 | 
			
		||||
native GetSteamAccountID(client, bool:validate=true);
 | 
			
		||||
native int GetSteamAccountID(int client, bool validate=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a client's user id, which is an index incremented for every client
 | 
			
		||||
@@ -324,7 +336,7 @@ native GetSteamAccountID(client, bool:validate=true);
 | 
			
		||||
 * @return				User id of the client.
 | 
			
		||||
 * @error 				If the client is not connected or the index is invalid.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientUserId(client);
 | 
			
		||||
native int GetClientUserId(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a certain player is connected.
 | 
			
		||||
@@ -332,7 +344,7 @@ native GetClientUserId(client);
 | 
			
		||||
 * @param client		Player index.
 | 
			
		||||
 * @return				True if player is connected to the server, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientConnected(client);
 | 
			
		||||
native bool IsClientConnected(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a certain player has entered the game.
 | 
			
		||||
@@ -341,7 +353,7 @@ native bool:IsClientConnected(client);
 | 
			
		||||
 * @return				True if player has entered the game, false otherwise.
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientInGame(client);
 | 
			
		||||
native bool IsClientInGame(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a client is in the "kick queue" (i.e. the client will be kicked 
 | 
			
		||||
@@ -351,14 +363,14 @@ native bool:IsClientInGame(client);
 | 
			
		||||
 * @return				True if in the kick queue, false otherwise.
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientInKickQueue(client);
 | 
			
		||||
native bool IsClientInKickQueue(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Backwards compatibility stock - use IsClientInGame
 | 
			
		||||
 * @deprecated			Renamed to IsClientInGame
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use IsClientInGame() instead
 | 
			
		||||
stock bool:IsPlayerInGame(client)
 | 
			
		||||
stock bool IsPlayerInGame(int client)
 | 
			
		||||
{
 | 
			
		||||
	return IsClientInGame(client);
 | 
			
		||||
}
 | 
			
		||||
@@ -369,7 +381,7 @@ stock bool:IsPlayerInGame(client)
 | 
			
		||||
 * @param client		Player index.
 | 
			
		||||
 * @return				True if player has been authenticated, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientAuthorized(client);
 | 
			
		||||
native bool IsClientAuthorized(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a certain player is a fake client.
 | 
			
		||||
@@ -377,7 +389,7 @@ native bool:IsClientAuthorized(client);
 | 
			
		||||
 * @param client		Player index.
 | 
			
		||||
 * @return				True if player is a fake client, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsFakeClient(client);
 | 
			
		||||
native bool IsFakeClient(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a certain player is the SourceTV bot.
 | 
			
		||||
@@ -385,7 +397,7 @@ native bool:IsFakeClient(client);
 | 
			
		||||
 * @param client		Player index.
 | 
			
		||||
 * @return				True if player is the SourceTV bot, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientSourceTV(client);
 | 
			
		||||
native bool IsClientSourceTV(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a certain player is the Replay bot.
 | 
			
		||||
@@ -393,15 +405,15 @@ native bool:IsClientSourceTV(client);
 | 
			
		||||
 * @param client		Player index.
 | 
			
		||||
 * @return				True if player is the Replay bot, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientReplay(client);
 | 
			
		||||
native bool IsClientReplay(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a certain player is an observer/spectator.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player index.
 | 
			
		||||
 * @return				True if player is an obverser, false otherwise.
 | 
			
		||||
 * @return				True if player is an observer, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientObserver(client);
 | 
			
		||||
native bool IsClientObserver(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if the client is alive or dead.
 | 
			
		||||
@@ -412,7 +424,7 @@ native bool:IsClientObserver(client);
 | 
			
		||||
 * @return				True if the client is alive, false otherwise.
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsPlayerAlive(client);
 | 
			
		||||
native bool IsPlayerAlive(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves values from client replicated keys.
 | 
			
		||||
@@ -424,7 +436,7 @@ native bool:IsPlayerAlive(client);
 | 
			
		||||
 * @return 				True on success, false otherwise.
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetClientInfo(client, const String:key[], String:value[], maxlen);
 | 
			
		||||
native bool GetClientInfo(int client, const char[] key, char[] value, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a client's team index.
 | 
			
		||||
@@ -433,7 +445,7 @@ native bool:GetClientInfo(client, const String:key[], String:value[], maxlen);
 | 
			
		||||
 * @return				Team index the client is on (mod specific).
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientTeam(client);
 | 
			
		||||
native int GetClientTeam(int client);
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a client's AdminId.  
 | 
			
		||||
@@ -441,10 +453,9 @@ native GetClientTeam(client);
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param id			AdminId to set.  INVALID_ADMIN_ID removes admin permissions.
 | 
			
		||||
 * @param temp			True if the id should be freed on disconnect.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not connected, or bogus AdminId.
 | 
			
		||||
 */
 | 
			
		||||
native SetUserAdmin(client, AdminId:id, bool:temp=false);
 | 
			
		||||
native void SetUserAdmin(int client, AdminId id, bool temp=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a client's AdminId.
 | 
			
		||||
@@ -453,7 +464,7 @@ native SetUserAdmin(client, AdminId:id, bool:temp=false);
 | 
			
		||||
 * @return				AdminId of the client, or INVALID_ADMIN_ID if none.
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native AdminId:GetUserAdmin(client);
 | 
			
		||||
native AdminId GetUserAdmin(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets access flags on a client.  If the client is not an admin,
 | 
			
		||||
@@ -461,10 +472,9 @@ native AdminId:GetUserAdmin(client);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param ...			Flags to set on the client.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native AddUserFlags(client, AdminFlag:...);
 | 
			
		||||
native void AddUserFlags(int client, AdminFlag ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes flags from a client.  If the client is not an admin,
 | 
			
		||||
@@ -472,10 +482,9 @@ native AddUserFlags(client, AdminFlag:...);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param ...			Flags to remove from the client.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveUserFlags(client, AdminFlag:...);
 | 
			
		||||
native void RemoveUserFlags(int client, AdminFlag ...);
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Sets access flags on a client using bits instead of flags.  If the
 | 
			
		||||
@@ -483,9 +492,8 @@ native RemoveUserFlags(client, AdminFlag:...);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param flags			Bitstring of flags to set on client.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetUserFlagBits(client, flags);
 | 
			
		||||
native void SetUserFlagBits(int client, int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns client access flags.  If the client is not an admin,
 | 
			
		||||
@@ -495,7 +503,7 @@ native SetUserFlagBits(client, flags);
 | 
			
		||||
 * @return				Flags
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native GetUserFlagBits(client);
 | 
			
		||||
native int GetUserFlagBits(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether a user can target another user.
 | 
			
		||||
@@ -506,7 +514,7 @@ native GetUserFlagBits(client);
 | 
			
		||||
 * @return				True if target is targettable by the player, false otherwise.
 | 
			
		||||
 * @error				Invalid or unconnected player indexers.
 | 
			
		||||
 */
 | 
			
		||||
native bool:CanUserTarget(client, target);
 | 
			
		||||
native bool CanUserTarget(int client, int target);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Runs through the Core-defined admin authorization checks on a player.
 | 
			
		||||
@@ -518,7 +526,7 @@ native bool:CanUserTarget(client, target);
 | 
			
		||||
 * @return				True if access was changed, false if it did not.
 | 
			
		||||
 * @error				Invalid client index or client not in-game AND authorized.
 | 
			
		||||
 */
 | 
			
		||||
native bool:RunAdminCacheChecks(client);
 | 
			
		||||
native bool RunAdminCacheChecks(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Signals that a player has completed post-connection admin checks.
 | 
			
		||||
@@ -527,10 +535,9 @@ native bool:RunAdminCacheChecks(client);
 | 
			
		||||
 * Note: This must be sent even if no admin id was assigned.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index or client not in-game AND authorized.
 | 
			
		||||
 */
 | 
			
		||||
native NotifyPostAdminCheck(client);
 | 
			
		||||
native void NotifyPostAdminCheck(int client);
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Creates a fake client.
 | 
			
		||||
@@ -538,7 +545,7 @@ native NotifyPostAdminCheck(client);
 | 
			
		||||
 * @param name			Name to use.
 | 
			
		||||
 * @return				Client index on success, 0 otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native CreateFakeClient(const String:name[]);
 | 
			
		||||
native int CreateFakeClient(const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a convar value on a fake client.
 | 
			
		||||
@@ -546,11 +553,10 @@ native CreateFakeClient(const String:name[]);
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param cvar			ConVar name.
 | 
			
		||||
 * @param value			ConVar value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not connected,
 | 
			
		||||
 *						or client not a fake client.
 | 
			
		||||
 */
 | 
			
		||||
native SetFakeClientConVar(client, const String:cvar[], const String:value[]);
 | 
			
		||||
native void SetFakeClientConVar(int client, const char[] cvar, const char[] value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's health.
 | 
			
		||||
@@ -559,7 +565,7 @@ native SetFakeClientConVar(client, const String:cvar[], const String:value[]);
 | 
			
		||||
 * @return				Health value.
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientHealth(client);
 | 
			
		||||
native int GetClientHealth(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's model name.
 | 
			
		||||
@@ -567,10 +573,9 @@ native GetClientHealth(client);
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param model			Buffer to store the client's model name.
 | 
			
		||||
 * @param maxlen		Maximum length of string buffer (includes NULL terminator).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientModel(client, String:model[], maxlen);
 | 
			
		||||
native void GetClientModel(int client, char[] model, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's weapon name.
 | 
			
		||||
@@ -578,50 +583,45 @@ native GetClientModel(client, String:model[], maxlen);
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param weapon		Buffer to store the client's weapon name.
 | 
			
		||||
 * @param maxlen		Maximum length of string buffer (includes NULL terminator).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientWeapon(client, String:weapon[], maxlen);
 | 
			
		||||
native void GetClientWeapon(int client, char[] weapon, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's max size vector.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param vec			Destination vector to store the client's max size.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientMaxs(client, Float:vec[3]);
 | 
			
		||||
native void GetClientMaxs(int client, float vec[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's min size vector.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param vec			Destination vector to store the client's min size.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientMins(client, Float:vec[3]);
 | 
			
		||||
native void GetClientMins(int client, float vec[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's position angle.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param ang			Destination vector to store the client's position angle.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientAbsAngles(client, Float:ang[3]);
 | 
			
		||||
native void GetClientAbsAngles(int client, float ang[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's origin vector.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param vec			Destination vector to store the client's origin vector.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientAbsOrigin(client, Float:vec[3]);
 | 
			
		||||
native void GetClientAbsOrigin(int client, float vec[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's armor.
 | 
			
		||||
@@ -630,7 +630,7 @@ native GetClientAbsOrigin(client, Float:vec[3]);
 | 
			
		||||
 * @return				Armor value.
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientArmor(client);
 | 
			
		||||
native int GetClientArmor(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's death count.
 | 
			
		||||
@@ -639,7 +639,7 @@ native GetClientArmor(client);
 | 
			
		||||
 * @return				Death count.
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientDeaths(client);
 | 
			
		||||
native int GetClientDeaths(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's frag count.
 | 
			
		||||
@@ -648,7 +648,7 @@ native GetClientDeaths(client);
 | 
			
		||||
 * @return				Frag count.
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientFrags(client);
 | 
			
		||||
native int GetClientFrags(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's send data rate in bytes/sec.
 | 
			
		||||
@@ -657,7 +657,7 @@ native GetClientFrags(client);
 | 
			
		||||
 * @return				Data rate.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientDataRate(client);
 | 
			
		||||
native int GetClientDataRate(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a client is timing out
 | 
			
		||||
@@ -666,7 +666,7 @@ native GetClientDataRate(client);
 | 
			
		||||
 * @return				True if client is timing out, false otherwise.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientTimingOut(client);
 | 
			
		||||
native bool IsClientTimingOut(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's connection time in seconds.
 | 
			
		||||
@@ -675,7 +675,7 @@ native bool:IsClientTimingOut(client);
 | 
			
		||||
 * @return				Connection time.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetClientTime(client);
 | 
			
		||||
native float GetClientTime(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's current latency (RTT), more accurate than GetAvgLatency but jittering.
 | 
			
		||||
@@ -685,7 +685,7 @@ native Float:GetClientTime(client);
 | 
			
		||||
 * @return				Latency, or -1 if network info is not available.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetClientLatency(client, NetFlow:flow);
 | 
			
		||||
native float GetClientLatency(int client, NetFlow flow);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's average packet latency in seconds.
 | 
			
		||||
@@ -695,7 +695,7 @@ native Float:GetClientLatency(client, NetFlow:flow);
 | 
			
		||||
 * @return				Latency, or -1 if network info is not available.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetClientAvgLatency(client, NetFlow:flow);
 | 
			
		||||
native float GetClientAvgLatency(int client, NetFlow flow);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's average packet loss, values go from 0 to 1 (for percentages).
 | 
			
		||||
@@ -705,7 +705,7 @@ native Float:GetClientAvgLatency(client, NetFlow:flow);
 | 
			
		||||
 * @return				Average packet loss, or -1 if network info is not available.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetClientAvgLoss(client, NetFlow:flow);
 | 
			
		||||
native float GetClientAvgLoss(int client, NetFlow flow);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's average packet choke, values go from 0 to 1 (for percentages).
 | 
			
		||||
@@ -715,7 +715,7 @@ native Float:GetClientAvgLoss(client, NetFlow:flow);
 | 
			
		||||
 * @return				Average packet loss, or -1 if network info is not available.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetClientAvgChoke(client, NetFlow:flow);
 | 
			
		||||
native float GetClientAvgChoke(int client, NetFlow flow);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's data flow in bytes/sec.
 | 
			
		||||
@@ -725,7 +725,7 @@ native Float:GetClientAvgChoke(client, NetFlow:flow);
 | 
			
		||||
 * @return				Data flow.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetClientAvgData(client, NetFlow:flow);
 | 
			
		||||
native float GetClientAvgData(int client, NetFlow flow);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's average packet frequency in packets/sec.
 | 
			
		||||
@@ -735,7 +735,7 @@ native Float:GetClientAvgData(client, NetFlow:flow);
 | 
			
		||||
 * @return				Packet frequency.
 | 
			
		||||
 * @error				Invalid client index, client not connected, or fake client.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetClientAvgPackets(client, NetFlow:flow);
 | 
			
		||||
native float GetClientAvgPackets(int client, NetFlow flow);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Translates an userid index to the real player index.
 | 
			
		||||
@@ -744,7 +744,7 @@ native Float:GetClientAvgPackets(client, NetFlow:flow);
 | 
			
		||||
 * @return				Client value.
 | 
			
		||||
 * @error				Returns 0 if invalid userid.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientOfUserId(userid);
 | 
			
		||||
native int GetClientOfUserId(int userid);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Disconnects a client from the server as soon as the next frame starts.
 | 
			
		||||
@@ -762,10 +762,9 @@ native GetClientOfUserId(userid);
 | 
			
		||||
 * @param format		Optional formatting rules for disconnect reason.
 | 
			
		||||
 *                      Note that a period is automatically appended to the string by the engine.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native KickClient(client, const String:format[]="", any:...);
 | 
			
		||||
native void KickClient(int client, const char[] format="", any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Immediately disconnects a client from the server.
 | 
			
		||||
@@ -778,10 +777,9 @@ native KickClient(client, const String:format[]="", any:...);
 | 
			
		||||
 * @param format		Optional formatting rules for disconnect reason.
 | 
			
		||||
 *                      Note that a period is automatically appended to the string by the engine.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native KickClientEx(client, const String:format[]="", any:...);
 | 
			
		||||
native void KickClientEx(int client, const char[] format="", any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Changes a client's team through the mod's generic team changing function.
 | 
			
		||||
@@ -789,19 +787,19 @@ native KickClientEx(client, const String:format[]="", any:...);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param team			Mod-specific team index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not connected, or lack of 
 | 
			
		||||
 *						mod support.
 | 
			
		||||
 */
 | 
			
		||||
native ChangeClientTeam(client, team);
 | 
			
		||||
native void ChangeClientTeam(int client, int team);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the clients unique serial identifier.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @return	Serial number.
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientSerial(client);
 | 
			
		||||
native int GetClientSerial(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client index by its serial number.
 | 
			
		||||
@@ -809,5 +807,4 @@ native GetClientSerial(client);
 | 
			
		||||
 * @param serial		Serial number.
 | 
			
		||||
 * @return				Client index, or 0 for invalid serial.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientFromSerial(serial);
 | 
			
		||||
 | 
			
		||||
native int GetClientFromSerial(int serial);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										78
									
								
								env/include/commandfilters.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										78
									
								
								env/include/commandfilters.inc
									
									
									
									
										vendored
									
									
								
							@@ -75,14 +75,33 @@
 | 
			
		||||
 *						if one valid client is found.  Otherwise, a COMMAND_TARGET reason 
 | 
			
		||||
 *						for failure is returned.
 | 
			
		||||
 */
 | 
			
		||||
native ProcessTargetString(const String:pattern[],
 | 
			
		||||
						   admin, 
 | 
			
		||||
						   targets[],
 | 
			
		||||
						   max_targets,
 | 
			
		||||
						   filter_flags,
 | 
			
		||||
						   String:target_name[],
 | 
			
		||||
						   tn_maxlength,
 | 
			
		||||
						   &bool:tn_is_ml);
 | 
			
		||||
native int ProcessTargetString(const char[] pattern,
 | 
			
		||||
						   int admin, 
 | 
			
		||||
						   int[] targets,
 | 
			
		||||
						   int max_targets,
 | 
			
		||||
						   int filter_flags,
 | 
			
		||||
						   char[] target_name,
 | 
			
		||||
						   int tn_maxlength,
 | 
			
		||||
						   bool &tn_is_ml);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves arguments that were passed to the last ProcessTargetString call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param pattern		Buffer to store the pattern.
 | 
			
		||||
 * @param p_maxlen		Maximum length of the pattern buffer.
 | 
			
		||||
 * @param admin			OUTPUT: Admin performing the action, or 0 if the server.
 | 
			
		||||
 * @param filter_flags	OUTPUT: Filter flags.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native void GetLastProcessTargetString(char[] pattern,
 | 
			
		||||
								  int p_maxlen,
 | 
			
		||||
								  int &admin,
 | 
			
		||||
								  int &filter_flags);
 | 
			
		||||
 | 
			
		||||
#undef REQUIRE_PLUGIN
 | 
			
		||||
#include <DynamicTargeting>
 | 
			
		||||
#define REQUIRE_PLUGIN
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Replies to a client with a given message describing a targetting 
 | 
			
		||||
@@ -92,9 +111,8 @@ native ProcessTargetString(const String:pattern[],
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index, or 0 for server.
 | 
			
		||||
 * @param reason		COMMAND_TARGET reason.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock ReplyToTargetError(client, reason)
 | 
			
		||||
stock void ReplyToTargetError(int client, int reason, bool dynamic=true)
 | 
			
		||||
{
 | 
			
		||||
	switch (reason)
 | 
			
		||||
	{
 | 
			
		||||
@@ -129,6 +147,34 @@ stock ReplyToTargetError(client, reason)
 | 
			
		||||
		case COMMAND_TARGET_AMBIGUOUS:
 | 
			
		||||
		{
 | 
			
		||||
			ReplyToCommand(client, "[SM] %t", "More than one client matched");
 | 
			
		||||
 | 
			
		||||
			if(dynamic &&
 | 
			
		||||
				GetFeatureStatus(FeatureType_Native, "GetLastProcessTargetString") == FeatureStatus_Available &&
 | 
			
		||||
				LibraryExists("DynamicTargeting"))
 | 
			
		||||
			{
 | 
			
		||||
				if(GetFeatureStatus(FeatureType_Native, "IsCommandCallback") == FeatureStatus_Available &&
 | 
			
		||||
					!IsCommandCallback())
 | 
			
		||||
				{
 | 
			
		||||
					return;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				char sCommand[128];
 | 
			
		||||
				GetCmdArg(0, sCommand, sizeof(sCommand));
 | 
			
		||||
 | 
			
		||||
				char sArgString[256];
 | 
			
		||||
				GetCmdArgString(sArgString, sizeof(sArgString));
 | 
			
		||||
 | 
			
		||||
				char pattern[MAX_TARGET_LENGTH];
 | 
			
		||||
				int admin;
 | 
			
		||||
				int filter_flags;
 | 
			
		||||
 | 
			
		||||
				GetLastProcessTargetString(pattern, sizeof(pattern), admin, filter_flags);
 | 
			
		||||
 | 
			
		||||
				if(!admin || !IsClientInGame(admin) || IsFakeClient(admin))
 | 
			
		||||
					return;
 | 
			
		||||
 | 
			
		||||
				AmbiguousMenu(admin, sCommand, sArgString, pattern, filter_flags);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -138,9 +184,10 @@ stock ReplyToTargetError(client, reason)
 | 
			
		||||
 *
 | 
			
		||||
 * @param pattern       Pattern name.
 | 
			
		||||
 * @param clients       Array to fill with unique, valid client indexes.
 | 
			
		||||
 * @param client        Client that triggered this filter.
 | 
			
		||||
 * @return              True if pattern was recognized, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
typedef MultiTargetFilter = function bool (const char[] pattern, Handle clients);
 | 
			
		||||
typedef MultiTargetFilter = function bool (const char[] pattern, Handle clients, int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a multi-target filter function for ProcessTargetString().
 | 
			
		||||
@@ -149,17 +196,14 @@ typedef MultiTargetFilter = function bool (const char[] pattern, Handle clients)
 | 
			
		||||
 * @param filter        Filter function.
 | 
			
		||||
 * @param phrase        Descriptive phrase to display on successful match.
 | 
			
		||||
 * @param phraseIsML    True if phrase is multi-lingual, false otherwise.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native AddMultiTargetFilter(const String:pattern[], MultiTargetFilter:filter,
 | 
			
		||||
                            const String:phrase[], bool:phraseIsML);
 | 
			
		||||
native void AddMultiTargetFilter(const char[] pattern, MultiTargetFilter filter,
 | 
			
		||||
                                 const char[] phrase, bool phraseIsML);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a multi-target filter function from ProcessTargetString().
 | 
			
		||||
 *
 | 
			
		||||
 * @param pattern       Pattern to match (case sensitive).
 | 
			
		||||
 * @param filter        Filter function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native RemoveMultiTargetFilter(const String:pattern[], MultiTargetFilter:filter);
 | 
			
		||||
 | 
			
		||||
native void RemoveMultiTargetFilter(const char[] pattern, MultiTargetFilter filter);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								env/include/commandline.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								env/include/commandline.inc
									
									
									
									
										vendored
									
									
								
							@@ -43,7 +43,7 @@
 | 
			
		||||
 * @return					True if the command line is valid; otherwise, false.
 | 
			
		||||
 * @error					No command line available, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetCommandLine(String:commandLine[], maxlen);
 | 
			
		||||
native bool GetCommandLine(char[] commandLine, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the value of a command line parameter the server was launched with.
 | 
			
		||||
@@ -52,10 +52,9 @@ native bool:GetCommandLine(String:commandLine[], maxlen);
 | 
			
		||||
 * @param value		Buffer to store the parameter value in.
 | 
			
		||||
 * @param maxlen	Maximum length of the value buffer.
 | 
			
		||||
 * @param defValue	The default value to return if the parameter wasn't specified.
 | 
			
		||||
 * @return			True if the command line is valid; otherwise, false.
 | 
			
		||||
 * @error			No command line available, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetCommandLineParam(const String:param[], String:value[], maxlen, const String:defValue[]="");
 | 
			
		||||
native void GetCommandLineParam(const char[] param, char[] value, int maxlen, const char[] defValue="");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the value of a command line parameter the server was launched with.
 | 
			
		||||
@@ -65,7 +64,7 @@ native GetCommandLineParam(const String:param[], String:value[], maxlen, const S
 | 
			
		||||
 * @return			The integer value of the command line parameter value.
 | 
			
		||||
 * @error			No command line available, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetCommandLineParamInt(const String:param[], defValue=0);
 | 
			
		||||
native int GetCommandLineParamInt(const char[] param, int defValue=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the value of a command line parameter the server was launched with.
 | 
			
		||||
@@ -75,7 +74,7 @@ native GetCommandLineParamInt(const String:param[], defValue=0);
 | 
			
		||||
 * @return			The floating point value of the command line parameter value.
 | 
			
		||||
 * @error			No command line available, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetCommandLineParamFloat(const String:param[], Float:defValue=0.0);
 | 
			
		||||
native float GetCommandLineParamFloat(const char[] param, float defValue=0.0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Determines if a specific command line parameter is present.
 | 
			
		||||
@@ -84,4 +83,4 @@ native Float:GetCommandLineParamFloat(const String:param[], Float:defValue=0.0);
 | 
			
		||||
 * @return			True if the command line parameter is specified; otherwise, false.
 | 
			
		||||
 * @error			No command line available, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:FindCommandLineParam(const String:param[]);
 | 
			
		||||
native bool FindCommandLineParam(const char[] param);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										217
									
								
								env/include/console.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										217
									
								
								env/include/console.inc
									
									
									
									
										vendored
									
									
								
							@@ -58,35 +58,49 @@ enum ReplySource
 | 
			
		||||
 * @section Flags for console commands and console variables.  The descriptions 
 | 
			
		||||
 * for each constant come directly from the Source SDK.
 | 
			
		||||
 */
 | 
			
		||||
#define FCVAR_NONE				0		/**< The default, no flags at all */
 | 
			
		||||
#define FCVAR_UNREGISTERED		(1<<0)	/**< If this is set, don't add to linked list, etc. */
 | 
			
		||||
#define FCVAR_LAUNCHER			(1<<1)	/**< Defined by launcher. */
 | 
			
		||||
#define FCVAR_GAMEDLL			(1<<2)	/**< Defined by the game DLL. */
 | 
			
		||||
#define FCVAR_CLIENTDLL			(1<<3)	/**< Defined by the client DLL. */
 | 
			
		||||
#define FCVAR_MATERIAL_SYSTEM	(1<<4)	/**< Defined by the material system. */
 | 
			
		||||
#define FCVAR_PROTECTED			(1<<5)	/**< It's a server cvar, but we don't send the data since it's a password, etc. Sends 1 if it's not bland/zero, 0 otherwise as value. */
 | 
			
		||||
#define FCVAR_SPONLY			(1<<6)	/**< This cvar cannot be changed by clients connected to a multiplayer server. */
 | 
			
		||||
#define	FCVAR_ARCHIVE			(1<<7)	/**< Set to cause it to be saved to vars.rc */
 | 
			
		||||
#define	FCVAR_NOTIFY			(1<<8)	/**< Notifies players when changed. */
 | 
			
		||||
#define	FCVAR_USERINFO			(1<<9)	/**< Changes the client's info string. */
 | 
			
		||||
#define FCVAR_PRINTABLEONLY		(1<<10)	/**< This cvar's string cannot contain unprintable characters (e.g., used for player name, etc.) */
 | 
			
		||||
#define FCVAR_UNLOGGED			(1<<11)	/**< If this is a FCVAR_SERVER, don't log changes to the log file / console if we are creating a log */
 | 
			
		||||
#define FCVAR_NEVER_AS_STRING	(1<<12)	/**< Never try to print that cvar. */
 | 
			
		||||
#define FCVAR_REPLICATED		(1<<13)	/**< Server setting enforced on clients. */
 | 
			
		||||
#define FCVAR_CHEAT				(1<<14)	/**< Only useable in singleplayer / debug / multiplayer & sv_cheats */
 | 
			
		||||
#define FCVAR_STUDIORENDER		(1<<15)	/**< Defined by the studiorender system. */
 | 
			
		||||
#define FCVAR_DEMO				(1<<16)	/**< Record this cvar when starting a demo file. */
 | 
			
		||||
#define FCVAR_DONTRECORD		(1<<17)	/**< Don't record these command in demo files. */
 | 
			
		||||
#define FCVAR_PLUGIN			(1<<18)	/**< Defined by a 3rd party plugin. */
 | 
			
		||||
#define FCVAR_DATACACHE			(1<<19)	/**< Defined by the datacache system. */
 | 
			
		||||
#define FCVAR_TOOLSYSTEM		(1<<20)	/**< Defined by an IToolSystem library */
 | 
			
		||||
#define FCVAR_FILESYSTEM		(1<<21)	/**< Defined by the file system. */
 | 
			
		||||
#define FCVAR_NOT_CONNECTED		(1<<22)	/**< Cvar cannot be changed by a client that is connected to a server. */
 | 
			
		||||
#define FCVAR_SOUNDSYSTEM		(1<<23)	/**< Defined by the soundsystem library. */
 | 
			
		||||
#define FCVAR_ARCHIVE_XBOX		(1<<24)	/**< Cvar written to config.cfg on the Xbox. */
 | 
			
		||||
#define FCVAR_INPUTSYSTEM		(1<<25)	/**< Defined by the inputsystem DLL. */
 | 
			
		||||
#define FCVAR_NETWORKSYSTEM		(1<<26)	/**< Defined by the network system. */
 | 
			
		||||
#define FCVAR_VPHYSICS			(1<<27)	/**< Defined by vphysics. */
 | 
			
		||||
 | 
			
		||||
#pragma deprecated No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
 | 
			
		||||
#define FCVAR_PLUGIN           0       // Actual value is same as FCVAR_SS_ADDED in Left 4 Dead and later.
 | 
			
		||||
#pragma deprecated Did you mean FCVAR_DEVELOPMENTONLY? (No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.)
 | 
			
		||||
#define FCVAR_LAUNCHER         (1<<1)  // Same value as FCVAR_DEVELOPMENTONLY, which is what most usages of this were intending to use.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define FCVAR_NONE             0       // The default, no flags at all
 | 
			
		||||
#define FCVAR_UNREGISTERED     (1<<0)  // If this is set, don't add to linked list, etc.
 | 
			
		||||
#define FCVAR_DEVELOPMENTONLY  (1<<1)  // Hidden in released products. Flag is removed automatically if ALLOW_DEVELOPMENT_CVARS is defined. (OB+)
 | 
			
		||||
#define FCVAR_GAMEDLL          (1<<2)  // Defined by the game DLL.
 | 
			
		||||
#define FCVAR_CLIENTDLL        (1<<3)  // Defined by the client DLL.
 | 
			
		||||
#define FCVAR_MATERIAL_SYSTEM  (1<<4)  // Defined by the material system. (EP1-only)
 | 
			
		||||
#define FCVAR_HIDDEN           (1<<4)  // Hidden. Doesn't appear in find or autocomplete. Like DEVELOPMENTONLY, but can't be compiled out.1 (OB+)
 | 
			
		||||
#define FCVAR_PROTECTED        (1<<5)  // It's a server cvar, but we don't send the data since it's a password, etc.
 | 
			
		||||
                                       // Sends 1 if it's not bland/zero, 0 otherwise as value.
 | 
			
		||||
#define FCVAR_SPONLY           (1<<6)  // This cvar cannot be changed by clients connected to a multiplayer server.
 | 
			
		||||
#define FCVAR_ARCHIVE          (1<<7)  // Set to cause it to be saved to vars.rc
 | 
			
		||||
#define FCVAR_NOTIFY           (1<<8)  // Notifies players when changed.
 | 
			
		||||
#define FCVAR_USERINFO         (1<<9)  // Changes the client's info string.
 | 
			
		||||
#define FCVAR_PRINTABLEONLY    (1<<10) // This cvar's string cannot contain unprintable characters (e.g., used for player name, etc.)
 | 
			
		||||
#define FCVAR_UNLOGGED         (1<<11) // If this is a FCVAR_SERVER, don't log changes to the log file / console if we are creating a log
 | 
			
		||||
#define FCVAR_NEVER_AS_STRING  (1<<12) // Never try to print that cvar.
 | 
			
		||||
#define FCVAR_REPLICATED       (1<<13) // Server setting enforced on clients.
 | 
			
		||||
#define FCVAR_CHEAT            (1<<14) // Only useable in singleplayer / debug / multiplayer & sv_cheats
 | 
			
		||||
#define FCVAR_SS               (1<<15) // causes varnameN where N  2 through max splitscreen slots for mod to be autogenerated (L4D+)
 | 
			
		||||
#define FCVAR_DEMO                     (1<<16) // Record this cvar when starting a demo file.
 | 
			
		||||
#define FCVAR_DONTRECORD               (1<<17) // Don't record these command in demo files.
 | 
			
		||||
#define FCVAR_SS_ADDED                 (1<<18) // This is one of the "added" FCVAR_SS variables for the splitscreen players (L4D+)
 | 
			
		||||
#define FCVAR_RELEASE                  (1<<19) // Cvars tagged with this are the only cvars available to customers (L4D+)
 | 
			
		||||
#define FCVAR_RELOAD_MATERIALS         (1<<20) // If this cvar changes, it forces a material reload (OB+)
 | 
			
		||||
#define FCVAR_RELOAD_TEXTURES          (1<<21) // If this cvar changes, if forces a texture reload (OB+)
 | 
			
		||||
#define FCVAR_NOT_CONNECTED            (1<<22) // Cvar cannot be changed by a client that is connected to a server.
 | 
			
		||||
#define FCVAR_MATERIAL_SYSTEM_THREAD   (1<<23) // Indicates this cvar is read from the material system thread (OB+)
 | 
			
		||||
#define FCVAR_ARCHIVE_XBOX             (1<<24) // Cvar written to config.cfg on the Xbox.
 | 
			
		||||
#define FCVAR_ARCHIVE_GAMECONSOLE      (1<<24) // Cvar written to config.cfg on the Xbox.
 | 
			
		||||
#define FCVAR_ACCESSIBLE_FROM_THREADS  (1<<25) // used as a debugging tool necessary to check material system thread convars (OB+)
 | 
			
		||||
#define FCVAR_SERVER_CAN_EXECUTE       (1<<28) // the server is allowed to execute this command on clients via
 | 
			
		||||
                                                   // ClientCommand/NET_StringCmd/CBaseClientState::ProcessStringCmd. (OB+)
 | 
			
		||||
#define FCVAR_SERVER_CANNOT_QUERY      (1<<29) // If this is set, then the server is not allowed to query this cvar's value (via
 | 
			
		||||
                                                   // IServerPluginHelpers::StartQueryCvarValue).
 | 
			
		||||
#define FCVAR_CLIENTCMD_CAN_EXECUTE    (1<<30) // IVEngineClient::ClientCmd is allowed to execute this command. 
 | 
			
		||||
                                                   // Note: IVEngineClient::ClientCmd_Unrestricted can run any client command.
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @endsection
 | 
			
		||||
@@ -97,9 +111,8 @@ enum ReplySource
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native ServerCommand(const String:format[], any:...);
 | 
			
		||||
native void ServerCommand(const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Executes a server command as if it were on the server console (or RCON) 
 | 
			
		||||
@@ -114,25 +127,21 @@ native ServerCommand(const String:format[], any:...);
 | 
			
		||||
 * @param maxlen		Length of buffer.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native ServerCommandEx(String:buffer[], maxlen, const String:format[], any:...);
 | 
			
		||||
native void ServerCommandEx(char[] buffer, int maxlen, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Inserts a server command at the beginning of the server command buffer.
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native InsertServerCommand(const String:format[], any:...);
 | 
			
		||||
native void InsertServerCommand(const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Executes every command in the server's command buffer, rather than once per frame.
 | 
			
		||||
 *
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native ServerExecute();
 | 
			
		||||
native void ServerExecute();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Executes a client command.  Note that this will not work on clients unless
 | 
			
		||||
@@ -141,10 +150,9 @@ native ServerExecute();
 | 
			
		||||
 * @param client		Index of the client.
 | 
			
		||||
 * @param fmt			Format of the client command.
 | 
			
		||||
 * @param ...			Format parameters
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native ClientCommand(client, const String:fmt[], any:...);
 | 
			
		||||
native void ClientCommand(int client, const char[] fmt, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Executes a client command on the server without being networked.
 | 
			
		||||
@@ -158,10 +166,9 @@ native ClientCommand(client, const String:fmt[], any:...);
 | 
			
		||||
 * @param client		Index of the client.
 | 
			
		||||
 * @param fmt			Format of the client command.
 | 
			
		||||
 * @param ...			Format parameters
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native FakeClientCommand(client, const String:fmt[], any:...);
 | 
			
		||||
native void FakeClientCommand(int client, const char[] fmt, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Executes a client command on the server without being networked.  The 
 | 
			
		||||
@@ -171,19 +178,27 @@ native FakeClientCommand(client, const String:fmt[], any:...);
 | 
			
		||||
 * @param client		Index of the client.
 | 
			
		||||
 * @param fmt			Format of the client command.
 | 
			
		||||
 * @param ...			Format parameters
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native FakeClientCommandEx(client, const String:fmt[], any:...);
 | 
			
		||||
native void FakeClientCommandEx(int client, const char[] fmt, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Executes a KeyValues client command on the server without being networked.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Index of the client.
 | 
			
		||||
 * @param kv			KeyValues data to be sent.
 | 
			
		||||
 * @error				Invalid client index, client not connected,
 | 
			
		||||
 *						or unsupported on current game.
 | 
			
		||||
 */
 | 
			
		||||
native void FakeClientCommandKeyValues(int client, KeyValues kv);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sends a message to the server console.
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native PrintToServer(const String:format[], any:...);
 | 
			
		||||
native void PrintToServer(const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sends a message to a client's console.
 | 
			
		||||
@@ -191,10 +206,9 @@ native PrintToServer(const String:format[], any:...);
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				If the client is not connected an error will be thrown.
 | 
			
		||||
 */
 | 
			
		||||
native PrintToConsole(client, const String:format[], any:...);
 | 
			
		||||
native void PrintToConsole(int client, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reples to a message in a command.
 | 
			
		||||
@@ -206,17 +220,16 @@ native PrintToConsole(client, const String:format[], any:...);
 | 
			
		||||
 * @param client		Client index, or 0 for server.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				If the client is not connected or invalid.
 | 
			
		||||
 */
 | 
			
		||||
native ReplyToCommand(client, const String:format[], any:...);
 | 
			
		||||
native void ReplyToCommand(int client, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the current reply source of a command.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				ReplySource value.
 | 
			
		||||
 */
 | 
			
		||||
native ReplySource:GetCmdReplySource();
 | 
			
		||||
native ReplySource GetCmdReplySource();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the current reply source of a command.
 | 
			
		||||
@@ -227,7 +240,7 @@ native ReplySource:GetCmdReplySource();
 | 
			
		||||
 * @param source		New ReplySource value.
 | 
			
		||||
 * @return				Old ReplySource value.
 | 
			
		||||
 */
 | 
			
		||||
native ReplySource:SetCmdReplySource(ReplySource:source);
 | 
			
		||||
native ReplySource SetCmdReplySource(ReplySource source);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether the current say hook is a chat trigger.
 | 
			
		||||
@@ -236,7 +249,7 @@ native ReplySource:SetCmdReplySource(ReplySource:source);
 | 
			
		||||
 *
 | 
			
		||||
 * @return				True if a chat trigger, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsChatTrigger();
 | 
			
		||||
native bool IsChatTrigger();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Displays usage of an admin command to users depending on the 
 | 
			
		||||
@@ -248,10 +261,9 @@ native bool:IsChatTrigger();
 | 
			
		||||
 * @param tag			Tag to prepend to the message.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error
 | 
			
		||||
 */
 | 
			
		||||
native ShowActivity2(client, const String:tag[], const String:format[], any:...);
 | 
			
		||||
native void ShowActivity2(int client, const char[] tag, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Displays usage of an admin command to users depending on the 
 | 
			
		||||
@@ -265,10 +277,9 @@ native ShowActivity2(client, const String:tag[], const String:format[], any:...)
 | 
			
		||||
 * @param client		Client index doing the action, or 0 for server.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error
 | 
			
		||||
 */
 | 
			
		||||
native ShowActivity(client, const String:format[], any:...);
 | 
			
		||||
native void ShowActivity(int client, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Same as ShowActivity(), except the tag parameter is used instead of
 | 
			
		||||
@@ -278,10 +289,9 @@ native ShowActivity(client, const String:format[], any:...);
 | 
			
		||||
 * @param tag			Tag to display with.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error
 | 
			
		||||
 */
 | 
			
		||||
native ShowActivityEx(client, const String:tag[], const String:format[], any:...);
 | 
			
		||||
native void ShowActivityEx(int client, const char[] tag, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Given an originating client and a target client, returns the string 
 | 
			
		||||
@@ -299,7 +309,7 @@ native ShowActivityEx(client, const String:tag[], const String:format[], any:...
 | 
			
		||||
 *                      sm_show_activity filters.
 | 
			
		||||
 * @error               Invalid client index or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native FormatActivitySource(client, target, const String:namebuf[], maxlength);
 | 
			
		||||
native bool FormatActivitySource(int client, int target, const char[] namebuf, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a server-only command is invoked.  
 | 
			
		||||
@@ -319,10 +329,9 @@ typedef SrvCmd = function Action (int args);
 | 
			
		||||
 * @param callback		A function to use as a callback for when the command is invoked.
 | 
			
		||||
 * @param description	Optional description to use for command creation.
 | 
			
		||||
 * @param flags			Optional flags to use for command creation.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Command name is the same as an existing convar.
 | 
			
		||||
 */
 | 
			
		||||
native RegServerCmd(const String:cmd[], SrvCmd:callback, const String:description[]="", flags=0);
 | 
			
		||||
native void RegServerCmd(const char[] cmd, SrvCmd callback, const char[] description="", int flags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a generic console command is invoked.
 | 
			
		||||
@@ -345,10 +354,9 @@ typedef ConCmd = function Action (int client, int args);
 | 
			
		||||
 * @param callback		A function to use as a callback for when the command is invoked.
 | 
			
		||||
 * @param description	Optional description to use for command creation.
 | 
			
		||||
 * @param flags			Optional flags to use for command creation.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Command name is the same as an existing convar.
 | 
			
		||||
 */
 | 
			
		||||
native RegConsoleCmd(const String:cmd[], ConCmd:callback, const String:description[]="", flags=0);
 | 
			
		||||
native void RegConsoleCmd(const char[] cmd, ConCmd callback, const char[] description="", int flags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a console command as an administrative command.  If the command does not exist,
 | 
			
		||||
@@ -364,23 +372,29 @@ native RegConsoleCmd(const String:cmd[], ConCmd:callback, const String:descripti
 | 
			
		||||
 * @param group			String containing the command group to use.  If empty,
 | 
			
		||||
 * 						the plugin's filename will be used instead.
 | 
			
		||||
 * @param flags			Optional console flags.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Command name is the same as an existing convar.
 | 
			
		||||
 */
 | 
			
		||||
native RegAdminCmd(const String:cmd[],
 | 
			
		||||
					ConCmd:callback,
 | 
			
		||||
					adminflags,
 | 
			
		||||
					const String:description[]="",
 | 
			
		||||
					const String:group[]="",
 | 
			
		||||
					flags=0);
 | 
			
		||||
					
 | 
			
		||||
native void RegAdminCmd(const char[] cmd,
 | 
			
		||||
					ConCmd callback,
 | 
			
		||||
					int adminflags,
 | 
			
		||||
					const char[] description="",
 | 
			
		||||
					const char[] group="",
 | 
			
		||||
					int flags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether there is a command callback available.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				True if called from inside a command callback.
 | 
			
		||||
 */
 | 
			
		||||
native bool IsCommandCallback();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of arguments from the current console or server command.
 | 
			
		||||
 * @note Unlike the HL2 engine call, this does not include the command itself.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Number of arguments to the current command.
 | 
			
		||||
 */
 | 
			
		||||
native GetCmdArgs();
 | 
			
		||||
native int GetCmdArgs();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a command argument given its index, from the current console or 
 | 
			
		||||
@@ -392,7 +406,7 @@ native GetCmdArgs();
 | 
			
		||||
 * @param maxlength		Maximum length of the buffer.
 | 
			
		||||
 * @return				Length of string written to buffer.
 | 
			
		||||
 */
 | 
			
		||||
native GetCmdArg(argnum, String:buffer[], maxlength);
 | 
			
		||||
native int GetCmdArg(int argnum, char[] buffer, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the entire command argument string in one lump from the current 
 | 
			
		||||
@@ -402,14 +416,14 @@ native GetCmdArg(argnum, String:buffer[], maxlength);
 | 
			
		||||
 * @param maxlength		Maximum length of the buffer.
 | 
			
		||||
 * @return				Length of string written to buffer.
 | 
			
		||||
 */
 | 
			
		||||
native GetCmdArgString(String:buffer[], maxlength);
 | 
			
		||||
native int GetCmdArgString(char[] buffer, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a command iterator.  Must be freed with CloseHandle().
 | 
			
		||||
 *
 | 
			
		||||
 * @return				A new command iterator.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:GetCommandIterator();
 | 
			
		||||
native Handle GetCommandIterator();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads a command iterator, then advances to the next command if any.
 | 
			
		||||
@@ -423,12 +437,12 @@ native Handle:GetCommandIterator();
 | 
			
		||||
 * @param descLen		Command description buffer size.
 | 
			
		||||
 * @return				True on success, false if there are no more commands.
 | 
			
		||||
 */
 | 
			
		||||
native bool:ReadCommandIterator(Handle:iter, 
 | 
			
		||||
								String:name[], 
 | 
			
		||||
								nameLen, 
 | 
			
		||||
								&eflags=0, 
 | 
			
		||||
								String:desc[]="", 
 | 
			
		||||
								descLen=0);
 | 
			
		||||
native bool ReadCommandIterator(Handle iter, 
 | 
			
		||||
								char[] name, 
 | 
			
		||||
								int nameLen, 
 | 
			
		||||
								int &eflags=0, 
 | 
			
		||||
								char[] desc="", 
 | 
			
		||||
								int descLen=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether a client has access to a given command string.  The string 
 | 
			
		||||
@@ -447,10 +461,10 @@ native bool:ReadCommandIterator(Handle:iter,
 | 
			
		||||
 *						there is a matching admin command.
 | 
			
		||||
 * @return				True if the client has access, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:CheckCommandAccess(client, 
 | 
			
		||||
							   const String:command[],
 | 
			
		||||
							   flags,
 | 
			
		||||
							   bool:override_only=false);
 | 
			
		||||
native bool CheckCommandAccess(int client, 
 | 
			
		||||
							   const char[] command,
 | 
			
		||||
							   int flags,
 | 
			
		||||
							   bool override_only=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether an admin has access to a given command string.  The string 
 | 
			
		||||
@@ -469,10 +483,10 @@ native bool:CheckCommandAccess(client,
 | 
			
		||||
 *						there is a matching admin command.
 | 
			
		||||
 * @return				True if the admin has access, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:CheckAccess(AdminId:id, 
 | 
			
		||||
							   const String:command[],
 | 
			
		||||
							   flags,
 | 
			
		||||
							   bool:override_only=false);
 | 
			
		||||
native bool CheckAccess(AdminId id, 
 | 
			
		||||
							   const char[] command,
 | 
			
		||||
							   int flags,
 | 
			
		||||
							   bool override_only=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the bitstring of flags of a command.
 | 
			
		||||
@@ -481,7 +495,7 @@ native bool:CheckAccess(AdminId:id,
 | 
			
		||||
 * @return			A bitstring containing the FCVAR_* flags that are enabled 
 | 
			
		||||
 *					or INVALID_FCVAR_FLAGS if command not found.
 | 
			
		||||
 */
 | 
			
		||||
native GetCommandFlags(const String:name[]);
 | 
			
		||||
native int GetCommandFlags(const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the bitstring of flags of a command.
 | 
			
		||||
@@ -490,7 +504,7 @@ native GetCommandFlags(const String:name[]);
 | 
			
		||||
 * @param flags		A bitstring containing the FCVAR_* flags to enable.
 | 
			
		||||
 * @return			True on success, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:SetCommandFlags(const String:name[], flags);
 | 
			
		||||
native bool SetCommandFlags(const char[] name, int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts a ConCommandBase search, traversing the list of ConVars and 
 | 
			
		||||
@@ -512,7 +526,7 @@ native bool:SetCommandFlags(const String:name[], flags);
 | 
			
		||||
 *						On failure, INVALID_HANDLE is returned, and the 
 | 
			
		||||
 *						contents of outputs is undefined.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:FindFirstConCommand(String:buffer[], max_size, &bool:isCommand, &flags=0, String:description[]="", descrmax_size=0);
 | 
			
		||||
native Handle FindFirstConCommand(char[] buffer, int max_size, bool &isCommand, int &flags=0, char[] description="", int descrmax_size=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads the next entry in a ConCommandBase iterator.
 | 
			
		||||
@@ -530,7 +544,7 @@ native Handle:FindFirstConCommand(String:buffer[], max_size, &bool:isCommand, &f
 | 
			
		||||
 *						If no more entries exist, false is returned, and the 
 | 
			
		||||
 *						contents of outputs is undefined.
 | 
			
		||||
 */
 | 
			
		||||
native bool:FindNextConCommand(Handle:search, String:buffer[], max_size, &bool:isCommand, &flags=0, String:description[]="", descrmax_size=0);
 | 
			
		||||
native bool FindNextConCommand(Handle search, char[] buffer, int max_size, bool &isCommand, int &flags=0, char[] description="", int descrmax_size=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds an informational string to the server's public "tags".
 | 
			
		||||
@@ -540,17 +554,15 @@ native bool:FindNextConCommand(Handle:search, String:buffer[], max_size, &bool:i
 | 
			
		||||
 * Note: Currently, this function does nothing because of bugs in the Valve master.
 | 
			
		||||
 *
 | 
			
		||||
 * @param tag			Tag string to append.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native AddServerTag(const String:tag[]);
 | 
			
		||||
native void AddServerTag(const char[] tag);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a tag previously added by the calling plugin.
 | 
			
		||||
 *
 | 
			
		||||
 * @param tag			Tag string to remove.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native RemoveServerTag(const String:tag[]);
 | 
			
		||||
native void RemoveServerTag(const char[] tag);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Callback for command listeners. This is invoked whenever any command
 | 
			
		||||
@@ -597,7 +609,7 @@ typedef CommandListener = function Action (int client, const char[] command, int
 | 
			
		||||
 * @return              True if this feature is available on the current game,
 | 
			
		||||
 *                      false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:AddCommandListener(CommandListener:callback, const String:command[]="");
 | 
			
		||||
native bool AddCommandListener(CommandListener callback, const char[] command="");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a previously added command listener, in reverse order of being added.
 | 
			
		||||
@@ -607,7 +619,7 @@ native bool:AddCommandListener(CommandListener:callback, const String:command[]=
 | 
			
		||||
 *                      The command is case insensitive.
 | 
			
		||||
 * @error				Callback has no active listeners.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveCommandListener(CommandListener:callback, const String:command[]="");
 | 
			
		||||
native void RemoveCommandListener(CommandListener callback, const char[] command="");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns true if the supplied command exists.
 | 
			
		||||
@@ -615,7 +627,7 @@ native RemoveCommandListener(CommandListener:callback, const String:command[]=""
 | 
			
		||||
 * @param command	Command to find.
 | 
			
		||||
 * @return			True if command is found, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:CommandExists(const String:command[])
 | 
			
		||||
stock bool CommandExists(const char[] command)
 | 
			
		||||
{
 | 
			
		||||
	return (GetCommandFlags(command) != INVALID_FCVAR_FLAGS);
 | 
			
		||||
}
 | 
			
		||||
@@ -629,7 +641,7 @@ stock bool:CommandExists(const String:command[])
 | 
			
		||||
 * @return				An Action value. Returning Plugin_Handled bypasses the game function call.
 | 
			
		||||
							Returning Plugin_Stop bypasses the post hook as well as the game function.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnClientSayCommand(client, const String:command[], const String:sArgs[]);
 | 
			
		||||
forward Action OnClientSayCommand(int client, const char[] command, const char[] sArgs);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Global post listener for the chat commands.
 | 
			
		||||
@@ -637,6 +649,5 @@ forward Action:OnClientSayCommand(client, const String:command[], const String:s
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param command		Command name.
 | 
			
		||||
 * @param sArgs			Chat argument string.
 | 
			
		||||
 * 
 | 
			
		||||
 */
 | 
			
		||||
forward void OnClientSayCommand_Post(int client, const char[] command, const char[] sArgs);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								env/include/convars.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								env/include/convars.inc
									
									
									
									
										vendored
									
									
								
							@@ -30,6 +30,11 @@
 | 
			
		||||
 * Version: $Id$
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if defined _convars_included
 | 
			
		||||
	#endinput
 | 
			
		||||
#endif
 | 
			
		||||
#define _convars_included
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Console variable bound values used with Get/SetConVarBounds()
 | 
			
		||||
 */
 | 
			
		||||
@@ -211,7 +216,7 @@ methodmap ConVar < Handle
 | 
			
		||||
	//
 | 
			
		||||
	// @param name       Buffer to store the name of the convar.
 | 
			
		||||
	// @param maxlength  Maximum length of string buffer.
 | 
			
		||||
	public native void GetName(char[] name, maxlength);
 | 
			
		||||
	public native void GetName(char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
	// Replicates a convar value to a specific client. This does not change the actual convar value.
 | 
			
		||||
	//
 | 
			
		||||
@@ -400,7 +405,7 @@ native int GetConVarFlags(Handle convar);
 | 
			
		||||
 * @param flags			A bitstring containing the FCVAR_* flags to enable.
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void SetConVarFlags(Handle convar, flags);
 | 
			
		||||
native void SetConVarFlags(Handle convar, int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the specified bound of a console variable.
 | 
			
		||||
@@ -432,7 +437,7 @@ native void SetConVarBounds(Handle convar, ConVarBounds type, bool set, float va
 | 
			
		||||
 * @param maxlength		Maximum length of string buffer.
 | 
			
		||||
 * @error				Invalid or corrupt Handle.     
 | 
			
		||||
 */
 | 
			
		||||
native void GetConVarName(Handle convar, char[] name, maxlength);
 | 
			
		||||
native void GetConVarName(Handle convar, char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Replicates a convar value to a specific client. This does not change the actual convar value.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								env/include/core.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								env/include/core.inc
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 * vim: set ts=4 :
 | 
			
		||||
 * vim: set ts=4 sw=4 tw=99 noet:
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 * SourceMod (C)2004-2008 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
@@ -69,7 +69,7 @@ enum Identity
 | 
			
		||||
	Identity_Plugin = 2
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
public PlVers:__version = 
 | 
			
		||||
public PlVers __version = 
 | 
			
		||||
{
 | 
			
		||||
	version = SOURCEMOD_PLUGINAPI_VERSION,
 | 
			
		||||
	filevers = SOURCEMOD_VERSION,
 | 
			
		||||
@@ -92,13 +92,14 @@ enum PluginStatus
 | 
			
		||||
	Plugin_Created,			/**< Plugin is created but not initialized */
 | 
			
		||||
	Plugin_Uncompiled,		/**< Plugin is not yet compiled by the JIT */
 | 
			
		||||
	Plugin_BadLoad,			/**< Plugin failed to load */
 | 
			
		||||
	Plugin_Evicted			/**< Plugin was unloaded due to an error */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Plugin information properties. Plugins can declare a global variable with
 | 
			
		||||
 * their info. Example,
 | 
			
		||||
 *
 | 
			
		||||
 *   public Plugin:myinfo = {
 | 
			
		||||
 *   public Plugin myinfo = {
 | 
			
		||||
 *   	name = "Admin Help",
 | 
			
		||||
 *   	author = "AlliedModders LLC",
 | 
			
		||||
 *   	description = "Display command information",
 | 
			
		||||
@@ -114,7 +115,7 @@ enum PluginInfo
 | 
			
		||||
	PlInfo_Name,			/**< Plugin name */
 | 
			
		||||
	PlInfo_Author,			/**< Plugin author */
 | 
			
		||||
	PlInfo_Description,		/**< Plugin description */
 | 
			
		||||
	PlInfo_Version,			/**< Plugin verison */
 | 
			
		||||
	PlInfo_Version,			/**< Plugin version */
 | 
			
		||||
	PlInfo_URL,				/**< Plugin URL */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -139,13 +140,13 @@ struct SharedPlugin
 | 
			
		||||
	public bool required;		/**< Whether or not to require */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
public Float:NULL_VECTOR[3];		/**< Pass this into certain functions to act as a C++ NULL */
 | 
			
		||||
public const String:NULL_STRING[1];	/**< pass this into certain functions to act as a C++ NULL */
 | 
			
		||||
public float NULL_VECTOR[3];		/**< Pass this into certain functions to act as a C++ NULL */
 | 
			
		||||
public const char NULL_STRING[1];	/**< pass this into certain functions to act as a C++ NULL */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Horrible compatibility shim.
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_core = 
 | 
			
		||||
public Extension __ext_core = 
 | 
			
		||||
{
 | 
			
		||||
	name = "Core",
 | 
			
		||||
	file = "core",
 | 
			
		||||
@@ -153,7 +154,7 @@ public Extension:__ext_core =
 | 
			
		||||
	required = 0,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
native VerifyCoreVersion();
 | 
			
		||||
native int VerifyCoreVersion();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a native as optional, such that if it is unloaded, removed,
 | 
			
		||||
@@ -161,11 +162,10 @@ native VerifyCoreVersion();
 | 
			
		||||
 * removed natives results in a run-time error.
 | 
			
		||||
 *
 | 
			
		||||
 * @param name			Native name.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native MarkNativeAsOptional(const String:name[]);
 | 
			
		||||
native void MarkNativeAsOptional(const char[] name);
 | 
			
		||||
 | 
			
		||||
public __ext_core_SetNTVOptional()
 | 
			
		||||
public void __ext_core_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("GetFeatureStatus");
 | 
			
		||||
	MarkNativeAsOptional("RequireFeature");
 | 
			
		||||
@@ -291,7 +291,10 @@ public __ext_core_SetNTVOptional()
 | 
			
		||||
	MarkNativeAsOptional("Protobuf.ReadMessage");
 | 
			
		||||
	MarkNativeAsOptional("Protobuf.ReadRepeatedMessage");
 | 
			
		||||
	MarkNativeAsOptional("Protobuf.AddMessage");
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	MarkNativeAsOptional("IsCommandCallback");
 | 
			
		||||
	MarkNativeAsOptional("GetLastProcessTargetString");
 | 
			
		||||
 | 
			
		||||
	VerifyCoreVersion();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										74
									
								
								env/include/cstrike.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								env/include/cstrike.inc
									
									
									
									
										vendored
									
									
								
							@@ -51,8 +51,8 @@
 | 
			
		||||
enum CSRoundEndReason
 | 
			
		||||
{
 | 
			
		||||
	CSRoundEnd_TargetBombed = 0,           /**< Target Successfully Bombed! */
 | 
			
		||||
	CSRoundEnd_VIPEscaped,                 /**< The VIP has escaped! */
 | 
			
		||||
	CSRoundEnd_VIPKilled,                  /**< VIP has been assassinated! */
 | 
			
		||||
	CSRoundEnd_VIPEscaped,                 /**< The VIP has escaped! - Doesn't exist on CS:GO */
 | 
			
		||||
	CSRoundEnd_VIPKilled,                  /**< VIP has been assassinated! - Doesn't exist on CS:GO */
 | 
			
		||||
	CSRoundEnd_TerroristsEscaped,          /**< The terrorists have escaped! */
 | 
			
		||||
	CSRoundEnd_CTStoppedEscape,            /**< The CTs have prevented most of the terrorists from escaping! */
 | 
			
		||||
	CSRoundEnd_TerroristsStopped,          /**< Escaping terrorists have all been neutralized! */
 | 
			
		||||
@@ -64,12 +64,14 @@ enum CSRoundEndReason
 | 
			
		||||
	CSRoundEnd_TargetSaved,                /**< Target has been saved! */
 | 
			
		||||
	CSRoundEnd_HostagesNotRescued,         /**< Hostages have not been rescued! */
 | 
			
		||||
	CSRoundEnd_TerroristsNotEscaped,       /**< Terrorists have not escaped! */
 | 
			
		||||
	CSRoundEnd_VIPNotEscaped,              /**< VIP has not escaped! */
 | 
			
		||||
	CSRoundEnd_VIPNotEscaped,              /**< VIP has not escaped! - Doesn't exist on CS:GO */
 | 
			
		||||
	CSRoundEnd_GameStart,                  /**< Game Commencing! */
 | 
			
		||||
	
 | 
			
		||||
	// The below only exist on CS:GO
 | 
			
		||||
	CSRoundEnd_TerroristsSurrender,        /**< Terrorists Surrender */
 | 
			
		||||
	CSRoundEnd_CTSurrender,                /**< CTs Surrender */
 | 
			
		||||
	CSRoundEnd_TerroristsPlanted,		   /**< Terrorists Planted the bomb */
 | 
			
		||||
	CSRoundEnd_CTsReachedHostage,		   /**< CTs Reached the hostage */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum CSWeaponID
 | 
			
		||||
@@ -139,17 +141,17 @@ enum CSWeaponID
 | 
			
		||||
 * @param client	Client index
 | 
			
		||||
 * @param weapon	User input for weapon name
 | 
			
		||||
 */
 | 
			
		||||
forward Action:CS_OnBuyCommand(client, const String:weapon[]);
 | 
			
		||||
forward Action CS_OnBuyCommand(int client, const char[] weapon);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when CSWeaponDrop is called
 | 
			
		||||
 * Return Plugin_Continue to allow the call or return a
 | 
			
		||||
 * higher action to deny.
 | 
			
		||||
 * higher action to block.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client	Client index
 | 
			
		||||
 * @param weaponIndex	Weapon index
 | 
			
		||||
 */
 | 
			
		||||
forward Action:CS_OnCSWeaponDrop(client, weaponIndex);
 | 
			
		||||
forward Action CS_OnCSWeaponDrop(int client, int weaponIndex);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when game retrieves a weapon's price for a player.
 | 
			
		||||
@@ -164,7 +166,7 @@ forward Action:CS_OnCSWeaponDrop(client, weaponIndex);
 | 
			
		||||
 *
 | 
			
		||||
 * @note			Not all "weapons" call GetWeaponPrice. Example: c4, knife, vest, vest helmet, night vision.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:CS_OnGetWeaponPrice(client, const String:weapon[], &price);
 | 
			
		||||
forward Action CS_OnGetWeaponPrice(int client, const char[] weapon, int &price);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when TerminateRound is called.
 | 
			
		||||
@@ -175,26 +177,24 @@ forward Action:CS_OnGetWeaponPrice(client, const String:weapon[], &price);
 | 
			
		||||
 * @param delay		Time (in seconds) until new round starts
 | 
			
		||||
 * @param reason	Reason for round end
 | 
			
		||||
 */
 | 
			
		||||
forward Action:CS_OnTerminateRound(&Float:delay, &CSRoundEndReason:reason);
 | 
			
		||||
forward Action CS_OnTerminateRound(float &delay, CSRoundEndReason &reason);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Respawns a player.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid client index, client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native CS_RespawnPlayer(client);
 | 
			
		||||
native void CS_RespawnPlayer(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Switches the player's team.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param team			Team index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid client index, client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native CS_SwitchTeam(client, team);
 | 
			
		||||
native void CS_SwitchTeam(int client, int team);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Forces a player to drop or toss their weapon
 | 
			
		||||
@@ -204,10 +204,9 @@ native CS_SwitchTeam(client, team);
 | 
			
		||||
 * @param toss			True to toss weapon (with velocity) or false to just drop weapon
 | 
			
		||||
 * @param blockhook		Set to true to stop the corresponding CS_OnCSWeaponDrop
 | 
			
		||||
 * 
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or invalid weapon index.
 | 
			
		||||
 */
 | 
			
		||||
native CS_DropWeapon(client, weaponIndex, bool:toss, bool:blockhook = false);
 | 
			
		||||
native void CS_DropWeapon(int client, int weaponIndex, bool toss, bool blockhook = false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Forces round to end with a reason
 | 
			
		||||
@@ -216,9 +215,8 @@ native CS_DropWeapon(client, weaponIndex, bool:toss, bool:blockhook = false);
 | 
			
		||||
 * @param reason		Reason for the round ending
 | 
			
		||||
 * @param blockhook		Set to true to stop the corresponding CS_OnTerminateRound
 | 
			
		||||
 *						forward from being called.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native CS_TerminateRound(Float:delay, CSRoundEndReason:reason, bool:blockhook = false);
 | 
			
		||||
native void CS_TerminateRound(float delay, CSRoundEndReason reason, bool blockhook = false);
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a weapon name from a weapon alias
 | 
			
		||||
@@ -226,11 +224,10 @@ native CS_TerminateRound(Float:delay, CSRoundEndReason:reason, bool:blockhook =
 | 
			
		||||
 * @param alias			Weapons alias to get weapon name for.
 | 
			
		||||
 * @param weapon		Buffer to store weapons name
 | 
			
		||||
 * @param size			Size of buffer to store the weapons name.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 *
 | 
			
		||||
 * @note				Will set the buffer to the original alias if it is not an alias to a weapon.
 | 
			
		||||
 */
 | 
			
		||||
native CS_GetTranslatedWeaponAlias(const String:alias[], String:weapon[], size);
 | 
			
		||||
native void CS_GetTranslatedWeaponAlias(const char[] alias, char[] weapon, int size);
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a weapon's price
 | 
			
		||||
@@ -243,7 +240,7 @@ native CS_GetTranslatedWeaponAlias(const String:alias[], String:weapon[], size);
 | 
			
		||||
 * @error				Invalid client, failing to get weapon info, or failing to get price offset.
 | 
			
		||||
 * @note				c4, knife and shield will always return 0. vest, vest helmet and night vision will always return default price.
 | 
			
		||||
 */
 | 
			
		||||
native CS_GetWeaponPrice(client, CSWeaponID:id, bool:defaultprice = false);
 | 
			
		||||
native int CS_GetWeaponPrice(int client, CSWeaponID id, bool defaultprice = false);
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a clients clan tag
 | 
			
		||||
@@ -254,17 +251,16 @@ native CS_GetWeaponPrice(client, CSWeaponID:id, bool:defaultprice = false);
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_GetClientClanTag(client, String:buffer[], size);
 | 
			
		||||
native int CS_GetClientClanTag(int client, char[] buffer, int size);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a clients clan tag
 | 
			
		||||
 * @param client		Client index to set clan tag for.
 | 
			
		||||
 * @param tag			Tag to set clients clan tag as.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_SetClientClanTag(client, const String:tag[]);
 | 
			
		||||
native void CS_SetClientClanTag(int client, const char[] tag);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a team's score
 | 
			
		||||
@@ -273,18 +269,17 @@ native CS_SetClientClanTag(client, const String:tag[]);
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid team index.
 | 
			
		||||
 */
 | 
			
		||||
native CS_GetTeamScore(team);
 | 
			
		||||
native int CS_GetTeamScore(int team);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a team's score
 | 
			
		||||
 * @param team			Team index to set score for.
 | 
			
		||||
 * @param value			Value to set teams score as.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid team index.
 | 
			
		||||
 * @note				This will update the scoreboard only after the scoreboard update function is called. Use SetTeamScore plus this to update the scoreboard instantly and save values correctly.
 | 
			
		||||
 */
 | 
			
		||||
native CS_SetTeamScore(team, value);
 | 
			
		||||
native void CS_SetTeamScore(int team, int value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a client's mvp count
 | 
			
		||||
@@ -293,17 +288,16 @@ native CS_SetTeamScore(team, value);
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_GetMVPCount(client);
 | 
			
		||||
native int CS_GetMVPCount(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a client's mvp count
 | 
			
		||||
 * @param client		Client index to set mvp count for.
 | 
			
		||||
 * @param value			Value to set client's mvp count as.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_SetMVPCount(client, value);
 | 
			
		||||
native void CS_SetMVPCount(int client, int value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a client's contribution score (CS:GO only)
 | 
			
		||||
@@ -312,17 +306,16 @@ native CS_SetMVPCount(client, value);
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_GetClientContributionScore(client);
 | 
			
		||||
native int CS_GetClientContributionScore(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a client's contribution score (CS:GO only)
 | 
			
		||||
 * @param client		Client index to set score for.
 | 
			
		||||
 * @param value			Value to set client's score as.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_SetClientContributionScore(client, value);
 | 
			
		||||
native void CS_SetClientContributionScore(int client, int value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a client's assists (CS:GO only)
 | 
			
		||||
@@ -331,17 +324,16 @@ native CS_SetClientContributionScore(client, value);
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_GetClientAssists(client);
 | 
			
		||||
native int CS_GetClientAssists(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a client's assists (CS:GO only)
 | 
			
		||||
 * @param client		Client index to set assists for.
 | 
			
		||||
 * @param value			Value to set client's assists as.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 *
 | 
			
		||||
 * @error				Invalid client.
 | 
			
		||||
 */
 | 
			
		||||
native CS_SetClientAssists(client, value);
 | 
			
		||||
native void CS_SetClientAssists(int client, int value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a weaponID from a alias
 | 
			
		||||
@@ -350,7 +342,7 @@ native CS_SetClientAssists(client, value);
 | 
			
		||||
 *
 | 
			
		||||
 * @note For best results use CS_GetTranslatedWeaponAlias on the weapon name before passing it.
 | 
			
		||||
 */
 | 
			
		||||
native CSWeaponID:CS_AliasToWeaponID(const String:alias[]);
 | 
			
		||||
native CSWeaponID CS_AliasToWeaponID(const char[] alias);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a alias from a weaponID
 | 
			
		||||
@@ -359,7 +351,7 @@ native CSWeaponID:CS_AliasToWeaponID(const String:alias[]);
 | 
			
		||||
 * @param len			Length of the destination array.
 | 
			
		||||
 * @return				Returns number of cells written.
 | 
			
		||||
 */
 | 
			
		||||
native CS_WeaponIDToAlias(CSWeaponID:weaponID, String:destination[], len);
 | 
			
		||||
native int CS_WeaponIDToAlias(CSWeaponID weaponID, char[] destination, int len);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns weather a WeaponID is valid on the current mod (css or csgo)
 | 
			
		||||
@@ -368,21 +360,20 @@ native CS_WeaponIDToAlias(CSWeaponID:weaponID, String:destination[], len);
 | 
			
		||||
 *
 | 
			
		||||
 * @note This will return false always for CSWeapon_NONE
 | 
			
		||||
 */
 | 
			
		||||
native bool:CS_IsValidWeaponID(CSWeaponID:id);
 | 
			
		||||
native bool CS_IsValidWeaponID(CSWeaponID id);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a player's model based on their current class
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid client index, client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native CS_UpdateClientModel(client);
 | 
			
		||||
native void CS_UpdateClientModel(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_cstrike = 
 | 
			
		||||
public Extension __ext_cstrike = 
 | 
			
		||||
{
 | 
			
		||||
	name = "cstrike",
 | 
			
		||||
	file = "games/game.cstrike.ext",
 | 
			
		||||
@@ -395,7 +386,7 @@ public Extension:__ext_cstrike =
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_EXTENSIONS
 | 
			
		||||
public __ext_cstrike_SetNTVOptional()
 | 
			
		||||
public void __ext_cstrike_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("CS_RespawnPlayer");
 | 
			
		||||
	MarkNativeAsOptional("CS_SwitchTeam");
 | 
			
		||||
@@ -419,4 +410,3 @@ public __ext_cstrike_SetNTVOptional()
 | 
			
		||||
	MarkNativeAsOptional("CS_UpdateClientModel");
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										111
									
								
								env/include/datapack.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										111
									
								
								env/include/datapack.inc
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 * vim: set ts=4 :
 | 
			
		||||
 * vim: set ts=4 sw=4 tw=99 noet :
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 * SourceMod (C)2004-2008 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
@@ -35,6 +35,77 @@
 | 
			
		||||
#endif
 | 
			
		||||
#define _datapack_included
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Opaque handle to a datapack position.
 | 
			
		||||
 */
 | 
			
		||||
 enum DataPackPos: {};
 | 
			
		||||
 | 
			
		||||
// A DataPack allows serializing multiple variables into a single stream.
 | 
			
		||||
methodmap DataPack < Handle
 | 
			
		||||
{
 | 
			
		||||
	// Creates a new data pack.
 | 
			
		||||
	public native DataPack();
 | 
			
		||||
 | 
			
		||||
	// Packs a normal cell into a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param cell		Cell to add.
 | 
			
		||||
	public native void WriteCell(any cell);
 | 
			
		||||
 | 
			
		||||
	// Packs a float into a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param val		Float to add.
 | 
			
		||||
	public native void WriteFloat(float val);
 | 
			
		||||
 | 
			
		||||
	// Packs a string into a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param str		String to add.
 | 
			
		||||
	public native void WriteString(const char[] str);
 | 
			
		||||
 | 
			
		||||
	// Packs a function pointer into a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param fktptr	Function pointer to add.
 | 
			
		||||
	public native void WriteFunction(Function fktptr);
 | 
			
		||||
 | 
			
		||||
	// Reads a cell from a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param pack		Handle to the data pack.
 | 
			
		||||
	public native any ReadCell();
 | 
			
		||||
 | 
			
		||||
	// Reads a float from a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param pack		Handle to the data pack.
 | 
			
		||||
	public native float ReadFloat();
 | 
			
		||||
 | 
			
		||||
	// Reads a string from a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param buffer	Destination string buffer.
 | 
			
		||||
	// @param maxlen	Maximum length of output string buffer.
 | 
			
		||||
	public native void ReadString(char[] buffer, int maxlen);
 | 
			
		||||
 | 
			
		||||
	// Reads a function pointer from a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @return			Function pointer.
 | 
			
		||||
	public native Function ReadFunction();
 | 
			
		||||
 | 
			
		||||
	// Resets the position in a data pack.
 | 
			
		||||
	//
 | 
			
		||||
	// @param clear		If true, clears the contained data.
 | 
			
		||||
	public native void Reset(bool clear=false);
 | 
			
		||||
 | 
			
		||||
	// Returns whether or not a specified number of bytes from the data pack
 | 
			
		||||
	//  position to the end can be read.
 | 
			
		||||
	//
 | 
			
		||||
	// @param bytes		Number of bytes to simulate reading.
 | 
			
		||||
	public native bool IsReadable();
 | 
			
		||||
	
 | 
			
		||||
	// The read or write position in a data pack.
 | 
			
		||||
	property DataPackPos Position {
 | 
			
		||||
		public native get();
 | 
			
		||||
		public native set(DataPackPos pos);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a new data pack.
 | 
			
		||||
 *
 | 
			
		||||
@@ -47,7 +118,6 @@ native DataPack CreateDataPack();
 | 
			
		||||
 *
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @param cell		Cell to add.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native void WritePackCell(Handle pack, any cell);
 | 
			
		||||
@@ -57,7 +127,6 @@ native void WritePackCell(Handle pack, any cell);
 | 
			
		||||
 *
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @param val		Float to add.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native void WritePackFloat(Handle pack, float val);
 | 
			
		||||
@@ -67,7 +136,6 @@ native void WritePackFloat(Handle pack, float val);
 | 
			
		||||
 *
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @param str		String to add.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native void WritePackString(Handle pack, const char[] str);
 | 
			
		||||
@@ -77,7 +145,6 @@ native void WritePackString(Handle pack, const char[] str);
 | 
			
		||||
 *
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @param fktptr	Function pointer to add.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native void WritePackFunction(Handle pack, Function fktptr);
 | 
			
		||||
@@ -106,10 +173,9 @@ native float ReadPackFloat(Handle pack);
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @param buffer	Destination string buffer.
 | 
			
		||||
 * @param maxlen	Maximum length of output string buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid handle, or bounds error.
 | 
			
		||||
 */
 | 
			
		||||
native void ReadPackString(Handle pack, char[] buffer, maxlen);
 | 
			
		||||
native void ReadPackString(Handle pack, char[] buffer, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads a function pointer from a data pack.
 | 
			
		||||
@@ -125,7 +191,6 @@ native Function ReadPackFunction(Handle pack);
 | 
			
		||||
 *
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @param clear		If true, clears the contained data.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native void ResetPack(Handle pack, bool clear=false);
 | 
			
		||||
@@ -134,20 +199,19 @@ native void ResetPack(Handle pack, bool clear=false);
 | 
			
		||||
 * Returns the read or write position in a data pack.
 | 
			
		||||
 *
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @return			Numerical position in the data pack.
 | 
			
		||||
 * @return			Position in the data pack, only usable with calls to SetPackPosition.
 | 
			
		||||
 * @error			Invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native int GetPackPosition(Handle pack);
 | 
			
		||||
native DataPackPos GetPackPosition(Handle pack);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the read/write position in a data pack.
 | 
			
		||||
 *
 | 
			
		||||
 * @param pack		Handle to the data pack.
 | 
			
		||||
 * @param position	New position to set.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @param position	New position to set. Must have been previously retrieved from a call to GetPackPosition.
 | 
			
		||||
 * @error			Invalid handle, or position is beyond the pack bounds.
 | 
			
		||||
 */
 | 
			
		||||
native void SetPackPosition(Handle pack, int position);
 | 
			
		||||
native void SetPackPosition(Handle pack, DataPackPos position);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not a specified number of bytes from the data pack
 | 
			
		||||
@@ -159,24 +223,3 @@ native void SetPackPosition(Handle pack, int position);
 | 
			
		||||
 * @error			Invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native bool IsPackReadable(Handle pack, int bytes);
 | 
			
		||||
 | 
			
		||||
methodmap DataPack < Handle
 | 
			
		||||
{
 | 
			
		||||
	public DataPack() = CreateDataPack;
 | 
			
		||||
	public WriteCell() = WritePackCell;
 | 
			
		||||
	public WriteFloat() = WritePackFloat;
 | 
			
		||||
	public WriteString() = WritePackString;
 | 
			
		||||
	public WriteFunction() = WritePackFunction;
 | 
			
		||||
	public ReadCell() = ReadPackCell;
 | 
			
		||||
	public ReadFloat() = ReadPackFloat;
 | 
			
		||||
	public ReadString() = ReadPackString;
 | 
			
		||||
	public ReadFunction() = ReadPackFunction;
 | 
			
		||||
	public Reset() = ResetPack;
 | 
			
		||||
	public IsReadable() = IsPackReadable;
 | 
			
		||||
	
 | 
			
		||||
	property int Position {
 | 
			
		||||
		public get() = GetPackPosition;
 | 
			
		||||
		public set() = SetPackPosition;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										95
									
								
								env/include/dbi.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										95
									
								
								env/include/dbi.inc
									
									
									
									
										vendored
									
									
								
							@@ -223,7 +223,7 @@ methodmap DBResultSet < Handle
 | 
			
		||||
	// @param field        The field index (starting from 0).
 | 
			
		||||
	// @return             True if data is NULL, false otherwise.
 | 
			
		||||
	// @error              Invalid field index, or no current result set.
 | 
			
		||||
	public native bool IsFieldNull(Handle query, int field);
 | 
			
		||||
	public native bool IsFieldNull(int field);
 | 
			
		||||
 | 
			
		||||
	// Returns the length of a field's data in the current row of a result
 | 
			
		||||
	// set.  This only needs to be called for strings to determine how many
 | 
			
		||||
@@ -236,14 +236,26 @@ methodmap DBResultSet < Handle
 | 
			
		||||
	public native int FetchSize(int field);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Callback for a successful transaction.
 | 
			
		||||
// 
 | 
			
		||||
// @param db            Database handle.
 | 
			
		||||
// @param data          Data value passed to SQL_ExecuteTransaction().
 | 
			
		||||
// @param numQueries    Number of queries executed in the transaction.
 | 
			
		||||
// @param results       An array of Query handle results, one for each of numQueries. They are closed automatically.
 | 
			
		||||
// @param queryData     An array of each data value passed to SQL_AddQuery().
 | 
			
		||||
typedef SQLTxnSuccess = function void (Database db, any data, int numQueries, Handle[] results, any[] queryData);
 | 
			
		||||
typeset SQLTxnSuccess
 | 
			
		||||
{
 | 
			
		||||
	// Callback for a successful transaction.
 | 
			
		||||
	// 
 | 
			
		||||
	// @param db            Database handle.
 | 
			
		||||
	// @param data          Data value passed to SQL_ExecuteTransaction().
 | 
			
		||||
	// @param numQueries    Number of queries executed in the transaction.
 | 
			
		||||
	// @param results       An array of Query handle results, one for each of numQueries. They are closed automatically.
 | 
			
		||||
	// @param queryData     An array of each data value passed to SQL_AddQuery().
 | 
			
		||||
	function void (Database db, any data, int numQueries, Handle[] results, any[] queryData);
 | 
			
		||||
	
 | 
			
		||||
	// Callback for a successful transaction.
 | 
			
		||||
	// 
 | 
			
		||||
	// @param db            Database handle.
 | 
			
		||||
	// @param data          Data value passed to SQL_ExecuteTransaction().
 | 
			
		||||
	// @param numQueries    Number of queries executed in the transaction.
 | 
			
		||||
	// @param results       An array of DBResultSet results, one for each of numQueries. They are closed automatically.
 | 
			
		||||
	// @param queryData     An array of each data value passed to SQL_AddQuery().
 | 
			
		||||
	function void (Database db, any data, int numQueries, DBResultSet[] results, any[] queryData);	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Callback for a failed transaction.
 | 
			
		||||
//
 | 
			
		||||
@@ -376,7 +388,7 @@ methodmap Database < Handle
 | 
			
		||||
	//
 | 
			
		||||
	// The database handle returned through the callback is always a new Handle,
 | 
			
		||||
	// and if necessary, IsSameConnection() should be used to test against other
 | 
			
		||||
	// conenctions.
 | 
			
		||||
	// connections.
 | 
			
		||||
	//
 | 
			
		||||
	// The result handle returned through the callback is temporary and destroyed 
 | 
			
		||||
	// at the end of the callback.
 | 
			
		||||
@@ -399,8 +411,8 @@ methodmap Database < Handle
 | 
			
		||||
	// @param data          An optional value to pass to callbacks.
 | 
			
		||||
	// @param prio          Priority queue to use.
 | 
			
		||||
	public native void Execute(Transaction txn,
 | 
			
		||||
	                           SQLTxnSuccess:onSuccess = INVALID_FUNCTION,
 | 
			
		||||
	                           SQLTxnFailure:onError = INVALID_FUNCTION,
 | 
			
		||||
	                           SQLTxnSuccess onSuccess = INVALID_FUNCTION,
 | 
			
		||||
	                           SQLTxnFailure onError = INVALID_FUNCTION,
 | 
			
		||||
	                           any data = 0,
 | 
			
		||||
	                           DBPriority priority = DBPrio_Normal);
 | 
			
		||||
};
 | 
			
		||||
@@ -436,7 +448,7 @@ stock Database SQL_DefConnect(char[] error, int maxlength, bool persistent=true)
 | 
			
		||||
 * Connects to a database using key value pairs containing the database info.
 | 
			
		||||
 * The key/value pairs should match what would be in databases.cfg.
 | 
			
		||||
 *
 | 
			
		||||
 * I.e. "driver" should be "default" or a driver name (or ommitted for 
 | 
			
		||||
 * I.e. "driver" should be "default" or a driver name (or omitted for 
 | 
			
		||||
 * the default).  For SQLite, only the "database" parameter is needed in addition.
 | 
			
		||||
 * For drivers which require external connections, more of the parameters may be 
 | 
			
		||||
 * needed.
 | 
			
		||||
@@ -455,7 +467,7 @@ stock Database SQL_DefConnect(char[] error, int maxlength, bool persistent=true)
 | 
			
		||||
 */
 | 
			
		||||
native Database SQL_ConnectCustom(Handle keyvalues,
 | 
			
		||||
			  					  char[] error,
 | 
			
		||||
			  					  maxlength,
 | 
			
		||||
			  					  int maxlength,
 | 
			
		||||
			  					  bool persistent);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -475,17 +487,15 @@ native Database SQL_ConnectCustom(Handle keyvalues,
 | 
			
		||||
 */
 | 
			
		||||
stock Database SQLite_UseDatabase(const char[] database,
 | 
			
		||||
			  					  char[] error, 
 | 
			
		||||
			  					  maxlength)
 | 
			
		||||
			  					  int maxlength)
 | 
			
		||||
{
 | 
			
		||||
	Handle kv, db;
 | 
			
		||||
	KeyValues kv = new KeyValues("");
 | 
			
		||||
	kv.SetString("driver", "sqlite");
 | 
			
		||||
	kv.SetString("database", database);
 | 
			
		||||
 | 
			
		||||
	kv = CreateKeyValues("");
 | 
			
		||||
	KvSetString(kv, "driver", "sqlite");
 | 
			
		||||
	KvSetString(kv, "database", database);
 | 
			
		||||
	Database db = SQL_ConnectCustom(kv, error, maxlength, false);
 | 
			
		||||
 | 
			
		||||
	db = SQL_ConnectCustom(kv, error, maxlength, false);
 | 
			
		||||
 | 
			
		||||
	CloseHandle(kv);
 | 
			
		||||
	delete kv;
 | 
			
		||||
 | 
			
		||||
	return db;
 | 
			
		||||
}
 | 
			
		||||
@@ -495,15 +505,15 @@ stock Database SQLite_UseDatabase(const char[] database,
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use SQL_ConnectCustom instead.
 | 
			
		||||
native Handle SQL_ConnectEx(Handle driver, 
 | 
			
		||||
							const String:host[],
 | 
			
		||||
							const String:user[], 
 | 
			
		||||
							const String:pass[],
 | 
			
		||||
							const String:database[],
 | 
			
		||||
							const char[] host,
 | 
			
		||||
							const char[] user, 
 | 
			
		||||
							const char[] pass,
 | 
			
		||||
							const char[] database,
 | 
			
		||||
							char[] error,
 | 
			
		||||
							maxlength,
 | 
			
		||||
							int maxlength,
 | 
			
		||||
							bool persistent=true,
 | 
			
		||||
							port=0,
 | 
			
		||||
							maxTimeout=0);
 | 
			
		||||
							int port=0,
 | 
			
		||||
							int maxTimeout=0);
 | 
			
		||||
							
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a named configuration is present in databases.cfg.
 | 
			
		||||
@@ -533,7 +543,7 @@ native Handle SQL_GetDriver(const char[] name="");
 | 
			
		||||
 * @param ident_length	Maximum length of the buffer.
 | 
			
		||||
 * @return				Driver Handle.
 | 
			
		||||
 */
 | 
			
		||||
native Handle SQL_ReadDriver(Handle database, char[] ident="", ident_length=0);
 | 
			
		||||
native Handle SQL_ReadDriver(Handle database, char[] ident="", int ident_length=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a driver's identification string.
 | 
			
		||||
@@ -543,7 +553,6 @@ native Handle SQL_ReadDriver(Handle database, char[] ident="", ident_length=0);
 | 
			
		||||
 * @param driver		Driver Handle, or INVALID_HANDLE for the default driver.
 | 
			
		||||
 * @param ident			Identification string buffer.
 | 
			
		||||
 * @param maxlength		Maximum length of the buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid Handle other than INVALID_HANDLE.
 | 
			
		||||
 */
 | 
			
		||||
native void SQL_GetDriverIdent(Handle driver, char[] ident, int maxlength);
 | 
			
		||||
@@ -556,7 +565,6 @@ native void SQL_GetDriverIdent(Handle driver, char[] ident, int maxlength);
 | 
			
		||||
 * @param driver		Driver Handle, or INVALID_HANDLE for the default driver.
 | 
			
		||||
 * @param product		Product string buffer.
 | 
			
		||||
 * @param maxlength		Maximum length of the buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid Handle other than INVALID_HANDLE.
 | 
			
		||||
 */
 | 
			
		||||
native void SQL_GetDriverProduct(Handle driver, char[] product, int maxlength);
 | 
			
		||||
@@ -638,8 +646,8 @@ native bool SQL_EscapeString(Handle database,
 | 
			
		||||
stock bool SQL_QuoteString(Handle database,
 | 
			
		||||
						   const char[] string,
 | 
			
		||||
						   char[] buffer,
 | 
			
		||||
						   maxlength,
 | 
			
		||||
						   &written=0)
 | 
			
		||||
						   int maxlength,
 | 
			
		||||
						   int &written=0)
 | 
			
		||||
{
 | 
			
		||||
	return SQL_EscapeString(database, string, buffer, maxlength, written);
 | 
			
		||||
}
 | 
			
		||||
@@ -744,7 +752,7 @@ native int SQL_GetFieldCount(Handle query);
 | 
			
		||||
 * @error				Invalid query Handle, invalid field index, or
 | 
			
		||||
 *						no current result set.
 | 
			
		||||
 */
 | 
			
		||||
native void SQL_FieldNumToName(Handle query, int field, String:name[], int maxlength);
 | 
			
		||||
native void SQL_FieldNumToName(Handle query, int field, char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a field index by name.
 | 
			
		||||
@@ -755,7 +763,7 @@ native void SQL_FieldNumToName(Handle query, int field, String:name[], int maxle
 | 
			
		||||
 * @return				True if found, false if not found.
 | 
			
		||||
 * @error				Invalid query Handle or no current result set.
 | 
			
		||||
 */
 | 
			
		||||
native bool SQL_FieldNameToNum(Handle query, const char[] name, &field);
 | 
			
		||||
native bool SQL_FieldNameToNum(Handle query, const char[] name, int &field);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Fetches a row from the current result set.  This must be 
 | 
			
		||||
@@ -803,7 +811,7 @@ native bool SQL_Rewind(Handle query);
 | 
			
		||||
 *						type conversion requested from the database,
 | 
			
		||||
 *						or no current result set.
 | 
			
		||||
 */
 | 
			
		||||
native int SQL_FetchString(Handle query, int field, char[] buffer, int maxlength,  DBResult &result=DBVal_Error);
 | 
			
		||||
native int SQL_FetchString(Handle query, int field, char[] buffer, int maxlength, DBResult &result=DBVal_Error);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Fetches a float from a field in the current row of a result set.  
 | 
			
		||||
@@ -979,7 +987,7 @@ native void SQL_TConnect(SQLTCallback callback, const char[] name="default", any
 | 
			
		||||
 *
 | 
			
		||||
 * The database Handle returned through the callback is always a new Handle,
 | 
			
		||||
 * and if necessary, SQL_IsSameConnection() should be used to test against
 | 
			
		||||
 * other conenctions.
 | 
			
		||||
 * other connections.
 | 
			
		||||
 *
 | 
			
		||||
 * The query Handle returned through the callback is temporary and destroyed 
 | 
			
		||||
 * at the end of the callback.  If you need to hold onto it, use CloneHandle().
 | 
			
		||||
@@ -1024,13 +1032,12 @@ native int SQL_AddQuery(Transaction txn, const char[] query, any data=0);
 | 
			
		||||
 * @param onError       An optional callback to receive an error message.
 | 
			
		||||
 * @param data          An optional value to pass to callbacks.
 | 
			
		||||
 * @param prio          Priority queue to use.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error               An invalid handle.
 | 
			
		||||
 */
 | 
			
		||||
native SQL_ExecuteTransaction(
 | 
			
		||||
native void SQL_ExecuteTransaction(
 | 
			
		||||
		Handle db,
 | 
			
		||||
		Transaction:txn,
 | 
			
		||||
		SQLTxnSuccess:onSuccess = INVALID_FUNCTION,
 | 
			
		||||
		SQLTxnFailure:onError = INVALID_FUNCTION,
 | 
			
		||||
		Transaction txn,
 | 
			
		||||
		SQLTxnSuccess onSuccess = INVALID_FUNCTION,
 | 
			
		||||
		SQLTxnFailure onError = INVALID_FUNCTION,
 | 
			
		||||
		any data=0,
 | 
			
		||||
		DBPriority:priority=DBPrio_Normal);
 | 
			
		||||
		DBPriority priority=DBPrio_Normal);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										398
									
								
								env/include/entity.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										398
									
								
								env/include/entity.inc
									
									
									
									
										vendored
									
									
								
							@@ -9,7 +9,7 @@
 | 
			
		||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
			
		||||
 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
			
		||||
 * Free Software Foundation.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
			
		||||
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 * Version: $Id$
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
#if defined _entity_included
 | 
			
		||||
 #endinput
 | 
			
		||||
#endif
 | 
			
		||||
@@ -67,9 +67,9 @@ enum PropFieldType
 | 
			
		||||
	PropField_Entity,			/**< Valid for Data fields only (SendProp shows as int) */
 | 
			
		||||
	PropField_Vector,			/**< Valid for SendProp and Data fields */
 | 
			
		||||
	PropField_String,			/**< Valid for SendProp and Data fields */
 | 
			
		||||
	PropField_String_T,			/**< Valid for Data fields.  Read only.  
 | 
			
		||||
									 Note that the size of a string_t is dynamic, and 
 | 
			
		||||
									 thus FindDataMapOffs() will return the constant size 
 | 
			
		||||
	PropField_String_T,			/**< Valid for Data fields.  Read only.
 | 
			
		||||
									 Note that the size of a string_t is dynamic, and
 | 
			
		||||
									 thus FindDataMapOffs() will return the constant size
 | 
			
		||||
									 of the string_t container (which is 32 bits right now).
 | 
			
		||||
								 */
 | 
			
		||||
};
 | 
			
		||||
@@ -79,27 +79,35 @@ enum PropFieldType
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the maximum number of entities.
 | 
			
		||||
 * Returns the maximum number of networked entities.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Maximum number of entities.
 | 
			
		||||
 * Note: For legacy reasons, this only returns the maximum
 | 
			
		||||
 * networked entities (maximum edicts), rather than total
 | 
			
		||||
 * maximum entities.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Maximum number of networked entities.
 | 
			
		||||
 */
 | 
			
		||||
native GetMaxEntities();
 | 
			
		||||
native int GetMaxEntities();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of entities in the server.
 | 
			
		||||
 * Returns the number of networked entities in the server.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: For legacy reasons, this only returns the current count
 | 
			
		||||
 * of networked entities (current edicts), rather than total
 | 
			
		||||
 * count of current entities.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Number of entities in the server.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntityCount();
 | 
			
		||||
native int GetEntityCount();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not an entity is valid.  Returns false
 | 
			
		||||
 * if there is no matching CBaseEntity for this edict index.
 | 
			
		||||
 * if there is no matching CBaseEntity for this entity index.
 | 
			
		||||
 *
 | 
			
		||||
 * @param edict			Index of the entity/edict.
 | 
			
		||||
 * @param entity		Index of the entity.
 | 
			
		||||
 * @return				True if valid, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsValidEntity(edict);
 | 
			
		||||
native bool IsValidEntity(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not an edict index is valid.
 | 
			
		||||
@@ -107,31 +115,30 @@ native bool:IsValidEntity(edict);
 | 
			
		||||
 * @param edict			Index of the edict.
 | 
			
		||||
 * @return				True if valid, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsValidEdict(edict);
 | 
			
		||||
native bool IsValidEdict(int edict);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not an entity is a valid networkable edict.
 | 
			
		||||
 * Returns whether or not an entity has a valid networkable edict.
 | 
			
		||||
 *
 | 
			
		||||
 * @param edict			Index of the edict.
 | 
			
		||||
 * @param edict			Index of the entity.
 | 
			
		||||
 * @return				True if networkable, false if invalid or not networkable.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsEntNetworkable(edict);
 | 
			
		||||
native bool IsEntNetworkable(int entiy);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a new edict (the basis of a networkable entity)
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Index of the edict, 0 on failure.
 | 
			
		||||
 */
 | 
			
		||||
native CreateEdict();
 | 
			
		||||
native int CreateEdict();
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
/**
 | 
			
		||||
 * Removes an edict from the world.
 | 
			
		||||
 *
 | 
			
		||||
 * @param edict			Index of the edict.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid edict index.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveEdict(edict);
 | 
			
		||||
native void RemoveEdict(int edict);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the flags on an edict.  These are not the same as entity flags.
 | 
			
		||||
@@ -140,17 +147,16 @@ native RemoveEdict(edict);
 | 
			
		||||
 * @return				Edict flags.
 | 
			
		||||
 * @error				Invalid edict index.
 | 
			
		||||
 */
 | 
			
		||||
native GetEdictFlags(edict);
 | 
			
		||||
native int GetEdictFlags(int edict);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the flags on an edict.  These are not the same as entity flags.
 | 
			
		||||
 *
 | 
			
		||||
 * @param edict			Index of the entity.
 | 
			
		||||
 * @param flags			Flags to set.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid edict index.
 | 
			
		||||
 */
 | 
			
		||||
native SetEdictFlags(edict, flags);
 | 
			
		||||
native void SetEdictFlags(int edict, int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves an edict classname.
 | 
			
		||||
@@ -160,7 +166,7 @@ native SetEdictFlags(edict, flags);
 | 
			
		||||
 * @param maxlength		Maximum length of the buffer.
 | 
			
		||||
 * @return				True on success, false if there is no classname set.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetEdictClassname(edict, String:clsname[], maxlength);
 | 
			
		||||
native bool GetEdictClassname(int edict, char[] clsname, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves an entity's networkable serverclass name.
 | 
			
		||||
@@ -168,60 +174,59 @@ native bool:GetEdictClassname(edict, String:clsname[], maxlength);
 | 
			
		||||
 *
 | 
			
		||||
 * @param edict			Index of the entity.
 | 
			
		||||
 * @param clsname		Buffer to store the serverclass name.
 | 
			
		||||
 * @param maxlength		Maximum lnegth of the buffer.
 | 
			
		||||
 * @param maxlength		Maximum length of the buffer.
 | 
			
		||||
 * @return				True on success, false if the edict is not networkable.
 | 
			
		||||
 * @error				Invalid edict index.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetEntityNetClass(edict, String:clsname[], maxlength);
 | 
			
		||||
native bool GetEntityNetClass(int edict, char[] clsname, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @section Entity offset functions
 | 
			
		||||
 *
 | 
			
		||||
 * Offsets should be specified in byte distance from the CBaseEntity 
 | 
			
		||||
 * structure, not short (double byte) or integer (four byte) multiples.  
 | 
			
		||||
 * It is somewhat common practice to use offsets aligned to their final 
 | 
			
		||||
 * Offsets should be specified in byte distance from the CBaseEntity
 | 
			
		||||
 * structure, not short (double byte) or integer (four byte) multiples.
 | 
			
		||||
 * It is somewhat common practice to use offsets aligned to their final
 | 
			
		||||
 * type, and thus make sure you are not falling to this error in SourceMod.
 | 
			
		||||
 * For example, if your "integer-aligned" offset was 119, your byte-aligned
 | 
			
		||||
 * offset is 119*4, or 476.
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 * Specifying incorrect offsets or the incorrect data type for an offset
 | 
			
		||||
 * can have fatal consequences.  If you are hardcoding offsets, and the 
 | 
			
		||||
 * can have fatal consequences.  If you are hardcoding offsets, and the
 | 
			
		||||
 * layout of CBaseEntity does not match, you can easily crash the server.
 | 
			
		||||
 *
 | 
			
		||||
 * The reasonable bounds for offsets is greater than or equal to 0 and 
 | 
			
		||||
 * The reasonable bounds for offsets is greater than or equal to 0 and
 | 
			
		||||
 * below 32768.  Offsets out of these bounds will throw an error.  However,
 | 
			
		||||
 * this does not represent any real range, it is simply a sanity check for
 | 
			
		||||
 * illegal values.  Any range outside of the CBaseEntity structure's private
 | 
			
		||||
 * size will cause undefined behaviour or even crash.
 | 
			
		||||
 * size will cause undefined behavior or even crash.
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
 * Marks an entity as state changed.  This can be useful if you set an offset 
 | 
			
		||||
 * and wish for it to be immediately changed over the network.  By default this 
 | 
			
		||||
 * is not done for offset setting functions.  
 | 
			
		||||
 *
 | 
			
		||||
 * @param edict			Index to the edict.
 | 
			
		||||
 * @param offset		Offset to mark as changed.  If 0, 
 | 
			
		||||
 *						the entire edict is marked as changed.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or offset out of bounds.
 | 
			
		||||
 */
 | 
			
		||||
native ChangeEdictState(edict, offset = 0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the integer value at 
 | 
			
		||||
 * Marks an entity as state changed.  This can be useful if you set an offset
 | 
			
		||||
 * and wish for it to be immediately changed over the network.  By default this
 | 
			
		||||
 * is not done for offset setting functions.
 | 
			
		||||
 *
 | 
			
		||||
 * @param edict			Index to the edict.
 | 
			
		||||
 * @param offset		Offset to mark as changed.  If 0,
 | 
			
		||||
 *						the entire edict is marked as changed.
 | 
			
		||||
 * @error				Invalid entity or offset out of bounds.
 | 
			
		||||
 */
 | 
			
		||||
native void ChangeEdictState(int edict, int offset = 0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the integer value at
 | 
			
		||||
 * the given offset.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param size			Number of bytes to read (valid values are 1, 2, or 4).
 | 
			
		||||
 * @return				Value at the given memory location.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntData(entity, offset, size=4);
 | 
			
		||||
native int GetEntData(int entity, int offset, int size=4);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and sets the integer value at 
 | 
			
		||||
 * Peeks into an entity's object data and sets the integer value at
 | 
			
		||||
 * the given offset.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
@@ -229,139 +234,131 @@ native GetEntData(entity, offset, size=4);
 | 
			
		||||
 * @param value			Value to set.
 | 
			
		||||
 * @param size			Number of bytes to write (valid values are 1, 2, or 4).
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @return				Value at the given memory location.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetEntData(entity, offset, any:value, size=4, bool:changeState=false);
 | 
			
		||||
native void SetEntData(int entity, int offset, any value, int size=4, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the float value at 
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the float value at
 | 
			
		||||
 * the given offset.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @return				Value at the given memory location.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetEntDataFloat(entity, offset);
 | 
			
		||||
native float GetEntDataFloat(int entity, int offset);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and sets the float value at 
 | 
			
		||||
 * Peeks into an entity's object data and sets the float value at
 | 
			
		||||
 * the given offset.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param value			Value to set.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @return				Value at the given memory location.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetEntDataFloat(entity, offset, Float:value, bool:changeState=false);
 | 
			
		||||
native void SetEntDataFloat(int entity, int offset, float value, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This function is deprecated.  Use GetEntDataEnt2 instead, for 
 | 
			
		||||
 * This function is deprecated.  Use GetEntDataEnt2 instead, for
 | 
			
		||||
 * reasons explained in the notes.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: This function returns 0 on failure, which may be misleading, 
 | 
			
		||||
 * Note: This function returns 0 on failure, which may be misleading,
 | 
			
		||||
 * as the number 0 is also used for the world entity index.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: This function makes no attempt to validate the returned 
 | 
			
		||||
 * Note: This function makes no attempt to validate the returned
 | 
			
		||||
 * entity, and in fact, it could be garbage or completely unexpected.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @return				Entity index at the given location, or 0 if none.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use GetEntDataEnt2() instead.
 | 
			
		||||
native GetEntDataEnt(entity, offset);
 | 
			
		||||
native int GetEntDataEnt(int entity, int offset);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This function is deprecated.   Use SetEntDataEnt2 instead, for 
 | 
			
		||||
 * This function is deprecated.   Use SetEntDataEnt2 instead, for
 | 
			
		||||
 * reasons explained in the notes.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: This function uses 0 as an indicator to unset data, but 
 | 
			
		||||
 * 0 is also the world entity index.  Thus, a property cannot 
 | 
			
		||||
 * Note: This function uses 0 as an indicator to unset data, but
 | 
			
		||||
 * 0 is also the world entity index.  Thus, a property cannot
 | 
			
		||||
 * be set to the world entity using this native.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param other			Entity index to set, or 0 to clear.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use SetEntDataEnt2() instead.
 | 
			
		||||
native SetEntDataEnt(entity, offset, other, bool:changeState=false);
 | 
			
		||||
native void SetEntDataEnt(int entity, int offset, int other, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the entity index 
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the entity index
 | 
			
		||||
 * at the given offset.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: This will only work on offsets that are stored as "entity 
 | 
			
		||||
 * handles" (which usually looks like m_h* in properties).  These 
 | 
			
		||||
 * Note: This will only work on offsets that are stored as "entity
 | 
			
		||||
 * handles" (which usually looks like m_h* in properties).  These
 | 
			
		||||
 * are not SourceMod Handles, but internal Source structures.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @return				Entity index at the given location.  If there is no entity, 
 | 
			
		||||
 * @return				Entity index at the given location.  If there is no entity,
 | 
			
		||||
 *						or the stored entity is invalid, then -1 is returned.
 | 
			
		||||
 * @error				Invalid input entity, or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntDataEnt2(entity, offset);
 | 
			
		||||
native int GetEntDataEnt2(int entity, int offset);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and sets the entity index at the 
 | 
			
		||||
 * Peeks into an entity's object data and sets the entity index at the
 | 
			
		||||
 * given offset.
 | 
			
		||||
 *
 | 
			
		||||
 * Note: This will only work on offsets that are stored as "entity 
 | 
			
		||||
 * handles" (which usually looks like m_h* in properties).  These 
 | 
			
		||||
 * Note: This will only work on offsets that are stored as "entity
 | 
			
		||||
 * handles" (which usually looks like m_h* in properties).  These
 | 
			
		||||
 * are not SourceMod Handles, but internal Source structures.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param other			Entity index to set, or -1 to clear.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid input entity, or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntDataEnt2(entity, offset, other, bool:changeState=false);
 | 
			
		||||
native void SetEntDataEnt2(int entity, int offset, int other, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the vector at the 
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the vector at the
 | 
			
		||||
 * given offset.
 | 
			
		||||
 * @note Both a Vector and a QAngle are three floats.  This is a 
 | 
			
		||||
 * @note Both a Vector and a QAngle are three floats.  This is a
 | 
			
		||||
 * convenience function and will work with both types.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param vec			Vector buffer to store data in.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntDataVector(entity, offset, Float:vec[3]);
 | 
			
		||||
native void GetEntDataVector(int entity, int offset, float vec[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and sets the vector at the given 
 | 
			
		||||
 * Peeks into an entity's object data and sets the vector at the given
 | 
			
		||||
 * offset.
 | 
			
		||||
 * @note Both a Vector and a QAngle are three floats.  This is a 
 | 
			
		||||
 * @note Both a Vector and a QAngle are three floats.  This is a
 | 
			
		||||
 * convenience function and will work with both types.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param vec			Vector to set.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntDataVector(entity, offset, const Float:vec[3], bool:changeState=false);
 | 
			
		||||
native void SetEntDataVector(int entity, int offset, const float vec[3], bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the string at 
 | 
			
		||||
 * Peeks into an entity's object data and retrieves the string at
 | 
			
		||||
 * the given offset.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param buffer		Destination string buffer.
 | 
			
		||||
@@ -369,12 +366,12 @@ native SetEntDataVector(entity, offset, const Float:vec[3], bool:changeState=fal
 | 
			
		||||
 * @return			Number of non-null bytes written.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntDataString(entity, offset, String:buffer[], maxlen);
 | 
			
		||||
native int GetEntDataString(int entity, int offset, char[] buffer, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Peeks into an entity's object data and sets the string at 
 | 
			
		||||
 * Peeks into an entity's object data and sets the string at
 | 
			
		||||
 * the given offset.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param offset		Offset to use.
 | 
			
		||||
 * @param buffer		String to set.
 | 
			
		||||
@@ -383,7 +380,7 @@ native GetEntDataString(entity, offset, String:buffer[], maxlen);
 | 
			
		||||
 * @return			Number of non-null bytes written.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntDataString(entity, offset, const String:buffer[], maxlen, bool:changeState=false);
 | 
			
		||||
native int SetEntDataString(int entity, int offset, const char[] buffer, int maxlen, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @endsection
 | 
			
		||||
@@ -394,44 +391,40 @@ native SetEntDataString(entity, offset, const String:buffer[], maxlen, bool:chan
 | 
			
		||||
 * This information is cached for future calls.
 | 
			
		||||
 *
 | 
			
		||||
 * Note, this function may return offsets that do not work!
 | 
			
		||||
 * If a property is nested beneath a parent object, the resulting offset 
 | 
			
		||||
 * will be invalid for direct use with data functions.  Therefore, you 
 | 
			
		||||
 * should use FindSendPropInfo() instead.  An example of such a property is 
 | 
			
		||||
 * If a property is nested beneath a parent object, the resulting offset
 | 
			
		||||
 * will be invalid for direct use with data functions.  Therefore, you
 | 
			
		||||
 * should use FindSendPropInfo() instead.  An example of such a property is
 | 
			
		||||
 * CTFPlayer::DT_LocalPlayer.m_nDisguiseClass on Team Fortress.
 | 
			
		||||
 *
 | 
			
		||||
 * @param cls			Classname.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @return				An offset, or -1 on failure.
 | 
			
		||||
 */
 | 
			
		||||
native FindSendPropOffs(const String:cls[], const String:prop[]);
 | 
			
		||||
#pragma deprecated Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
 | 
			
		||||
native int FindSendPropOffs(const char[] cls, const char[] prop);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Given a ServerClass name, finds a networkable send property offset.
 | 
			
		||||
 * This information is cached for future calls.
 | 
			
		||||
 * 
 | 
			
		||||
 * Note: This function will correctly compute nested offsets, unlike 
 | 
			
		||||
 * FindSendPropOffs().  YOU SHOULD NOT use this function to self-compute 
 | 
			
		||||
 * nested offsets.  For example, it is okay to add indexes for arrays, 
 | 
			
		||||
 * but not to add DT_LocalPlayer to m_nDisguiseClass.
 | 
			
		||||
 *
 | 
			
		||||
 * @param cls			Classname.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param type			Optional parameter to store the type.
 | 
			
		||||
 * @param num_bits		Optional parameter to store the number of bits the field 
 | 
			
		||||
 *						uses, if applicable (otherwise 0 is stored).  The number 
 | 
			
		||||
 *						of bits varies for integers and floats, and is always 0 
 | 
			
		||||
 * @param num_bits		Optional parameter to store the number of bits the field
 | 
			
		||||
 *						uses, if applicable (otherwise 0 is stored).  The number
 | 
			
		||||
 *						of bits varies for integers and floats, and is always 0
 | 
			
		||||
 * 						for strings.
 | 
			
		||||
 * @param local_offset	Optional parameter to store the local offset, as 
 | 
			
		||||
 * @param local_offset	Optional parameter to store the local offset, as
 | 
			
		||||
 *						FindSendPropOffs() would return.
 | 
			
		||||
 * @return				On success, returns an absolutely computed offset.
 | 
			
		||||
 *						If no offset is available, 0 is returned.
 | 
			
		||||
 *						If the property is not found, -1 is returned.
 | 
			
		||||
 */
 | 
			
		||||
native FindSendPropInfo(const String:cls[], 
 | 
			
		||||
						const String:prop[], 
 | 
			
		||||
						&PropFieldType:type=PropFieldType:0,
 | 
			
		||||
						&num_bits=0,
 | 
			
		||||
						&local_offset=0);
 | 
			
		||||
native int FindSendPropInfo(const char[] cls,
 | 
			
		||||
						const char[] prop,
 | 
			
		||||
						PropFieldType &type=view_as<PropFieldType>(0),
 | 
			
		||||
						int &num_bits=0,
 | 
			
		||||
						int &local_offset=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Given an entity, finds a datamap property offset.
 | 
			
		||||
@@ -440,16 +433,17 @@ native FindSendPropInfo(const String:cls[],
 | 
			
		||||
 * @param entity		Entity index.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param type			Optional parameter to store the type.
 | 
			
		||||
 * @param num_bits		Optional parameter to store the number of bits the field 
 | 
			
		||||
 *						uses.  The bit count will either be 1 (for boolean) or 
 | 
			
		||||
 * @param num_bits		Optional parameter to store the number of bits the field
 | 
			
		||||
 *						uses.  The bit count will either be 1 (for boolean) or
 | 
			
		||||
 *						divisible by 8 (including 0 if unknown).
 | 
			
		||||
 * @return				An offset, or -1 on failure.
 | 
			
		||||
 */
 | 
			
		||||
native FindDataMapOffs(entity, 
 | 
			
		||||
					   const String:prop[],
 | 
			
		||||
					   &PropFieldType:type=PropFieldType:0,
 | 
			
		||||
					   &num_bits=0);
 | 
			
		||||
					   
 | 
			
		||||
#pragma deprecated Use FindDataMapInfo instead, or HasEntProp if you just want to check for existence.
 | 
			
		||||
native int FindDataMapOffs(int entity,
 | 
			
		||||
					   const char[] prop,
 | 
			
		||||
					   PropFieldType &type=view_as<PropFieldType>(0),
 | 
			
		||||
					   int &num_bits=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Given an entity, finds a nested datamap property offset.
 | 
			
		||||
 * This information is cached for future calls.
 | 
			
		||||
@@ -457,18 +451,18 @@ native FindDataMapOffs(entity,
 | 
			
		||||
 * @param entity		Entity index.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param type			Optional parameter to store the type.
 | 
			
		||||
 * @param num_bits		Optional parameter to store the number of bits the field 
 | 
			
		||||
 *						uses.  The bit count will either be 1 (for boolean) or 
 | 
			
		||||
 * @param num_bits		Optional parameter to store the number of bits the field
 | 
			
		||||
 *						uses.  The bit count will either be 1 (for boolean) or
 | 
			
		||||
 *						divisible by 8 (including 0 if unknown).
 | 
			
		||||
 * @param local_offset	Optional parameter to store the local offset, as 
 | 
			
		||||
 * @param local_offset	Optional parameter to store the local offset, as
 | 
			
		||||
 *						FindDataMapOffs() would return.
 | 
			
		||||
 * @return				An offset, or -1 on failure.
 | 
			
		||||
 */
 | 
			
		||||
native FindDataMapInfo(entity, 
 | 
			
		||||
					   const String:prop[],
 | 
			
		||||
					   &PropFieldType:type=PropFieldType:0,
 | 
			
		||||
					   &num_bits=0,
 | 
			
		||||
					   &local_offset=0);
 | 
			
		||||
native int FindDataMapInfo(int entity,
 | 
			
		||||
					   const char[] prop,
 | 
			
		||||
					   PropFieldType &type=view_as<PropFieldType>(0),
 | 
			
		||||
					   int &num_bits=0,
 | 
			
		||||
					   int &local_offset=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Wrapper function for finding a send property for a particular entity.
 | 
			
		||||
@@ -476,72 +470,99 @@ native FindDataMapInfo(entity,
 | 
			
		||||
 * @param ent			Entity index.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param actual		Defaults to false for backwards compatibility.
 | 
			
		||||
 *						If true, the newer FindSendPropInfo() function 
 | 
			
		||||
 *						If true, the newer FindSendPropInfo() function
 | 
			
		||||
 *						is used instead.
 | 
			
		||||
 * @return				An offset, or -1 on failure.
 | 
			
		||||
 */
 | 
			
		||||
stock GetEntSendPropOffs(ent, const String:prop[], bool:actual=false)
 | 
			
		||||
stock int GetEntSendPropOffs(int ent, const char[] prop, bool actual=false)
 | 
			
		||||
{
 | 
			
		||||
	decl String:cls[64];
 | 
			
		||||
	
 | 
			
		||||
	char cls[64];
 | 
			
		||||
 | 
			
		||||
	if (!GetEntityNetClass(ent, cls, sizeof(cls)))
 | 
			
		||||
	{
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	int local = -1;
 | 
			
		||||
	int offset = FindSendPropInfo(cls, prop, _, _, local);
 | 
			
		||||
 | 
			
		||||
	if (actual)
 | 
			
		||||
	{
 | 
			
		||||
		return FindSendPropInfo(cls, prop);
 | 
			
		||||
		return offset;
 | 
			
		||||
	} else {
 | 
			
		||||
		return local;
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		return FindSendPropOffs(cls, prop);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if an entity property exists on an entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @return				Whether the property exists on the entity.
 | 
			
		||||
 * @error				Invalid entity.
 | 
			
		||||
 */
 | 
			
		||||
stock bool HasEntProp(int entity, PropType type, const char[] prop)
 | 
			
		||||
{
 | 
			
		||||
	if (type == Prop_Data) {
 | 
			
		||||
		return (FindDataMapInfo(entity, prop) != -1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (type != Prop_Send) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	char cls[64];
 | 
			
		||||
	if (!GetEntityNetClass(entity, cls, sizeof(cls))) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return (FindSendPropInfo(cls, prop) != -1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves an integer value from an entity's property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over GetEntData, 
 | 
			
		||||
 * This function is considered safer and more robust over GetEntData,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param size			Number of bytes to write (valid values are 1, 2, or 4).
 | 
			
		||||
 *						This value is auto-detected, and the size parameter is 
 | 
			
		||||
 *						This value is auto-detected, and the size parameter is
 | 
			
		||||
 *						only used as a fallback in case detection fails.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @return				Value at the given property offset.
 | 
			
		||||
 * @error				Invalid entity or property not found.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntProp(entity, PropType:type, const String:prop[], size=4, element=0);
 | 
			
		||||
native int GetEntProp(int entity, PropType type, const char[] prop, int size=4, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an integer value in an entity's property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over SetEntData, 
 | 
			
		||||
 * This function is considered safer and more robust over SetEntData,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param value			Value to set.
 | 
			
		||||
 * @param size			Number of bytes to write (valid values are 1, 2, or 4).
 | 
			
		||||
 *						This value is auto-detected, and the size parameter is 
 | 
			
		||||
 *						This value is auto-detected, and the size parameter is
 | 
			
		||||
 *						only used as a fallback in case detection fails.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetEntProp(entity, PropType:type, const String:prop[], any:value, size=4, element=0);
 | 
			
		||||
native void SetEntProp(int entity, PropType type, const char[] prop, any value, int size=4, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a float value from an entity's property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over GetEntDataFloat, 
 | 
			
		||||
 * This function is considered safer and more robust over GetEntDataFloat,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
@@ -549,130 +570,124 @@ native SetEntProp(entity, PropType:type, const String:prop[], any:value, size=4,
 | 
			
		||||
 * @return				Value at the given property offset.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetEntPropFloat(entity, PropType:type, const String:prop[], element=0);
 | 
			
		||||
native float GetEntPropFloat(int entity, PropType type, const char[] prop, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a float value in an entity's property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over SetEntDataFloat, 
 | 
			
		||||
 * This function is considered safer and more robust over SetEntDataFloat,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param value			Value to set.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntPropFloat(entity, PropType:type, const String:prop[], Float:value, element=0);
 | 
			
		||||
native void SetEntPropFloat(int entity, PropType type, const char[] prop, float value, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves an entity index from an entity's property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over GetEntDataEnt*, 
 | 
			
		||||
 * This function is considered safer and more robust over GetEntDataEnt*,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @return				Entity index at the given property.
 | 
			
		||||
 *						If there is no entity, or the entity is not valid, 
 | 
			
		||||
 *						If there is no entity, or the entity is not valid,
 | 
			
		||||
 *						then -1 is returned.
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntPropEnt(entity, PropType:type, const String:prop[], element=0);
 | 
			
		||||
native int GetEntPropEnt(int entity, PropType type, const char[] prop, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an entity index in an entity's property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over SetEntDataEnt*, 
 | 
			
		||||
 * This function is considered safer and more robust over SetEntDataEnt*,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param other			Entity index to set, or -1 to unset.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntPropEnt(entity, PropType:type, const String:prop[], other, element=0);
 | 
			
		||||
native void SetEntPropEnt(int entity, PropType type, const char[] prop, int other, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a vector of floats from an entity, given a named network property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over GetEntDataVector, 
 | 
			
		||||
 * This function is considered safer and more robust over GetEntDataVector,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param vec			Vector buffer to store data in.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity, property not found, or property not 
 | 
			
		||||
 * @error				Invalid entity, property not found, or property not
 | 
			
		||||
 *						actually a vector data type.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntPropVector(entity, PropType:type, const String:prop[], Float:vec[3], element=0);
 | 
			
		||||
native void GetEntPropVector(int entity, PropType type, const char[] prop, float vec[3], int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a vector of floats in an entity, given a named network property.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is considered safer and more robust over SetEntDataVector, 
 | 
			
		||||
 * This function is considered safer and more robust over SetEntDataVector,
 | 
			
		||||
 * because it performs strict offset checking and typing rules.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param vec			Vector to set.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity, property not found, or property not 
 | 
			
		||||
 * @error				Invalid entity, property not found, or property not
 | 
			
		||||
 *						actually a vector data type.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntPropVector(entity, PropType:type, const String:prop[], const Float:vec[3], element=0);
 | 
			
		||||
native void SetEntPropVector(int entity, PropType type, const char[] prop, const float vec[3], int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a network property as a string.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property to use.
 | 
			
		||||
 * @param buffer		Destination string buffer.
 | 
			
		||||
 * @param maxlen		Maximum length of output string buffer.		
 | 
			
		||||
 * @param maxlen		Maximum length of output string buffer.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @return				Number of non-null bytes written.
 | 
			
		||||
 * @error				Invalid entity, offset out of reasonable bounds, or property is not a valid string.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntPropString(entity, PropType:type, const String:prop[], String:buffer[], maxlen, element=0);
 | 
			
		||||
native int GetEntPropString(int entity, PropType type, const char[] prop, char[] buffer, int maxlen, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a network property as a string.
 | 
			
		||||
 *
 | 
			
		||||
 * This cannot set property fields of type PropField_String_T (such as "m_target").
 | 
			
		||||
 * To set such fields, you should use DispatchKeyValue() from SDKTools.
 | 
			
		||||
 * 
 | 
			
		||||
 * @param entity		Edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property to use.
 | 
			
		||||
 * @param buffer		String to set.		
 | 
			
		||||
 * @param buffer		String to set.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @return				Number of non-null bytes written.
 | 
			
		||||
 * @error				Invalid entity, offset out of reasonable bounds, or property is not a valid string.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntPropString(entity, PropType:type, const String:prop[], const String:buffer[]);
 | 
			
		||||
native int SetEntPropString(int entity, PropType type, const char[] prop, const char[] buffer, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the count of values that an entity property's array can store.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity/edict index.
 | 
			
		||||
 * @param type			Property type.
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @return				Size of array (in elements) or 1 if property is not an array.
 | 
			
		||||
 * @error				Invalid entity or property not found.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntPropArraySize(entity, PropType:type, const String:prop[]);
 | 
			
		||||
native int GetEntPropArraySize(int entity, PropType type, const char[] prop);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Copies an array of cells from an entity at a given offset.
 | 
			
		||||
@@ -699,12 +714,11 @@ stock void GetEntDataArray(int entity, int offset, int[] array, int arraySize, i
 | 
			
		||||
 * @param arraySize		Number of values to copy.
 | 
			
		||||
 * @param dataSize		Size of each value in bytes (1, 2, or 4).
 | 
			
		||||
 * @param changeState	True to set the network state as changed; false otherwise.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or offset out of reasonable bounds.
 | 
			
		||||
 */
 | 
			
		||||
stock SetEntDataArray(entity, offset, const array[], arraySize, dataSize=4, bool:changeState=false)
 | 
			
		||||
stock void SetEntDataArray(int entity, int offset, const int[] array, int arraySize, int dataSize=4, bool changeState=false)
 | 
			
		||||
{
 | 
			
		||||
	for (new i=0; i<arraySize; i++)
 | 
			
		||||
	for (int i=0; i<arraySize; i++)
 | 
			
		||||
	{
 | 
			
		||||
		SetEntData(entity, offset + i*dataSize, array[i], dataSize, changeState);
 | 
			
		||||
	}
 | 
			
		||||
@@ -712,12 +726,12 @@ stock SetEntDataArray(entity, offset, const array[], arraySize, dataSize=4, bool
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the memory address of an entity.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity index.
 | 
			
		||||
 * @return				Address of the entity.
 | 
			
		||||
 * @error				Invalid entity.
 | 
			
		||||
 */
 | 
			
		||||
native Address:GetEntityAddress(entity);
 | 
			
		||||
native Address GetEntityAddress(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the classname of an entity.
 | 
			
		||||
@@ -729,7 +743,7 @@ native Address:GetEntityAddress(entity);
 | 
			
		||||
 * @param maxlength		Maximum length of the buffer.
 | 
			
		||||
 * @return				True on success, false if there is no classname set.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:GetEntityClassname(entity, String:clsname[], maxlength)
 | 
			
		||||
stock bool GetEntityClassname(int entity, char[] clsname, int maxlength)
 | 
			
		||||
{
 | 
			
		||||
	return !!GetEntPropString(entity, Prop_Data, "m_iClassname", clsname, maxlength);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										181
									
								
								env/include/entity_prop_stocks.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										181
									
								
								env/include/entity_prop_stocks.inc
									
									
									
									
										vendored
									
									
								
							@@ -176,7 +176,7 @@ enum RenderFx
 | 
			
		||||
 * @return			Entity's flags, see entity flag defines above.
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
native GetEntityFlags(entity);
 | 
			
		||||
native int GetEntityFlags(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an entity's flags.
 | 
			
		||||
@@ -187,10 +187,9 @@ native GetEntityFlags(entity);
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param flags		Entity flags, see entity flag defines above.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntityFlags(entity, flags);
 | 
			
		||||
native void SetEntityFlags(int entity, int flags);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -200,15 +199,15 @@ native SetEntityFlags(entity, flags);
 | 
			
		||||
 * @return			Movetype, see enum above.
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock MoveType:GetEntityMoveType(entity)
 | 
			
		||||
stock MoveType GetEntityMoveType(int entity)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:datamap[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char datamap[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_MoveType", datamap, sizeof(datamap));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_MoveType", datamap, sizeof(datamap));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -219,7 +218,7 @@ stock MoveType:GetEntityMoveType(entity)
 | 
			
		||||
		gotconfig = true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return MoveType:GetEntProp(entity, Prop_Data, datamap);
 | 
			
		||||
	return view_as<MoveType>(GetEntProp(entity, Prop_Data, datamap));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -227,18 +226,17 @@ stock MoveType:GetEntityMoveType(entity)
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param mt		Movetype, see enum above.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock SetEntityMoveType(entity, MoveType:mt)
 | 
			
		||||
stock void SetEntityMoveType(int entity, MoveType mt)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:datamap[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char datamap[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_MoveType", datamap, sizeof(datamap));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_MoveType", datamap, sizeof(datamap));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -259,15 +257,15 @@ stock SetEntityMoveType(entity, MoveType:mt)
 | 
			
		||||
 * @return			RenderMode value.
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock RenderMode:GetEntityRenderMode(entity)
 | 
			
		||||
stock RenderMode GetEntityRenderMode(int entity)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:prop[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char prop[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_nRenderMode", prop, sizeof(prop));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_nRenderMode", prop, sizeof(prop));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -278,7 +276,7 @@ stock RenderMode:GetEntityRenderMode(entity)
 | 
			
		||||
		gotconfig = true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return RenderMode:GetEntProp(entity, Prop_Send, prop, 1);
 | 
			
		||||
	return view_as<RenderMode>(GetEntProp(entity, Prop_Send, prop, 1));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -286,18 +284,17 @@ stock RenderMode:GetEntityRenderMode(entity)
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param mode		RenderMode value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock SetEntityRenderMode(entity, RenderMode:mode)
 | 
			
		||||
stock void SetEntityRenderMode(int entity, RenderMode mode)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:prop[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char prop[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_nRenderMode", prop, sizeof(prop));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_nRenderMode", prop, sizeof(prop));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -318,15 +315,15 @@ stock SetEntityRenderMode(entity, RenderMode:mode)
 | 
			
		||||
 * @return			RenderFx value.
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock RenderFx:GetEntityRenderFx(entity)
 | 
			
		||||
stock RenderFx GetEntityRenderFx(int entity)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:prop[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char prop[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_nRenderFX", prop, sizeof(prop));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_nRenderFX", prop, sizeof(prop));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -337,7 +334,7 @@ stock RenderFx:GetEntityRenderFx(entity)
 | 
			
		||||
		gotconfig = true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return RenderFx:GetEntProp(entity, Prop_Send, prop, 1);
 | 
			
		||||
	return view_as<RenderFx>(GetEntProp(entity, Prop_Send, prop, 1));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -345,18 +342,17 @@ stock RenderFx:GetEntityRenderFx(entity)
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param fx		RenderFx value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock SetEntityRenderFx(entity, RenderFx:fx)
 | 
			
		||||
stock void SetEntityRenderFx(int entity, RenderFx fx)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:prop[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char prop[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_nRenderFX", prop, sizeof(prop));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_nRenderFX", prop, sizeof(prop));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -371,25 +367,24 @@ stock SetEntityRenderFx(entity, RenderFx:fx)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an entity's color.
 | 
			
		||||
 * Gets an entity's color.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param r 		Amount of red (0-255)
 | 
			
		||||
 * @param g 		Amount of green (0-255)
 | 
			
		||||
 * @param b 		Amount of blue (0-255)
 | 
			
		||||
 * @param a 		Amount of alpha (0-255)
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock SetEntityRenderColor(entity, r=255, g=255, b=255, a=255)
 | 
			
		||||
stock void GetEntityRenderColor(int entity, int &r, int &g, int &b, int &a)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:prop[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char prop[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_clrRender", prop, sizeof(prop));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_clrRender", prop, sizeof(prop));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -400,7 +395,49 @@ stock SetEntityRenderColor(entity, r=255, g=255, b=255, a=255)
 | 
			
		||||
		gotconfig = true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	new offset = GetEntSendPropOffs(entity, prop);
 | 
			
		||||
	int offset = GetEntSendPropOffs(entity, prop);
 | 
			
		||||
	
 | 
			
		||||
	if (offset <= 0)
 | 
			
		||||
	{
 | 
			
		||||
		ThrowError("GetEntityRenderColor not supported by this mod");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	r = GetEntData(entity, offset, 1);
 | 
			
		||||
	g = GetEntData(entity, offset + 1, 1);
 | 
			
		||||
	b = GetEntData(entity, offset + 2, 1);
 | 
			
		||||
	a = GetEntData(entity, offset + 3, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an entity's color.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index
 | 
			
		||||
 * @param r 		Amount of red (0-255)
 | 
			
		||||
 * @param g 		Amount of green (0-255)
 | 
			
		||||
 * @param b 		Amount of blue (0-255)
 | 
			
		||||
 * @param a 		Amount of alpha (0-255)
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock void SetEntityRenderColor(int entity, int r=255, int g=255, int b=255, int a=255)
 | 
			
		||||
{
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char prop[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_clrRender", prop, sizeof(prop));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
		{
 | 
			
		||||
			strcopy(prop, sizeof(prop), "m_clrRender");
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		gotconfig = true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	int offset = GetEntSendPropOffs(entity, prop);
 | 
			
		||||
	
 | 
			
		||||
	if (offset <= 0)
 | 
			
		||||
	{
 | 
			
		||||
@@ -420,15 +457,15 @@ stock SetEntityRenderColor(entity, r=255, g=255, b=255, a=255)
 | 
			
		||||
 * @return			Entity's m_flGravity value.
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock Float:GetEntityGravity(entity)
 | 
			
		||||
stock float GetEntityGravity(int entity)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:datamap[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char datamap[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_flGravity", datamap, sizeof(datamap));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_flGravity", datamap, sizeof(datamap));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -447,18 +484,17 @@ stock Float:GetEntityGravity(entity)
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param amount	Gravity to set (default = 1.0, half = 0.5, double = 2.0).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock SetEntityGravity(entity, Float:amount)
 | 
			
		||||
stock void SetEntityGravity(int entity, float amount)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:datamap[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char datamap[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_flGravity", datamap, sizeof(datamap));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_flGravity", datamap, sizeof(datamap));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -477,18 +513,17 @@ stock SetEntityGravity(entity, Float:amount)
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param amount	Health amount.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid entity index, or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock SetEntityHealth(entity, amount)
 | 
			
		||||
stock void SetEntityHealth(int entity, int amount)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:prop[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char prop[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_iHealth", prop, sizeof(prop));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_iHealth", prop, sizeof(prop));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
@@ -499,9 +534,9 @@ stock SetEntityHealth(entity, amount)
 | 
			
		||||
		gotconfig = true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	decl String:cls[64];
 | 
			
		||||
	new PropFieldType:type;
 | 
			
		||||
	new offset;
 | 
			
		||||
	char cls[64];
 | 
			
		||||
	PropFieldType type;
 | 
			
		||||
	int offset;
 | 
			
		||||
	
 | 
			
		||||
	if (!GetEntityNetClass(entity, cls, sizeof(cls)))
 | 
			
		||||
	{
 | 
			
		||||
@@ -536,15 +571,15 @@ stock SetEntityHealth(entity, amount)
 | 
			
		||||
 * @error			Invalid client index, client not in game, 
 | 
			
		||||
 *					or lack of mod compliance.
 | 
			
		||||
 */
 | 
			
		||||
stock GetClientButtons(client)
 | 
			
		||||
stock int GetClientButtons(int client)
 | 
			
		||||
{
 | 
			
		||||
	static bool:gotconfig = false;
 | 
			
		||||
	static String:datamap[32];
 | 
			
		||||
	static bool gotconfig = false;
 | 
			
		||||
	static char datamap[32];
 | 
			
		||||
	
 | 
			
		||||
	if (!gotconfig)
 | 
			
		||||
	{
 | 
			
		||||
		new Handle:gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		new bool:exists = GameConfGetKeyValue(gc, "m_nButtons", datamap, sizeof(datamap));
 | 
			
		||||
		Handle gc = LoadGameConfigFile("core.games");
 | 
			
		||||
		bool exists = GameConfGetKeyValue(gc, "m_nButtons", datamap, sizeof(datamap));
 | 
			
		||||
		CloseHandle(gc);
 | 
			
		||||
		
 | 
			
		||||
		if (!exists)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								env/include/events.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								env/include/events.inc
									
									
									
									
										vendored
									
									
								
							@@ -66,7 +66,6 @@ typeset EventHook
 | 
			
		||||
	//						this event has set the hook mode EventHookMode_PostNoCopy.
 | 
			
		||||
	// @param name			String containing the name of the event.
 | 
			
		||||
	// @param dontBroadcast	True if event was not broadcast to clients, false otherwise.
 | 
			
		||||
	// @noreturn
 | 
			
		||||
	///
 | 
			
		||||
	function void (Event event, const char[] name, bool dontBroadcast);
 | 
			
		||||
};
 | 
			
		||||
@@ -79,6 +78,13 @@ methodmap Event < Handle
 | 
			
		||||
	//
 | 
			
		||||
	// @param dontBroadcast Optional boolean that determines if event should be broadcast to clients.
 | 
			
		||||
	public native void Fire(bool dontBroadcast=false);
 | 
			
		||||
	
 | 
			
		||||
	// Fires a game event to only the specified client.
 | 
			
		||||
	//
 | 
			
		||||
	// Unlike Fire, this function DOES NOT close the event Handle.
 | 
			
		||||
	//
 | 
			
		||||
	// @param client		Index of client to receive the event..
 | 
			
		||||
	public native void FireToClient(int client);
 | 
			
		||||
 | 
			
		||||
	// Cancels a previously created game event that has not been fired. This
 | 
			
		||||
	// is necessary to avoid leaking memory when an event isn't fired.
 | 
			
		||||
@@ -88,7 +94,7 @@ methodmap Event < Handle
 | 
			
		||||
	//
 | 
			
		||||
	// @param key          Name of event key.
 | 
			
		||||
	// @param defValue     Optional default value to use if the key is not found.
 | 
			
		||||
	// @return             The boolean value of the specfied event key.
 | 
			
		||||
	// @return             The boolean value of the specified event key.
 | 
			
		||||
	public native bool GetBool(const char[] key, bool defValue=false);
 | 
			
		||||
 | 
			
		||||
	// Sets the boolean value of a game event's key.
 | 
			
		||||
@@ -101,7 +107,7 @@ methodmap Event < Handle
 | 
			
		||||
	//
 | 
			
		||||
	// @param key          Name of event key.
 | 
			
		||||
	// @param defValue     Optional default value to use if the key is not found.
 | 
			
		||||
	// @return             The integer value of the specfied event key.
 | 
			
		||||
	// @return             The integer value of the specified event key.
 | 
			
		||||
	public native int GetInt(const char[] key, int defValue=0);
 | 
			
		||||
 | 
			
		||||
	// Sets the integer value of a game event's key.
 | 
			
		||||
@@ -119,7 +125,7 @@ methodmap Event < Handle
 | 
			
		||||
	//
 | 
			
		||||
	// @param key          Name of event key.
 | 
			
		||||
	// @param defValue     Optional default value to use if the key is not found.
 | 
			
		||||
	// @return             The floating point value of the specfied event key.
 | 
			
		||||
	// @return             The floating point value of the specified event key.
 | 
			
		||||
	public native float GetFloat(const char[] key, float defValue=0.0);
 | 
			
		||||
 | 
			
		||||
	// Sets the floating point value of a game event's key.
 | 
			
		||||
@@ -163,7 +169,6 @@ methodmap Event < Handle
 | 
			
		||||
 * @param name			Name of event.
 | 
			
		||||
 * @param callback		An EventHook function pointer.
 | 
			
		||||
 * @param mode			Optional EventHookMode determining the type of hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid event name or invalid callback function.
 | 
			
		||||
 */
 | 
			
		||||
native void HookEvent(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
 | 
			
		||||
@@ -185,7 +190,6 @@ native bool HookEventEx(const char[] name, EventHook callback, EventHookMode mod
 | 
			
		||||
 * @param name			Name of event.
 | 
			
		||||
 * @param callback		An EventHook function pointer.
 | 
			
		||||
 * @param mode			Optional EventHookMode determining the type of hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid callback function or no active hook for specified event.
 | 
			
		||||
 */
 | 
			
		||||
native void UnhookEvent(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
 | 
			
		||||
@@ -211,7 +215,6 @@ native Event CreateEvent(const char[] name, bool force=false);
 | 
			
		||||
 *
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param dontBroadcast	Optional boolean that determines if event should be broadcast to clients.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void FireEvent(Handle event, bool dontBroadcast=false);
 | 
			
		||||
@@ -220,7 +223,6 @@ native void FireEvent(Handle event, bool dontBroadcast=false);
 | 
			
		||||
 * Cancels a previously created game event that has not been fired.
 | 
			
		||||
 *
 | 
			
		||||
 * @param event			Handled to the event.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void CancelCreatedEvent(Handle event);
 | 
			
		||||
@@ -231,7 +233,7 @@ native void CancelCreatedEvent(Handle event);
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param key			Name of event key.
 | 
			
		||||
 * @param defValue		Optional default value to use if the key is not found.
 | 
			
		||||
 * @return				The boolean value of the specfied event key.
 | 
			
		||||
 * @return				The boolean value of the specified event key.
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native bool GetEventBool(Handle event, const char[] key, bool defValue=false);
 | 
			
		||||
@@ -242,7 +244,6 @@ native bool GetEventBool(Handle event, const char[] key, bool defValue=false);
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param key			Name of event key.
 | 
			
		||||
 * @param value			New boolean value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void SetEventBool(Handle event, const char[] key, bool value);
 | 
			
		||||
@@ -253,7 +254,7 @@ native void SetEventBool(Handle event, const char[] key, bool value);
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param key			Name of event key.
 | 
			
		||||
 * @param defValue		Optional default value to use if the key is not found.
 | 
			
		||||
 * @return				The integer value of the specfied event key.
 | 
			
		||||
 * @return				The integer value of the specified event key.
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native int GetEventInt(Handle event, const char[] key, int defValue=0);
 | 
			
		||||
@@ -269,7 +270,6 @@ native int GetEventInt(Handle event, const char[] key, int defValue=0);
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param key			Name of event key.
 | 
			
		||||
 * @param value			New integer value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void SetEventInt(Handle event, const char[] key, int value);
 | 
			
		||||
@@ -280,7 +280,7 @@ native void SetEventInt(Handle event, const char[] key, int value);
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param key			Name of event key.
 | 
			
		||||
 * @param defValue		Optional default value to use if the key is not found.
 | 
			
		||||
 * @return				The floating point value of the specfied event key.
 | 
			
		||||
 * @return				The floating point value of the specified event key.
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native float GetEventFloat(Handle event, const char[] key, float defValue=0.0);
 | 
			
		||||
@@ -291,7 +291,6 @@ native float GetEventFloat(Handle event, const char[] key, float defValue=0.0);
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param key			Name of event key.
 | 
			
		||||
 * @param value			New floating point value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void SetEventFloat(Handle event, const char[] key, float value);
 | 
			
		||||
@@ -304,7 +303,6 @@ native void SetEventFloat(Handle event, const char[] key, float value);
 | 
			
		||||
 * @param value			Buffer to store the value of the specified event key.
 | 
			
		||||
 * @param maxlength		Maximum length of string buffer.
 | 
			
		||||
 * @param defValue		Optional default value to use if the key is not found.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void GetEventString(Handle event, const char[] key, char[] value, int maxlength, const char[] defvalue="");
 | 
			
		||||
@@ -315,7 +313,6 @@ native void GetEventString(Handle event, const char[] key, char[] value, int max
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param key			Name of event key.
 | 
			
		||||
 * @param value			New string value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void SetEventString(Handle event, const char[] key, const char[] value);
 | 
			
		||||
@@ -326,7 +323,6 @@ native void SetEventString(Handle event, const char[] key, const char[] value);
 | 
			
		||||
 * @param event			Handle to the event.
 | 
			
		||||
 * @param name			Buffer to store the name of the event.
 | 
			
		||||
 * @param maxlength		Maximum length of string buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.     
 | 
			
		||||
 */
 | 
			
		||||
native void GetEventName(Handle event, char[] name, int maxlength);
 | 
			
		||||
@@ -339,7 +335,6 @@ native void GetEventName(Handle event, char[] name, int maxlength);
 | 
			
		||||
 *
 | 
			
		||||
 * @param event         Handle to an event from an event hook.
 | 
			
		||||
 * @param dontBroadcast True to disable broadcasting, false otherwise.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error               Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void SetEventBroadcast(Handle event, bool dontBroadcast);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								env/include/files.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								env/include/files.inc
									
									
									
									
										vendored
									
									
								
							@@ -55,7 +55,7 @@
 | 
			
		||||
/**
 | 
			
		||||
 * File inode types.
 | 
			
		||||
 */
 | 
			
		||||
enum FileType:
 | 
			
		||||
enum FileType
 | 
			
		||||
{
 | 
			
		||||
	FileType_Unknown = 0,	/* Unknown file type (device/socket) */
 | 
			
		||||
	FileType_Directory = 1,	/* File is a directory */
 | 
			
		||||
@@ -65,7 +65,7 @@ enum FileType:
 | 
			
		||||
/**
 | 
			
		||||
 * File time modes.
 | 
			
		||||
 */
 | 
			
		||||
enum FileTimeMode:
 | 
			
		||||
enum FileTimeMode
 | 
			
		||||
{
 | 
			
		||||
	FileTime_LastAccess = 0,	/* Last access (does not work on FAT) */
 | 
			
		||||
	FileTime_Created = 1,		/* Creation (does not work on FAT) */
 | 
			
		||||
@@ -81,7 +81,7 @@ enum FileTimeMode:
 | 
			
		||||
/**
 | 
			
		||||
 * Path types.
 | 
			
		||||
 */
 | 
			
		||||
enum PathType:
 | 
			
		||||
enum PathType
 | 
			
		||||
{
 | 
			
		||||
	Path_SM,		/**< SourceMod root folder */	
 | 
			
		||||
};
 | 
			
		||||
@@ -167,7 +167,7 @@ methodmap File < Handle
 | 
			
		||||
	// @param format          Formatting rules.
 | 
			
		||||
	// @param ...             Variable number of format parameters.
 | 
			
		||||
	// @return                True on success, false otherwise.
 | 
			
		||||
	public native bool WriteLine(const char[] format, any:...);
 | 
			
		||||
	public native bool WriteLine(const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
	// Reads a single int8 (byte) from a file. The returned value is sign-
 | 
			
		||||
	// extended to an int32.
 | 
			
		||||
@@ -251,7 +251,7 @@ methodmap File < Handle
 | 
			
		||||
 * @param ...			Format arguments.
 | 
			
		||||
 * @return				Number of bytes written to buffer (not including null terminator).
 | 
			
		||||
 */
 | 
			
		||||
native int BuildPath(PathType type, char[] buffer, int maxlength, const char[] fmt, any:...);
 | 
			
		||||
native int BuildPath(PathType type, char[] buffer, int maxlength, const char[] fmt, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Opens a directory/folder for contents enumeration.
 | 
			
		||||
@@ -392,7 +392,7 @@ native bool WriteFile(Handle hndl, const int[] items, int num_items, int size);
 | 
			
		||||
/**
 | 
			
		||||
 * Writes a binary string to a file.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hndl			Handle to th efile.
 | 
			
		||||
 * @param hndl			Handle to the file.
 | 
			
		||||
 * @param buffer		String to write.
 | 
			
		||||
 * @param term			True to append NUL terminator, false otherwise.
 | 
			
		||||
 * @return				True on success, false on error.
 | 
			
		||||
@@ -409,7 +409,7 @@ native bool WriteFileString(Handle hndl, const char[] buffer, bool term);
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native bool WriteFileLine(Handle hndl, const char[] format, any:...);
 | 
			
		||||
native bool WriteFileLine(Handle hndl, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads a single binary cell from a file.
 | 
			
		||||
@@ -584,7 +584,7 @@ native bool CreateDirectory(const char[] path, int mode, bool use_valve_fs=false
 | 
			
		||||
 * @param mode			Permissions to set.
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool SetFilePermissions(const String:path[], int mode);
 | 
			
		||||
native bool SetFilePermissions(const char[] path, int mode);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a file timestamp as a unix timestamp.
 | 
			
		||||
@@ -593,7 +593,7 @@ native bool SetFilePermissions(const String:path[], int mode);
 | 
			
		||||
 * @param tmode			Time mode.
 | 
			
		||||
 * @return				Time value, or -1 on failure.
 | 
			
		||||
 */
 | 
			
		||||
native GetFileTime(const char[] file, FileTimeMode tmode);
 | 
			
		||||
native int GetFileTime(const char[] file, FileTimeMode tmode);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Same as LogToFile(), except uses an open file Handle.  The file must 
 | 
			
		||||
@@ -604,7 +604,7 @@ native GetFileTime(const char[] file, FileTimeMode tmode);
 | 
			
		||||
 * @param ...			Message format parameters.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void LogToOpenFile(Handle hndl, const char[] message, any:...);
 | 
			
		||||
native void LogToOpenFile(Handle hndl, const char[] message, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Same as LogToFileEx(), except uses an open file Handle.  The file must 
 | 
			
		||||
@@ -615,5 +615,4 @@ native void LogToOpenFile(Handle hndl, const char[] message, any:...);
 | 
			
		||||
 * @param ...			Message format parameters.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void LogToOpenFileEx(Handle hndl, const char[] message, any:...);
 | 
			
		||||
 | 
			
		||||
native void LogToOpenFileEx(Handle hndl, const char[] message, any ...);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										149
									
								
								env/include/float.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										149
									
								
								env/include/float.inc
									
									
									
									
										vendored
									
									
								
							@@ -42,7 +42,7 @@
 | 
			
		||||
 * @param value			Integer to convert.
 | 
			
		||||
 * @return				Floating point value.
 | 
			
		||||
 */
 | 
			
		||||
native Float:float(value);
 | 
			
		||||
native float float(int value);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -52,7 +52,7 @@ native Float:float(value);
 | 
			
		||||
 * @param oper2			Second value.
 | 
			
		||||
 * @return				oper1*oper2.
 | 
			
		||||
 */
 | 
			
		||||
native Float:FloatMul(Float:oper1, Float:oper2);
 | 
			
		||||
native float FloatMul(float oper1, float oper2);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Divides the dividend by the divisor.
 | 
			
		||||
@@ -61,7 +61,7 @@ native Float:FloatMul(Float:oper1, Float:oper2);
 | 
			
		||||
 * @param divisor		Second value.
 | 
			
		||||
 * @return				dividend/divisor.
 | 
			
		||||
 */
 | 
			
		||||
native Float:FloatDiv(Float:dividend, Float:divisor);
 | 
			
		||||
native float FloatDiv(float dividend, float divisor);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds two floats together.
 | 
			
		||||
@@ -70,7 +70,7 @@ native Float:FloatDiv(Float:dividend, Float:divisor);
 | 
			
		||||
 * @param oper2			Second value.
 | 
			
		||||
 * @return				oper1+oper2.
 | 
			
		||||
 */
 | 
			
		||||
native Float:FloatAdd(Float:oper1, Float:oper2);
 | 
			
		||||
native float FloatAdd(float oper1, float oper2);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Subtracts oper2 from oper1.
 | 
			
		||||
@@ -79,7 +79,7 @@ native Float:FloatAdd(Float:oper1, Float:oper2);
 | 
			
		||||
 * @param oper2			Second value.
 | 
			
		||||
 * @return				oper1-oper2.
 | 
			
		||||
 */
 | 
			
		||||
native Float:FloatSub(Float:oper1, Float:oper2);
 | 
			
		||||
native float FloatSub(float oper1, float oper2);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the decimal part of a float.
 | 
			
		||||
@@ -87,7 +87,7 @@ native Float:FloatSub(Float:oper1, Float:oper2);
 | 
			
		||||
 * @param value			Input value.
 | 
			
		||||
 * @return				Decimal part.
 | 
			
		||||
 */
 | 
			
		||||
native Float:FloatFraction(Float:value);
 | 
			
		||||
native float FloatFraction(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Rounds a float to the closest integer to zero.
 | 
			
		||||
@@ -95,7 +95,7 @@ native Float:FloatFraction(Float:value);
 | 
			
		||||
 * @param value			Input value to be rounded.
 | 
			
		||||
 * @return				Rounded value.
 | 
			
		||||
 */
 | 
			
		||||
native RoundToZero(Float:value);
 | 
			
		||||
native int RoundToZero(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Rounds a float to the next highest integer value.
 | 
			
		||||
@@ -103,7 +103,7 @@ native RoundToZero(Float:value);
 | 
			
		||||
 * @param value			Input value to be rounded.
 | 
			
		||||
 * @return				Rounded value.
 | 
			
		||||
 */
 | 
			
		||||
native RoundToCeil(Float:value);
 | 
			
		||||
native int RoundToCeil(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Rounds a float to the next lowest integer value.
 | 
			
		||||
@@ -111,7 +111,7 @@ native RoundToCeil(Float:value);
 | 
			
		||||
 * @param value			Input value to be rounded.
 | 
			
		||||
 * @return				Rounded value.
 | 
			
		||||
 */
 | 
			
		||||
native RoundToFloor(Float:value);
 | 
			
		||||
native int RoundToFloor(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Standard IEEE rounding.
 | 
			
		||||
@@ -119,7 +119,7 @@ native RoundToFloor(Float:value);
 | 
			
		||||
 * @param value			Input value to be rounded.
 | 
			
		||||
 * @return				Rounded value.
 | 
			
		||||
 */
 | 
			
		||||
native RoundToNearest(Float:value);
 | 
			
		||||
native int RoundToNearest(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Compares two floats.
 | 
			
		||||
@@ -130,7 +130,7 @@ native RoundToNearest(Float:value);
 | 
			
		||||
 *                      Returns -1 if the first argument is smaller than the second argument.
 | 
			
		||||
 *                      Returns 0 if both arguments are equal.
 | 
			
		||||
 */
 | 
			
		||||
native FloatCompare(Float:fOne, Float:fTwo);
 | 
			
		||||
native int FloatCompare(float fOne, float fTwo);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the square root of the input value, equivalent to floatpower(value, 0.5).
 | 
			
		||||
@@ -138,7 +138,7 @@ native FloatCompare(Float:fOne, Float:fTwo);
 | 
			
		||||
 * @param value			Input value.
 | 
			
		||||
 * @return				Square root of the value.
 | 
			
		||||
 */
 | 
			
		||||
native Float:SquareRoot(Float:value);
 | 
			
		||||
native float SquareRoot(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the value raised to the power of the exponent.
 | 
			
		||||
@@ -147,7 +147,7 @@ native Float:SquareRoot(Float:value);
 | 
			
		||||
 * @param exponent		Value to raise the base.
 | 
			
		||||
 * @return				value^exponent.
 | 
			
		||||
 */
 | 
			
		||||
native Float:Pow(Float:value, Float:exponent);
 | 
			
		||||
native float Pow(float value, float exponent);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the value of raising the input by e.
 | 
			
		||||
@@ -155,7 +155,7 @@ native Float:Pow(Float:value, Float:exponent);
 | 
			
		||||
 * @param value			Input value.
 | 
			
		||||
 * @return				exp(value).
 | 
			
		||||
 */
 | 
			
		||||
native Float:Exponential(Float:value);
 | 
			
		||||
native float Exponential(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the logarithm of any base specified.
 | 
			
		||||
@@ -164,7 +164,7 @@ native Float:Exponential(Float:value);
 | 
			
		||||
 * @param base			Logarithm base to use, default is 10.
 | 
			
		||||
 * @return				log(value)/log(base).
 | 
			
		||||
 */
 | 
			
		||||
native Float:Logarithm(Float:value, Float:base=10.0);
 | 
			
		||||
native float Logarithm(float value, float base=10.0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the sine of the argument.
 | 
			
		||||
@@ -172,7 +172,7 @@ native Float:Logarithm(Float:value, Float:base=10.0);
 | 
			
		||||
 * @param value			Input value in radians.
 | 
			
		||||
 * @return				sin(value).
 | 
			
		||||
 */
 | 
			
		||||
native Float:Sine(Float:value);
 | 
			
		||||
native float Sine(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the cosine of the argument.
 | 
			
		||||
@@ -180,7 +180,7 @@ native Float:Sine(Float:value);
 | 
			
		||||
 * @param value			Input value in radians.
 | 
			
		||||
 * @return				cos(value).
 | 
			
		||||
 */
 | 
			
		||||
native Float:Cosine(Float:value);
 | 
			
		||||
native float Cosine(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the tangent of the argument.
 | 
			
		||||
@@ -188,7 +188,7 @@ native Float:Cosine(Float:value);
 | 
			
		||||
 * @param value			Input value in radians.
 | 
			
		||||
 * @return				tan(value).
 | 
			
		||||
 */
 | 
			
		||||
native Float:Tangent(Float:value);
 | 
			
		||||
native float Tangent(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns an absolute value.
 | 
			
		||||
@@ -196,7 +196,7 @@ native Float:Tangent(Float:value);
 | 
			
		||||
 * @param value			Input value.
 | 
			
		||||
 * @return				Absolute value of the input.
 | 
			
		||||
 */
 | 
			
		||||
native Float:FloatAbs(Float:value);
 | 
			
		||||
native float FloatAbs(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the arctangent of the input value.
 | 
			
		||||
@@ -204,7 +204,7 @@ native Float:FloatAbs(Float:value);
 | 
			
		||||
 * @param angle			Input value.
 | 
			
		||||
 * @return				atan(value) in radians.
 | 
			
		||||
 */
 | 
			
		||||
native Float:ArcTangent(Float:angle);
 | 
			
		||||
native float ArcTangent(float angle);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the arccosine of the input value.
 | 
			
		||||
@@ -212,7 +212,7 @@ native Float:ArcTangent(Float:angle);
 | 
			
		||||
 * @param angle			Input value.
 | 
			
		||||
 * @return				acos(value) in radians.
 | 
			
		||||
 */
 | 
			
		||||
native Float:ArcCosine(Float:angle);
 | 
			
		||||
native float ArcCosine(float angle);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the arcsine of the input value.
 | 
			
		||||
@@ -220,7 +220,7 @@ native Float:ArcCosine(Float:angle);
 | 
			
		||||
 * @param angle			Input value.
 | 
			
		||||
 * @return				asin(value) in radians.
 | 
			
		||||
 */
 | 
			
		||||
native Float:ArcSine(Float:angle);
 | 
			
		||||
native float ArcSine(float angle);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the arctangent2 of the input values.
 | 
			
		||||
@@ -229,7 +229,7 @@ native Float:ArcSine(Float:angle);
 | 
			
		||||
 * @param y				Vertical value.
 | 
			
		||||
 * @return				atan2(value) in radians.
 | 
			
		||||
 */
 | 
			
		||||
native Float:ArcTangent2(Float:x, Float:y);
 | 
			
		||||
native float ArcTangent2(float x, float y);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Rounds a floating point number using the "round to nearest" algorithm.
 | 
			
		||||
@@ -237,140 +237,138 @@ native Float:ArcTangent2(Float:x, Float:y);
 | 
			
		||||
 * @param value			Floating point value to round.
 | 
			
		||||
 * @return				The value rounded to the nearest integer.
 | 
			
		||||
 */
 | 
			
		||||
stock RoundFloat(Float:value)
 | 
			
		||||
stock int RoundFloat(float value)
 | 
			
		||||
{
 | 
			
		||||
	return RoundToNearest(value);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * User defined operators.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
#if !defined __sourcepawn2__
 | 
			
		||||
#pragma rational Float
 | 
			
		||||
 | 
			
		||||
native bool:__FLOAT_GT__(Float:a, Float:b);
 | 
			
		||||
native bool:__FLOAT_GE__(Float:a, Float:b);
 | 
			
		||||
native bool:__FLOAT_LT__(Float:a, Float:b);
 | 
			
		||||
native bool:__FLOAT_LE__(Float:a, Float:b);
 | 
			
		||||
native bool:__FLOAT_EQ__(Float:a, Float:b);
 | 
			
		||||
native bool:__FLOAT_NE__(Float:a, Float:b);
 | 
			
		||||
native bool:__FLOAT_NOT__(Float:a);
 | 
			
		||||
native bool __FLOAT_GT__(float a, float b);
 | 
			
		||||
native bool __FLOAT_GE__(float a, float b);
 | 
			
		||||
native bool __FLOAT_LT__(float a, float b);
 | 
			
		||||
native bool __FLOAT_LE__(float a, float b);
 | 
			
		||||
native bool __FLOAT_EQ__(float a, float b);
 | 
			
		||||
native bool __FLOAT_NE__(float a, float b);
 | 
			
		||||
native bool __FLOAT_NOT__(float a);
 | 
			
		||||
 | 
			
		||||
native Float:operator*(Float:oper1, Float:oper2) = FloatMul;
 | 
			
		||||
native Float:operator/(Float:oper1, Float:oper2) = FloatDiv;
 | 
			
		||||
native Float:operator+(Float:oper1, Float:oper2) = FloatAdd;
 | 
			
		||||
native Float:operator-(Float:oper1, Float:oper2) = FloatSub;
 | 
			
		||||
native bool:operator!(Float:oper1) = __FLOAT_NOT__;
 | 
			
		||||
native bool:operator>(Float:oper1, Float:oper2) = __FLOAT_GT__;
 | 
			
		||||
native bool:operator>=(Float:oper1, Float:oper2) = __FLOAT_GE__;
 | 
			
		||||
native bool:operator<(Float:oper1, Float:oper2) = __FLOAT_LT__;
 | 
			
		||||
native bool:operator<=(Float:oper1, Float:oper2) = __FLOAT_LE__;
 | 
			
		||||
native bool:operator!=(Float:oper1, Float:oper2) = __FLOAT_NE__;
 | 
			
		||||
native bool:operator==(Float:oper1, Float:oper2) = __FLOAT_EQ__;
 | 
			
		||||
native float operator*(float oper1, float oper2) = FloatMul;
 | 
			
		||||
native float operator/(float oper1, float oper2) = FloatDiv;
 | 
			
		||||
native float operator+(float oper1, float oper2) = FloatAdd;
 | 
			
		||||
native float operator-(float oper1, float oper2) = FloatSub;
 | 
			
		||||
native bool operator!(float oper1) = __FLOAT_NOT__;
 | 
			
		||||
native bool operator>(float oper1, float oper2) = __FLOAT_GT__;
 | 
			
		||||
native bool operator>=(float oper1, float oper2) = __FLOAT_GE__;
 | 
			
		||||
native bool operator<(float oper1, float oper2) = __FLOAT_LT__;
 | 
			
		||||
native bool operator<=(float oper1, float oper2) = __FLOAT_LE__;
 | 
			
		||||
native bool operator!=(float oper1, float oper2) = __FLOAT_NE__;
 | 
			
		||||
native bool operator==(float oper1, float oper2) = __FLOAT_EQ__;
 | 
			
		||||
 | 
			
		||||
stock Float:operator++(Float:oper)
 | 
			
		||||
stock float operator++(float oper)
 | 
			
		||||
{
 | 
			
		||||
	return oper+1.0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator--(Float:oper)
 | 
			
		||||
stock float operator--(float oper)
 | 
			
		||||
{
 | 
			
		||||
	return oper-1.0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator-(Float:oper)
 | 
			
		||||
stock float operator-(float oper)
 | 
			
		||||
{
 | 
			
		||||
	return oper^Float:cellmin;				/* IEEE values are sign/magnitude */
 | 
			
		||||
	return oper^view_as<float>(cellmin);				/* IEEE values are sign/magnitude */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator*(Float:oper1, oper2)
 | 
			
		||||
stock float operator*(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return FloatMul(oper1, float(oper2));			/* "*" is commutative */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator/(Float:oper1, oper2)
 | 
			
		||||
stock float operator/(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return FloatDiv(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator/(oper1, Float:oper2)
 | 
			
		||||
stock float operator/(int oper1, float oper2)
 | 
			
		||||
{
 | 
			
		||||
	return FloatDiv(float(oper1), oper2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator+(Float:oper1, oper2)
 | 
			
		||||
stock float operator+(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return FloatAdd(oper1, float(oper2));			/* "+" is commutative */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator-(Float:oper1, oper2)
 | 
			
		||||
stock float operator-(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return FloatSub(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock Float:operator-(oper1, Float:oper2)
 | 
			
		||||
stock float operator-(int oper1, float oper2)
 | 
			
		||||
{
 | 
			
		||||
	return FloatSub(float(oper1), oper2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator==(Float:oper1, oper2)
 | 
			
		||||
stock bool operator==(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_EQ__(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator!=(Float:oper1, oper2)
 | 
			
		||||
stock bool operator!=(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_NE__(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator>(Float:oper1, oper2)
 | 
			
		||||
stock bool operator>(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_GT__(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator>(oper1, Float:oper2)
 | 
			
		||||
stock bool operator>(int oper1, float oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_GT__(float(oper1), oper2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator>=(Float:oper1, oper2)
 | 
			
		||||
stock bool operator>=(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_GE__(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator>=(oper1, Float:oper2)
 | 
			
		||||
stock bool operator>=(int oper1, float oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_GE__(float(oper1), oper2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator<(Float:oper1, oper2)
 | 
			
		||||
stock bool operator<(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_LT__(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator<(oper1, Float:oper2)
 | 
			
		||||
stock bool operator<(int oper1, float oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_LT__(float(oper1), oper2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator<=(Float:oper1, oper2)
 | 
			
		||||
stock bool operator<=(float oper1, int oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_LE__(oper1, float(oper2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stock bool:operator<=(oper1, Float:oper2)
 | 
			
		||||
stock bool operator<=(int oper1, float oper2)
 | 
			
		||||
{
 | 
			
		||||
	return __FLOAT_LE__(float(oper1), oper2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Forbidden operators.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
forward operator%(Float:oper1, Float:oper2);
 | 
			
		||||
forward operator%(Float:oper1, oper2);
 | 
			
		||||
forward operator%(oper1, Float:oper2);
 | 
			
		||||
forward operator%(float oper1, float oper2);
 | 
			
		||||
forward operator%(float oper1, int oper2);
 | 
			
		||||
forward operator%(int oper1, float oper2);
 | 
			
		||||
#endif // __sourcepawn2__
 | 
			
		||||
 | 
			
		||||
#define FLOAT_PI 3.1415926535897932384626433832795
 | 
			
		||||
@@ -381,7 +379,7 @@ forward operator%(oper1, Float:oper2);
 | 
			
		||||
 * @param angle		Degrees.
 | 
			
		||||
 * @return			Radians.
 | 
			
		||||
 */
 | 
			
		||||
stock Float:DegToRad(Float:angle)
 | 
			
		||||
stock float DegToRad(float angle)
 | 
			
		||||
{
 | 
			
		||||
	return (angle*FLOAT_PI)/180;
 | 
			
		||||
}
 | 
			
		||||
@@ -392,7 +390,7 @@ stock Float:DegToRad(Float:angle)
 | 
			
		||||
 * @param angle		Radians.
 | 
			
		||||
 * @return			Degrees.
 | 
			
		||||
 */
 | 
			
		||||
stock Float:RadToDeg(Float:angle)
 | 
			
		||||
stock float RadToDeg(float angle)
 | 
			
		||||
{
 | 
			
		||||
	return (angle*180)/FLOAT_PI;
 | 
			
		||||
}
 | 
			
		||||
@@ -404,7 +402,7 @@ stock Float:RadToDeg(Float:angle)
 | 
			
		||||
 *
 | 
			
		||||
 * @return			Random integer.
 | 
			
		||||
 */
 | 
			
		||||
native GetURandomInt();
 | 
			
		||||
native int GetURandomInt();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a uniform random float in the range [0, 1).
 | 
			
		||||
@@ -413,7 +411,7 @@ native GetURandomInt();
 | 
			
		||||
 *
 | 
			
		||||
 * @return			Uniform random floating-point number.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetURandomFloat();
 | 
			
		||||
native float GetURandomFloat();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Seeds a plugin's uniform random number stream. This is done automatically,
 | 
			
		||||
@@ -421,21 +419,18 @@ native Float:GetURandomFloat();
 | 
			
		||||
 *
 | 
			
		||||
 * @param seeds		Array of numbers to use as seeding data.
 | 
			
		||||
 * @param numSeeds	Number of seeds in the seeds array.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetURandomSeed(const seeds[], numSeeds);
 | 
			
		||||
native void SetURandomSeed(const int[] seeds, int numSeeds);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Seeds a plugin's uniform random number stream. This is done automatically,
 | 
			
		||||
 * so normally it is totally unnecessary to call this.
 | 
			
		||||
 *
 | 
			
		||||
 * @param seed      Single seed value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock SetURandomSeedSimple(seed)
 | 
			
		||||
stock void SetURandomSeedSimple(int seed)
 | 
			
		||||
{
 | 
			
		||||
	new seeds[1];
 | 
			
		||||
	int seeds[1];
 | 
			
		||||
	seeds[0] = seed;
 | 
			
		||||
	SetURandomSeed(seeds, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										105
									
								
								env/include/functions.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										105
									
								
								env/include/functions.inc
									
									
									
									
										vendored
									
									
								
							@@ -88,7 +88,7 @@ enum ExecType
 | 
			
		||||
#define SP_ERROR_INVALID_ADDRESS		5	/**< A memory address was not valid */
 | 
			
		||||
#define SP_ERROR_NOT_FOUND				6	/**< The object in question was not found */
 | 
			
		||||
#define SP_ERROR_INDEX					7	/**< Invalid index parameter */
 | 
			
		||||
#define SP_ERROR_STACKLOW				8	/**< Nnot enough space left on the stack */
 | 
			
		||||
#define SP_ERROR_STACKLOW				8	/**< Not enough space left on the stack */
 | 
			
		||||
#define SP_ERROR_NOTDEBUGGING			9	/**< Debug mode was not on or debug section not found */
 | 
			
		||||
#define SP_ERROR_INVALID_INSTRUCTION	10	/**< Invalid instruction was encountered */
 | 
			
		||||
#define SP_ERROR_MEMACCESS				11	/**< Invalid memory access */
 | 
			
		||||
@@ -120,7 +120,7 @@ enum ExecType
 | 
			
		||||
 * @return 					Function id or INVALID_FUNCTION if not found.
 | 
			
		||||
 * @error					Invalid or corrupt plugin handle.
 | 
			
		||||
 */
 | 
			
		||||
native Function:GetFunctionByName(Handle:plugin, const String:name[]);
 | 
			
		||||
native Function GetFunctionByName(Handle plugin, const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a global forward.
 | 
			
		||||
@@ -136,7 +136,7 @@ native Function:GetFunctionByName(Handle:plugin, const String:name[]);
 | 
			
		||||
 * @return 					Handle to new global forward.
 | 
			
		||||
 * @error					More than 32 paramater types passed.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:CreateGlobalForward(const String:name[], ExecType:type, ParamType:...);
 | 
			
		||||
native Handle CreateGlobalForward(const char[] name, ExecType type, ParamType ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a private forward.
 | 
			
		||||
@@ -150,7 +150,7 @@ native Handle:CreateGlobalForward(const String:name[], ExecType:type, ParamType:
 | 
			
		||||
 * @return 					Handle to new private forward.
 | 
			
		||||
 * @error					More than 32 paramater types passed.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:CreateForward(ExecType:type, ParamType:...);
 | 
			
		||||
native Handle CreateForward(ExecType type, ParamType ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of functions in a global or private forward's call list.
 | 
			
		||||
@@ -159,12 +159,12 @@ native Handle:CreateForward(ExecType:type, ParamType:...);
 | 
			
		||||
 * @return					Number of functions in forward.
 | 
			
		||||
 * @error					Invalid or corrupt forward handle.
 | 
			
		||||
 */
 | 
			
		||||
native GetForwardFunctionCount(Handle:fwd);
 | 
			
		||||
native int GetForwardFunctionCount(Handle fwd);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a function to a private forward's call list.
 | 
			
		||||
 *
 | 
			
		||||
 * @note Cannot be used during an incompleted call.
 | 
			
		||||
 * @note Cannot be used during an incomplete call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param fwd				Handle to private forward.
 | 
			
		||||
 * @param plugin			Handle of the plugin that contains the function.
 | 
			
		||||
@@ -173,7 +173,7 @@ native GetForwardFunctionCount(Handle:fwd);
 | 
			
		||||
 * @return					True on success, false otherwise.
 | 
			
		||||
 * @error					Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
 | 
			
		||||
 */
 | 
			
		||||
native bool:AddToForward(Handle:fwd, Handle:plugin, Function:func);
 | 
			
		||||
native bool AddToForward(Handle fwd, Handle plugin, Function func);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a function from a private forward's call list.
 | 
			
		||||
@@ -188,7 +188,7 @@ native bool:AddToForward(Handle:fwd, Handle:plugin, Function:func);
 | 
			
		||||
 * @return					True on success, false otherwise.
 | 
			
		||||
 * @error					Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
 | 
			
		||||
 */
 | 
			
		||||
native bool:RemoveFromForward(Handle:fwd, Handle:plugin, Function:func);
 | 
			
		||||
native bool RemoveFromForward(Handle fwd, Handle plugin, Function func);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes all instances of a plugin from a private forward's call list.
 | 
			
		||||
@@ -201,31 +201,29 @@ native bool:RemoveFromForward(Handle:fwd, Handle:plugin, Function:func);
 | 
			
		||||
 * @return					Number of functions removed from forward.
 | 
			
		||||
 * @error					Invalid or corrupt private forward handle or invalid or corrupt plugin handle.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveAllFromForward(Handle:fwd, Handle:plugin);
 | 
			
		||||
native int RemoveAllFromForward(Handle fwd, Handle plugin);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts a call to functions in a forward's call list.
 | 
			
		||||
 *
 | 
			
		||||
 * @note Cannot be used during an incompleted call.
 | 
			
		||||
 * @note Cannot be used during an incomplete call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param fwd				Handle to global or private forward.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Invalid or corrupt forward handle or called before another call has completed.
 | 
			
		||||
 */
 | 
			
		||||
native Call_StartForward(Handle:fwd);
 | 
			
		||||
native void Call_StartForward(Handle fwd);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts a call to a function.
 | 
			
		||||
 *
 | 
			
		||||
 * @note Cannot be used during an incompleted call.
 | 
			
		||||
 * @note Cannot be used during an incomplete call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param plugin			Handle of the plugin that contains the function.
 | 
			
		||||
 *							Pass INVALID_HANDLE to specify the calling plugin.
 | 
			
		||||
 * @param func				Function to call.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Invalid or corrupt plugin handle, invalid function, or called before another call has completed.
 | 
			
		||||
 */
 | 
			
		||||
native Call_StartFunction(Handle:plugin, Function:func);
 | 
			
		||||
native void Call_StartFunction(Handle plugin, Function func);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes a cell onto the current call.
 | 
			
		||||
@@ -233,10 +231,9 @@ native Call_StartFunction(Handle:plugin, Function:func);
 | 
			
		||||
 * @note Cannot be used before a call has been started.
 | 
			
		||||
 *
 | 
			
		||||
 * @param value				Cell value to push.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushCell(any:value);
 | 
			
		||||
native void Call_PushCell(any value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes a cell by reference onto the current call.
 | 
			
		||||
@@ -244,10 +241,9 @@ native Call_PushCell(any:value);
 | 
			
		||||
 * @note Cannot be used before a call has been started.
 | 
			
		||||
 *
 | 
			
		||||
 * @param value				Cell reference to push.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushCellRef(&any:value);
 | 
			
		||||
native void Call_PushCellRef(any &value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes a float onto the current call.
 | 
			
		||||
@@ -255,10 +251,9 @@ native Call_PushCellRef(&any:value);
 | 
			
		||||
 * @note Cannot be used before a call has been started.
 | 
			
		||||
 *
 | 
			
		||||
 * @param value				Floating point value to push.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushFloat(Float:value);
 | 
			
		||||
native void Call_PushFloat(float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes a float by reference onto the current call.
 | 
			
		||||
@@ -266,10 +261,9 @@ native Call_PushFloat(Float:value);
 | 
			
		||||
 * @note Cannot be used before a call has been started.
 | 
			
		||||
 *
 | 
			
		||||
 * @param value				Floating point reference to push.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushFloatRef(&Float:value);
 | 
			
		||||
native void Call_PushFloatRef(float &value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes an array onto the current call.
 | 
			
		||||
@@ -279,10 +273,9 @@ native Call_PushFloatRef(&Float:value);
 | 
			
		||||
 *
 | 
			
		||||
 * @param value				Array to push.
 | 
			
		||||
 * @param size				Size of array.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushArray(const any:value[], size);
 | 
			
		||||
native void Call_PushArray(const any[] value, int size);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes an array onto the current call.
 | 
			
		||||
@@ -293,10 +286,9 @@ native Call_PushArray(const any:value[], size);
 | 
			
		||||
 * @param size				Size of array.
 | 
			
		||||
 * @param cpflags			Whether or not changes should be copied back to the input array.
 | 
			
		||||
 *							See SP_PARAM_* constants for details.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushArrayEx(any:value[], size, cpflags);
 | 
			
		||||
native void Call_PushArrayEx(any[] value, int size, int cpflags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes a string onto the current call.
 | 
			
		||||
@@ -305,10 +297,9 @@ native Call_PushArrayEx(any:value[], size, cpflags);
 | 
			
		||||
 * @note Cannot be used before a call has been started.
 | 
			
		||||
 *
 | 
			
		||||
 * @param value				String to push.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushString(const String:value[]);
 | 
			
		||||
native void Call_PushString(const char[] value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Pushes a string onto the current call.
 | 
			
		||||
@@ -318,14 +309,13 @@ native Call_PushString(const String:value[]);
 | 
			
		||||
 * @param value				String to push.
 | 
			
		||||
 * @param length			Length of string buffer.
 | 
			
		||||
 * @param szflags			Flags determining how string should be handled.
 | 
			
		||||
 *							See SP_PARAM_STRING_* constants for details.
 | 
			
		||||
 *							See SM_PARAM_STRING_* constants for details.
 | 
			
		||||
 *							The default (0) is to push ASCII.
 | 
			
		||||
 * @param cpflags			Whether or not changes should be copied back to the input array.
 | 
			
		||||
 *							See SP_PARAM_* constants for details.		
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 *							See SM_PARAM_* constants for details.		
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_PushStringEx(String:value[], length, szflags, cpflags);
 | 
			
		||||
native void Call_PushStringEx(char[] value, int length, int szflags, int cpflags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Completes a call to a function or forward's call list.
 | 
			
		||||
@@ -336,17 +326,16 @@ native Call_PushStringEx(String:value[], length, szflags, cpflags);
 | 
			
		||||
 * @return					SP_ERROR_NONE on success, any other integer on failure.
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_Finish(&any:result=0);
 | 
			
		||||
native int Call_Finish(any &result=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Cancels a call to a function or forward's call list.
 | 
			
		||||
 *
 | 
			
		||||
 * @note Cannot be used before a call has been started.
 | 
			
		||||
 *		
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Called before a call has been started.
 | 
			
		||||
 */
 | 
			
		||||
native Call_Cancel();
 | 
			
		||||
native void Call_Cancel();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines a native function.
 | 
			
		||||
@@ -363,12 +352,11 @@ typedef NativeCall = function int (Handle plugin, int numParams);
 | 
			
		||||
 * Creates a dynamic native.  This should only be called in AskPluginLoad(), or 
 | 
			
		||||
 * else you risk not having your native shared with other plugins.
 | 
			
		||||
 *
 | 
			
		||||
 * @param name				Name of the dynamic native; must be unique amongst
 | 
			
		||||
 * @param name				Name of the dynamic native; must be unique among
 | 
			
		||||
 *							all other registered dynamic natives.
 | 
			
		||||
 * @param func				Function to use as the dynamic native.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native CreateNative(const String:name[], NativeCall:func);
 | 
			
		||||
native void CreateNative(const char[] name, NativeCall func);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Throws an error in the calling plugin of a native, instead of your own plugin.
 | 
			
		||||
@@ -377,7 +365,7 @@ native CreateNative(const String:name[], NativeCall:func);
 | 
			
		||||
 * @param fmt				Error message format.
 | 
			
		||||
 * @param ...				Format arguments.
 | 
			
		||||
 */
 | 
			
		||||
native ThrowNativeError(error, const String:fmt[], any:...);
 | 
			
		||||
native int ThrowNativeError(int error, const char[] fmt, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the string length from a native parameter string.  This is useful 
 | 
			
		||||
@@ -389,7 +377,7 @@ native ThrowNativeError(error, const String:fmt[], any:...);
 | 
			
		||||
 * @return					SP_ERROR_NONE on success, any other integer on failure.
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native GetNativeStringLength(param, &length);
 | 
			
		||||
native int GetNativeStringLength(int param, int &length);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a string from a native parameter.
 | 
			
		||||
@@ -402,7 +390,7 @@ native GetNativeStringLength(param, &length);
 | 
			
		||||
 * @return					SP_ERROR_NONE on success, any other integer on failure.
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native GetNativeString(param, String:buffer[], maxlength, &bytes=0);
 | 
			
		||||
native int GetNativeString(int param, char[] buffer, int maxlength, int &bytes=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a string in a native parameter.
 | 
			
		||||
@@ -417,7 +405,7 @@ native GetNativeString(param, String:buffer[], maxlength, &bytes=0);
 | 
			
		||||
 * @return					SP_ERROR_NONE on success, any other integer on failure.
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native SetNativeString(param, const String:source[], maxlength, bool:utf8=true, &bytes=0);
 | 
			
		||||
native int SetNativeString(int param, const char[] source, int maxlength, bool utf8=true, int &bytes=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a cell from a native parameter.
 | 
			
		||||
@@ -426,7 +414,7 @@ native SetNativeString(param, const String:source[], maxlength, bool:utf8=true,
 | 
			
		||||
 * @return					Cell value at the parameter number.
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native any:GetNativeCell(param);
 | 
			
		||||
native any GetNativeCell(int param);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a function pointer from a native parameter.
 | 
			
		||||
@@ -435,7 +423,7 @@ native any:GetNativeCell(param);
 | 
			
		||||
 * @return                  Function pointer at the given parameter number.
 | 
			
		||||
 * @error                   Invalid parameter number, or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native Function GetNativeFunction(param);
 | 
			
		||||
native Function GetNativeFunction(int param);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a cell from a native parameter, by reference.
 | 
			
		||||
@@ -444,17 +432,16 @@ native Function GetNativeFunction(param);
 | 
			
		||||
 * @return					Cell value at the parameter number.
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native any:GetNativeCellRef(param);
 | 
			
		||||
native any GetNativeCellRef(int param);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a cell from a native parameter, by reference.
 | 
			
		||||
 *
 | 
			
		||||
 * @param param				Parameter number, starting from 1.
 | 
			
		||||
 * @param value				Cell value at the parameter number to set by reference.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native SetNativeCellRef(param, any:value);
 | 
			
		||||
native void SetNativeCellRef(int param, any value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets an array from a native parameter (always by reference).
 | 
			
		||||
@@ -465,7 +452,7 @@ native SetNativeCellRef(param, any:value);
 | 
			
		||||
 * @return					SP_ERROR_NONE on success, anything else on failure.
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native GetNativeArray(param, any:local[], size);
 | 
			
		||||
native int GetNativeArray(int param, any[] local, int size);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Copies a local array into a native parameter array (always by reference).
 | 
			
		||||
@@ -476,7 +463,7 @@ native GetNativeArray(param, any:local[], size);
 | 
			
		||||
 * @return					SP_ERROR_NONE on success, anything else on failure.
 | 
			
		||||
 * @error					Invalid parameter number or calling from a non-native function.
 | 
			
		||||
 */
 | 
			
		||||
native SetNativeArray(param, const any:local[], size);
 | 
			
		||||
native int SetNativeArray(int param, const any[] local, int size);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Formats a string using parameters from a native.
 | 
			
		||||
@@ -494,19 +481,18 @@ native SetNativeArray(param, const any:local[], size);
 | 
			
		||||
 * @param fmt_string		Format string to use if fmt_param is not used.
 | 
			
		||||
 * @return					SP_ERROR_NONE on success, anything else on failure.
 | 
			
		||||
 */
 | 
			
		||||
native FormatNativeString(out_param, 
 | 
			
		||||
						  fmt_param, 
 | 
			
		||||
						  vararg_param, 
 | 
			
		||||
						  out_len,
 | 
			
		||||
						  &written=0,
 | 
			
		||||
						  String:out_string[]="",
 | 
			
		||||
						  const String:fmt_string[]="");
 | 
			
		||||
native int FormatNativeString(int out_param, 
 | 
			
		||||
						  int fmt_param, 
 | 
			
		||||
						  int vararg_param, 
 | 
			
		||||
						  int out_len,
 | 
			
		||||
						  int &written=0,
 | 
			
		||||
						  char[] out_string="",
 | 
			
		||||
						  const char[] fmt_string="");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines a RequestFrame Callback.
 | 
			
		||||
 *
 | 
			
		||||
 * @param data			Data passed to the RequestFrame native.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
typedef RequestFrameCallback = function void (any data);
 | 
			
		||||
 | 
			
		||||
@@ -515,6 +501,5 @@ typedef RequestFrameCallback = function void (any data);
 | 
			
		||||
 *
 | 
			
		||||
 * @param Function	Function to call on the next frame.
 | 
			
		||||
 * @param data			Value to be passed on the invocation of the Function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native RequestFrame(RequestFrameCallback:Function, any:data=0);
 | 
			
		||||
native void RequestFrame(RequestFrameCallback Function, any data=0);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								env/include/geoip.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								env/include/geoip.inc
									
									
									
									
										vendored
									
									
								
							@@ -48,7 +48,7 @@
 | 
			
		||||
 * @param ccode			Destination string buffer to store the code.
 | 
			
		||||
 * @return				True on success, false if no country found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GeoipCode2(const String:ip[], String:ccode[3]);
 | 
			
		||||
native bool GeoipCode2(const char[] ip, char ccode[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the three character country code from an IP address. (USA, CAN, etc)
 | 
			
		||||
@@ -57,7 +57,7 @@ native bool:GeoipCode2(const String:ip[], String:ccode[3]);
 | 
			
		||||
 * @param ccode			Destination string buffer to store the code.
 | 
			
		||||
 * @return				True on success, false if no country found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GeoipCode3(const String:ip[], String:ccode[4]);
 | 
			
		||||
native bool GeoipCode3(const char[] ip, char ccode[4]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the full country name. (max length of output string is 45)
 | 
			
		||||
@@ -67,7 +67,7 @@ native bool:GeoipCode3(const String:ip[], String:ccode[4]);
 | 
			
		||||
 * @param maxlength			Maximum length of output string buffer.
 | 
			
		||||
 * @return				True on success, false if no country found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GeoipCountry(const String:ip[], String:name[], maxlength);
 | 
			
		||||
native bool GeoipCountry(const char[] ip, char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @endsection
 | 
			
		||||
@@ -76,7 +76,7 @@ native bool:GeoipCountry(const String:ip[], String:name[], maxlength);
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_geoip = 
 | 
			
		||||
public Extension __ext_geoip = 
 | 
			
		||||
{
 | 
			
		||||
	name = "GeoIP",
 | 
			
		||||
	file = "geoip.ext",
 | 
			
		||||
@@ -93,7 +93,7 @@ public Extension:__ext_geoip =
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_EXTENSIONS
 | 
			
		||||
public __ext_geoip_SetNTVOptional()
 | 
			
		||||
public void __ext_geoip_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("GeoipCode2");
 | 
			
		||||
	MarkNativeAsOptional("GeoipCode3");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										194
									
								
								env/include/halflife.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										194
									
								
								env/include/halflife.inc
									
									
									
									
										vendored
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
/**
 | 
			
		||||
 * vim: set ts=4 :
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 * SourceMod (C)2004-2008 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * SourceMod (C)2004-2016 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 *
 | 
			
		||||
 * This file is part of the SourceMod/SourcePawn SDK.
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
#define MOTDPANEL_TYPE_TEXT		0	/**< Treat msg as plain text */
 | 
			
		||||
#define MOTDPANEL_TYPE_INDEX	1	/**< Msg is auto determined by the engine */
 | 
			
		||||
#define MOTDPANEL_TYPE_URL		2	/**< Treat msg as an URL link */
 | 
			
		||||
#define MOTDPANEL_TYPE_FILE		3	/**< Treat msg as a filename to be openned */
 | 
			
		||||
#define MOTDPANEL_TYPE_FILE		3	/**< Treat msg as a filename to be opened */
 | 
			
		||||
 | 
			
		||||
enum DialogType
 | 
			
		||||
{
 | 
			
		||||
@@ -88,6 +88,26 @@ enum EngineVersion
 | 
			
		||||
	Engine_Blade,				/**< Blade Symphony */
 | 
			
		||||
	Engine_Insurgency,			/**< Insurgency (2013 Retail version)*/
 | 
			
		||||
	Engine_Contagion,			/**< Contagion */
 | 
			
		||||
	Engine_BlackMesa,			/**< Black Mesa Multiplayer */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum FindMapResult
 | 
			
		||||
{
 | 
			
		||||
	// A direct match for this name was found
 | 
			
		||||
	FindMap_Found,
 | 
			
		||||
	// No match for this map name could be found.
 | 
			
		||||
	FindMap_NotFound,
 | 
			
		||||
	// A fuzzy match for this map name was found.
 | 
			
		||||
	// Ex: cp_dust -> cp_dustbowl, c1m1 -> c1m1_hotel
 | 
			
		||||
	// Only supported for maps that the engine knows about. (This excludes workshop maps on Orangebox).
 | 
			
		||||
	FindMap_FuzzyMatch,
 | 
			
		||||
	// A non-canonical match for this map name was found.
 | 
			
		||||
	// Ex: workshop/1234 -> workshop/cp_qualified_name.ugc1234
 | 
			
		||||
	// Only supported on "Orangebox" games with workshop support.
 | 
			
		||||
	FindMap_NonCanonical,
 | 
			
		||||
	// No currently available match for this map name could be found, but it may be possible to load
 | 
			
		||||
	// Only supported on "Orangebox" games with workshop support.
 | 
			
		||||
	FindMap_PossiblyAvailable
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define INVALID_ENT_REFERENCE 0xFFFFFFFF
 | 
			
		||||
@@ -97,17 +117,15 @@ enum EngineVersion
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		String format.
 | 
			
		||||
 * @param ...			Format arguments.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native LogToGame(const String:format[], any:...);
 | 
			
		||||
native void LogToGame(const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the seed value for the global Half-Life 2 Random Stream.
 | 
			
		||||
 *
 | 
			
		||||
 * @param seed			Seed value.
 | 
			
		||||
 * @noreturn	
 | 
			
		||||
 */
 | 
			
		||||
native SetRandomSeed(seed);
 | 
			
		||||
native void SetRandomSeed(int seed);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a random floating point number from the Half-Life 2 Random Stream.
 | 
			
		||||
@@ -116,7 +134,7 @@ native SetRandomSeed(seed);
 | 
			
		||||
 * @param fMax			Maximum random bound.
 | 
			
		||||
 * @return				A random number between (inclusive) fMin and fMax.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetRandomFloat(Float:fMin=0.0, Float:fMax=1.0);
 | 
			
		||||
native float GetRandomFloat(float fMin=0.0, float fMax=1.0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a random number from the Half-Life 2 Random Stream.
 | 
			
		||||
@@ -125,7 +143,7 @@ native Float:GetRandomFloat(Float:fMin=0.0, Float:fMax=1.0);
 | 
			
		||||
 * @param nmax			Maximum random bound.
 | 
			
		||||
 * @return				A random number between (inclusive) nmin and nmax.
 | 
			
		||||
 */
 | 
			
		||||
native GetRandomInt(nmin, nmax);
 | 
			
		||||
native int GetRandomInt(int nmin, int nmax);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether a map is valid or not.
 | 
			
		||||
@@ -133,35 +151,65 @@ native GetRandomInt(nmin, nmax);
 | 
			
		||||
 * @param map 			Map name, excluding .bsp extension.
 | 
			
		||||
 * @return				True if valid, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsMapValid(const String:map[]);
 | 
			
		||||
native bool IsMapValid(const char[] map);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether a full or partial map name is found or can be resolved
 | 
			
		||||
 * 
 | 
			
		||||
 * @param map 			Map name (usually same as map path relative to maps/ dir,
 | 
			
		||||
 *						excluding .bsp extension).
 | 
			
		||||
 * @param foundmap		Resolved map name. If the return is FindMap_FuzzyMatch
 | 
			
		||||
 *						or FindMap_NonCanonical the buffer will be the full path.
 | 
			
		||||
 * @param maxlen		Maximum length to write to map var.
 | 
			
		||||
 * @return				Result of the find operation. Not all result types are supported on all games.
 | 
			
		||||
 */
 | 
			
		||||
native FindMapResult FindMap(const char[] map, char[] foundmap, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get the display name of a workshop map.
 | 
			
		||||
 * 
 | 
			
		||||
 * Note: You do not need to call FindMap first.  This native will call FindMap internally.
 | 
			
		||||
 * 
 | 
			
		||||
 * @param map 			Map name (usually same as map path relative to maps/ dir,
 | 
			
		||||
 *						excluding .bsp extension).
 | 
			
		||||
 * @param displayName	Map's display name, i.e. cp_mymapname or de_mymapname.
 | 
			
		||||
 *						If FindMap returns FindMap_PossiblyAvailable or FindMap_NotFound,
 | 
			
		||||
 *						the map cannot be resolved and this native will return false,
 | 
			
		||||
 *						but displayName will be a copy of map.
 | 
			
		||||
 * @param maxlen		Maximum length to write to displayName var.
 | 
			
		||||
 * @return				true if FindMap returns FindMap_Found, FindMap_FuzzyMatch, or
 | 
			
		||||
 * 						FindMap_NonCanonical.
 | 
			
		||||
 * 						false if FindMap returns FindMap_PossiblyAvailable or FindMap_NotFound.
 | 
			
		||||
 */
 | 
			
		||||
native bool GetMapDisplayName(const char[] map, char[] displayName, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether the server is dedicated.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				True if dedicated, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsDedicatedServer();
 | 
			
		||||
native bool IsDedicatedServer();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a high-precision time value for profiling the engine.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				A floating point time value.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetEngineTime();
 | 
			
		||||
native float GetEngineTime();
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Returns the game time based on the game tick.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Game tick time.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetGameTime();
 | 
			
		||||
native float GetGameTime();
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Returns the game's internal tick count.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Game tick count.
 | 
			
		||||
 */
 | 
			
		||||
native GetGameTickCount();
 | 
			
		||||
native int GetGameTickCount();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the game description from the mod.
 | 
			
		||||
@@ -172,17 +220,16 @@ native GetGameTickCount();
 | 
			
		||||
 *						ignoring any potential hooks from plugins.
 | 
			
		||||
 * @return				Number of bytes written to the buffer (UTF-8 safe).
 | 
			
		||||
 */
 | 
			
		||||
native GetGameDescription(String:buffer[], maxlength, bool:original=false);
 | 
			
		||||
native int GetGameDescription(char[] buffer, int maxlength, bool original=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the name of the game's directory.
 | 
			
		||||
 *
 | 
			
		||||
 * @param buffer		Buffer to store the directory name.
 | 
			
		||||
 * @param maxlength		Maximum size of the buffer.
 | 
			
		||||
 *
 | 
			
		||||
 * return				Number of bytes written to the buffer (UTF-8 safe).
 | 
			
		||||
 * @return				Number of bytes written to the buffer (UTF-8 safe).
 | 
			
		||||
 */
 | 
			
		||||
native GetGameFolderName(String:buffer[], maxlength);
 | 
			
		||||
native int GetGameFolderName(char[] buffer, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the current map name.
 | 
			
		||||
@@ -191,7 +238,7 @@ native GetGameFolderName(String:buffer[], maxlength);
 | 
			
		||||
 * @param maxlength		Maximum length of buffer.
 | 
			
		||||
 * @return				Number of bytes written (UTF-8 safe).
 | 
			
		||||
 */
 | 
			
		||||
native GetCurrentMap(String:buffer[], maxlength);
 | 
			
		||||
native int GetCurrentMap(char[] buffer, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Precaches a given model.
 | 
			
		||||
@@ -200,7 +247,7 @@ native GetCurrentMap(String:buffer[], maxlength);
 | 
			
		||||
 * @param preload		If preload is true the file will be precached before level startup.
 | 
			
		||||
 * @return				Returns the model index, 0 for error.
 | 
			
		||||
 */
 | 
			
		||||
native PrecacheModel(const String:model[], bool:preload=false);
 | 
			
		||||
native int PrecacheModel(const char[] model, bool preload=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Precaches a given sentence file.
 | 
			
		||||
@@ -209,7 +256,7 @@ native PrecacheModel(const String:model[], bool:preload=false);
 | 
			
		||||
 * @param preload		If preload is true the file will be precached before level startup.
 | 
			
		||||
 * @return				Returns a sentence file index.
 | 
			
		||||
 */
 | 
			
		||||
native PrecacheSentenceFile(const String:file[], bool:preload=false);
 | 
			
		||||
native int PrecacheSentenceFile(const char[] file, bool preload=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Precaches a given decal.
 | 
			
		||||
@@ -218,7 +265,7 @@ native PrecacheSentenceFile(const String:file[], bool:preload=false);
 | 
			
		||||
 * @param preload		If preload is true the file will be precached before level startup.
 | 
			
		||||
 * @return				Returns a decal index.
 | 
			
		||||
 */
 | 
			
		||||
native PrecacheDecal(const String:decal[], bool:preload=false);
 | 
			
		||||
native int PrecacheDecal(const char[] decal, bool preload=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Precaches a given generic file.
 | 
			
		||||
@@ -227,7 +274,7 @@ native PrecacheDecal(const String:decal[], bool:preload=false);
 | 
			
		||||
 * @param preload		If preload is true the file will be precached before level startup.
 | 
			
		||||
 * @return				Returns a generic file index.
 | 
			
		||||
 */
 | 
			
		||||
native PrecacheGeneric(const String:generic[], bool:preload=false);
 | 
			
		||||
native int PrecacheGeneric(const char[] generic, bool preload=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a given model is precached.
 | 
			
		||||
@@ -235,7 +282,7 @@ native PrecacheGeneric(const String:generic[], bool:preload=false);
 | 
			
		||||
 * @param model			Name of the model to check.
 | 
			
		||||
 * @return				True if precached, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsModelPrecached(const String:model[]);
 | 
			
		||||
native bool IsModelPrecached(const char[] model);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a given decal is precached.
 | 
			
		||||
@@ -243,7 +290,7 @@ native bool:IsModelPrecached(const String:model[]);
 | 
			
		||||
 * @param decal			Name of the decal to check.
 | 
			
		||||
 * @return				True if precached, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsDecalPrecached(const String:decal[]);
 | 
			
		||||
native bool IsDecalPrecached(const char[] decal);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a given generic file is precached.
 | 
			
		||||
@@ -251,7 +298,7 @@ native bool:IsDecalPrecached(const String:decal[]);
 | 
			
		||||
 * @param generic		Name of the generic file to check.
 | 
			
		||||
 * @return				True if precached, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsGenericPrecached(const String:generic[]);
 | 
			
		||||
native bool IsGenericPrecached(const char[] generic);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Precaches a given sound.
 | 
			
		||||
@@ -260,7 +307,7 @@ native bool:IsGenericPrecached(const String:generic[]);
 | 
			
		||||
 * @param preload		If preload is true the file will be precached before level startup.
 | 
			
		||||
 * @return				True if successfully precached, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:PrecacheSound(const String:sound[], bool:preload=false);
 | 
			
		||||
native bool PrecacheSound(const char[] sound, bool preload=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a given sound is precached.
 | 
			
		||||
@@ -268,7 +315,7 @@ native bool:PrecacheSound(const String:sound[], bool:preload=false);
 | 
			
		||||
 * @param sound			Name of the sound to check.
 | 
			
		||||
 * @return				True if precached, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsSoundPrecached(const String:sound[]);
 | 
			
		||||
native bool IsSoundPrecached(const char[] sound);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates different types of ingame messages.
 | 
			
		||||
@@ -276,10 +323,9 @@ native bool:IsSoundPrecached(const String:sound[]);
 | 
			
		||||
 * @param client		Index of the client.
 | 
			
		||||
 * @param kv			KeyValues handle to set the menu keys and options. (Check iserverplugin.h for more information).
 | 
			
		||||
 * @param type			Message type to display ingame.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native CreateDialog(client, Handle:kv, DialogType:type);
 | 
			
		||||
native void CreateDialog(int client, Handle kv, DialogType type);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Guesses the SDK version a mod was compiled against.  If nothing 
 | 
			
		||||
@@ -291,7 +337,7 @@ native CreateDialog(client, Handle:kv, DialogType:type);
 | 
			
		||||
 * @return				SOURCE_SDK version code.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated See GetEngineVersion()
 | 
			
		||||
native GuessSDKVersion();
 | 
			
		||||
native int GuessSDKVersion();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the engine version that the currently-loaded SM core was compiled against.
 | 
			
		||||
@@ -301,7 +347,7 @@ native GuessSDKVersion();
 | 
			
		||||
 *
 | 
			
		||||
 * @return				An EngineVersion value.
 | 
			
		||||
 */
 | 
			
		||||
native EngineVersion:GetEngineVersion();
 | 
			
		||||
native EngineVersion GetEngineVersion();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Prints a message to a specific client in the chat area.
 | 
			
		||||
@@ -309,23 +355,21 @@ native EngineVersion:GetEngineVersion();
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				If the client is not connected an error will be thrown.
 | 
			
		||||
 */
 | 
			
		||||
native PrintToChat(client, const String:format[], any:...);
 | 
			
		||||
native void PrintToChat(int client, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Prints a message to all clients in the chat area.
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock PrintToChatAll(const String:format[], any:...)
 | 
			
		||||
stock void PrintToChatAll(const char[] format, any ...)
 | 
			
		||||
{
 | 
			
		||||
	decl String:buffer[192];
 | 
			
		||||
	char buffer[254];
 | 
			
		||||
	
 | 
			
		||||
	for (new i = 1; i <= MaxClients; i++)
 | 
			
		||||
	for (int i = 1; i <= MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (IsClientInGame(i))
 | 
			
		||||
		{
 | 
			
		||||
@@ -342,23 +386,21 @@ stock PrintToChatAll(const String:format[], any:...)
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				If the client is not connected an error will be thrown.
 | 
			
		||||
 */
 | 
			
		||||
native PrintCenterText(client, const String:format[], any:...);
 | 
			
		||||
native void PrintCenterText(int client, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Prints a message to all clients in the center of the screen.
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock PrintCenterTextAll(const String:format[], any:...)
 | 
			
		||||
stock void PrintCenterTextAll(const char[] format, any ...)
 | 
			
		||||
{
 | 
			
		||||
	decl String:buffer[192];
 | 
			
		||||
	char buffer[254];
 | 
			
		||||
 | 
			
		||||
	for (new i = 1; i <= MaxClients; i++)
 | 
			
		||||
	for (int i = 1; i <= MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (IsClientInGame(i))
 | 
			
		||||
		{
 | 
			
		||||
@@ -375,23 +417,21 @@ stock PrintCenterTextAll(const String:format[], any:...)
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				If the client is not connected an error will be thrown.
 | 
			
		||||
 */
 | 
			
		||||
native PrintHintText(client, const String:format[], any:...);
 | 
			
		||||
native void PrintHintText(int client, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Prints a message to all clients with a hint box.
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		Formatting rules.
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock PrintHintTextToAll(const String:format[], any:...)
 | 
			
		||||
stock void PrintHintTextToAll(const char[] format, any ...)
 | 
			
		||||
{
 | 
			
		||||
	decl String:buffer[192];
 | 
			
		||||
	char buffer[254];
 | 
			
		||||
	
 | 
			
		||||
	for (new i = 1; i <= MaxClients; i++)
 | 
			
		||||
	for (int i = 1; i <= MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (IsClientInGame(i))
 | 
			
		||||
		{
 | 
			
		||||
@@ -411,10 +451,9 @@ stock PrintHintTextToAll(const String:format[], any:...)
 | 
			
		||||
 * @param Kv			KeyValues handle with all the data for the panel setup (Depends 
 | 
			
		||||
 *						on the panel type and may be unused).
 | 
			
		||||
 * @param show			True to show the panel, or false to remove it from the client screen.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				If the client is not connected an error will be thrown.
 | 
			
		||||
 */
 | 
			
		||||
native ShowVGUIPanel(client, const String:name[], Handle:Kv=INVALID_HANDLE, bool:show=true);
 | 
			
		||||
native void ShowVGUIPanel(int client, const char[] name, Handle Kv=INVALID_HANDLE, bool show=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a HUD synchronization object.  This object is used to automatically assign and 
 | 
			
		||||
@@ -449,7 +488,7 @@ native ShowVGUIPanel(client, const String:name[], Handle:Kv=INVALID_HANDLE, bool
 | 
			
		||||
 *						If HUD text is not supported on this mod, then 
 | 
			
		||||
 *						INVALID_HANDLE is returned.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:CreateHudSynchronizer();
 | 
			
		||||
native Handle CreateHudSynchronizer();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the HUD parameters for drawing text.  These parameters are stored 
 | 
			
		||||
@@ -473,10 +512,9 @@ native Handle:CreateHudSynchronizer();
 | 
			
		||||
 * @param fxTime		Duration of chosen effect (may not apply to all effects).
 | 
			
		||||
 * @param fadeIn		Number of seconds to spend fading in.
 | 
			
		||||
 * @param fadeOut		Number of seconds to spend fading out.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetHudTextParams(Float:x, Float:y, Float:holdTime, r, g, b, a, effect = 0,
 | 
			
		||||
						Float:fxTime=6.0, Float:fadeIn=0.1, Float:fadeOut=0.2);
 | 
			
		||||
native void SetHudTextParams(float x, float y, float holdTime, int r, int g, int b, int a, int effect = 0,
 | 
			
		||||
						float fxTime=6.0, float fadeIn=0.1, float fadeOut=0.2);
 | 
			
		||||
						
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the HUD parameters for drawing text.  These parameters are stored 
 | 
			
		||||
@@ -496,11 +534,10 @@ native SetHudTextParams(Float:x, Float:y, Float:holdTime, r, g, b, a, effect = 0
 | 
			
		||||
 * @param fxTime		Duration of chosen effect (may not apply to all effects).
 | 
			
		||||
 * @param fadeIn		Number of seconds to spend fading in.
 | 
			
		||||
 * @param fadeOut		Number of seconds to spend fading out.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetHudTextParamsEx(Float:x, Float:y, Float:holdTime, color1[4], 
 | 
			
		||||
						  color2[4]={255,255,255,0}, effect = 0, Float:fxTime=6.0, 
 | 
			
		||||
						  Float:fadeIn=0.1, Float:fadeOut=0.2);
 | 
			
		||||
native void SetHudTextParamsEx(float x, float y, float holdTime, int color1[4], 
 | 
			
		||||
						  int color2[4]={255,255,255,0}, int effect = 0, float fxTime=6.0, 
 | 
			
		||||
						  float fadeIn=0.1, float fadeOut=0.2);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Shows a synchronized HUD message to a client.  
 | 
			
		||||
@@ -515,7 +552,7 @@ native SetHudTextParamsEx(Float:x, Float:y, Float:holdTime, color1[4],
 | 
			
		||||
 *						This function fails if the mod does not support it.
 | 
			
		||||
 * @error				Client not in-game, or sync object not valid.
 | 
			
		||||
 */
 | 
			
		||||
native ShowSyncHudText(client, Handle:sync, const String:message[], any:...);
 | 
			
		||||
native int ShowSyncHudText(int client, Handle sync, const char[] message, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Clears the text on a synchronized HUD channel. 
 | 
			
		||||
@@ -531,10 +568,9 @@ native ShowSyncHudText(client, Handle:sync, const String:message[], any:...);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index to send the message to.
 | 
			
		||||
 * @param sync			Synchronization object.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Client not in-game, or sync object not valid.
 | 
			
		||||
 */
 | 
			
		||||
native ClearSyncHud(client, Handle:sync);
 | 
			
		||||
native void ClearSyncHud(int client, Handle sync);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Shows a HUD message to a client on the given channel.
 | 
			
		||||
@@ -553,7 +589,7 @@ native ClearSyncHud(client, Handle:sync);
 | 
			
		||||
 *						Any other return value is the channel number that was 
 | 
			
		||||
 *						used to render the text.
 | 
			
		||||
 */
 | 
			
		||||
native ShowHudText(client, channel, const String:message[], any:...);
 | 
			
		||||
native int ShowHudText(int client, int channel, const char[] message, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Shows a MOTD panel to a specific client.
 | 
			
		||||
@@ -563,10 +599,9 @@ native ShowHudText(client, channel, const String:message[], any:...);
 | 
			
		||||
 * @param msg			Contents of the panel, it can be treated as an url, filename or plain text
 | 
			
		||||
 *				 		depending on the type parameter (WARNING: msg has to be 192 bytes maximum!)
 | 
			
		||||
 * @param type			Determines the way to treat the message body of the panel.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				If the client is not connected an error will be thrown.
 | 
			
		||||
 */
 | 
			
		||||
stock ShowMOTDPanel(client, const String:title[], const String:msg[], type=MOTDPANEL_TYPE_INDEX)
 | 
			
		||||
stock void ShowMOTDPanel(int client, const char[] title, const char[] msg, int type=MOTDPANEL_TYPE_INDEX)
 | 
			
		||||
{
 | 
			
		||||
	char num[3];
 | 
			
		||||
	IntToString(type, num, sizeof(num));
 | 
			
		||||
@@ -586,9 +621,8 @@ stock ShowMOTDPanel(client, const String:title[], const String:msg[], type=MOTDP
 | 
			
		||||
 * @param time			Duration to hold the panel on the client's screen.
 | 
			
		||||
 * @param ip			Destination IP.
 | 
			
		||||
 * @param password		Password to connect to the destination IP. The client will be able to see this.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock DisplayAskConnectBox(client, Float:time, const String:ip[], const String:password[] = "")
 | 
			
		||||
stock void DisplayAskConnectBox(int client, float time, const char[] ip, const char[] password = "")
 | 
			
		||||
{
 | 
			
		||||
	char destination[288];
 | 
			
		||||
	FormatEx(destination, sizeof(destination), "%s/%s", ip, password);
 | 
			
		||||
@@ -606,7 +640,7 @@ stock DisplayAskConnectBox(client, Float:time, const String:ip[], const String:p
 | 
			
		||||
 * @param entity		Entity index.
 | 
			
		||||
 * @return				Entity reference.
 | 
			
		||||
 */
 | 
			
		||||
native EntIndexToEntRef(entity);
 | 
			
		||||
native int EntIndexToEntRef(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the entity index from a reference.
 | 
			
		||||
@@ -614,7 +648,7 @@ native EntIndexToEntRef(entity);
 | 
			
		||||
 * @param ref			Entity reference.
 | 
			
		||||
 * @return				Entity index.
 | 
			
		||||
 */
 | 
			
		||||
native EntRefToEntIndex(ref);
 | 
			
		||||
native int EntRefToEntIndex(int ref);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a reference into a backwards compatible version.
 | 
			
		||||
@@ -622,7 +656,7 @@ native EntRefToEntIndex(ref);
 | 
			
		||||
 * @param ref			Entity reference.
 | 
			
		||||
 * @return				Bcompat reference.
 | 
			
		||||
 */
 | 
			
		||||
native MakeCompatEntRef(ref);
 | 
			
		||||
native int MakeCompatEntRef(int ref);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
enum ClientRangeType
 | 
			
		||||
@@ -642,3 +676,23 @@ enum ClientRangeType
 | 
			
		||||
 */
 | 
			
		||||
native int GetClientsInRange(float origin[3], ClientRangeType rangeType, int[] clients, int size);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the server's authentication string (SteamID).
 | 
			
		||||
 *
 | 
			
		||||
 * Note: If called before server is connected to Steam, auth id
 | 
			
		||||
 * will be invalid ([I:0:1], 1, etc.)
 | 
			
		||||
 *
 | 
			
		||||
 * @param authType		Auth id type and format to use.
 | 
			
		||||
 * 						(Only AuthId_Steam3 and AuthId_SteamID64 are supported)
 | 
			
		||||
 * @param auth			Buffer to store the server's auth id.
 | 
			
		||||
 * @param maxlen		Maximum length of string buffer (includes NULL terminator).
 | 
			
		||||
 * @error				Invalid AuthIdType given.
 | 
			
		||||
 */
 | 
			
		||||
native void GetServerAuthId(AuthIdType authType, char[] auth, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the server's Steam account ID.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Steam account ID or 0 if not available.
 | 
			
		||||
 */
 | 
			
		||||
native int GetServerSteamAccountId();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								env/include/handles.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								env/include/handles.inc
									
									
									
									
										vendored
									
									
								
							@@ -38,7 +38,7 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Preset Handle values.
 | 
			
		||||
 */
 | 
			
		||||
enum Handle: // Tag disables introducing "Handle" as a symbol.
 | 
			
		||||
enum Handle // Tag disables introducing "Handle" as a symbol.
 | 
			
		||||
{
 | 
			
		||||
	INVALID_HANDLE = 0,
 | 
			
		||||
};
 | 
			
		||||
@@ -54,7 +54,7 @@ enum Handle: // Tag disables introducing "Handle" as a symbol.
 | 
			
		||||
 * @param hndl		Handle to close.
 | 
			
		||||
 * @error			Invalid handles will cause a run time error.
 | 
			
		||||
 */
 | 
			
		||||
native CloseHandle(Handle:hndl);
 | 
			
		||||
native void CloseHandle(Handle hndl);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Clones a Handle.  When passing handles in between plugins, caching handles
 | 
			
		||||
@@ -73,16 +73,9 @@ native CloseHandle(Handle:hndl);
 | 
			
		||||
 * @return			Handle on success, INVALID_HANDLE if not cloneable.
 | 
			
		||||
 * @error			Invalid handles will cause a run time error.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:CloneHandle(Handle:hndl, Handle:plugin=INVALID_HANDLE);
 | 
			
		||||
native Handle CloneHandle(Handle hndl, Handle plugin=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Helper for object-oriented syntax.
 | 
			
		||||
 */
 | 
			
		||||
methodmap Handle __nullable__
 | 
			
		||||
{
 | 
			
		||||
	public Close() = CloseHandle;
 | 
			
		||||
	public ~Handle() = CloseHandle;
 | 
			
		||||
}
 | 
			
		||||
using __intrinsics__.Handle;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Do not use this function.  Returns if a Handle and its contents 
 | 
			
		||||
@@ -101,4 +94,4 @@ methodmap Handle __nullable__
 | 
			
		||||
 * @return			True if handle is valid, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Do not use this function.
 | 
			
		||||
native bool:IsValidHandle(Handle:hndl);
 | 
			
		||||
native bool IsValidHandle(Handle hndl);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								env/include/helpers.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								env/include/helpers.inc
									
									
									
									
										vendored
									
									
								
							@@ -43,12 +43,12 @@
 | 
			
		||||
 * @param buffer		Buffer for text.
 | 
			
		||||
 * @param maxlength		Maximum length of text.
 | 
			
		||||
 */
 | 
			
		||||
stock FormatUserLogText(client, String:buffer[], maxlength)
 | 
			
		||||
stock void FormatUserLogText(int client, char[] buffer, int maxlength)
 | 
			
		||||
{
 | 
			
		||||
	decl String:auth[32];
 | 
			
		||||
	decl String:name[40];
 | 
			
		||||
	char auth[32];
 | 
			
		||||
	char name[MAX_NAME_LENGTH];
 | 
			
		||||
	
 | 
			
		||||
	new userid = GetClientUserId(client);
 | 
			
		||||
	int userid = GetClientUserId(client);
 | 
			
		||||
	if (!GetClientAuthString(client, auth, sizeof(auth)))
 | 
			
		||||
	{
 | 
			
		||||
		strcopy(auth, sizeof(auth), "UNKNOWN");
 | 
			
		||||
@@ -69,12 +69,12 @@ stock FormatUserLogText(client, String:buffer[], maxlength)
 | 
			
		||||
 * @param filename		Filename of the plugin to search for.
 | 
			
		||||
 * @return				Handle to plugin if found, INVALID_HANDLE otherwise.
 | 
			
		||||
 */
 | 
			
		||||
stock Handle:FindPluginByFile(const String:filename[])
 | 
			
		||||
stock Handle FindPluginByFile(const char[] filename)
 | 
			
		||||
{
 | 
			
		||||
	decl String:buffer[256];
 | 
			
		||||
	char buffer[256];
 | 
			
		||||
	
 | 
			
		||||
	new Handle:iter = GetPluginIterator();
 | 
			
		||||
	new Handle:pl;
 | 
			
		||||
	Handle iter = GetPluginIterator();
 | 
			
		||||
	Handle pl;
 | 
			
		||||
	
 | 
			
		||||
	while (MorePlugins(iter))
 | 
			
		||||
	{
 | 
			
		||||
@@ -107,7 +107,7 @@ stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
 | 
			
		||||
	if (pattern[0] == '#') {
 | 
			
		||||
		int input = StringToInt(pattern[1]);
 | 
			
		||||
		if (!input) {
 | 
			
		||||
			char name[65];
 | 
			
		||||
			char name[MAX_NAME_LENGTH];
 | 
			
		||||
			for (int i=1; i<=MaxClients; i++) {
 | 
			
		||||
				if (!IsClientInGame(i))
 | 
			
		||||
					continue;
 | 
			
		||||
@@ -126,7 +126,7 @@ stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	char name[65];
 | 
			
		||||
	char name[MAX_NAME_LENGTH];
 | 
			
		||||
	for (int i=1; i<=MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (!IsClientInGame(i))
 | 
			
		||||
@@ -152,12 +152,13 @@ stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
 | 
			
		||||
 * @param immunity	Optional. Set to false to ignore target immunity.
 | 
			
		||||
 * @return			Index of target client, or -1 on error.
 | 
			
		||||
 */
 | 
			
		||||
stock FindTarget(client, const String:target[], bool:nobots = false, bool:immunity = true)
 | 
			
		||||
stock int FindTarget(int client, const char[] target, bool nobots = false, bool immunity = true)
 | 
			
		||||
{
 | 
			
		||||
	decl String:target_name[MAX_TARGET_LENGTH];
 | 
			
		||||
	decl target_list[1], target_count, bool:tn_is_ml;
 | 
			
		||||
	char target_name[MAX_TARGET_LENGTH];
 | 
			
		||||
	int target_list[1], target_count;
 | 
			
		||||
	bool tn_is_ml;
 | 
			
		||||
	
 | 
			
		||||
	new flags = COMMAND_FILTER_NO_MULTI;
 | 
			
		||||
	int flags = COMMAND_FILTER_NO_MULTI;
 | 
			
		||||
	if (nobots)
 | 
			
		||||
	{
 | 
			
		||||
		flags |= COMMAND_FILTER_NO_BOTS;
 | 
			
		||||
@@ -202,10 +203,10 @@ stock FindTarget(client, const String:target[], bool:nobots = false, bool:immuni
 | 
			
		||||
 * @return			Number of maps loaded or 0 if in error.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use ReadMapList() instead. 
 | 
			
		||||
 stock LoadMaps(Handle:array, &fileTime = 0, Handle:fileCvar = INVALID_HANDLE)
 | 
			
		||||
 stock int LoadMaps(Handle array, int &fileTime = 0, Handle fileCvar = INVALID_HANDLE)
 | 
			
		||||
 { 
 | 
			
		||||
 	decl String:mapPath[256], String:mapFile[64];
 | 
			
		||||
 	new bool:fileFound = false;
 | 
			
		||||
 	char mapPath[256], mapFile[64];
 | 
			
		||||
 	bool fileFound = false;
 | 
			
		||||
 	
 | 
			
		||||
 	if (fileCvar != INVALID_HANDLE)
 | 
			
		||||
 	{
 | 
			
		||||
@@ -216,7 +217,7 @@ stock FindTarget(client, const String:target[], bool:nobots = false, bool:immuni
 | 
			
		||||
 
 | 
			
		||||
 	if (!fileFound)
 | 
			
		||||
 	{
 | 
			
		||||
 		new Handle:mapCycleFile = FindConVar("mapcyclefile");
 | 
			
		||||
 		Handle mapCycleFile = FindConVar("mapcyclefile");
 | 
			
		||||
 		GetConVarString(mapCycleFile, mapPath, sizeof(mapPath));
 | 
			
		||||
 		fileFound = FileExists(mapPath);
 | 
			
		||||
 	}
 | 
			
		||||
@@ -231,7 +232,7 @@ stock FindTarget(client, const String:target[], bool:nobots = false, bool:immuni
 | 
			
		||||
 
 | 
			
		||||
 	// If the file hasn't changed, there's no reason to reload
 | 
			
		||||
 	// all of the maps.
 | 
			
		||||
 	new newTime =  GetFileTime(mapPath, FileTime_LastChange);
 | 
			
		||||
 	int newTime =  GetFileTime(mapPath, FileTime_LastChange);
 | 
			
		||||
 	if (fileTime == newTime)
 | 
			
		||||
 	{
 | 
			
		||||
 		return GetArraySize(array);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								env/include/keyvalues.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								env/include/keyvalues.inc
									
									
									
									
										vendored
									
									
								
							@@ -107,7 +107,7 @@ methodmap KeyValues < Handle
 | 
			
		||||
	//
 | 
			
		||||
	// @param key           Name of the key, or NULL_STRING.
 | 
			
		||||
	// @param value         Large integer value (0=High bits, 1=Low bits)
 | 
			
		||||
	public native void SetUInt64(const char[] key, const value[2]);
 | 
			
		||||
	public native void SetUInt64(const char[] key, const int value[2]);
 | 
			
		||||
 | 
			
		||||
	// Sets a floating point value of a KeyValues key.
 | 
			
		||||
	//
 | 
			
		||||
@@ -167,9 +167,9 @@ methodmap KeyValues < Handle
 | 
			
		||||
	// @param g             Green value, set by reference. 
 | 
			
		||||
	// @param b             Blue value, set by reference. 
 | 
			
		||||
	// @param a             Alpha value, set by reference. 
 | 
			
		||||
	public native void GetColor(const char[] key, &r, &g, &b, &a);
 | 
			
		||||
	public native void GetColor(const char[] key, int &r, int &g, int &b, int &a);
 | 
			
		||||
 | 
			
		||||
	// Retrives a set of color values from a KeyValues key.
 | 
			
		||||
	// Retrieves a set of color values from a KeyValues key.
 | 
			
		||||
	//
 | 
			
		||||
	// @param key           Name of the key, or NULL_STRING.
 | 
			
		||||
	// @param color         Red, green, blue, and alpha channels.
 | 
			
		||||
@@ -359,7 +359,7 @@ native void KvSetNum(Handle kv, const char[] key, int value);
 | 
			
		||||
 * @param value			Large integer value (0=High bits, 1=Low bits)
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void KvSetUInt64(Handle kv, const char[] key, const value[2]);
 | 
			
		||||
native void KvSetUInt64(Handle kv, const char[] key, const int value[2]);
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Sets a floating point value of a KeyValues key.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								env/include/lang.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								env/include/lang.inc
									
									
									
									
										vendored
									
									
								
							@@ -42,9 +42,8 @@
 | 
			
		||||
 * If no extension is specified, .txt is assumed.
 | 
			
		||||
 *
 | 
			
		||||
 * @param file		Translation file.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native LoadTranslations(const String:file[]);
 | 
			
		||||
native void LoadTranslations(const char[] file);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the global language target.  This is useful for creating functions
 | 
			
		||||
@@ -53,9 +52,8 @@ native LoadTranslations(const String:file[]);
 | 
			
		||||
 * not during this function call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client	Client index or LANG_SERVER.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetGlobalTransTarget(client);
 | 
			
		||||
native void SetGlobalTransTarget(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the language number of a client.
 | 
			
		||||
@@ -64,21 +62,21 @@ native SetGlobalTransTarget(client);
 | 
			
		||||
 * @return			Language number client is using.
 | 
			
		||||
 * @error			Invalid client index or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientLanguage(client);
 | 
			
		||||
native int GetClientLanguage(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the server's language.
 | 
			
		||||
 *
 | 
			
		||||
 * @return			Language number server is using.
 | 
			
		||||
 */
 | 
			
		||||
native GetServerLanguage();
 | 
			
		||||
native int GetServerLanguage();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of languages known in languages.cfg.
 | 
			
		||||
 *
 | 
			
		||||
 * @return			Language count.
 | 
			
		||||
 */
 | 
			
		||||
native GetLanguageCount();
 | 
			
		||||
native int GetLanguageCount();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves info about a given language number.
 | 
			
		||||
@@ -88,20 +86,18 @@ native GetLanguageCount();
 | 
			
		||||
 * @param codeLen	Maximum length of the language code buffer.
 | 
			
		||||
 * @param name		Language name buffer.
 | 
			
		||||
 * @param nameLen	Maximum length of the language name buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid language number.
 | 
			
		||||
 */
 | 
			
		||||
native GetLanguageInfo(language, String:code[]="", codeLen=0, String:name[]="", nameLen=0);
 | 
			
		||||
native void GetLanguageInfo(int language, char[] code="", int codeLen=0, char[] name="", int nameLen=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the language number of a client.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client	Client index.
 | 
			
		||||
 * @param language	Language number.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid client index or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native SetClientLanguage(client, language);
 | 
			
		||||
native void SetClientLanguage(int client, int language);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the language number from a language code.
 | 
			
		||||
@@ -109,7 +105,7 @@ native SetClientLanguage(client, language);
 | 
			
		||||
 * @param code		Language code (2-3 characters usually).
 | 
			
		||||
 * @return			Language number. -1 if not found.
 | 
			
		||||
 */
 | 
			
		||||
native GetLanguageByCode(const String:code[]);
 | 
			
		||||
native int GetLanguageByCode(const char[] code);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the language number from a language name.
 | 
			
		||||
@@ -117,4 +113,4 @@ native GetLanguageByCode(const String:code[]);
 | 
			
		||||
 * @param name		Language name (case insensitive).
 | 
			
		||||
 * @return			Language number. -1 if not found.
 | 
			
		||||
 */
 | 
			
		||||
native GetLanguageByName(const String:name[]);
 | 
			
		||||
native int GetLanguageByName(const char[] name);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										33
									
								
								env/include/logging.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								env/include/logging.inc
									
									
									
									
										vendored
									
									
								
							@@ -41,9 +41,8 @@
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		String format.
 | 
			
		||||
 * @param ...			Format arguments.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native LogMessage(const String:format[], any:...);
 | 
			
		||||
native void LogMessage(const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Logs a message to any file.  The log message will be in the normal 
 | 
			
		||||
@@ -52,10 +51,9 @@ native LogMessage(const String:format[], any:...);
 | 
			
		||||
 * @param file			File to write the log message in.
 | 
			
		||||
 * @param format		String format.
 | 
			
		||||
 * @param ...			Format arguments.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				File could not be opened/written.
 | 
			
		||||
 */
 | 
			
		||||
native LogToFile(const String:file[], const String:format[], any:...);
 | 
			
		||||
native void LogToFile(const char[] file, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Same as LogToFile(), except no plugin logtag is prepended.
 | 
			
		||||
@@ -63,10 +61,9 @@ native LogToFile(const String:file[], const String:format[], any:...);
 | 
			
		||||
 * @param file			File to write the log message in.
 | 
			
		||||
 * @param format		String format.
 | 
			
		||||
 * @param ...			Format arguments.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				File could not be opened/written.
 | 
			
		||||
 */
 | 
			
		||||
native LogToFileEx(const String:file[], const String:format[], any:...);
 | 
			
		||||
native void LogToFileEx(const char[] file, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Logs an action from a command or event whereby interception and routing may 
 | 
			
		||||
@@ -77,18 +74,16 @@ native LogToFileEx(const String:file[], const String:format[], any:...);
 | 
			
		||||
 * @param target		Client being targetted, or -1 if not applicable.
 | 
			
		||||
 * @param message		Message format.
 | 
			
		||||
 * @param ...			Message formatting parameters.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native LogAction(client, target, const String:message[], any:...);
 | 
			
		||||
native void LogAction(int client, int target, const char[] message, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Logs a plugin error message to the SourceMod logs.
 | 
			
		||||
 *
 | 
			
		||||
 * @param format		String format.
 | 
			
		||||
 * @param ...			Format arguments.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native LogError(const String:format[], any:...);
 | 
			
		||||
native void LogError(const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when an action is going to be logged.
 | 
			
		||||
@@ -99,16 +94,16 @@ native LogError(const String:format[], any:...);
 | 
			
		||||
 * @param client		Client the action is from; 0 for server, -1 if not applicable.
 | 
			
		||||
 * @param target		Client the action is targetting, or -1 if not applicable.
 | 
			
		||||
 * @param message		Message that is being logged.
 | 
			
		||||
 * @return				Plugin_Continue will cause Core to defaulty log the message.
 | 
			
		||||
 * @return				Plugin_Continue will perform the default logging behavior.
 | 
			
		||||
 *						Plugin_Handled will stop Core from logging the message.
 | 
			
		||||
 * 						Plugin_Stop is the same as Handled, but prevents any other 
 | 
			
		||||
 *						plugins from handling the message.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnLogAction(Handle:source, 
 | 
			
		||||
						   Identity:ident,
 | 
			
		||||
						   client,
 | 
			
		||||
						   target,
 | 
			
		||||
						   const String:message[]);
 | 
			
		||||
forward Action OnLogAction(Handle source, 
 | 
			
		||||
						   Identity ident,
 | 
			
		||||
						   int client,
 | 
			
		||||
						   int target,
 | 
			
		||||
						   const char[] message);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a game log message is received.
 | 
			
		||||
@@ -129,14 +124,12 @@ typedef GameLogHook = function Action (const char[] message);
 | 
			
		||||
 * Adds a game log hook.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hook			Hook function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native AddGameLogHook(GameLogHook:hook);
 | 
			
		||||
native void AddGameLogHook(GameLogHook hook);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a game log hook.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hook			Hook function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native RemoveGameLogHook(GameLogHook:hook);
 | 
			
		||||
native void RemoveGameLogHook(GameLogHook hook);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										63
									
								
								env/include/mapchooser.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										63
									
								
								env/include/mapchooser.inc
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,34 @@
 | 
			
		||||
/**
 | 
			
		||||
 * vim: set ts=4 :
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 * SourceMod (C)2004-2014 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 *
 | 
			
		||||
 * This file is part of the SourceMod/SourcePawn SDK.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
			
		||||
 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
			
		||||
 * Free Software Foundation.
 | 
			
		||||
 * 
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
			
		||||
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
			
		||||
 * details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License along with
 | 
			
		||||
 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
			
		||||
 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
			
		||||
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
			
		||||
 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
			
		||||
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
			
		||||
 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
			
		||||
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
			
		||||
 * or <http://www.sourcemod.net/license.php>.
 | 
			
		||||
 *
 | 
			
		||||
 * Version: $Id$
 | 
			
		||||
 */
 | 
			
		||||
#if defined _mapchooser_included_
 | 
			
		||||
  #endinput
 | 
			
		||||
#endif
 | 
			
		||||
@@ -8,7 +39,7 @@ enum NominateResult
 | 
			
		||||
	Nominate_Added,			/** The map was added to the nominate list */
 | 
			
		||||
	Nominate_Replaced,		/** A clients existing nomination was replaced */
 | 
			
		||||
	Nominate_AlreadyInVote,	/** Specified map was already in the vote */
 | 
			
		||||
	Nominate_InvalidMap,	/** Mapname specifed wasn't a valid map */
 | 
			
		||||
	Nominate_InvalidMap,	/** Mapname specified wasn't a valid map */
 | 
			
		||||
	Nominate_VoteFull,		/** This will only occur if force was set to false */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -24,10 +55,10 @@ enum MapChange
 | 
			
		||||
 *
 | 
			
		||||
 * @param map		Map to add.
 | 
			
		||||
 * @param force		Should we force the map in even if it requires overwriting an existing nomination?
 | 
			
		||||
 * @param owner		Client index of the nominater. If the client disconnects the nomination will be removed. Use 0 for constant nominations
 | 
			
		||||
 * @param owner		Client index of the nominator. If the client disconnects the nomination will be removed. Use 0 for constant nominations
 | 
			
		||||
 * @return			Nominate Result of the outcome
 | 
			
		||||
 */
 | 
			
		||||
native NominateResult:NominateMap(const String:map[], bool:force, owner);
 | 
			
		||||
native NominateResult NominateMap(const char[] map, bool force, int owner);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Attempt to remove a map from the mapchooser map list.
 | 
			
		||||
@@ -35,39 +66,37 @@ native NominateResult:NominateMap(const String:map[], bool:force, owner);
 | 
			
		||||
 * @param map		Map to remove.
 | 
			
		||||
 * @return			True if the nomination was found and removed, or false if the nomination was not found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:RemoveNominationByMap(const String:map[]);
 | 
			
		||||
native bool RemoveNominationByMap(const char[] map);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Attempt to remove a map from the mapchooser map list.
 | 
			
		||||
 *
 | 
			
		||||
 * @param owner		Client index of the nominater.
 | 
			
		||||
 * @param owner		Client index of the nominator.
 | 
			
		||||
 * @return			True if the nomination was found and removed, or false if the nomination was not found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:RemoveNominationByOwner(owner);
 | 
			
		||||
native bool RemoveNominationByOwner(int owner);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the current list of excluded maps.
 | 
			
		||||
 *
 | 
			
		||||
 * @param array		An ADT array handle to add the map strings to.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GetExcludeMapList(Handle:array);
 | 
			
		||||
native void GetExcludeMapList(ArrayList array);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the current list of nominated maps.
 | 
			
		||||
 *
 | 
			
		||||
 * @param maparray		An ADT array handle to add the map strings to.
 | 
			
		||||
 * @param ownerarray	An optional ADT array handle to add the nominator client indexes to.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GetNominatedMapList(Handle:maparray, Handle:ownerarray = INVALID_HANDLE);
 | 
			
		||||
native void GetNominatedMapList(ArrayList maparray, ArrayList ownerarray = null);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if MapChooser will allow a vote
 | 
			
		||||
 *
 | 
			
		||||
 * @return			True if a vote can be held, or false if mapchooser is already holding a vote.
 | 
			
		||||
 */
 | 
			
		||||
native bool:CanMapChooserStartVote();
 | 
			
		||||
native bool CanMapChooserStartVote();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Initiates a MapChooser map vote
 | 
			
		||||
@@ -78,21 +107,21 @@ native bool:CanMapChooserStartVote();
 | 
			
		||||
 * @param when			MapChange consant of when the resulting mapchange should occur.
 | 
			
		||||
 * @param inputarray	ADT array list of maps to add to the vote.
 | 
			
		||||
 */
 | 
			
		||||
native InitiateMapChooserVote(MapChange:when, Handle:inputarray=INVALID_HANDLE);
 | 
			
		||||
native void InitiateMapChooserVote(MapChange when, ArrayList inputarray=null);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if MapChooser's end of map vote has completed.
 | 
			
		||||
 *
 | 
			
		||||
 * @return			True if complete, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:HasEndOfMapVoteFinished();
 | 
			
		||||
native bool HasEndOfMapVoteFinished();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if MapChooser is set to run an end of map vote.
 | 
			
		||||
 *
 | 
			
		||||
 * @return			True if enabled, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:EndOfMapVoteEnabled();
 | 
			
		||||
native bool EndOfMapVoteEnabled();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when mapchooser removes a nomination from its list.
 | 
			
		||||
@@ -105,8 +134,7 @@ forward void OnNominationRemoved(const char[] map, int owner);
 | 
			
		||||
 */
 | 
			
		||||
forward void OnMapVoteStarted();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public SharedPlugin:__pl_mapchooser = 
 | 
			
		||||
public SharedPlugin __pl_mapchooser = 
 | 
			
		||||
{
 | 
			
		||||
	name = "mapchooser",
 | 
			
		||||
	file = "mapchooser.smx",
 | 
			
		||||
@@ -117,7 +145,7 @@ public SharedPlugin:__pl_mapchooser =
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
public __pl_mapchooser_SetNTVOptional()
 | 
			
		||||
public void __pl_mapchooser_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("NominateMap");
 | 
			
		||||
	MarkNativeAsOptional("RemoveNominationByMap");
 | 
			
		||||
@@ -129,4 +157,3 @@ public __pl_mapchooser_SetNTVOptional()
 | 
			
		||||
	MarkNativeAsOptional("HasEndOfMapVoteFinished");
 | 
			
		||||
	MarkNativeAsOptional("EndOfMapVoteEnabled");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								env/include/menus.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								env/include/menus.inc
									
									
									
									
										vendored
									
									
								
							@@ -72,7 +72,7 @@ enum MenuAction
 | 
			
		||||
/** Default menu actions */
 | 
			
		||||
#define MENU_ACTIONS_DEFAULT	MenuAction_Select|MenuAction_Cancel|MenuAction_End
 | 
			
		||||
/** All menu actions */
 | 
			
		||||
#define MENU_ACTIONS_ALL		MenuAction:0xFFFFFFFF
 | 
			
		||||
#define MENU_ACTIONS_ALL		view_as<MenuAction>(0xFFFFFFFF)
 | 
			
		||||
 | 
			
		||||
#define MENU_NO_PAGINATION		0		/**< Menu should not be paginated (10 items max) */
 | 
			
		||||
#define MENU_TIME_FOREVER		0		/**< Menu should be displayed as long as possible */
 | 
			
		||||
@@ -176,7 +176,7 @@ methodmap Panel < Handle
 | 
			
		||||
	//                      No numbering or newlines are needed.
 | 
			
		||||
	// @param style         ITEMDRAW style flags.
 | 
			
		||||
	// @return              A slot position, or 0 if item was a rawline or could not be drawn.
 | 
			
		||||
	public native void DrawItem(const char[] text, style=ITEMDRAW_DEFAULT);
 | 
			
		||||
	public native int DrawItem(const char[] text, int style=ITEMDRAW_DEFAULT);
 | 
			
		||||
 | 
			
		||||
	// Draws a raw line of text on a panel, without any markup other than a
 | 
			
		||||
	// newline.
 | 
			
		||||
@@ -379,7 +379,7 @@ methodmap Menu < Handle
 | 
			
		||||
 | 
			
		||||
	// Get or set the menu's pagination.
 | 
			
		||||
	//  
 | 
			
		||||
	// If pgination is MENU_NO_PAGINATION, and the exit button flag is set, 
 | 
			
		||||
	// If pagination is MENU_NO_PAGINATION, and the exit button flag is set, 
 | 
			
		||||
	// then the exit button flag is removed. It can be re-applied if desired.
 | 
			
		||||
	property int Pagination {
 | 
			
		||||
		public native get();
 | 
			
		||||
@@ -784,10 +784,10 @@ native bool VoteMenu(Handle menu, int[] clients, int numClients, int time, int f
 | 
			
		||||
 */
 | 
			
		||||
stock bool VoteMenuToAll(Handle menu, int time, int flags=0)
 | 
			
		||||
{
 | 
			
		||||
	new total;
 | 
			
		||||
	decl players[MaxClients];
 | 
			
		||||
	int total;
 | 
			
		||||
	int[] players = new int[MaxClients];
 | 
			
		||||
	
 | 
			
		||||
	for (new i=1; i<=MaxClients; i++)
 | 
			
		||||
	for (int i=1; i<=MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (!IsClientInGame(i) || IsFakeClient(i))
 | 
			
		||||
		{
 | 
			
		||||
@@ -970,7 +970,7 @@ native void SetPanelTitle(Handle panel, const char[] text, bool onlyIfEmpty=fals
 | 
			
		||||
 * @return				A slot position, or 0 if item was a rawline or could not be drawn.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native int DrawPanelItem(Handle panel, const char[] text, style=ITEMDRAW_DEFAULT);
 | 
			
		||||
native int DrawPanelItem(Handle panel, const char[] text, int style=ITEMDRAW_DEFAULT);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Draws a raw line of text on a panel, without any markup other than a newline.
 | 
			
		||||
@@ -992,7 +992,7 @@ native bool DrawPanelText(Handle panel, const char[] text);
 | 
			
		||||
 * @return				True if item is drawable, false otherwise.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native bool CanPanelDrawFlags(Handle panel, style);
 | 
			
		||||
native bool CanPanelDrawFlags(Handle panel, int style);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the selectable key map of a panel.  This is not supported by
 | 
			
		||||
@@ -1096,7 +1096,7 @@ native bool InternalShowMenu(int client, const char[] str, int time, int keys=-1
 | 
			
		||||
 * @param winningVotes	Number of votes received by the winning option.
 | 
			
		||||
 * @param totalVotes	Number of total votes received.
 | 
			
		||||
 */
 | 
			
		||||
stock void GetMenuVoteInfo(param2, &winningVotes, &totalVotes)
 | 
			
		||||
stock void GetMenuVoteInfo(int param2, int &winningVotes, int &totalVotes)
 | 
			
		||||
{
 | 
			
		||||
	winningVotes = param2 & 0xFFFF;
 | 
			
		||||
	totalVotes = param2 >> 16;
 | 
			
		||||
@@ -1119,4 +1119,3 @@ stock bool IsNewVoteAllowed()
 | 
			
		||||
	
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								env/include/nextmap.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								env/include/nextmap.inc
									
									
									
									
										vendored
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
/**
 | 
			
		||||
 * vim: set ts=4 :
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 * SourceMod (C)2004-2008 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * SourceMod (C)2004-2014 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 *
 | 
			
		||||
 * This file is part of the SourceMod/SourcePawn SDK.
 | 
			
		||||
@@ -42,7 +42,7 @@
 | 
			
		||||
 * @param map		Next map to set.
 | 
			
		||||
 * @return			True if the nextmap was set, false if map was invalid.
 | 
			
		||||
 */
 | 
			
		||||
native bool:SetNextMap(const String:map[]);
 | 
			
		||||
native bool SetNextMap(const char[] map);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns SourceMod's internal nextmap.
 | 
			
		||||
@@ -51,23 +51,22 @@ native bool:SetNextMap(const String:map[]);
 | 
			
		||||
 * @param maxlen	Maximum length of the map buffer.
 | 
			
		||||
 * @return			True if a Map was found and copied, false if no nextmap is set (map will be unchanged).
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetNextMap(String:map[], maxlen);
 | 
			
		||||
native bool GetNextMap(char[] map, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Changes the current map and records the reason for the change with maphistory
 | 
			
		||||
 *
 | 
			
		||||
 * @param map		Map to change to.
 | 
			
		||||
 * @param reason	Reason for change.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native ForceChangeLevel(const String:map[], const String:reason[]);
 | 
			
		||||
native void ForceChangeLevel(const char[] map, const char[] reason);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the current number of maps in the map history
 | 
			
		||||
 *
 | 
			
		||||
 * @return			Number of maps.
 | 
			
		||||
 */
 | 
			
		||||
native GetMapHistorySize();
 | 
			
		||||
native int GetMapHistorySize();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a map from the map history list.
 | 
			
		||||
@@ -78,7 +77,6 @@ native GetMapHistorySize();
 | 
			
		||||
 * @param reason		Buffer to store the change reason.
 | 
			
		||||
 * @param reasonLen		Length of the reason buffer.
 | 
			
		||||
 * @param startTime		Time the map started.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid item number.	
 | 
			
		||||
 */
 | 
			
		||||
native GetMapHistory(item, String:map[], mapLen, String:reason[], reasonLen, &startTime);
 | 
			
		||||
native void GetMapHistory(int item, char[] map, int mapLen, char[] reason, int reasonLen, int &startTime);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								env/include/profiler.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								env/include/profiler.inc
									
									
									
									
										vendored
									
									
								
							@@ -45,25 +45,23 @@
 | 
			
		||||
 *
 | 
			
		||||
 * @return			Handle to the profiler object.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:CreateProfiler();
 | 
			
		||||
native Handle CreateProfiler();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts profiling.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prof		Profiling object.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native StartProfiling(Handle:prof);
 | 
			
		||||
native void StartProfiling(Handle prof);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Stops profiling.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prof		Profiling object.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid Handle or profiling was never started.
 | 
			
		||||
 */
 | 
			
		||||
native StopProfiling(Handle:prof);
 | 
			
		||||
native void StopProfiling(Handle prof);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the amount of high-precision time in seconds
 | 
			
		||||
@@ -74,7 +72,7 @@ native StopProfiling(Handle:prof);
 | 
			
		||||
 * @return			Time elapsed in seconds.
 | 
			
		||||
 * @error			Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetProfilerTime(Handle:prof);
 | 
			
		||||
native float GetProfilerTime(Handle prof);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Mark the start of a profiling event.
 | 
			
		||||
@@ -82,19 +80,18 @@ native Float:GetProfilerTime(Handle:prof);
 | 
			
		||||
 * @param group     Budget group. This can be "all" for a default, or a short
 | 
			
		||||
 *                  description like "Timers" or "Events".
 | 
			
		||||
 * @param name      A name to attribute to this profiling event.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native EnterProfilingEvent(const String:group[], const String:name[]);
 | 
			
		||||
native void EnterProfilingEvent(const char[] group, const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Mark the end of the last profiling event. This must be called in the same
 | 
			
		||||
 * stack frame as StartProfilingEvent(). Not doing so, or throwing errors,
 | 
			
		||||
 * will make the resulting profile very wrong.
 | 
			
		||||
 */
 | 
			
		||||
native LeaveProfilingEvent();
 | 
			
		||||
native void LeaveProfilingEvent();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns true if the global profiler is enabled; false otherwise. It is
 | 
			
		||||
 * not necessary to call this before Enter/LeaveProfilingEvent.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsProfilingActive();
 | 
			
		||||
native bool IsProfilingActive();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								env/include/protobuf.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								env/include/protobuf.inc
									
									
									
									
										vendored
									
									
								
							@@ -306,7 +306,7 @@ native bool PbReadBool(Handle pb, const char[] field, int index = PB_FIELD_NOT_R
 | 
			
		||||
 * @param index			Index into repeated field.
 | 
			
		||||
 * @error				Invalid or incorrect Handle, non-existent field, or incorrect field type.
 | 
			
		||||
 */
 | 
			
		||||
native void PbReadString(Handle pb, const char[] field, String:buffer[], maxlength, int index = PB_FIELD_NOT_REPEATED);
 | 
			
		||||
native void PbReadString(Handle pb, const char[] field, char[] buffer, int maxlength, int index = PB_FIELD_NOT_REPEATED);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads an RGBA color value from a protobuf message.
 | 
			
		||||
@@ -317,7 +317,7 @@ native void PbReadString(Handle pb, const char[] field, String:buffer[], maxleng
 | 
			
		||||
 * @param index			Index into repeated field.
 | 
			
		||||
 * @error				Invalid or incorrect Handle, non-existent field, or incorrect field type.
 | 
			
		||||
 */
 | 
			
		||||
native void PbReadColor(Handle pb, const char[] field, buffer[4], int index = PB_FIELD_NOT_REPEATED);
 | 
			
		||||
native void PbReadColor(Handle pb, const char[] field, int buffer[4], int index = PB_FIELD_NOT_REPEATED);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads an XYZ angle value from a protobuf message.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										48
									
								
								env/include/regex.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								env/include/regex.inc
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 * vim: set ts=4 :
 | 
			
		||||
 * vim: set ts=4 sw=4 tw=99 noet :
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
 * SourceMod (C)2004-2008 AlliedModders LLC.  All rights reserved.
 | 
			
		||||
 * =============================================================================
 | 
			
		||||
@@ -92,6 +92,43 @@ enum RegexError
 | 
			
		||||
	REGEX_ERROR_BADLENGTH = -32,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Regular expression objects are used to match or decompose strings based on
 | 
			
		||||
// patterns.
 | 
			
		||||
methodmap Regex < Handle
 | 
			
		||||
{
 | 
			
		||||
	// Compile a regular expression.
 | 
			
		||||
	// 
 | 
			
		||||
	// @param pattern		The regular expression pattern.
 | 
			
		||||
	// @param flags			General flags for the regular expression.
 | 
			
		||||
	// @param error			Error message encountered, if applicable.
 | 
			
		||||
	// @param maxLen		Maximum string length of the error buffer.
 | 
			
		||||
	// @param errcode		Regex type error code encountered, if applicable.
 | 
			
		||||
	public native Regex(const char[] pattern, int flags = 0, char[] error="", int maxLen = 0, RegexError &errcode = REGEX_ERROR_NONE);
 | 
			
		||||
 | 
			
		||||
	// Matches a string against a pre-compiled regular expression pattern.
 | 
			
		||||
	// 
 | 
			
		||||
	// @param str			The string to check.
 | 
			
		||||
	// @param regex			Regex Handle from CompileRegex()
 | 
			
		||||
	// @param ret			Error code, if applicable.
 | 
			
		||||
	// @return				Number of substrings found or -1 on failure.
 | 
			
		||||
	// 
 | 
			
		||||
	// @note				Use the regex handle passed to this function to extract
 | 
			
		||||
	// 						matches with GetRegexSubString().
 | 
			
		||||
	public native int Match(const char[] str, RegexError &ret = REGEX_ERROR_NONE);
 | 
			
		||||
 | 
			
		||||
	// Returns a matched substring from a regex handle.
 | 
			
		||||
    //
 | 
			
		||||
	// Substring ids start at 0 and end at substrings-1, where substrings is the
 | 
			
		||||
	// number returned by Regex.Match.
 | 
			
		||||
	//
 | 
			
		||||
	// @param regex			The regex handle to extract data from.
 | 
			
		||||
	// @param str_id		The index of the expression to get - starts at 0, and ends at substrings - 1.
 | 
			
		||||
	// @param buffer		The buffer to set to the matching substring.
 | 
			
		||||
	// @param maxlen		The maximum string length of the buffer.
 | 
			
		||||
	// @return				True if a substring was found, False on fail/error
 | 
			
		||||
	public native bool GetSubString(int str_id, char[] buffer, int maxlen);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Precompile a regular expression.  Use this if you intend on using the 
 | 
			
		||||
 * same expression multiple times.  Pass the regex handle returned here to
 | 
			
		||||
@@ -132,13 +169,6 @@ native int MatchRegex(Handle regex, const char[] str, RegexError &ret = REGEX_ER
 | 
			
		||||
 */
 | 
			
		||||
native bool GetRegexSubString(Handle regex, int str_id, char[] buffer, int maxlen);
 | 
			
		||||
 | 
			
		||||
methodmap Regex < Handle
 | 
			
		||||
{
 | 
			
		||||
	public Regex() = CompileRegex;
 | 
			
		||||
	public Match() = MatchRegex;
 | 
			
		||||
	public GetSubString() = GetRegexSubString;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Matches a string against a regular expression pattern.
 | 
			
		||||
 *
 | 
			
		||||
@@ -172,7 +202,7 @@ stock int SimpleRegexMatch(const char[] str, const char[] pattern, int flags = 0
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_regex = 
 | 
			
		||||
public Extension __ext_regex = 
 | 
			
		||||
{
 | 
			
		||||
	name = "Regex Extension",
 | 
			
		||||
	file = "regex.ext",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								env/include/sdkhooks.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								env/include/sdkhooks.inc
									
									
									
									
										vendored
									
									
								
							@@ -121,6 +121,7 @@ enum SDKHookType
 | 
			
		||||
	SDKHook_BlockedPost,
 | 
			
		||||
	SDKHook_OnTakeDamageAlive,
 | 
			
		||||
	SDKHook_OnTakeDamageAlivePost,
 | 
			
		||||
	SDKHook_CanBeAutobalanced,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
@@ -129,6 +130,8 @@ enum SDKHookType
 | 
			
		||||
	SDKHook_Blocked,
 | 
			
		||||
	SDKHook_BlockedPost,
 | 
			
		||||
	
 | 
			
		||||
	SDKHook_CanBeAutobalanced,
 | 
			
		||||
	
 | 
			
		||||
	SDKHook_EndTouch,
 | 
			
		||||
	SDKHook_EndTouchPost,
 | 
			
		||||
	
 | 
			
		||||
@@ -291,6 +294,9 @@ typeset SDKHookCB
 | 
			
		||||
	
 | 
			
		||||
	// Reload post
 | 
			
		||||
	function void (int weapon, bool bSuccessful);
 | 
			
		||||
	
 | 
			
		||||
	// CanBeAutobalanced
 | 
			
		||||
	function bool (int client, bool origRet);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -299,17 +305,15 @@ typeset SDKHookCB
 | 
			
		||||
 *
 | 
			
		||||
 * @param		entity		Entity index
 | 
			
		||||
 * @param		classname	Class name
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward OnEntityCreated(entity, const String:classname[]);
 | 
			
		||||
forward void OnEntityCreated(int entity, const char[] classname);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief When an entity is destroyed
 | 
			
		||||
 *
 | 
			
		||||
 * @param		entity		Entity index
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward OnEntityDestroyed(entity);
 | 
			
		||||
forward void OnEntityDestroyed(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief When the game description is retrieved
 | 
			
		||||
@@ -317,18 +321,18 @@ forward OnEntityDestroyed(entity);
 | 
			
		||||
 * @note  Not supported on ep2v.
 | 
			
		||||
 *
 | 
			
		||||
 * @param		gameDesc		Game description
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @return		Plugin_Changed if gameDesc has been edited, else no change.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnGetGameDescription(String:gameDesc[64]);
 | 
			
		||||
forward Action OnGetGameDescription(char gameDesc[64]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief When the level is initialized
 | 
			
		||||
 *
 | 
			
		||||
 * @param		mapName			Name of the map
 | 
			
		||||
 * @param		mapEntities	Entities of the map
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @return		Plugin_Changed if mapEntities has been edited, else no change.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnLevelInit(const String:mapName[], String:mapEntities[2097152]);
 | 
			
		||||
forward Action OnLevelInit(const char[] mapName, char mapEntities[2097152]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Hooks an entity
 | 
			
		||||
@@ -336,9 +340,8 @@ forward Action:OnLevelInit(const String:mapName[], String:mapEntities[2097152]);
 | 
			
		||||
 * @param		entity		Entity index
 | 
			
		||||
 * @param		type			Type of function to hook
 | 
			
		||||
 * @param		callback	Function to call when hook is called
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SDKHook(entity, SDKHookType:type, SDKHookCB:callback);
 | 
			
		||||
native void SDKHook(int entity, SDKHookType type, SDKHookCB callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Hooks an entity
 | 
			
		||||
@@ -348,7 +351,7 @@ native SDKHook(entity, SDKHookType:type, SDKHookCB:callback);
 | 
			
		||||
 * @param		callback	Function to call when hook is called
 | 
			
		||||
 * @return		bool		Hook Successful
 | 
			
		||||
 */
 | 
			
		||||
native bool:SDKHookEx(entity, SDKHookType:type, SDKHookCB:callback);
 | 
			
		||||
native bool SDKHookEx(int entity, SDKHookType type, SDKHookCB callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Unhooks an entity
 | 
			
		||||
@@ -356,9 +359,8 @@ native bool:SDKHookEx(entity, SDKHookType:type, SDKHookCB:callback);
 | 
			
		||||
 * @param    entity   Entity index
 | 
			
		||||
 * @param    type     Type of function to unhook
 | 
			
		||||
 * @param    callback Callback function to unhook
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SDKUnhook(entity, SDKHookType:type, SDKHookCB:callback);
 | 
			
		||||
native void SDKUnhook(int entity, SDKHookType type, SDKHookCB callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Applies damage to an entity
 | 
			
		||||
@@ -373,9 +375,10 @@ native SDKUnhook(entity, SDKHookType:type, SDKHookCB:callback);
 | 
			
		||||
 * @param    weapon         Weapon index (orangebox and later) or -1 for unspecified
 | 
			
		||||
 * @param    damageForce    Velocity of damage force
 | 
			
		||||
 * @param    damagePosition Origin of damage
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SDKHooks_TakeDamage(entity, inflictor, attacker, Float:damage, damageType=DMG_GENERIC, weapon=-1, const Float:damageForce[3]=NULL_VECTOR, const Float:damagePosition[3]=NULL_VECTOR);
 | 
			
		||||
native void SDKHooks_TakeDamage(int entity, int inflictor, int attacker,
 | 
			
		||||
		float damage, int damageType=DMG_GENERIC, int weapon=-1,
 | 
			
		||||
		const float damageForce[3]=NULL_VECTOR, const float damagePosition[3]=NULL_VECTOR);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief				Forces a client to drop the specified weapon
 | 
			
		||||
@@ -384,15 +387,15 @@ native SDKHooks_TakeDamage(entity, inflictor, attacker, Float:damage, damageType
 | 
			
		||||
 * @param weapon		Weapon entity index.
 | 
			
		||||
 * @param vecTarget		Location to toss weapon to, or NULL_VECTOR for default.
 | 
			
		||||
 * @param vecVelocity	Velocity at which to toss weapon, or NULL_VECTOR for default.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client or weapon entity, weapon not owned by client.
 | 
			
		||||
 */
 | 
			
		||||
native SDKHooks_DropWeapon(client, weapon, const Float:vecTarget[3]=NULL_VECTOR, const Float:vecVelocity[3]=NULL_VECTOR);
 | 
			
		||||
native void SDKHooks_DropWeapon(int client, int weapon, const float vecTarget[3]=NULL_VECTOR,
 | 
			
		||||
		const float vecVelocity[3]=NULL_VECTOR);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_sdkhooks = 
 | 
			
		||||
public Extension __ext_sdkhooks = 
 | 
			
		||||
{
 | 
			
		||||
	name = "SDKHooks",
 | 
			
		||||
	file = "sdkhooks.ext",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								env/include/sdktools.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								env/include/sdktools.inc
									
									
									
									
										vendored
									
									
								
							@@ -107,17 +107,15 @@ enum SDKPassMethod
 | 
			
		||||
 * Starts the preparation of an SDK call.
 | 
			
		||||
 *
 | 
			
		||||
 * @param type			Type of function call this will be.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native StartPrepSDKCall(SDKCallType:type);
 | 
			
		||||
native void StartPrepSDKCall(SDKCallType type);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the virtual index of the SDK call if it is virtual.
 | 
			
		||||
 *
 | 
			
		||||
 * @param vtblidx		Virtual table index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native PrepSDKCall_SetVirtual(vtblidx);
 | 
			
		||||
native void PrepSDKCall_SetVirtual(int vtblidx);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds an address in a library and sets it as the address to use for the SDK call.
 | 
			
		||||
@@ -129,7 +127,7 @@ native PrepSDKCall_SetVirtual(vtblidx);
 | 
			
		||||
 * @param bytes			Number of bytes in the binary search string.
 | 
			
		||||
 * @return				True on success, false if nothing was found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:PrepSDKCall_SetSignature(SDKLibrary:lib, const String:signature[], bytes);
 | 
			
		||||
native bool PrepSDKCall_SetSignature(SDKLibrary lib, const char[] signature, int bytes);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Uses the given function address for the SDK call.
 | 
			
		||||
@@ -137,7 +135,7 @@ native bool:PrepSDKCall_SetSignature(SDKLibrary:lib, const String:signature[], b
 | 
			
		||||
 * @param addr			Address of function to use.
 | 
			
		||||
 * @return				True on success, false on failure.
 | 
			
		||||
 */
 | 
			
		||||
native bool:PrepSDKCall_SetAddress(Address:addr);
 | 
			
		||||
native bool PrepSDKCall_SetAddress(Address addr);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds an address or virtual function index in a GameConfig file and sets it as
 | 
			
		||||
@@ -148,7 +146,7 @@ native bool:PrepSDKCall_SetAddress(Address:addr);
 | 
			
		||||
 * @param name			Name of the property to find.
 | 
			
		||||
 * @return				True on success, false if nothing was found.
 | 
			
		||||
 */
 | 
			
		||||
native bool:PrepSDKCall_SetFromConf(Handle:gameconf, SDKFuncConfSource:source, const String:name[]);
 | 
			
		||||
native bool PrepSDKCall_SetFromConf(Handle gameconf, SDKFuncConfSource source, const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the return information of an SDK call.  Do not call this if there is no return data.
 | 
			
		||||
@@ -159,9 +157,8 @@ native bool:PrepSDKCall_SetFromConf(Handle:gameconf, SDKFuncConfSource:source, c
 | 
			
		||||
 * @param pass			How the data is passed in C++.
 | 
			
		||||
 * @param decflags		Flags on decoding from the plugin to C++.
 | 
			
		||||
 * @param encflags		Flags on encoding from C++ to the plugin.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native PrepSDKCall_SetReturnInfo(SDKType:type, SDKPassMethod:pass, decflags=0, encflags=0);
 | 
			
		||||
native void PrepSDKCall_SetReturnInfo(SDKType type, SDKPassMethod pass, int decflags=0, int encflags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a parameter to the calling convention.  This should be called in normal ascending order.
 | 
			
		||||
@@ -170,16 +167,15 @@ native PrepSDKCall_SetReturnInfo(SDKType:type, SDKPassMethod:pass, decflags=0, e
 | 
			
		||||
 * @param pass			How the data is passed in C++.
 | 
			
		||||
 * @param decflags		Flags on decoding from the plugin to C++.
 | 
			
		||||
 * @param encflags		Flags on encoding from C++ to the plugin.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native PrepSDKCall_AddParameter(SDKType:type, SDKPassMethod:pass, decflags=0, encflags=0);
 | 
			
		||||
native void PrepSDKCall_AddParameter(SDKType type, SDKPassMethod pass, int decflags=0, int encflags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finalizes an SDK call preparation and returns the resultant Handle.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				A new SDKCall Handle on success, or INVALID_HANDLE on failure.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:EndPrepSDKCall();
 | 
			
		||||
native Handle EndPrepSDKCall();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Calls an SDK function with the given parameters.
 | 
			
		||||
@@ -201,21 +197,21 @@ native Handle:EndPrepSDKCall();
 | 
			
		||||
 * @return				Simple return value, if any.
 | 
			
		||||
 * @error				Invalid Handle or internal decoding error.
 | 
			
		||||
 */
 | 
			
		||||
native any:SDKCall(Handle:call, any:...);
 | 
			
		||||
native any SDKCall(Handle call, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the entity index of the player resource/manager entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Index of resource entity or -1 if not found.
 | 
			
		||||
 */
 | 
			
		||||
native GetPlayerResourceEntity();
 | 
			
		||||
native int GetPlayerResourceEntity();
 | 
			
		||||
 | 
			
		||||
#include <sdktools_stocks>
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_sdktools = 
 | 
			
		||||
public Extension __ext_sdktools = 
 | 
			
		||||
{
 | 
			
		||||
	name = "SDKTools",
 | 
			
		||||
	file = "sdktools.ext",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								env/include/sdktools_client.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								env/include/sdktools_client.inc
									
									
									
									
										vendored
									
									
								
							@@ -39,14 +39,12 @@
 | 
			
		||||
 * Sets the client to an inactive state waiting for a new map
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		The client index
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native InactivateClient(client);
 | 
			
		||||
native void InactivateClient(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reconnect a client without dropping the netchannel
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		The client index
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native ReconnectClient(client);
 | 
			
		||||
native void ReconnectClient(int client);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								env/include/sdktools_engine.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								env/include/sdktools_engine.inc
									
									
									
									
										vendored
									
									
								
							@@ -42,28 +42,25 @@
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param entity		Entity index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client or entity, lack of mod support, or client not in 
 | 
			
		||||
 *						game.
 | 
			
		||||
 */
 | 
			
		||||
native SetClientViewEntity(client, entity);
 | 
			
		||||
native void SetClientViewEntity(int client, int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a light style.
 | 
			
		||||
 *
 | 
			
		||||
 * @param style			Light style (from 0 to MAX_LIGHTSTYLES-1)
 | 
			
		||||
 * @param value			Light value string (see world.cpp/light.cpp in dlls)
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Light style index is out of range.
 | 
			
		||||
 */
 | 
			
		||||
native SetLightStyle(style, const String:value[]);
 | 
			
		||||
native void SetLightStyle(int style, const char[] value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's eye position.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param pos			Destination vector to store the client's eye position.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientEyePosition(client, Float:pos[3]);
 | 
			
		||||
native void GetClientEyePosition(int client, float pos[3]);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								env/include/sdktools_entinput.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								env/include/sdktools_entinput.inc
									
									
									
									
										vendored
									
									
								
							@@ -38,7 +38,7 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Invokes a named input method on an entity.  
 | 
			
		||||
 *
 | 
			
		||||
 * After completion (successful or not), the current global variant is re-initalized.
 | 
			
		||||
 * After completion (successful or not), the current global variant is re-initialized.
 | 
			
		||||
 *
 | 
			
		||||
 * @param dest		Destination entity index.
 | 
			
		||||
 * @param input		Input action.
 | 
			
		||||
@@ -48,69 +48,61 @@
 | 
			
		||||
 * @return		True if successful otherwise false.
 | 
			
		||||
 * @error		Invalid entity index or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:AcceptEntityInput(dest, const String:input[], activator=-1, caller=-1, outputid=0);
 | 
			
		||||
native bool AcceptEntityInput(int dest, const char[] input, int activator=-1, int caller=-1, int outputid=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a bool value in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param val		Input value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantBool(bool:val);
 | 
			
		||||
native void SetVariantBool(bool val);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a string in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param str		Input string.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantString(const String:str[]);
 | 
			
		||||
native void SetVariantString(const char[] str);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an integer value in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param val		Input value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantInt(val);
 | 
			
		||||
native void SetVariantInt(int val);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a floating point value in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param val		Input value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantFloat(Float:val);
 | 
			
		||||
native void SetVariantFloat(float val);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a 3D vector in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param vec		Input vector.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantVector3D(const Float:vec[3]);
 | 
			
		||||
native void SetVariantVector3D(const float vec[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a 3D position vector in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param vec		Input position vector.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantPosVector3D(const Float:vec[3]);
 | 
			
		||||
native void SetVariantPosVector3D(const float vec[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a color in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param color		Input color.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantColor(const color[4]);
 | 
			
		||||
native void SetVariantColor(const int color[4]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an entity in the global variant object.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Invalid entity index.
 | 
			
		||||
 */
 | 
			
		||||
native SetVariantEntity(entity);
 | 
			
		||||
native void SetVariantEntity(int entity);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								env/include/sdktools_entoutput.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								env/include/sdktools_entoutput.inc
									
									
									
									
										vendored
									
									
								
							@@ -42,9 +42,15 @@
 | 
			
		||||
 * @param caller		Entity index of the caller.
 | 
			
		||||
 * @param activator		Entity index of the activator.
 | 
			
		||||
 * @param delay			Delay in seconds? before the event gets fired.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @return					Anything other than Plugin_Continue will supress this event,
 | 
			
		||||
 *								returning Plugin_Continue will allow it to propagate the results
 | 
			
		||||
 *								of this output to any entity inputs.
 | 
			
		||||
 */
 | 
			
		||||
typedef EntityOutput = function void (const char[] output, int caller, int activator, float delay);
 | 
			
		||||
typeset EntityOutput
 | 
			
		||||
{
 | 
			
		||||
	function void (const char[] output, int caller, int activator, float delay);
 | 
			
		||||
	function Action (const char[] output, int caller, int activator, float delay);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Add an entity output hook on a entity classname
 | 
			
		||||
@@ -52,10 +58,9 @@ typedef EntityOutput = function void (const char[] output, int caller, int activ
 | 
			
		||||
 * @param classname		The classname to hook.
 | 
			
		||||
 * @param output		The output name to hook.
 | 
			
		||||
 * @param callback		An EntityOutput function pointer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Entity Outputs disabled.
 | 
			
		||||
 */
 | 
			
		||||
native HookEntityOutput(const String:classname[], const String:output[], EntityOutput:callback);
 | 
			
		||||
native void HookEntityOutput(const char[] classname, const char[] output, EntityOutput callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Remove an entity output hook.
 | 
			
		||||
@@ -65,7 +70,7 @@ native HookEntityOutput(const String:classname[], const String:output[], EntityO
 | 
			
		||||
 * @return				True on success, false if no valid hook was found.
 | 
			
		||||
 * @error				Entity Outputs disabled.
 | 
			
		||||
 */
 | 
			
		||||
native bool:UnhookEntityOutput(const String:classname[], const String:output[], EntityOutput:callback);
 | 
			
		||||
native bool UnhookEntityOutput(const char[] classname, const char[] output, EntityOutput callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Add an entity output hook on a single entity instance	
 | 
			
		||||
@@ -74,10 +79,9 @@ native bool:UnhookEntityOutput(const String:classname[], const String:output[],
 | 
			
		||||
 * @param output		The output name to hook.
 | 
			
		||||
 * @param callback		An EntityOutput function pointer.
 | 
			
		||||
 * @param once			Only fire this hook once and then remove itself.
 | 
			
		||||
 * @noreturn			
 | 
			
		||||
 * @error				Entity Outputs disabled	or Invalid Entity index.
 | 
			
		||||
 */
 | 
			
		||||
native HookSingleEntityOutput(entity, const String:output[], EntityOutput:callback , bool:once=false);
 | 
			
		||||
native void HookSingleEntityOutput(int entity, const char[] output, EntityOutput callback, bool once=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Remove a single entity output hook.	
 | 
			
		||||
@@ -88,5 +92,4 @@ native HookSingleEntityOutput(entity, const String:output[], EntityOutput:callba
 | 
			
		||||
 * @return				True on success, false if no valid hook was found.
 | 
			
		||||
 * @error				Entity Outputs disabled	or Invalid Entity index.	
 | 
			
		||||
 */
 | 
			
		||||
native bool:UnhookSingleEntityOutput(entity, const String:output[], EntityOutput:callback);
 | 
			
		||||
 | 
			
		||||
native bool UnhookSingleEntityOutput(int entity, const char[] output, EntityOutput callback);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										90
									
								
								env/include/sdktools_functions.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								env/include/sdktools_functions.inc
									
									
									
									
										vendored
									
									
								
							@@ -44,7 +44,7 @@
 | 
			
		||||
 * @error				Invalid client or entity, lack of mod support, or client not in 
 | 
			
		||||
 *						game.
 | 
			
		||||
 */
 | 
			
		||||
native bool:RemovePlayerItem(client, item);
 | 
			
		||||
native bool RemovePlayerItem(int client, int item);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gives a named item to a player.
 | 
			
		||||
@@ -55,7 +55,7 @@ native bool:RemovePlayerItem(client, item);
 | 
			
		||||
 * @return				Entity index on success, or -1 on failure.
 | 
			
		||||
 * @error				Invalid client or client not in game, or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GivePlayerItem(client, const String:item[], iSubType=0);
 | 
			
		||||
native int GivePlayerItem(int client, const char[] item, int iSubType=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the weapon in a player's slot.  
 | 
			
		||||
@@ -65,7 +65,7 @@ native GivePlayerItem(client, const String:item[], iSubType=0);
 | 
			
		||||
 * @return				Entity index on success, -1 if no weapon existed.
 | 
			
		||||
 * @error				Invalid client or client not in game, or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native GetPlayerWeaponSlot(client, slot);
 | 
			
		||||
native int GetPlayerWeaponSlot(int client, int slot);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Ignites an entity on fire.
 | 
			
		||||
@@ -75,19 +75,17 @@ native GetPlayerWeaponSlot(client, slot);
 | 
			
		||||
 * @param npc			True to only affect NPCs.
 | 
			
		||||
 * @param size			Unknown.
 | 
			
		||||
 * @param level			Unknown.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or client not in game, or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native IgniteEntity(entity, Float:time, bool:npc=false, Float:size=0.0, bool:level=false);
 | 
			
		||||
native void IgniteEntity(int entity, float time, bool npc=false, float size=0.0, bool level=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Extinguishes an entity that is on fire.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or client not in game, or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native ExtinguishEntity(entity);
 | 
			
		||||
native void ExtinguishEntity(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Teleports an entity.
 | 
			
		||||
@@ -96,19 +94,17 @@ native ExtinguishEntity(entity);
 | 
			
		||||
 * @param origin		New origin, or NULL_VECTOR for no change.
 | 
			
		||||
 * @param angles		New angles, or NULL_VECTOR for no change.
 | 
			
		||||
 * @param velocity		New velocity, or NULL_VECTOR for no change.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or client not in game, or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TeleportEntity(entity, const Float:origin[3], const Float:angles[3], const Float:velocity[3]);
 | 
			
		||||
native void TeleportEntity(int entity, const float origin[3], const float angles[3], const float velocity[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Forces a player to commit suicide.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client or client not in game, or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native ForcePlayerSuicide(client);
 | 
			
		||||
native void ForcePlayerSuicide(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Slaps a player in a random direction.
 | 
			
		||||
@@ -116,10 +112,9 @@ native ForcePlayerSuicide(client);
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param health		Health to subtract.
 | 
			
		||||
 * @param sound			False to disable the sound effects.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client or client not in game, or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native SlapPlayer(client, health=5, bool:sound=true);
 | 
			
		||||
native void SlapPlayer(int client, int health=5, bool sound=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Searches for an entity by classname.
 | 
			
		||||
@@ -130,7 +125,7 @@ native SlapPlayer(client, health=5, bool:sound=true);
 | 
			
		||||
 * @return				Entity index >= 0 if found, -1 otherwise.
 | 
			
		||||
 * @error				Lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native FindEntityByClassname(startEnt, const String:classname[]);
 | 
			
		||||
native int FindEntityByClassname(int startEnt, const char[] classname);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the client's eye angles.
 | 
			
		||||
@@ -140,7 +135,7 @@ native FindEntityByClassname(startEnt, const String:classname[]);
 | 
			
		||||
 * @return				True on success, false on failure.
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetClientEyeAngles(client, Float:ang[3]);
 | 
			
		||||
native bool GetClientEyeAngles(int client, float ang[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates an entity by string name, but does not spawn it (see DispatchSpawn).
 | 
			
		||||
@@ -152,7 +147,7 @@ native bool:GetClientEyeAngles(client, Float:ang[3]);
 | 
			
		||||
 * @return					Entity index on success, or -1 on failure.
 | 
			
		||||
 * @error					Invalid edict index, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native CreateEntityByName(const String:classname[], ForceEdictIndex=-1);
 | 
			
		||||
native int CreateEntityByName(const char[] classname, int ForceEdictIndex=-1);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Spawns an entity into the game.
 | 
			
		||||
@@ -161,7 +156,7 @@ native CreateEntityByName(const String:classname[], ForceEdictIndex=-1);
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				Invalid entity index, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:DispatchSpawn(entity);
 | 
			
		||||
native bool DispatchSpawn(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Dispatches a KeyValue into given entity using a string value.
 | 
			
		||||
@@ -172,7 +167,7 @@ native bool:DispatchSpawn(entity);
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				Invalid entity index, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:DispatchKeyValue(entity, const String:keyName[], const String:value[]);
 | 
			
		||||
native bool DispatchKeyValue(int entity, const char[] keyName, const char[] value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Dispatches a KeyValue into given entity using a floating point value.
 | 
			
		||||
@@ -183,7 +178,7 @@ native bool:DispatchKeyValue(entity, const String:keyName[], const String:value[
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				Invalid entity index, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:DispatchKeyValueFloat(entity, const String:keyName[], Float:value);
 | 
			
		||||
native bool DispatchKeyValueFloat(int entity, const char[] keyName, float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Dispatches a KeyValue into given entity using a vector value.
 | 
			
		||||
@@ -194,7 +189,7 @@ native bool:DispatchKeyValueFloat(entity, const String:keyName[], Float:value);
 | 
			
		||||
 * @return				True on success, false otherwise.
 | 
			
		||||
 * @error				Invalid entity index, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native bool:DispatchKeyValueVector(entity, const String:keyName[], const Float:vec[3]);
 | 
			
		||||
native bool DispatchKeyValueVector(int entity, const char[] keyName, const float vec[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the entity a client is aiming at.
 | 
			
		||||
@@ -206,7 +201,7 @@ native bool:DispatchKeyValueVector(entity, const String:keyName[], const Float:v
 | 
			
		||||
 * 						-2 if the function is not supported.
 | 
			
		||||
 * @error				Invalid client index or client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native GetClientAimTarget(client, bool:only_clients=true);
 | 
			
		||||
native int GetClientAimTarget(int client, bool only_clients=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the total number of teams in a game.
 | 
			
		||||
@@ -214,7 +209,7 @@ native GetClientAimTarget(client, bool:only_clients=true);
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Total number of teams.
 | 
			
		||||
 */
 | 
			
		||||
native GetTeamCount();
 | 
			
		||||
native int GetTeamCount();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the team name based on a team index.
 | 
			
		||||
@@ -223,10 +218,9 @@ native GetTeamCount();
 | 
			
		||||
 * @param index				Team index.
 | 
			
		||||
 * @param name				Buffer to store string in.
 | 
			
		||||
 * @param maxlength			Maximum length of string buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid team index.
 | 
			
		||||
 */
 | 
			
		||||
native GetTeamName(index, String:name[], maxlength);
 | 
			
		||||
native void GetTeamName(int index, char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the score of a team based on a team index.
 | 
			
		||||
@@ -236,7 +230,7 @@ native GetTeamName(index, String:name[], maxlength);
 | 
			
		||||
 * @return				Score.
 | 
			
		||||
 * @error				Invalid team index.
 | 
			
		||||
 */
 | 
			
		||||
native GetTeamScore(index);
 | 
			
		||||
native int GetTeamScore(int index);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the score of a team based on a team index.
 | 
			
		||||
@@ -244,10 +238,9 @@ native GetTeamScore(index);
 | 
			
		||||
 *
 | 
			
		||||
 * @param index				Team index.
 | 
			
		||||
 * @param value				New score value.
 | 
			
		||||
 * @return				Score.
 | 
			
		||||
 * @error				Invalid team index.
 | 
			
		||||
 */
 | 
			
		||||
native SetTeamScore(index, value);
 | 
			
		||||
native void SetTeamScore(int index, int value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the number of players in a certain team.
 | 
			
		||||
@@ -257,17 +250,25 @@ native SetTeamScore(index, value);
 | 
			
		||||
 * @return				Number of players in the team.
 | 
			
		||||
 * @error				Invalid team index.
 | 
			
		||||
 */
 | 
			
		||||
native GetTeamClientCount(index);
 | 
			
		||||
native int GetTeamClientCount(int index);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the entity index of a team.
 | 
			
		||||
 *
 | 
			
		||||
 * @param teamIndex		Team index.
 | 
			
		||||
 * @return				Entity index of team.
 | 
			
		||||
 * @error				Invalid team index.
 | 
			
		||||
 */
 | 
			
		||||
native int GetTeamEntity(int teamIndex);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the model to a given entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity			Entity index.
 | 
			
		||||
 * @param model				Model name.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity index, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native SetEntityModel(entity, const String:model[]);
 | 
			
		||||
native void SetEntityModel(int entity, const char[] model);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the decal file name associated with a given client.
 | 
			
		||||
@@ -278,7 +279,7 @@ native SetEntityModel(entity, const String:model[]);
 | 
			
		||||
 * @return				True on success, otherwise false.
 | 
			
		||||
 * @error				Invalid client or client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetPlayerDecalFile(client, String:hex[], maxlength);
 | 
			
		||||
native bool GetPlayerDecalFile(int client, char[] hex, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the jingle file name associated with a given client.
 | 
			
		||||
@@ -289,48 +290,53 @@ native bool:GetPlayerDecalFile(client, String:hex[], maxlength);
 | 
			
		||||
 * @return				True on success, otherwise false.
 | 
			
		||||
 * @error				Invalid client or client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetPlayerJingleFile(client, String:hex[], maxlength);
 | 
			
		||||
native bool GetPlayerJingleFile(int client, char[] hex, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the average server network traffic in bytes/sec.
 | 
			
		||||
 *
 | 
			
		||||
 * @param in				Buffer to store the input traffic velocity.
 | 
			
		||||
 * @param out				Buffer to store the output traffic velocity.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GetServerNetStats(&Float:inAmount, &Float:outAmout);
 | 
			
		||||
native void GetServerNetStats(float &inAmount, float &outAmout);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Equip's a player's weapon.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @param weapon			CBaseCombatWeapon entity index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client or entity, lack of mod support, or client not in 
 | 
			
		||||
 *						game.
 | 
			
		||||
 */
 | 
			
		||||
native EquipPlayerWeapon(client, weapon);
 | 
			
		||||
native void EquipPlayerWeapon(int client, int weapon);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Activates an entity (CBaseAnimating::Activate)
 | 
			
		||||
 *
 | 
			
		||||
 * @param entity		Entity index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid entity or lack of mod support.
 | 
			
		||||
 */
 | 
			
		||||
native ActivateEntity(entity);
 | 
			
		||||
native void ActivateEntity(int entity);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets values to client info buffer keys and notifies the engine of the change.
 | 
			
		||||
 * The change does not get propogated to mods until the next frame.
 | 
			
		||||
 * The change does not get propagated to mods until the next frame.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param key			Key string.
 | 
			
		||||
 * @param value			Value string.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native SetClientInfo(client, const String:key[], const String:value[]);
 | 
			
		||||
native void SetClientInfo(int client, const char[] key, const char[] value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Changes a client's name.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param name			New name.
 | 
			
		||||
 * @error               Invalid client index, or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native void SetClientName(int client, const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gives ammo of a certain type to a player.
 | 
			
		||||
@@ -343,4 +349,4 @@ native SetClientInfo(client, const String:key[], const String:value[]);
 | 
			
		||||
 *
 | 
			
		||||
 * @return Amount of ammo actually given.
 | 
			
		||||
 */
 | 
			
		||||
native GivePlayerAmmo(client, amount, ammotype, bool:suppressSound=false);
 | 
			
		||||
native int GivePlayerAmmo(int client, int amount, int ammotype, bool suppressSound=false);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								env/include/sdktools_gamerules.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								env/include/sdktools_gamerules.inc
									
									
									
									
										vendored
									
									
								
							@@ -82,7 +82,7 @@ enum RoundState {
 | 
			
		||||
 * @return				Value at the given property offset.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_GetProp(const String:prop[], size=4, element=0);
 | 
			
		||||
native int GameRules_GetProp(const char[] prop, int size=4, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an integer value for a property of the gamerules entity.
 | 
			
		||||
@@ -93,11 +93,10 @@ native GameRules_GetProp(const String:prop[], size=4, element=0);
 | 
			
		||||
 *						This value is auto-detected, and the size parameter is 
 | 
			
		||||
 *						only used as a fallback in case detection fails.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @param changeState	This parameter is ignored.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_SetProp(const String:prop[], any:value, size=4, element=0, bool:changeState=false);
 | 
			
		||||
native void GameRules_SetProp(const char[] prop, any value, int size=4, int element=0, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a float value from a property of the gamerules entity.
 | 
			
		||||
@@ -107,7 +106,7 @@ native GameRules_SetProp(const String:prop[], any:value, size=4, element=0, bool
 | 
			
		||||
 * @return				Value at the given property offset.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GameRules_GetPropFloat(const String:prop[], element=0);
 | 
			
		||||
native float GameRules_GetPropFloat(const char[] prop, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a float value for a property of the gamerules entity.
 | 
			
		||||
@@ -115,11 +114,10 @@ native Float:GameRules_GetPropFloat(const String:prop[], element=0);
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param value			Value to set.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @param changeState	This parameter is ignored.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_SetPropFloat(const String:prop[], Float:value, element=0, bool:changeState=false);
 | 
			
		||||
native void GameRules_SetPropFloat(const char[] prop, float value, int element=0, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a entity index from a property of the gamerules entity.
 | 
			
		||||
@@ -131,7 +129,7 @@ native GameRules_SetPropFloat(const String:prop[], Float:value, element=0, bool:
 | 
			
		||||
 *						then -1 is returned.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_GetPropEnt(const String:prop[], element=0);
 | 
			
		||||
native int GameRules_GetPropEnt(const char[] prop, int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an entity index for a property of the gamerules entity.
 | 
			
		||||
@@ -139,11 +137,10 @@ native GameRules_GetPropEnt(const String:prop[], element=0);
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param other			Entity index to set, or -1 to unset.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @param changeState	This parameter is ignored.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_SetPropEnt(const String:prop[], other, element=0, bool:changeState=false);
 | 
			
		||||
native void GameRules_SetPropEnt(const char[] prop, int other, int element=0, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves a vector of floats from the gamerules entity, given a named network property.
 | 
			
		||||
@@ -151,10 +148,9 @@ native GameRules_SetPropEnt(const String:prop[], other, element=0, bool:changeSt
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param vec			Vector buffer to store data in.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_GetPropVector(const String:prop[], Float:vec[3], element=0);
 | 
			
		||||
native void GameRules_GetPropVector(const char[] prop, float vec[3], int element=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a vector of floats in the gamerules entity, given a named network property.
 | 
			
		||||
@@ -162,11 +158,10 @@ native GameRules_GetPropVector(const String:prop[], Float:vec[3], element=0);
 | 
			
		||||
 * @param prop			Property name.
 | 
			
		||||
 * @param vec			Vector to set.
 | 
			
		||||
 * @param element		Element # (starting from 0) if property is an array.
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @param changeState	This parameter is ignored.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_SetPropVector(const String:prop[], const Float:vec[3], element=0, bool:changeState=false);
 | 
			
		||||
native void GameRules_SetPropVector(const char[] prop, const float vec[3], int element=0, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a gamerules property as a string.
 | 
			
		||||
@@ -177,18 +172,18 @@ native GameRules_SetPropVector(const String:prop[], const Float:vec[3], element=
 | 
			
		||||
 * @return				Number of non-null bytes written.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_GetPropString(const String:prop[], String:buffer[], maxlen);
 | 
			
		||||
native int GameRules_GetPropString(const char[] prop, char[] buffer, int maxlen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a gamerules property as a string.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop			Property to use.
 | 
			
		||||
 * @param buffer		String to set.		
 | 
			
		||||
 * @param changeState	If true, change will be sent over the network.
 | 
			
		||||
 * @param changeState	This parameter is ignored.
 | 
			
		||||
 * @return				Number of non-null bytes written.
 | 
			
		||||
 * @error				Not supported.
 | 
			
		||||
 */
 | 
			
		||||
native GameRules_SetPropString(const String:prop[], const String:buffer[], bool:changeState=false);
 | 
			
		||||
native int GameRules_SetPropString(const char[] prop, const char[] buffer, bool changeState=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets the current round state.
 | 
			
		||||
@@ -196,7 +191,7 @@ native GameRules_SetPropString(const String:prop[], const String:buffer[], bool:
 | 
			
		||||
 * @return				Round state.
 | 
			
		||||
 * @error				Game doesn't support round state.
 | 
			
		||||
 */
 | 
			
		||||
stock RoundState:GameRules_GetRoundState()
 | 
			
		||||
stock RoundState GameRules_GetRoundState()
 | 
			
		||||
{
 | 
			
		||||
	return RoundState:GameRules_GetProp("m_iRoundState");
 | 
			
		||||
	return view_as<RoundState>(GameRules_GetProp("m_iRoundState"));
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								env/include/sdktools_hooks.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								env/include/sdktools_hooks.inc
									
									
									
									
										vendored
									
									
								
							@@ -53,7 +53,27 @@
 | 
			
		||||
 * @param mouse		Mouse direction (x, y).
 | 
			
		||||
 * @return 			Plugin_Handled to block the commands from being processed, Plugin_Continue otherwise.
 | 
			
		||||
 *
 | 
			
		||||
 * @note			To see if all 11 params are avaliable, use FeatureType_Capability and
 | 
			
		||||
 * @note			To see if all 11 params are available, use FeatureType_Capability and
 | 
			
		||||
 *					FEATURECAP_PLAYERRUNCMD_11PARAMS.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon, &subtype, &cmdnum, &tickcount, &seed, mouse[2]);
 | 
			
		||||
forward Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon, int &subtype, int &cmdnum, int &tickcount, int &seed, int mouse[2]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Called when a client requests a file from the server.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client	Client index.
 | 
			
		||||
 * @param sFile	Requested file path.
 | 
			
		||||
 *
 | 
			
		||||
 * @return	Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
 | 
			
		||||
 */
 | 
			
		||||
forward Action OnFileSend(int client, const char[] sFile);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Called when a client sends a file to the server.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client	Client index.
 | 
			
		||||
 * @param sFile	Requested file path.
 | 
			
		||||
 *
 | 
			
		||||
 * @return	Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
 | 
			
		||||
 */
 | 
			
		||||
forward Action OnFileReceive(int client, const char[] sFile);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										384
									
								
								env/include/sdktools_sound.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										384
									
								
								env/include/sdktools_sound.inc
									
									
									
									
										vendored
									
									
								
							@@ -92,7 +92,7 @@ enum
 | 
			
		||||
	SNDLEVEL_RUSTLE = 20,		/**< Rustling leaves */
 | 
			
		||||
	SNDLEVEL_WHISPER = 25,		/**< Whispering */
 | 
			
		||||
	SNDLEVEL_LIBRARY = 30,		/**< In a library */
 | 
			
		||||
	SNDLEVEL_FRIDGE = 45,		/**< Refridgerator */
 | 
			
		||||
	SNDLEVEL_FRIDGE = 45,		/**< Refrigerator */
 | 
			
		||||
	SNDLEVEL_HOME = 50,			/**< Average home (3.9 attn) */
 | 
			
		||||
	SNDLEVEL_CONVO = 60,		/**< Normal conversation (2.0 attn) */
 | 
			
		||||
	SNDLEVEL_DRYER = 60,		/**< Clothes dryer */
 | 
			
		||||
@@ -125,9 +125,8 @@ enum
 | 
			
		||||
 * Prefetches a sound.
 | 
			
		||||
 *
 | 
			
		||||
 * @param name		Sound file name relative to the "sounds" folder.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native PrefetchSound(const String:name[]);
 | 
			
		||||
native void PrefetchSound(const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This function is not known to work, and may crash.  You should 
 | 
			
		||||
@@ -137,7 +136,7 @@ native PrefetchSound(const String:name[]);
 | 
			
		||||
 * @return			Duration in seconds.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Does not work, may crash.
 | 
			
		||||
native Float:GetSoundDuration(const String:name[]);
 | 
			
		||||
native float GetSoundDuration(const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Emits an ambient sound.
 | 
			
		||||
@@ -150,16 +149,15 @@ native Float:GetSoundDuration(const String:name[]);
 | 
			
		||||
 * @param vol		Volume (from 0.0 to 1.0).
 | 
			
		||||
 * @param pitch		Pitch (from 0 to 255).
 | 
			
		||||
 * @param delay		Play delay.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native EmitAmbientSound(const String:name[],
 | 
			
		||||
						const Float:pos[3],
 | 
			
		||||
						entity = SOUND_FROM_WORLD,
 | 
			
		||||
						level = SNDLEVEL_NORMAL,
 | 
			
		||||
						flags = SND_NOFLAGS,
 | 
			
		||||
						Float:vol = SNDVOL_NORMAL,
 | 
			
		||||
						pitch = SNDPITCH_NORMAL,
 | 
			
		||||
						Float:delay = 0.0);
 | 
			
		||||
native void EmitAmbientSound(const char[] name,
 | 
			
		||||
						const float pos[3],
 | 
			
		||||
						int entity = SOUND_FROM_WORLD,
 | 
			
		||||
						int level = SNDLEVEL_NORMAL,
 | 
			
		||||
						int flags = SND_NOFLAGS,
 | 
			
		||||
						float vol = SNDVOL_NORMAL,
 | 
			
		||||
						int pitch = SNDPITCH_NORMAL,
 | 
			
		||||
						float delay = 0.0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Fades a client's volume level toward silence or a given percentage.
 | 
			
		||||
@@ -169,10 +167,9 @@ native EmitAmbientSound(const String:name[],
 | 
			
		||||
 * @param outtime	Fade out time, in seconds.
 | 
			
		||||
 * @param holdtime	Hold time, in seconds.
 | 
			
		||||
 * @param intime	Fade in time, in seconds.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid client index or client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native FadeClientVolume(client, Float:percent, Float:outtime, Float:holdtime, Float:intime);
 | 
			
		||||
native void FadeClientVolume(int client, float percent, float outtime, float holdtime, float intime);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Stops a sound.
 | 
			
		||||
@@ -180,9 +177,8 @@ native FadeClientVolume(client, Float:percent, Float:outtime, Float:holdtime, Fl
 | 
			
		||||
 * @param entity	Entity index.
 | 
			
		||||
 * @param channel	Channel number.
 | 
			
		||||
 * @param name		Sound file name relative to the "sounds" folder.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native StopSound(entity, channel, const String:name[]);
 | 
			
		||||
native void StopSound(int entity, int channel, const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Emits a sound to a list of clients.
 | 
			
		||||
@@ -202,31 +198,71 @@ native StopSound(entity, channel, const String:name[]);
 | 
			
		||||
 * @param updatePos		Unknown (updates positions?)
 | 
			
		||||
 * @param soundtime		Alternate time to play sound for.
 | 
			
		||||
 * @param ...			Optional list of Float[3] arrays to specify additional origins.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native EmitSound(const clients[],
 | 
			
		||||
				 numClients,
 | 
			
		||||
				 const String:sample[],
 | 
			
		||||
				 entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				 channel = SNDCHAN_AUTO,
 | 
			
		||||
				 level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 flags = SND_NOFLAGS,
 | 
			
		||||
				 Float:volume = SNDVOL_NORMAL,
 | 
			
		||||
				 pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 speakerentity = -1,
 | 
			
		||||
				 const Float:origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const Float:dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool:updatePos = true,
 | 
			
		||||
				 Float:soundtime = 0.0,
 | 
			
		||||
				 any:...);
 | 
			
		||||
native void EmitSound(const int[] clients,
 | 
			
		||||
				 int numClients,
 | 
			
		||||
				 const char[] sample,
 | 
			
		||||
				 int entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				 int channel = SNDCHAN_AUTO,
 | 
			
		||||
				 int level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 int flags = SND_NOFLAGS,
 | 
			
		||||
				 float volume = SNDVOL_NORMAL,
 | 
			
		||||
				 int pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 int speakerentity = -1,
 | 
			
		||||
				 const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool updatePos = true,
 | 
			
		||||
				 float soundtime = 0.0,
 | 
			
		||||
				 any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Emits a sound or game sound to a list of clients using the latest version of the engine sound interface.
 | 
			
		||||
 * This native is only available in engines that are greater than or equal to Portal 2.
 | 
			
		||||
 *
 | 
			
		||||
 * @param clients		Array of client indexes.
 | 
			
		||||
 * @param numClients	Number of clients in the array.
 | 
			
		||||
 * @param soundEntry	Sound entry name.
 | 
			
		||||
 * @param sample		Sound file name relative to the "sounds" folder.
 | 
			
		||||
 * @param entity		Entity to emit from.
 | 
			
		||||
 * @param channel		Channel to emit with.
 | 
			
		||||
 * @param level			Sound level.
 | 
			
		||||
 * @param seed			Sound seed.
 | 
			
		||||
 * @param flags			Sound flags.
 | 
			
		||||
 * @param volume		Sound volume.
 | 
			
		||||
 * @param pitch			Sound pitch.
 | 
			
		||||
 * @param speakerentity	Unknown.
 | 
			
		||||
 * @param origin		Sound origin.
 | 
			
		||||
 * @param dir			Sound direction.
 | 
			
		||||
 * @param updatePos		Unknown (updates positions?)
 | 
			
		||||
 * @param soundtime		Alternate time to play sound for.
 | 
			
		||||
 * @param ...			Optional list of Float[3] arrays to specify additional origins.
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native void EmitSoundEntry(const int[] clients,
 | 
			
		||||
				 int numClients,
 | 
			
		||||
				 const char[] soundEntry,
 | 
			
		||||
				 const char[] sample,
 | 
			
		||||
				 int entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				 int channel = SNDCHAN_AUTO,
 | 
			
		||||
				 int level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 int seed = 0,
 | 
			
		||||
				 int flags = SND_NOFLAGS,
 | 
			
		||||
				 float volume = SNDVOL_NORMAL,
 | 
			
		||||
				 int pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 int speakerentity = -1,
 | 
			
		||||
				 const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool updatePos = true,
 | 
			
		||||
				 float soundtime = 0.0,
 | 
			
		||||
				 any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Emits a sentence to a list of clients.
 | 
			
		||||
 *
 | 
			
		||||
 * @param clients		Array of client indexes.
 | 
			
		||||
 * @param numClients	Number of clients in the array.
 | 
			
		||||
 * @param sentence		Sentence index (from PrecacheSenteFile).
 | 
			
		||||
 * @param sentence		Sentence index (from PrecacheSentenceFile).
 | 
			
		||||
 * @param entity		Entity to emit from.
 | 
			
		||||
 * @param channel		Channel to emit with.
 | 
			
		||||
 * @param level			Sound level.
 | 
			
		||||
@@ -239,33 +275,32 @@ native EmitSound(const clients[],
 | 
			
		||||
 * @param updatePos		Unknown (updates positions?)
 | 
			
		||||
 * @param soundtime		Alternate time to play sound for.
 | 
			
		||||
 * @param ...			Optional list of Float[3] arrays to specify additional origins.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
native EmitSentence(const clients[],
 | 
			
		||||
				 numClients,
 | 
			
		||||
				 sentence,
 | 
			
		||||
				 entity,
 | 
			
		||||
				 channel = SNDCHAN_AUTO,
 | 
			
		||||
				 level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 flags = SND_NOFLAGS,
 | 
			
		||||
				 Float:volume = SNDVOL_NORMAL,
 | 
			
		||||
				 pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 speakerentity = -1,
 | 
			
		||||
				 const Float:origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const Float:dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool:updatePos = true,
 | 
			
		||||
				 Float:soundtime = 0.0,
 | 
			
		||||
				 any:...);
 | 
			
		||||
native void EmitSentence(const int[] clients,
 | 
			
		||||
				 int numClients,
 | 
			
		||||
				 int sentence,
 | 
			
		||||
				 int entity,
 | 
			
		||||
				 int channel = SNDCHAN_AUTO,
 | 
			
		||||
				 int level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 int flags = SND_NOFLAGS,
 | 
			
		||||
				 float volume = SNDVOL_NORMAL,
 | 
			
		||||
				 int pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 int speakerentity = -1,
 | 
			
		||||
				 const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool updatePos = true,
 | 
			
		||||
				 float soundtime = 0.0,
 | 
			
		||||
				 any ...);
 | 
			
		||||
				 
 | 
			
		||||
/**
 | 
			
		||||
 *Calculates gain of sound on given distance with given sound level in decibel
 | 
			
		||||
 * Calculates gain of sound on given distance with given sound level in decibel
 | 
			
		||||
 *
 | 
			
		||||
 * @param soundlevel	decibel of sound, like SNDLEVEL_NORMAL or integer value
 | 
			
		||||
 * @param distance	distance of sound to calculate, not meter or feet, but Source Engine`s normal Coordinate unit
 | 
			
		||||
 * @return			gain of sound. you can multiply this with original sound`s volume to calculate volume on given distance
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetDistGainFromSoundLevel(soundlevel, Float:distance);
 | 
			
		||||
native float GetDistGainFromSoundLevel(int soundlevel, float distance);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when an ambient sound is about to be emitted to one or more clients.
 | 
			
		||||
@@ -294,69 +329,69 @@ typedef AmbientSHook = function Action (
 | 
			
		||||
  float &delay
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a sound is going to be emitted to one or more clients.
 | 
			
		||||
 * NOTICE: all params can be overwritten to modify the default behaviour.
 | 
			
		||||
 *
 | 
			
		||||
 * @param clients		Array of client indexes.
 | 
			
		||||
 * @param numClients		Number of clients in the array (modify this value if you add/remove elements from the client array).
 | 
			
		||||
 * @param sample		Sound file name relative to the "sounds" folder.
 | 
			
		||||
 * @param entity		Entity emitting the sound.
 | 
			
		||||
 * @param channel		Channel emitting the sound.
 | 
			
		||||
 * @param volume		Sound volume.
 | 
			
		||||
 * @param level			Sound level.
 | 
			
		||||
 * @param pitch			Sound pitch.
 | 
			
		||||
 * @param flags			Sound flags.
 | 
			
		||||
 * @return			Plugin_Continue to allow the sound to be played, Plugin_Stop to block it, 
 | 
			
		||||
 *				  Plugin_Changed when any parameter has been modified.
 | 
			
		||||
 */
 | 
			
		||||
typedef NormalSHook = function Action (
 | 
			
		||||
  int clients[64],
 | 
			
		||||
  int &numClients,
 | 
			
		||||
  char sample[PLATFORM_MAX_PATH],
 | 
			
		||||
  int &entity,
 | 
			
		||||
  int &channel,
 | 
			
		||||
  float &volume,
 | 
			
		||||
  int &level,
 | 
			
		||||
  int &pitch,
 | 
			
		||||
  int &flags
 | 
			
		||||
);
 | 
			
		||||
typeset NormalSHook
 | 
			
		||||
{
 | 
			
		||||
	// Called when a sound is going to be emitted to one or more clients.
 | 
			
		||||
	// NOTICE: all params can be overwritten to modify the default behavior.
 | 
			
		||||
	//
 | 
			
		||||
	// @param clients       Array of client indexes.
 | 
			
		||||
	// @param numClients    Number of clients in the array (modify this value if you add/remove elements from the client array).
 | 
			
		||||
	// @param sample        Sound file name relative to the "sounds" folder.
 | 
			
		||||
	// @param entity        Entity emitting the sound.
 | 
			
		||||
	// @param channel       Channel emitting the sound.
 | 
			
		||||
	// @param volume        Sound volume.
 | 
			
		||||
	// @param level         Sound level.
 | 
			
		||||
	// @param pitch         Sound pitch.
 | 
			
		||||
	// @param flags         Sound flags.
 | 
			
		||||
	// @param soundEntry    Game sound entry name. (Used in engines newer than Portal 2)
 | 
			
		||||
	// @param seed          Sound seed. (Used in engines newer than Portal 2)
 | 
			
		||||
	// @return              Plugin_Continue to allow the sound to be played, Plugin_Stop to block it, 
 | 
			
		||||
	//                      Plugin_Changed when any parameter has been modified.
 | 
			
		||||
	function Action (int clients[MAXPLAYERS], int &numClients, char sample[PLATFORM_MAX_PATH],
 | 
			
		||||
	  int &entity, int &channel, float &volume, int &level, int &pitch, int &flags,
 | 
			
		||||
	  char soundEntry[PLATFORM_MAX_PATH], int &seed);
 | 
			
		||||
	
 | 
			
		||||
	// Deprecated. Use other prototype.
 | 
			
		||||
	function Action (int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH],
 | 
			
		||||
	  int &entity, int &channel, float &volume, int &level, int &pitch, int &flags,
 | 
			
		||||
	  char soundEntry[PLATFORM_MAX_PATH], int &seed);
 | 
			
		||||
	
 | 
			
		||||
	// Deprecated. Use other prototype.
 | 
			
		||||
	function Action (int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH],
 | 
			
		||||
	  int &entity, int &channel, float &volume, int &level, int &pitch, int &flags);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Hooks all played ambient sounds.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hook		Function to use as a hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Invalid function hook.
 | 
			
		||||
 */
 | 
			
		||||
native AddAmbientSoundHook(AmbientSHook:hook);
 | 
			
		||||
native void AddAmbientSoundHook(AmbientSHook hook);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Hooks all played normal sounds.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hook		Function to use as a hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Invalid function hook.
 | 
			
		||||
 */
 | 
			
		||||
native AddNormalSoundHook(NormalSHook:hook);
 | 
			
		||||
native void AddNormalSoundHook(NormalSHook hook);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Unhooks all played ambient sounds.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hook		Function used for the hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Invalid function hook.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveAmbientSoundHook(AmbientSHook:hook);
 | 
			
		||||
native void RemoveAmbientSoundHook(AmbientSHook hook);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Unhooks all played normal sounds.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hook		Function used for the hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Invalid function hook.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveNormalSoundHook(NormalSHook:hook);
 | 
			
		||||
native void RemoveNormalSoundHook(NormalSHook hook);
 | 
			
		||||
				 
 | 
			
		||||
/**
 | 
			
		||||
 * Wrapper to emit sound to one client.
 | 
			
		||||
@@ -374,24 +409,23 @@ native RemoveNormalSoundHook(NormalSHook:hook);
 | 
			
		||||
 * @param dir			Sound direction.
 | 
			
		||||
 * @param updatePos		Unknown (updates positions?)
 | 
			
		||||
 * @param soundtime		Alternate time to play sound for.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock EmitSoundToClient(client,
 | 
			
		||||
				 const String:sample[],
 | 
			
		||||
				 entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				 channel = SNDCHAN_AUTO,
 | 
			
		||||
				 level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 flags = SND_NOFLAGS,
 | 
			
		||||
				 Float:volume = SNDVOL_NORMAL,
 | 
			
		||||
				 pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 speakerentity = -1,
 | 
			
		||||
				 const Float:origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const Float:dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool:updatePos = true,
 | 
			
		||||
				 Float:soundtime = 0.0)
 | 
			
		||||
stock void EmitSoundToClient(int client,
 | 
			
		||||
				 const char[] sample,
 | 
			
		||||
				 int entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				 int channel = SNDCHAN_AUTO,
 | 
			
		||||
				 int level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 int flags = SND_NOFLAGS,
 | 
			
		||||
				 float volume = SNDVOL_NORMAL,
 | 
			
		||||
				 int pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 int speakerentity = -1,
 | 
			
		||||
				 const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool updatePos = true,
 | 
			
		||||
				 float soundtime = 0.0)
 | 
			
		||||
{
 | 
			
		||||
	new clients[1];
 | 
			
		||||
	int clients[1];
 | 
			
		||||
	clients[0] = client;
 | 
			
		||||
	/* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */
 | 
			
		||||
	entity = (entity == SOUND_FROM_PLAYER) ? client : entity;
 | 
			
		||||
@@ -415,26 +449,25 @@ stock EmitSoundToClient(client,
 | 
			
		||||
 * @param dir			Sound direction.
 | 
			
		||||
 * @param updatePos		Unknown (updates positions?)
 | 
			
		||||
 * @param soundtime		Alternate time to play sound for.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock EmitSoundToAll(const String:sample[],
 | 
			
		||||
				 entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				 channel = SNDCHAN_AUTO,
 | 
			
		||||
				 level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 flags = SND_NOFLAGS,
 | 
			
		||||
				 Float:volume = SNDVOL_NORMAL,
 | 
			
		||||
				 pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 speakerentity = -1,
 | 
			
		||||
				 const Float:origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const Float:dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool:updatePos = true,
 | 
			
		||||
				 Float:soundtime = 0.0)
 | 
			
		||||
stock void EmitSoundToAll(const char[] sample,
 | 
			
		||||
				 int entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				 int channel = SNDCHAN_AUTO,
 | 
			
		||||
				 int level = SNDLEVEL_NORMAL,
 | 
			
		||||
				 int flags = SND_NOFLAGS,
 | 
			
		||||
				 float volume = SNDVOL_NORMAL,
 | 
			
		||||
				 int pitch = SNDPITCH_NORMAL,
 | 
			
		||||
				 int speakerentity = -1,
 | 
			
		||||
				 const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				 const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				 bool updatePos = true,
 | 
			
		||||
				 float soundtime = 0.0)
 | 
			
		||||
{
 | 
			
		||||
	new clients[MaxClients];
 | 
			
		||||
	new total = 0;
 | 
			
		||||
	int[] clients = new int[MaxClients];
 | 
			
		||||
	int total = 0;
 | 
			
		||||
	
 | 
			
		||||
	for (new i=1; i<=MaxClients; i++)
 | 
			
		||||
	for (int i=1; i<=MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (IsClientInGame(i))
 | 
			
		||||
		{
 | 
			
		||||
@@ -459,7 +492,7 @@ stock EmitSoundToAll(const String:sample[],
 | 
			
		||||
 * @param attn		Attenuation value.
 | 
			
		||||
 * @return			Integer sound level.
 | 
			
		||||
 */
 | 
			
		||||
stock ATTN_TO_SNDLEVEL(Float:attn)
 | 
			
		||||
stock int ATTN_TO_SNDLEVEL(float attn)
 | 
			
		||||
{
 | 
			
		||||
	if (attn > 0.0)
 | 
			
		||||
	{
 | 
			
		||||
@@ -488,14 +521,14 @@ stock ATTN_TO_SNDLEVEL(Float:attn)
 | 
			
		||||
 * @return				True if the sound was successfully retrieved, false if it
 | 
			
		||||
 *						was not found
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetGameSoundParams(const String:gameSound[],
 | 
			
		||||
				&channel,
 | 
			
		||||
				&soundLevel,
 | 
			
		||||
				&Float:volume,
 | 
			
		||||
				&pitch,
 | 
			
		||||
				String:sample[],
 | 
			
		||||
				maxlength,
 | 
			
		||||
				entity=SOUND_FROM_PLAYER);
 | 
			
		||||
native bool GetGameSoundParams(const char[] gameSound,
 | 
			
		||||
				int &channel,
 | 
			
		||||
				int &soundLevel,
 | 
			
		||||
				float &volume,
 | 
			
		||||
				int &pitch,
 | 
			
		||||
				char[] sample,
 | 
			
		||||
				int maxlength,
 | 
			
		||||
				int entity=SOUND_FROM_PLAYER);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Emits a game sound to a list of clients.
 | 
			
		||||
@@ -519,22 +552,22 @@ native bool:GetGameSoundParams(const String:gameSound[],
 | 
			
		||||
 * @return                             True if the sound was played successfully, false if it failed
 | 
			
		||||
 * @error                              Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:EmitGameSound(const clients[],
 | 
			
		||||
				numClients,
 | 
			
		||||
				const String:gameSound[],
 | 
			
		||||
				entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				flags = SND_NOFLAGS,
 | 
			
		||||
				speakerentity = -1,
 | 
			
		||||
				const Float:origin[3] = NULL_VECTOR,
 | 
			
		||||
				const Float:dir[3] = NULL_VECTOR,
 | 
			
		||||
				bool:updatePos = true,
 | 
			
		||||
				Float:soundtime = 0.0)
 | 
			
		||||
stock bool EmitGameSound(const int[] clients,
 | 
			
		||||
				int numClients,
 | 
			
		||||
				const char[] gameSound,
 | 
			
		||||
				int entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				int flags = SND_NOFLAGS,
 | 
			
		||||
				int speakerentity = -1,
 | 
			
		||||
				const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				bool updatePos = true,
 | 
			
		||||
				float soundtime = 0.0)
 | 
			
		||||
{
 | 
			
		||||
	new channel;
 | 
			
		||||
	new level;
 | 
			
		||||
	new Float:volume;
 | 
			
		||||
	new pitch;
 | 
			
		||||
	new String:sample[PLATFORM_MAX_PATH];
 | 
			
		||||
	int channel;
 | 
			
		||||
	int level;
 | 
			
		||||
	float volume;
 | 
			
		||||
	int pitch;
 | 
			
		||||
	char sample[PLATFORM_MAX_PATH];
 | 
			
		||||
	
 | 
			
		||||
	if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
 | 
			
		||||
	{
 | 
			
		||||
@@ -561,19 +594,18 @@ stock bool:EmitGameSound(const clients[],
 | 
			
		||||
 * @param entity               Entity index to associate sound with.
 | 
			
		||||
 * @param flags                        Sound flags.
 | 
			
		||||
 * @param delay                        Play delay.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock bool:EmitAmbientGameSound(const String:gameSound[],
 | 
			
		||||
				const Float:pos[3],
 | 
			
		||||
				entity = SOUND_FROM_WORLD,
 | 
			
		||||
				flags = SND_NOFLAGS,
 | 
			
		||||
				Float:delay = 0.0)
 | 
			
		||||
stock bool EmitAmbientGameSound(const char[] gameSound,
 | 
			
		||||
				const float pos[3],
 | 
			
		||||
				int entity = SOUND_FROM_WORLD,
 | 
			
		||||
				int flags = SND_NOFLAGS,
 | 
			
		||||
				float delay = 0.0)
 | 
			
		||||
{
 | 
			
		||||
	new channel; // This is never actually used for Ambients, but it's a mandatory field to GetGameSoundParams
 | 
			
		||||
	new level;
 | 
			
		||||
	new Float:volume;
 | 
			
		||||
	new pitch;
 | 
			
		||||
	new String:sample[PLATFORM_MAX_PATH];
 | 
			
		||||
	int channel; // This is never actually used for Ambients, but it's a mandatory field to GetGameSoundParams
 | 
			
		||||
	int level;
 | 
			
		||||
	float volume;
 | 
			
		||||
	int pitch;
 | 
			
		||||
	char sample[PLATFORM_MAX_PATH];
 | 
			
		||||
	
 | 
			
		||||
	if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
 | 
			
		||||
	{
 | 
			
		||||
@@ -604,20 +636,19 @@ stock bool:EmitAmbientGameSound(const String:gameSound[],
 | 
			
		||||
 * @param dir                  Sound direction.
 | 
			
		||||
 * @param updatePos            Unknown (updates positions?)
 | 
			
		||||
 * @param soundtime            Alternate time to play sound for.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error                              Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:EmitGameSoundToClient(client,
 | 
			
		||||
				const String:gameSound[],
 | 
			
		||||
				entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				flags = SND_NOFLAGS,
 | 
			
		||||
				speakerentity = -1,
 | 
			
		||||
				const Float:origin[3] = NULL_VECTOR,
 | 
			
		||||
				const Float:dir[3] = NULL_VECTOR,
 | 
			
		||||
				bool:updatePos = true,
 | 
			
		||||
				Float:soundtime = 0.0)
 | 
			
		||||
stock bool EmitGameSoundToClient(int client,
 | 
			
		||||
				const char[] gameSound,
 | 
			
		||||
				int entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				int flags = SND_NOFLAGS,
 | 
			
		||||
				int speakerentity = -1,
 | 
			
		||||
				const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				bool updatePos = true,
 | 
			
		||||
				float soundtime = 0.0)
 | 
			
		||||
{
 | 
			
		||||
	new clients[1];
 | 
			
		||||
	int clients[1];
 | 
			
		||||
	clients[0] = client;
 | 
			
		||||
	/* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */
 | 
			
		||||
	entity = (entity == SOUND_FROM_PLAYER) ? client : entity;
 | 
			
		||||
@@ -642,22 +673,21 @@ stock bool:EmitGameSoundToClient(client,
 | 
			
		||||
 * @param dir                  Sound direction.
 | 
			
		||||
 * @param updatePos            Unknown (updates positions?)
 | 
			
		||||
 * @param soundtime            Alternate time to play sound for.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error                      Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:EmitGameSoundToAll(const String:gameSound[],
 | 
			
		||||
				entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				flags = SND_NOFLAGS,
 | 
			
		||||
				speakerentity = -1,
 | 
			
		||||
				const Float:origin[3] = NULL_VECTOR,
 | 
			
		||||
				const Float:dir[3] = NULL_VECTOR,
 | 
			
		||||
				bool:updatePos = true,
 | 
			
		||||
				Float:soundtime = 0.0)
 | 
			
		||||
stock bool EmitGameSoundToAll(const char[] gameSound,
 | 
			
		||||
				int entity = SOUND_FROM_PLAYER,
 | 
			
		||||
				int flags = SND_NOFLAGS,
 | 
			
		||||
				int speakerentity = -1,
 | 
			
		||||
				const float origin[3] = NULL_VECTOR,
 | 
			
		||||
				const float dir[3] = NULL_VECTOR,
 | 
			
		||||
				bool updatePos = true,
 | 
			
		||||
				float soundtime = 0.0)
 | 
			
		||||
{
 | 
			
		||||
	new clients[MaxClients];
 | 
			
		||||
	new total = 0;
 | 
			
		||||
	int[] clients = new int[MaxClients];
 | 
			
		||||
	int total = 0;
 | 
			
		||||
	
 | 
			
		||||
	for (new i=1; i<=MaxClients; i++)
 | 
			
		||||
	for (int i=1; i<=MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (IsClientInGame(i))
 | 
			
		||||
		{
 | 
			
		||||
@@ -692,4 +722,4 @@ stock bool:EmitGameSoundToAll(const String:gameSound[],
 | 
			
		||||
 * @return 			True if the game sound was found, false if sound did not exist
 | 
			
		||||
 *					or had no files
 | 
			
		||||
 */
 | 
			
		||||
native bool:PrecacheScriptSound(const String:soundname[]);
 | 
			
		||||
native bool PrecacheScriptSound(const char[] soundname);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								env/include/sdktools_stocks.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								env/include/sdktools_stocks.inc
									
									
									
									
										vendored
									
									
								
							@@ -47,14 +47,14 @@
 | 
			
		||||
 * 					-1 if no team matched.
 | 
			
		||||
 *					-2 if more than one team matched.
 | 
			
		||||
 */
 | 
			
		||||
stock FindTeamByName(const String:name[])
 | 
			
		||||
stock int FindTeamByName(const char[] name)
 | 
			
		||||
{
 | 
			
		||||
	new name_len = strlen(name);
 | 
			
		||||
	new num_teams = GetTeamCount();
 | 
			
		||||
	decl String:team_name[32];
 | 
			
		||||
	new found_team = -1;
 | 
			
		||||
	int name_len = strlen(name);
 | 
			
		||||
	int num_teams = GetTeamCount();
 | 
			
		||||
	char team_name[32];
 | 
			
		||||
	int found_team = -1;
 | 
			
		||||
 | 
			
		||||
	for (new i = 0; i < num_teams; i++)
 | 
			
		||||
	for (int i = 0; i < num_teams; i++)
 | 
			
		||||
	{
 | 
			
		||||
		GetTeamName(i, team_name, sizeof(team_name));
 | 
			
		||||
 | 
			
		||||
@@ -73,4 +73,3 @@ stock FindTeamByName(const String:name[])
 | 
			
		||||
 | 
			
		||||
	return found_team;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										30
									
								
								env/include/sdktools_stringtables.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								env/include/sdktools_stringtables.inc
									
									
									
									
										vendored
									
									
								
							@@ -44,14 +44,14 @@
 | 
			
		||||
 * @param name			Name of string table to find.
 | 
			
		||||
 * @return				A string table index number if found, INVALID_STRING_TABLE otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native FindStringTable(const String:name[]);
 | 
			
		||||
native int FindStringTable(const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of string tables that currently exist.
 | 
			
		||||
 *
 | 
			
		||||
 * @return				Number of string tables that currently exist.
 | 
			
		||||
 */
 | 
			
		||||
native GetNumStringTables();
 | 
			
		||||
native int GetNumStringTables();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of strings that currently exist in a given string table.
 | 
			
		||||
@@ -60,7 +60,7 @@ native GetNumStringTables();
 | 
			
		||||
 * @return				Number of strings that currently exist.
 | 
			
		||||
 * @error				Invalid string table index.
 | 
			
		||||
 */
 | 
			
		||||
native GetStringTableNumStrings(tableidx);
 | 
			
		||||
native int GetStringTableNumStrings(int tableidx);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the maximum number of strings that are allowed in a given string table.
 | 
			
		||||
@@ -69,7 +69,7 @@ native GetStringTableNumStrings(tableidx);
 | 
			
		||||
 * @return				Maximum number of strings allowed.
 | 
			
		||||
 * @error				Invalid string table index.
 | 
			
		||||
 */
 | 
			
		||||
native GetStringTableMaxStrings(tableidx);
 | 
			
		||||
native int GetStringTableMaxStrings(int tableidx);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the name of a string table.
 | 
			
		||||
@@ -80,7 +80,7 @@ native GetStringTableMaxStrings(tableidx);
 | 
			
		||||
 * @return				Number of bytes written to the buffer (UTF-8 safe).
 | 
			
		||||
 * @error				Invalid string table index.
 | 
			
		||||
 */
 | 
			
		||||
native GetStringTableName(tableidx, String:name[], maxlength);
 | 
			
		||||
native int GetStringTableName(int tableidx, char[] name, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Searches for the index of a given string in a string table.
 | 
			
		||||
@@ -90,7 +90,7 @@ native GetStringTableName(tableidx, String:name[], maxlength);
 | 
			
		||||
 * @return				String index if found, INVALID_STRING_INDEX otherwise.
 | 
			
		||||
 * @error				Invalid string table index.
 | 
			
		||||
 */
 | 
			
		||||
native FindStringIndex(tableidx, const String:str[]);
 | 
			
		||||
native int FindStringIndex(int tableidx, const char[] str);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the string at a given index of a string table.
 | 
			
		||||
@@ -102,7 +102,7 @@ native FindStringIndex(tableidx, const String:str[]);
 | 
			
		||||
 * @return				Number of bytes written to the buffer (UTF-8 safe).
 | 
			
		||||
 * @error				Invalid string table index or string index.
 | 
			
		||||
 */
 | 
			
		||||
native ReadStringTable(tableidx, stringidx, String:str[], maxlength);
 | 
			
		||||
native int ReadStringTable(int tableidx, int stringidx, char[] str, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the length of the user data associated with a given string index.
 | 
			
		||||
@@ -112,7 +112,7 @@ native ReadStringTable(tableidx, stringidx, String:str[], maxlength);
 | 
			
		||||
 * @return				Length of user data. This will be 0 if there is no user data.
 | 
			
		||||
 * @error				Invalid string table index or string index.
 | 
			
		||||
 */
 | 
			
		||||
native GetStringTableDataLength(tableidx, stringidx);
 | 
			
		||||
native int GetStringTableDataLength(int tableidx, int stringidx);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the user data associated with a given string index.
 | 
			
		||||
@@ -124,7 +124,7 @@ native GetStringTableDataLength(tableidx, stringidx);
 | 
			
		||||
 * @return				Number of bytes written to the buffer (UTF-8 safe).
 | 
			
		||||
 * @error				Invalid string table index or string index.
 | 
			
		||||
 */
 | 
			
		||||
native GetStringTableData(tableidx, stringidx, String:userdata[], maxlength);
 | 
			
		||||
native int GetStringTableData(int tableidx, int stringidx, char[] userdata, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the user data associated with a given string index.
 | 
			
		||||
@@ -136,7 +136,7 @@ native GetStringTableData(tableidx, stringidx, String:userdata[], maxlength);
 | 
			
		||||
 * @return				Number of bytes written to the buffer (UTF-8 safe).
 | 
			
		||||
 * @error				Invalid string table index or string index.
 | 
			
		||||
 */
 | 
			
		||||
native SetStringTableData(tableidx, stringidx, const String:userdata[], length);
 | 
			
		||||
native int SetStringTableData(int tableidx, int stringidx, const char[] userdata, int length);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a string to a given string table.
 | 
			
		||||
@@ -148,7 +148,7 @@ native SetStringTableData(tableidx, stringidx, const String:userdata[], length);
 | 
			
		||||
 *						If set to -1, then user data will be not be altered if the specified string
 | 
			
		||||
 *						already exists in the string table.
 | 
			
		||||
 */
 | 
			
		||||
native AddToStringTable(tableidx, const String:str[], const String:userdata[]="", length=-1);
 | 
			
		||||
native void AddToStringTable(int tableidx, const char[] str, const char[] userdata="", int length=-1);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Locks or unlocks the network string tables.
 | 
			
		||||
@@ -157,7 +157,7 @@ native AddToStringTable(tableidx, const String:str[], const String:userdata[]=""
 | 
			
		||||
 *						True means the tables should be locked for writing; false means unlocked.
 | 
			
		||||
 * @return				Previous lock state.
 | 
			
		||||
 */
 | 
			
		||||
native bool:LockStringTables(bool:lock);
 | 
			
		||||
native bool LockStringTables(bool lock);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a file to the downloadables network string table.
 | 
			
		||||
@@ -165,16 +165,16 @@ native bool:LockStringTables(bool:lock);
 | 
			
		||||
 *
 | 
			
		||||
 * @param filename		File that will be added to downloadables table.
 | 
			
		||||
 */
 | 
			
		||||
stock AddFileToDownloadsTable(const String:filename[])
 | 
			
		||||
stock void AddFileToDownloadsTable(const char[] filename)
 | 
			
		||||
{
 | 
			
		||||
	static table = INVALID_STRING_TABLE;
 | 
			
		||||
	static int table = INVALID_STRING_TABLE;
 | 
			
		||||
	
 | 
			
		||||
	if (table == INVALID_STRING_TABLE)
 | 
			
		||||
	{
 | 
			
		||||
		table = FindStringTable("downloadables");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	new bool:save = LockStringTables(false);
 | 
			
		||||
	bool save = LockStringTables(false);
 | 
			
		||||
	AddToStringTable(table, filename);
 | 
			
		||||
	LockStringTables(save);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										80
									
								
								env/include/sdktools_tempents.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								env/include/sdktools_tempents.inc
									
									
									
									
										vendored
									
									
								
							@@ -51,29 +51,26 @@ typedef TEHook = function Action (const char[] te_name, const int[] Players, int
 | 
			
		||||
 *
 | 
			
		||||
 * @param te_name	TE name to hook.
 | 
			
		||||
 * @param hook		Function to use as a hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Temp Entity name not available or invalid function hook.
 | 
			
		||||
 */
 | 
			
		||||
native AddTempEntHook(const String:te_name[], TEHook:hook);
 | 
			
		||||
native void AddTempEntHook(const char[] te_name, TEHook hook);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a temp entity hook.
 | 
			
		||||
 *
 | 
			
		||||
 * @param te_name	TE name to unhook.
 | 
			
		||||
 * @param hook		Function used for the hook.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Temp Entity name not available or invalid function hook.
 | 
			
		||||
 */
 | 
			
		||||
native RemoveTempEntHook(const String:te_name[], TEHook:hook);
 | 
			
		||||
native void RemoveTempEntHook(const char[] te_name, TEHook hook);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts a temp entity transmission.
 | 
			
		||||
 *
 | 
			
		||||
 * @param te_name	TE name.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Temp Entity name not available.
 | 
			
		||||
 */
 | 
			
		||||
native TE_Start(const String:te_name[]);
 | 
			
		||||
native void TE_Start(const char[] te_name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if a certain TE property exists.
 | 
			
		||||
@@ -81,17 +78,16 @@ native TE_Start(const String:te_name[]);
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @return		True if the property exists, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:TE_IsValidProp(const String:prop[]);
 | 
			
		||||
native bool TE_IsValidProp(const char[] prop);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an integer value in the current temp entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @param value		Integer value to set.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native TE_WriteNum(const String:prop[], value);
 | 
			
		||||
native void TE_WriteNum(const char[] prop, int value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads an integer value in the current temp entity.
 | 
			
		||||
@@ -100,56 +96,52 @@ native TE_WriteNum(const String:prop[], value);
 | 
			
		||||
 * @return		Property value.
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native TE_ReadNum(const String:prop[]);
 | 
			
		||||
native int TE_ReadNum(const char[] prop);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a floating point number in the current temp entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @param value		Floating point number to set.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native TE_WriteFloat(const String:prop[], Float:value);
 | 
			
		||||
native void TE_WriteFloat(const char[] prop, float value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads a floating point number in the current temp entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @noreturn		Property value.
 | 
			
		||||
 * @return		Property value.
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native Float:TE_ReadFloat(const String:prop[]);
 | 
			
		||||
native float TE_ReadFloat(const char[] prop);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a vector in the current temp entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @param vector	Vector to set.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native TE_WriteVector(const String:prop[], const Float:vector[3]);
 | 
			
		||||
native void TE_WriteVector(const char[] prop, const float vector[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reads a vector in the current temp entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @param vector	Vector to read.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native TE_ReadVector(const String:prop[], Float:vector[3]);
 | 
			
		||||
native void TE_ReadVector(const char[] prop, float vector[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets a QAngle in the current temp entity.
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @param angles	Angles to set.
 | 
			
		||||
 * @return		True on success, otherwise false.
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native TE_WriteAngles(const String:prop[], const Float:angles[3]);
 | 
			
		||||
native void TE_WriteAngles(const char[] prop, const float angles[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an array of floats in the current temp entity.
 | 
			
		||||
@@ -157,10 +149,9 @@ native TE_WriteAngles(const String:prop[], const Float:angles[3]);
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @param array		Array of values to copy.
 | 
			
		||||
 * @param arraySize	Number of values to copy.
 | 
			
		||||
 * @return		True on success, otherwise false.
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
native TE_WriteFloatArray(const String:prop[], const Float:array[], arraySize);
 | 
			
		||||
native void TE_WriteFloatArray(const char[] prop, const float[] array, int arraySize);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sends the current temp entity to one or more clients.
 | 
			
		||||
@@ -168,10 +159,9 @@ native TE_WriteFloatArray(const String:prop[], const Float:array[], arraySize);
 | 
			
		||||
 * @param clients	Array containing player indexes to broadcast to.
 | 
			
		||||
 * @param numClients	Number of players in the array.
 | 
			
		||||
 * @param delay		Delay in seconds to send the TE.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Invalid client index or client not in game.
 | 
			
		||||
 */
 | 
			
		||||
native TE_Send(const clients[], numClients, Float:delay=0.0);
 | 
			
		||||
native void TE_Send(const int[] clients, int numClients, float delay=0.0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets an encoded entity index in the current temp entity.
 | 
			
		||||
@@ -179,13 +169,12 @@ native TE_Send(const clients[], numClients, Float:delay=0.0);
 | 
			
		||||
 *
 | 
			
		||||
 * @param prop		Property to use.
 | 
			
		||||
 * @param value		Value to set.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Property not found.
 | 
			
		||||
 */
 | 
			
		||||
stock TE_WriteEncodedEnt(const String:prop[], value)
 | 
			
		||||
stock void TE_WriteEncodedEnt(const char[] prop, int value)
 | 
			
		||||
{
 | 
			
		||||
	new encvalue = (value & 0x0FFF) | ((1 & 0xF)<<12);
 | 
			
		||||
	return TE_WriteNum(prop, encvalue);
 | 
			
		||||
	int encvalue = (value & 0x0FFF) | ((1 & 0xF)<<12);
 | 
			
		||||
	TE_WriteNum(prop, encvalue);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -193,20 +182,19 @@ stock TE_WriteEncodedEnt(const String:prop[], value)
 | 
			
		||||
 * @note See TE_Start().
 | 
			
		||||
 *
 | 
			
		||||
 * @param delay		Delay in seconds to send the TE.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SendToAll(Float:delay=0.0)
 | 
			
		||||
stock void TE_SendToAll(float delay=0.0)
 | 
			
		||||
{
 | 
			
		||||
	new total = 0;
 | 
			
		||||
	new clients[MaxClients];
 | 
			
		||||
	for (new i=1; i<=MaxClients; i++)
 | 
			
		||||
	int total = 0;
 | 
			
		||||
	int[] clients = new int[MaxClients];
 | 
			
		||||
	for (int i=1; i<=MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (IsClientInGame(i))
 | 
			
		||||
		{
 | 
			
		||||
			clients[total++] = i;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return TE_Send(clients, total, delay);
 | 
			
		||||
	TE_Send(clients, total, delay);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -215,14 +203,30 @@ stock TE_SendToAll(Float:delay=0.0)
 | 
			
		||||
 *
 | 
			
		||||
 * @param client	Client to send to.
 | 
			
		||||
 * @param delay		Delay in seconds to send the TE.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error		Invalid client index or client not in game.
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SendToClient(client, Float:delay=0.0)
 | 
			
		||||
stock void TE_SendToClient(int client, float delay=0.0)
 | 
			
		||||
{
 | 
			
		||||
	new players[1];
 | 
			
		||||
	int players[1];
 | 
			
		||||
 | 
			
		||||
	players[0] = client;
 | 
			
		||||
 | 
			
		||||
	return TE_Send(players, 1, delay);
 | 
			
		||||
	TE_Send(players, 1, delay);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sends the current TE to all clients that are in 
 | 
			
		||||
 * visible or audible range of the origin.
 | 
			
		||||
 * @note See TE_Start().
 | 
			
		||||
 * @note See GetClientsInRange()
 | 
			
		||||
 *
 | 
			
		||||
 * @param origin		Coordinates from which to test range.
 | 
			
		||||
 * @param rangeType		Range type to use for filtering clients.
 | 
			
		||||
 * @param delay			Delay in seconds to send the TE.
 | 
			
		||||
 */
 | 
			
		||||
stock void TE_SendToAllInRange(float origin[3], ClientRangeType rangeType, float delay=0.0)
 | 
			
		||||
{
 | 
			
		||||
	int[] clients = new int[MaxClients];
 | 
			
		||||
	int total = GetClientsInRange(origin, rangeType, clients, MaxClients);
 | 
			
		||||
	TE_Send(clients, total, delay);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								env/include/sdktools_tempents_stocks.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										61
									
								
								env/include/sdktools_tempents_stocks.inc
									
									
									
									
										vendored
									
									
								
							@@ -83,9 +83,8 @@
 | 
			
		||||
 * @param dir			Direction of the sparks.
 | 
			
		||||
 * @param Magnitude		Sparks size.
 | 
			
		||||
 * @param TrailLength		Trail lenght of the sparks.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupSparks(const Float:pos[3], const Float:dir[3], Magnitude, TrailLength)
 | 
			
		||||
stock void TE_SetupSparks(const float pos[3], const float dir[3], int Magnitude, int TrailLength)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Sparks");
 | 
			
		||||
	TE_WriteVector("m_vecOrigin[0]", pos);
 | 
			
		||||
@@ -101,9 +100,8 @@ stock TE_SetupSparks(const Float:pos[3], const Float:dir[3], Magnitude, TrailLen
 | 
			
		||||
 * @param Model			Precached model index.
 | 
			
		||||
 * @param Scale			Scale of the smoke.
 | 
			
		||||
 * @param FrameRate		Frame rate of the smoke.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupSmoke(const Float:pos[3], Model, Float:Scale, FrameRate)
 | 
			
		||||
stock void TE_SetupSmoke(const float pos[3], int Model, float Scale, int FrameRate)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Smoke");
 | 
			
		||||
	TE_WriteVector("m_vecOrigin", pos);
 | 
			
		||||
@@ -119,9 +117,8 @@ stock TE_SetupSmoke(const Float:pos[3], Model, Float:Scale, FrameRate)
 | 
			
		||||
 * @param dir			Direction of the dust.
 | 
			
		||||
 * @param Size			Dust cloud size.
 | 
			
		||||
 * @param Speed			Dust cloud speed.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupDust(const Float:pos[3], const Float:dir[3], Float:Size, Float:Speed)
 | 
			
		||||
stock void TE_SetupDust(const float pos[3], const float dir[3], float Size, float Speed)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Dust");
 | 
			
		||||
	TE_WriteVector("m_vecOrigin[0]", pos);
 | 
			
		||||
@@ -137,9 +134,8 @@ stock TE_SetupDust(const Float:pos[3], const Float:dir[3], Float:Size, Float:Spe
 | 
			
		||||
 * @param angles		Rotation angles of the muzzle flash.
 | 
			
		||||
 * @param Scale			Scale of the muzzle flash.
 | 
			
		||||
 * @param Type			Muzzle flash type to render (Mod specific).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupMuzzleFlash(const Float:pos[3], const Float:angles[3], Float:Scale, Type)
 | 
			
		||||
stock void TE_SetupMuzzleFlash(const float pos[3], const float angles[3], float Scale, int Type)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("MuzzleFlash");
 | 
			
		||||
	TE_WriteVector("m_vecOrigin", pos);
 | 
			
		||||
@@ -153,9 +149,8 @@ stock TE_SetupMuzzleFlash(const Float:pos[3], const Float:angles[3], Float:Scale
 | 
			
		||||
 *
 | 
			
		||||
 * @param pos			Position of the metal sparks.
 | 
			
		||||
 * @param dir			Direction of the metal sparks.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupMetalSparks(const Float:pos[3], const Float:dir[3])
 | 
			
		||||
stock void TE_SetupMetalSparks(const float pos[3], const float dir[3])
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Metal Sparks");
 | 
			
		||||
	TE_WriteVector("m_vecPos", pos);
 | 
			
		||||
@@ -168,9 +163,8 @@ stock TE_SetupMetalSparks(const Float:pos[3], const Float:dir[3])
 | 
			
		||||
 * @param pos			Position of the energy splash.
 | 
			
		||||
 * @param dir			Direction of the energy splash.
 | 
			
		||||
 * @param Explosive		Makes the effect explosive.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupEnergySplash(const Float:pos[3], const Float:dir[3], bool:Explosive)
 | 
			
		||||
stock void TE_SetupEnergySplash(const float pos[3], const float dir[3], bool Explosive)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Energy Splash");
 | 
			
		||||
	TE_WriteVector("m_vecPos", pos);
 | 
			
		||||
@@ -182,10 +176,9 @@ stock TE_SetupEnergySplash(const Float:pos[3], const Float:dir[3], bool:Explosiv
 | 
			
		||||
 * Sets up an armor ricochet effect.
 | 
			
		||||
 *
 | 
			
		||||
 * @param pos			Position of the armor ricochet.
 | 
			
		||||
 * @param dir			Directon of the armor ricochet.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @param dir			Direction of the armor ricochet.
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupArmorRicochet(const Float:pos[3], const Float:dir[3])
 | 
			
		||||
stock void TE_SetupArmorRicochet(const float pos[3], const float dir[3])
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Armor Ricochet");
 | 
			
		||||
	TE_WriteVector("m_vecPos", pos);
 | 
			
		||||
@@ -200,9 +193,8 @@ stock TE_SetupArmorRicochet(const Float:pos[3], const Float:dir[3])
 | 
			
		||||
 * @param Life			Time duration of the sprite.
 | 
			
		||||
 * @param Size			Sprite size.
 | 
			
		||||
 * @param Brightness		Sprite brightness.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupGlowSprite(const Float:pos[3], Model, Float:Life, Float:Size, Brightness)
 | 
			
		||||
stock void TE_SetupGlowSprite(const float pos[3], int Model, float Life, float Size, int Brightness)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("GlowSprite");
 | 
			
		||||
	TE_WriteVector("m_vecOrigin", pos);
 | 
			
		||||
@@ -224,9 +216,8 @@ stock TE_SetupGlowSprite(const Float:pos[3], Model, Float:Life, Float:Size, Brig
 | 
			
		||||
 * @param Magnitude		Explosion size.
 | 
			
		||||
 * @param normal		Normal vector to the explosion.
 | 
			
		||||
 * @param MaterialType		Exploded material type.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupExplosion(const Float:pos[3], Model, Float:Scale, Framerate, Flags, Radius, Magnitude, const Float:normal[3]={0.0, 0.0, 1.0}, MaterialType='C')
 | 
			
		||||
stock void TE_SetupExplosion(const float pos[3], int Model, float Scale, int Framerate, int Flags, int Radius, int Magnitude, const float normal[3]={0.0, 0.0, 1.0}, int MaterialType='C')
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Explosion");
 | 
			
		||||
	TE_WriteVector("m_vecOrigin[0]", pos);
 | 
			
		||||
@@ -249,9 +240,8 @@ stock TE_SetupExplosion(const Float:pos[3], Model, Float:Scale, Framerate, Flags
 | 
			
		||||
 * @param Size			Sprite size.
 | 
			
		||||
 * @param SprayModel		Precached model index.
 | 
			
		||||
 * @param BloodDropModel	Precached model index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupBloodSprite(const Float:pos[3], const Float:dir[3], const color[4], Size, SprayModel, BloodDropModel)
 | 
			
		||||
stock void TE_SetupBloodSprite(const float pos[3], const float dir[3], const int color[4], int Size, int SprayModel, int BloodDropModel)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("Blood Sprite");
 | 
			
		||||
	TE_WriteVector("m_vecOrigin", pos);
 | 
			
		||||
@@ -273,7 +263,7 @@ stock TE_SetupBloodSprite(const Float:pos[3], const Float:dir[3], const color[4]
 | 
			
		||||
 * @param End_Radius		Final ring radius.
 | 
			
		||||
 * @param ModelIndex		Precached model index.
 | 
			
		||||
 * @param HaloIndex		Precached model index.
 | 
			
		||||
 * @param StartFrame		Initital frame to render.
 | 
			
		||||
 * @param StartFrame		Initial frame to render.
 | 
			
		||||
 * @param FrameRate		Ring frame rate.
 | 
			
		||||
 * @param Life			Time duration of the ring.
 | 
			
		||||
 * @param Width			Beam width.
 | 
			
		||||
@@ -281,10 +271,9 @@ stock TE_SetupBloodSprite(const Float:pos[3], const Float:dir[3], const color[4]
 | 
			
		||||
 * @param Color			Color array (r, g, b, a).
 | 
			
		||||
 * @param Speed			Speed of the beam.
 | 
			
		||||
 * @param Flags			Beam flags.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupBeamRingPoint(const Float:center[3], Float:Start_Radius, Float:End_Radius, ModelIndex, HaloIndex, StartFrame, 
 | 
			
		||||
				FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
 | 
			
		||||
stock void TE_SetupBeamRingPoint(const float center[3], float Start_Radius, float End_Radius, int ModelIndex, int HaloIndex, int StartFrame, 
 | 
			
		||||
				int FrameRate, float Life, float Width, float Amplitude, const int Color[4], int Speed, int Flags)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("BeamRingPoint");
 | 
			
		||||
	TE_WriteVector("m_vecCenter", center);
 | 
			
		||||
@@ -314,7 +303,7 @@ stock TE_SetupBeamRingPoint(const Float:center[3], Float:Start_Radius, Float:End
 | 
			
		||||
 * @param end			End position of the beam.
 | 
			
		||||
 * @param ModelIndex		Precached model index.
 | 
			
		||||
 * @param HaloIndex		Precached model index.
 | 
			
		||||
 * @param StartFrame		Initital frame to render.
 | 
			
		||||
 * @param StartFrame		Initial frame to render.
 | 
			
		||||
 * @param FrameRate		Beam frame rate.
 | 
			
		||||
 * @param Life			Time duration of the beam.
 | 
			
		||||
 * @param Width			Initial beam width.
 | 
			
		||||
@@ -323,10 +312,9 @@ stock TE_SetupBeamRingPoint(const Float:center[3], Float:Start_Radius, Float:End
 | 
			
		||||
 * @param Amplitude		Beam amplitude.
 | 
			
		||||
 * @param Color			Color array (r, g, b, a).
 | 
			
		||||
 * @param Speed			Speed of the beam.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupBeamPoints(const Float:start[3], const Float:end[3], ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, 
 | 
			
		||||
				Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
 | 
			
		||||
stock void TE_SetupBeamPoints(const float start[3], const float end[3], int ModelIndex, int HaloIndex, int StartFrame, int FrameRate, float Life, 
 | 
			
		||||
				float Width, float EndWidth, int FadeLength, float Amplitude, const int Color[4], int Speed)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("BeamPoints");
 | 
			
		||||
	TE_WriteVector("m_vecStartPoint", start);
 | 
			
		||||
@@ -354,7 +342,7 @@ stock TE_SetupBeamPoints(const Float:start[3], const Float:end[3], ModelIndex, H
 | 
			
		||||
 * @param EndEntity		Entity index from where the beam ends.
 | 
			
		||||
 * @param ModelIndex		Precached model index.
 | 
			
		||||
 * @param HaloIndex		Precached model index.
 | 
			
		||||
 * @param StartFrame		Initital frame to render.
 | 
			
		||||
 * @param StartFrame		Initial frame to render.
 | 
			
		||||
 * @param FrameRate		Beam frame rate.
 | 
			
		||||
 * @param Life			Time duration of the beam.
 | 
			
		||||
 * @param Width			Initial beam width.
 | 
			
		||||
@@ -363,10 +351,9 @@ stock TE_SetupBeamPoints(const Float:start[3], const Float:end[3], ModelIndex, H
 | 
			
		||||
 * @param Amplitude		Beam amplitude.
 | 
			
		||||
 * @param Color			Color array (r, g, b, a).
 | 
			
		||||
 * @param Speed			Speed of the beam.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupBeamLaser(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, 
 | 
			
		||||
				Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
 | 
			
		||||
stock void TE_SetupBeamLaser(int StartEntity, int EndEntity, int ModelIndex, int HaloIndex, int StartFrame, int FrameRate, float Life, 
 | 
			
		||||
				float Width, float EndWidth, int FadeLength, float Amplitude, const int Color[4], int Speed)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("BeamLaser");
 | 
			
		||||
	TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
 | 
			
		||||
@@ -394,7 +381,7 @@ stock TE_SetupBeamLaser(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFram
 | 
			
		||||
 * @param EndEntity		Entity index from where the ring ends.
 | 
			
		||||
 * @param ModelIndex		Precached model index.
 | 
			
		||||
 * @param HaloIndex		Precached model index.
 | 
			
		||||
 * @param StartFrame		Initital frame to render.
 | 
			
		||||
 * @param StartFrame		Initial frame to render.
 | 
			
		||||
 * @param FrameRate		Ring frame rate.
 | 
			
		||||
 * @param Life			Time duration of the ring.
 | 
			
		||||
 * @param Width			Beam width.
 | 
			
		||||
@@ -402,9 +389,8 @@ stock TE_SetupBeamLaser(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFram
 | 
			
		||||
 * @param Color			Color array (r, g, b, a).
 | 
			
		||||
 * @param Speed			Speed of the beam.
 | 
			
		||||
 * @param Flags			Beam flags.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupBeamRing(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
 | 
			
		||||
stock void TE_SetupBeamRing(int StartEntity, int EndEntity, int ModelIndex, int HaloIndex, int StartFrame, int FrameRate, float Life, float Width, float Amplitude, const int Color[4], int Speed, int Flags)
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("BeamRing");
 | 
			
		||||
	TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
 | 
			
		||||
@@ -437,9 +423,8 @@ stock TE_SetupBeamRing(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame
 | 
			
		||||
 * @param EndWidth		Final beam width.
 | 
			
		||||
 * @param FadeLength		Beam fade time duration.
 | 
			
		||||
 * @param Color			Color array (r, g, b, a).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TE_SetupBeamFollow(EntIndex, ModelIndex, HaloIndex, Float:Life, Float:Width, Float:EndWidth, FadeLength, const Color[4])
 | 
			
		||||
stock void TE_SetupBeamFollow(int EntIndex, int ModelIndex, int HaloIndex, float Life, float Width, float EndWidth, int FadeLength, const int Color[4])
 | 
			
		||||
{
 | 
			
		||||
	TE_Start("BeamFollow");
 | 
			
		||||
	TE_WriteEncodedEnt("m_iEntIndex", EntIndex);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										116
									
								
								env/include/sdktools_trace.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										116
									
								
								env/include/sdktools_trace.inc
									
									
									
									
										vendored
									
									
								
							@@ -71,7 +71,7 @@
 | 
			
		||||
 * @endsection
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define	CONTENTS_ORIGIN			0x1000000	/**< removed before bsping an entity. */
 | 
			
		||||
#define	CONTENTS_ORIGIN			0x1000000	/**< removed before bsp-ing an entity. */
 | 
			
		||||
#define	CONTENTS_MONSTER		0x2000000	/**< should never be on a brush, only in game. */
 | 
			
		||||
#define	CONTENTS_DEBRIS			0x4000000
 | 
			
		||||
#define	CONTENTS_DETAIL			0x8000000	/**< brushes to be added after vis leafs. */
 | 
			
		||||
@@ -139,7 +139,7 @@ typeset TraceEntityFilter
 | 
			
		||||
 * @param entindex		Entity index found at the given position (by reference).
 | 
			
		||||
 * @return				Contents mask.
 | 
			
		||||
 */
 | 
			
		||||
native TR_GetPointContents(const Float:pos[3], &entindex=-1);
 | 
			
		||||
native int TR_GetPointContents(const float pos[3], int &entindex=-1);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get the point contents testing only the given entity index.
 | 
			
		||||
@@ -148,7 +148,7 @@ native TR_GetPointContents(const Float:pos[3], &entindex=-1);
 | 
			
		||||
 * @param pos			World position.
 | 
			
		||||
 * @return				Contents mask.
 | 
			
		||||
 */
 | 
			
		||||
native TR_GetPointContentsEnt(entindex, const Float:pos[3]);
 | 
			
		||||
native int TR_GetPointContentsEnt(int entindex, const float pos[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace ray using a global trace result.
 | 
			
		||||
@@ -158,12 +158,11 @@ native TR_GetPointContentsEnt(entindex, const Float:pos[3]);
 | 
			
		||||
 *						ending point, or the direction angle.
 | 
			
		||||
 * @param flags			Trace flags.
 | 
			
		||||
 * @param rtype			Method to calculate the ray direction.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native TR_TraceRay(const Float:pos[3],
 | 
			
		||||
				   const Float:vec[3],
 | 
			
		||||
				   flags,
 | 
			
		||||
				   RayType:rtype);
 | 
			
		||||
native void TR_TraceRay(const float pos[3],
 | 
			
		||||
						const float vec[3],
 | 
			
		||||
						int flags,
 | 
			
		||||
						RayType rtype);
 | 
			
		||||
				   
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace hull using a global trace result.
 | 
			
		||||
@@ -173,13 +172,12 @@ native TR_TraceRay(const Float:pos[3],
 | 
			
		||||
 * @param mins			Hull minimum size.
 | 
			
		||||
 * @param maxs			Hull maximum size.
 | 
			
		||||
 * @param flags			Trace flags.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native TR_TraceHull(const Float:pos[3],
 | 
			
		||||
					const Float:vec[3],
 | 
			
		||||
					const Float:mins[3],
 | 
			
		||||
					const Float:maxs[3],
 | 
			
		||||
					flags);
 | 
			
		||||
native void TR_TraceHull(const float pos[3],
 | 
			
		||||
						 const float vec[3],
 | 
			
		||||
						 const float mins[3],
 | 
			
		||||
						 const float maxs[3],
 | 
			
		||||
						 int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace ray using a global trace result and a customized 
 | 
			
		||||
@@ -196,14 +194,13 @@ native TR_TraceHull(const Float:pos[3],
 | 
			
		||||
 * @param filter		Function to use as a filter.
 | 
			
		||||
 * @param data			Arbitrary data value to pass through to the filter 
 | 
			
		||||
 *						function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native TR_TraceRayFilter(const Float:pos[3],
 | 
			
		||||
						 const Float:vec[3],
 | 
			
		||||
						 flags,
 | 
			
		||||
						 RayType:rtype,
 | 
			
		||||
						 TraceEntityFilter:filter,
 | 
			
		||||
						 any:data=0);
 | 
			
		||||
native void TR_TraceRayFilter(const float pos[3],
 | 
			
		||||
							  const float vec[3],
 | 
			
		||||
							  int flags,
 | 
			
		||||
							  RayType rtype,
 | 
			
		||||
							  TraceEntityFilter filter,
 | 
			
		||||
							  any data=0);
 | 
			
		||||
						 
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace hull using a global trace result and a customized 
 | 
			
		||||
@@ -221,15 +218,14 @@ native TR_TraceRayFilter(const Float:pos[3],
 | 
			
		||||
 * @param filter		Function to use as a filter.
 | 
			
		||||
 * @param data			Arbitrary data value to pass through to the filter 
 | 
			
		||||
 *						function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native TR_TraceHullFilter(const Float:pos[3],
 | 
			
		||||
						  const Float:vec[3],
 | 
			
		||||
						  const Float:mins[3],
 | 
			
		||||
						  const Float:maxs[3],
 | 
			
		||||
						  flags,
 | 
			
		||||
						  TraceEntityFilter:filter,
 | 
			
		||||
						  any:data=0);
 | 
			
		||||
native void TR_TraceHullFilter(const float pos[3],
 | 
			
		||||
							   const float vec[3],
 | 
			
		||||
							   const float mins[3],
 | 
			
		||||
							   const float maxs[3],
 | 
			
		||||
							   int flags,
 | 
			
		||||
							   TraceEntityFilter filter,
 | 
			
		||||
							   any data=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace ray using a new trace result.
 | 
			
		||||
@@ -241,10 +237,10 @@ native TR_TraceHullFilter(const Float:pos[3],
 | 
			
		||||
 * @param rtype			Method to calculate the ray direction.
 | 
			
		||||
 * @return				Ray trace handle, which must be closed via CloseHandle().
 | 
			
		||||
 */
 | 
			
		||||
native Handle:TR_TraceRayEx(const Float:pos[3],
 | 
			
		||||
							const Float:vec[3],
 | 
			
		||||
							flags,
 | 
			
		||||
							RayType:rtype);
 | 
			
		||||
native Handle TR_TraceRayEx(const float pos[3],
 | 
			
		||||
							const float vec[3],
 | 
			
		||||
							int flags,
 | 
			
		||||
							RayType rtype);
 | 
			
		||||
							
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace hull using a new trace result.
 | 
			
		||||
@@ -256,11 +252,11 @@ native Handle:TR_TraceRayEx(const Float:pos[3],
 | 
			
		||||
 * @param flags			Trace flags.
 | 
			
		||||
 * @return				Ray trace handle, which must be closed via CloseHandle().
 | 
			
		||||
 */
 | 
			
		||||
native Handle:TR_TraceHullEx(const Float:pos[3],
 | 
			
		||||
							 const Float:vec[3],
 | 
			
		||||
							 const Float:mins[3],
 | 
			
		||||
							 const Float:maxs[3],
 | 
			
		||||
							 flags);
 | 
			
		||||
native Handle TR_TraceHullEx(const float pos[3],
 | 
			
		||||
							 const float vec[3],
 | 
			
		||||
							 const float mins[3],
 | 
			
		||||
							 const float maxs[3],
 | 
			
		||||
							 int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace ray using a new trace result and a customized 
 | 
			
		||||
@@ -278,12 +274,12 @@ native Handle:TR_TraceHullEx(const Float:pos[3],
 | 
			
		||||
 * @param data			Arbitrary data value to pass through to the filter function.
 | 
			
		||||
 * @return				Ray trace handle, which must be closed via CloseHandle().
 | 
			
		||||
 */
 | 
			
		||||
native Handle:TR_TraceRayFilterEx(const Float:pos[3], 
 | 
			
		||||
								  const Float:vec[3],
 | 
			
		||||
								  flags, 
 | 
			
		||||
								  RayType:rtype, 
 | 
			
		||||
								  TraceEntityFilter:filter,
 | 
			
		||||
								  any:data=0);
 | 
			
		||||
native Handle TR_TraceRayFilterEx(const float pos[3], 
 | 
			
		||||
								  const float vec[3],
 | 
			
		||||
								  int flags, 
 | 
			
		||||
								  RayType rtype, 
 | 
			
		||||
								  TraceEntityFilter filter,
 | 
			
		||||
								  any data=0);
 | 
			
		||||
								  
 | 
			
		||||
/**
 | 
			
		||||
 * Starts up a new trace hull using a new trace result and a customized 
 | 
			
		||||
@@ -301,13 +297,13 @@ native Handle:TR_TraceRayFilterEx(const Float:pos[3],
 | 
			
		||||
 * @param data			Arbitrary data value to pass through to the filter function.
 | 
			
		||||
 * @return				Ray trace handle, which must be closed via CloseHandle().
 | 
			
		||||
 */
 | 
			
		||||
native Handle:TR_TraceHullFilterEx(const Float:pos[3], 
 | 
			
		||||
								   const Float:vec[3],
 | 
			
		||||
								   const Float:mins[3],
 | 
			
		||||
								   const Float:maxs[3],
 | 
			
		||||
								   flags, 
 | 
			
		||||
								   TraceEntityFilter:filter,
 | 
			
		||||
								   any:data=0);
 | 
			
		||||
native Handle TR_TraceHullFilterEx(const float pos[3], 
 | 
			
		||||
								   const float vec[3],
 | 
			
		||||
								   const float mins[3],
 | 
			
		||||
								   const float maxs[3],
 | 
			
		||||
								   int flags, 
 | 
			
		||||
								   TraceEntityFilter filter,
 | 
			
		||||
								   any data=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the time fraction from a trace result (1.0 means no collision).
 | 
			
		||||
@@ -316,17 +312,16 @@ native Handle:TR_TraceHullFilterEx(const Float:pos[3],
 | 
			
		||||
 * @return				Time fraction value of the trace.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native Float:TR_GetFraction(Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
native float TR_GetFraction(Handle hndl=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the collision position of a trace result.
 | 
			
		||||
 *
 | 
			
		||||
 * @param pos			Vector buffer to store data in.
 | 
			
		||||
 * @param hndl			A trace Handle, or INVALID_HANDLE to use a global trace result.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native TR_GetEndPosition(Float:pos[3], Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
native void TR_GetEndPosition(float pos[3], Handle hndl=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the entity index that collided with the trace.
 | 
			
		||||
@@ -335,7 +330,7 @@ native TR_GetEndPosition(Float:pos[3], Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
 * @return				Entity index or -1 for no collision.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native TR_GetEntityIndex(Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
native int TR_GetEntityIndex(Handle hndl=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if there was any kind of collision along the trace ray.
 | 
			
		||||
@@ -344,7 +339,7 @@ native TR_GetEntityIndex(Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
 * @return				True if any collision found, otherwise false.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native bool:TR_DidHit(Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
native bool TR_DidHit(Handle hndl=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns in which body hit group the trace collided if any.
 | 
			
		||||
@@ -353,17 +348,16 @@ native bool:TR_DidHit(Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
 * @return				Body hit group.
 | 
			
		||||
 * @error				Invalid Handle.
 | 
			
		||||
 */
 | 
			
		||||
native TR_GetHitGroup(Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
native int TR_GetHitGroup(Handle hndl=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Find the normal vector to the collison plane of a trace.
 | 
			
		||||
 * Find the normal vector to the collision plane of a trace.
 | 
			
		||||
 *
 | 
			
		||||
 * @param hndl		A trace Handle, or INVALID_HANDLE to use a global trace result.
 | 
			
		||||
 * @param normal	Vector buffer to store the vector normal to the collision plane
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid Handle
 | 
			
		||||
 */
 | 
			
		||||
native TR_GetPlaneNormal(Handle:hndl, Float:normal[3]);
 | 
			
		||||
native void TR_GetPlaneNormal(Handle hndl, float normal[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Tests a point to see if it's outside any playable area
 | 
			
		||||
@@ -371,4 +365,4 @@ native TR_GetPlaneNormal(Handle:hndl, Float:normal[3]);
 | 
			
		||||
 * @param pos		Vector buffer to store data in.
 | 
			
		||||
 * @return		True if outside world, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native TR_PointOutsideWorld(Float:pos[3]);
 | 
			
		||||
native bool TR_PointOutsideWorld(float pos[3]);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								env/include/sdktools_voice.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								env/include/sdktools_voice.inc
									
									
									
									
										vendored
									
									
								
							@@ -61,9 +61,8 @@ enum ListenOverride
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		The client index
 | 
			
		||||
 * @param flags		The voice flags
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SetClientListeningFlags(client, flags);
 | 
			
		||||
native void SetClientListeningFlags(int client, int flags);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieve the client current listening flags.
 | 
			
		||||
@@ -71,7 +70,7 @@ native SetClientListeningFlags(client, flags);
 | 
			
		||||
 * @param client		The client index
 | 
			
		||||
 * @return			The current voice flags
 | 
			
		||||
 */
 | 
			
		||||
native GetClientListeningFlags(client);
 | 
			
		||||
native int GetClientListeningFlags(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Set the receiver ability to listen to the sender.
 | 
			
		||||
@@ -82,7 +81,7 @@ native GetClientListeningFlags(client);
 | 
			
		||||
 * @return			True if successful otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use SetListenOverride() instead
 | 
			
		||||
native bool:SetClientListening(iReceiver, iSender, bool:bListen);
 | 
			
		||||
native bool SetClientListening(int iReceiver, int iSender, bool bListen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves if the receiver can listen to the sender.
 | 
			
		||||
@@ -92,7 +91,7 @@ native bool:SetClientListening(iReceiver, iSender, bool:bListen);
 | 
			
		||||
 * @return			True if successful otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated GetListenOverride() instead
 | 
			
		||||
native bool:GetClientListening(iReceiver, iSender);
 | 
			
		||||
native bool GetClientListening(int iReceiver, int iSender);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Override the receiver's ability to listen to the sender.
 | 
			
		||||
@@ -102,7 +101,7 @@ native bool:GetClientListening(iReceiver, iSender);
 | 
			
		||||
 * @param override		The override of the receiver's ability to listen to the sender.
 | 
			
		||||
 * @return			True if successful otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:SetListenOverride(iReceiver, iSender, ListenOverride:override);
 | 
			
		||||
native bool SetListenOverride(int iReceiver, int iSender, ListenOverride override);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the override of the receiver's ability to listen to the sender.
 | 
			
		||||
@@ -111,7 +110,7 @@ native bool:SetListenOverride(iReceiver, iSender, ListenOverride:override);
 | 
			
		||||
 * @param iSender		The sender index.
 | 
			
		||||
 * @return			The override value.
 | 
			
		||||
 */
 | 
			
		||||
native ListenOverride:GetListenOverride(iReceiver, iSender);
 | 
			
		||||
native ListenOverride GetListenOverride(int iReceiver, int iSender);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves if the muter has muted the mutee.
 | 
			
		||||
@@ -120,5 +119,4 @@ native ListenOverride:GetListenOverride(iReceiver, iSender);
 | 
			
		||||
 * @param iMutee		The mutee index.
 | 
			
		||||
 * @return			True if muter has muted mutee, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsClientMuted(iMuter, iMutee);
 | 
			
		||||
 | 
			
		||||
native bool IsClientMuted(int iMuter, int iMutee);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								env/include/sorting.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								env/include/sorting.inc
									
									
									
									
										vendored
									
									
								
							@@ -62,9 +62,8 @@ enum SortType
 | 
			
		||||
 * @param array			Array of integers to sort in-place.
 | 
			
		||||
 * @param array_size	Size of the array.
 | 
			
		||||
 * @param order			Sorting order to use.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SortIntegers(array[], array_size, SortOrder:order = Sort_Ascending);
 | 
			
		||||
native void SortIntegers(int[] array, int array_size, SortOrder order = Sort_Ascending);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sorts an array of float point numbers.
 | 
			
		||||
@@ -72,9 +71,8 @@ native SortIntegers(array[], array_size, SortOrder:order = Sort_Ascending);
 | 
			
		||||
 * @param array			Array of floating point numbers to sort in-place.
 | 
			
		||||
 * @param array_size	Size of the array.
 | 
			
		||||
 * @param order			Sorting order to use.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SortFloats(Float:array[], array_size, SortOrder:order = Sort_Ascending);
 | 
			
		||||
native void SortFloats(float[] array, int array_size, SortOrder order = Sort_Ascending);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sorts an array of strings.
 | 
			
		||||
@@ -82,9 +80,8 @@ native SortFloats(Float:array[], array_size, SortOrder:order = Sort_Ascending);
 | 
			
		||||
 * @param array			Array of strings to sort in-place.
 | 
			
		||||
 * @param array_size	Size of the array.
 | 
			
		||||
 * @param order			Sorting order to use.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SortStrings(String:array[][], array_size, SortOrder:order = Sort_Ascending);
 | 
			
		||||
native void SortStrings(char[][] array, int array_size, SortOrder order = Sort_Ascending);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sort comparison function for 1D array elements.
 | 
			
		||||
@@ -107,9 +104,8 @@ typedef SortFunc1D = function int (int elem1, int elem2, const int[] array, Hand
 | 
			
		||||
 * @param array_size	Size of the array to sort.
 | 
			
		||||
 * @param sortfunc		Sort function.
 | 
			
		||||
 * @param hndl			Optional Handle to pass through the comparison calls.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SortCustom1D(array[], array_size, SortFunc1D:sortfunc, Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
native void SortCustom1D(int[] array, int array_size, SortFunc1D sortfunc, Handle hndl=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sort comparison function for 2D array elements (sub-arrays).
 | 
			
		||||
@@ -136,9 +132,8 @@ typeset SortFunc2D
 | 
			
		||||
 * @param array_size	Size of the major array to sort (first index, outermost).
 | 
			
		||||
 * @param sortfunc		Sort comparison function to use.
 | 
			
		||||
 * @param hndl			Optional Handle to pass through the comparison calls.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SortCustom2D(array[][], array_size, SortFunc2D:sortfunc, Handle:hndl=INVALID_HANDLE);
 | 
			
		||||
native void SortCustom2D(any[][] array, int array_size, SortFunc2D sortfunc, Handle hndl=INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sort an ADT Array. Specify the type as Integer, Float, or String.
 | 
			
		||||
@@ -146,9 +141,8 @@ native SortCustom2D(array[][], array_size, SortFunc2D:sortfunc, Handle:hndl=INVA
 | 
			
		||||
 * @param array			Array Handle to sort
 | 
			
		||||
 * @param order			Sort order to use, same as other sorts.
 | 
			
		||||
 * @param type			Data type stored in the ADT Array
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SortADTArray(Handle:array, SortOrder:order, SortType:type);
 | 
			
		||||
native void SortADTArray(Handle array, SortOrder order, SortType type);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sort comparison function for ADT Array elements. Function provides you with
 | 
			
		||||
@@ -169,8 +163,7 @@ typedef SortFuncADTArray = function int (int index1, int index2, Handle array, H
 | 
			
		||||
 * Custom sorts an ADT Array. You must pass in a comparison function.
 | 
			
		||||
 *
 | 
			
		||||
 * @param array			Array Handle to sort
 | 
			
		||||
 * @param sortfunc		Sort comparision function to use
 | 
			
		||||
 * @param sortfunc		Sort comparison function to use
 | 
			
		||||
 * @param hndl			Optional Handle to pass through the comparison calls.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native SortADTArrayCustom(Handle:array, SortFuncADTArray:sortfunc, Handle:hndl=INVALID_HANDLE); 
 | 
			
		||||
native void SortADTArrayCustom(Handle array, SortFuncADTArray sortfunc, Handle hndl=INVALID_HANDLE); 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										998
									
								
								env/include/sourcemod.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										998
									
								
								env/include/sourcemod.inc
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										92
									
								
								env/include/string.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										92
									
								
								env/include/string.inc
									
									
									
									
										vendored
									
									
								
							@@ -48,7 +48,7 @@
 | 
			
		||||
 * @param str			String to check.
 | 
			
		||||
 * @return				Number of valid character bytes in the string.
 | 
			
		||||
 */
 | 
			
		||||
native strlen(const String:str[]);
 | 
			
		||||
native int strlen(const char[] str);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Tests whether a string is found inside another string.
 | 
			
		||||
@@ -60,7 +60,7 @@ native strlen(const String:str[]);
 | 
			
		||||
 * @return				-1 on failure (no match found). Any other value
 | 
			
		||||
 *						indicates a position in the string where the match starts.
 | 
			
		||||
 */
 | 
			
		||||
native StrContains(const String:str[], const String:substr[], bool:caseSensitive=true);
 | 
			
		||||
native int StrContains(const char[] str, const char[] substr, bool caseSensitive=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Compares two strings lexographically.
 | 
			
		||||
@@ -73,7 +73,7 @@ native StrContains(const String:str[], const String:substr[], bool:caseSensitive
 | 
			
		||||
 *						0 if str1 == str2
 | 
			
		||||
 *						1 if str1 > str2
 | 
			
		||||
 */
 | 
			
		||||
native strcmp(const String:str1[], const String:str2[], bool:caseSensitive=true);
 | 
			
		||||
native int strcmp(const char[] str1, const char[] str2, bool caseSensitive=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Compares two strings parts lexographically.
 | 
			
		||||
@@ -87,14 +87,14 @@ native strcmp(const String:str1[], const String:str2[], bool:caseSensitive=true)
 | 
			
		||||
 *						0 if str1 == str2
 | 
			
		||||
 *						1 if str1 > str2
 | 
			
		||||
 */
 | 
			
		||||
native strncmp(const String:str1[], const String:str2[], num, bool:caseSensitive=true);
 | 
			
		||||
native int strncmp(const char[] str1, const char[] str2, int num, bool caseSensitive=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Backwards compatible stock - StrCompare is now strcmp
 | 
			
		||||
 * @deprecated		Renamed to strcmp
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use strcmp() instead
 | 
			
		||||
stock StrCompare(const String:str1[], const String:str2[], bool:caseSensitive=true)
 | 
			
		||||
stock int StrCompare(const char[] str1, const char[] str2, bool caseSensitive=true)
 | 
			
		||||
{
 | 
			
		||||
	return strcmp(str1, str2, caseSensitive);
 | 
			
		||||
}
 | 
			
		||||
@@ -108,7 +108,7 @@ stock StrCompare(const String:str1[], const String:str2[], bool:caseSensitive=tr
 | 
			
		||||
 * 						If false, comparison is case insensitive.
 | 
			
		||||
 * @return				True if equal, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
stock bool:StrEqual(const String:str1[], const String:str2[], bool:caseSensitive=true)
 | 
			
		||||
stock bool StrEqual(const char[] str1, const char[] str2, bool caseSensitive=true)
 | 
			
		||||
{
 | 
			
		||||
	return (strcmp(str1, str2, caseSensitive) == 0);
 | 
			
		||||
}
 | 
			
		||||
@@ -123,14 +123,14 @@ stock bool:StrEqual(const String:str1[], const String:str2[], bool:caseSensitive
 | 
			
		||||
 * @param source		Source string buffer to copy from.
 | 
			
		||||
 * @return				Number of cells written.
 | 
			
		||||
 */
 | 
			
		||||
native strcopy(String:dest[], destLen, const String:source[]);
 | 
			
		||||
native int strcopy(char[] dest, int destLen, const char[] source);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Backwards compatibility stock - use strcopy
 | 
			
		||||
 * @deprecated			Renamed to strcopy
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use strcopy() instead
 | 
			
		||||
stock StrCopy(String:dest[], destLen, const String:source[])
 | 
			
		||||
stock int StrCopy(char[] dest, int destLen, const char[] source)
 | 
			
		||||
{
 | 
			
		||||
	return strcopy(dest, destLen, source);
 | 
			
		||||
}
 | 
			
		||||
@@ -144,7 +144,7 @@ stock StrCopy(String:dest[], destLen, const String:source[])
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @return				Number of cells written.
 | 
			
		||||
 */
 | 
			
		||||
native Format(String:buffer[], maxlength, const String:format[], any:...);
 | 
			
		||||
native int Format(char[] buffer, int maxlength, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Formats a string according to the SourceMod format rules (see documentation).
 | 
			
		||||
@@ -158,7 +158,7 @@ native Format(String:buffer[], maxlength, const String:format[], any:...);
 | 
			
		||||
 * @param ...			Variable number of format parameters.
 | 
			
		||||
 * @return				Number of cells written.
 | 
			
		||||
 */
 | 
			
		||||
native FormatEx(String:buffer[], maxlength, const String:format[], any:...);
 | 
			
		||||
native int FormatEx(char[] buffer, int maxlength, const char[] format, any ...);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Formats a string according to the SourceMod format rules (see documentation).
 | 
			
		||||
@@ -173,7 +173,7 @@ native FormatEx(String:buffer[], maxlength, const String:format[], any:...);
 | 
			
		||||
 *						Note: Arguments start at 1.
 | 
			
		||||
 * @return 				Number of bytes written.
 | 
			
		||||
 */
 | 
			
		||||
native VFormat(String:buffer[], maxlength, const String:format[], varpos);
 | 
			
		||||
native int VFormat(char[] buffer, int maxlength, const char[] format, int varpos);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a string to an integer.
 | 
			
		||||
@@ -182,7 +182,7 @@ native VFormat(String:buffer[], maxlength, const String:format[], varpos);
 | 
			
		||||
 * @param nBase			Numerical base to use.  10 is default.
 | 
			
		||||
 * @return				Integer conversion of string, or 0 on failure.
 | 
			
		||||
 */
 | 
			
		||||
native StringToInt(const String:str[], nBase=10);
 | 
			
		||||
native int StringToInt(const char[] str, int nBase=10);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a string to an integer with some more options.
 | 
			
		||||
@@ -192,7 +192,7 @@ native StringToInt(const String:str[], nBase=10);
 | 
			
		||||
 * @param nBase			Numerical base to use.  10 is default.
 | 
			
		||||
 * @return				Number of characters consumed.
 | 
			
		||||
 */
 | 
			
		||||
native StringToIntEx(const String:str[], &result, nBase=10);
 | 
			
		||||
native int StringToIntEx(const char[] str, int &result, int nBase=10);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts an integer to a string.
 | 
			
		||||
@@ -202,24 +202,24 @@ native StringToIntEx(const String:str[], &result, nBase=10);
 | 
			
		||||
 * @param maxlength		Maximum length of string buffer.
 | 
			
		||||
 * @return				Number of cells written to buffer.
 | 
			
		||||
 */
 | 
			
		||||
native IntToString(num, String:str[], maxlength);
 | 
			
		||||
native int IntToString(int num, char[] str, int maxlength);
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Converts a string to a floating point number.
 | 
			
		||||
 *
 | 
			
		||||
 * @param str			String to convert to a foat.
 | 
			
		||||
 * @param str			String to convert to a float.
 | 
			
		||||
 * @return				Floating point result, or 0.0 on error.
 | 
			
		||||
 */
 | 
			
		||||
native Float:StringToFloat(const String:str[]);
 | 
			
		||||
native float StringToFloat(const char[] str);
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Converts a string to a floating point number with some more options.
 | 
			
		||||
 *
 | 
			
		||||
 * @param str			String to convert to a foat.
 | 
			
		||||
 * @param str			String to convert to a float.
 | 
			
		||||
 * @param result		Variable to store result in.
 | 
			
		||||
 * @return				Number of characters consumed.
 | 
			
		||||
 */
 | 
			
		||||
native StringToFloatEx(const String:str[], &Float:result);
 | 
			
		||||
native int StringToFloatEx(const char[] str, float &result);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Converts a floating point number to a string.
 | 
			
		||||
@@ -229,7 +229,7 @@ native StringToFloatEx(const String:str[], &Float:result);
 | 
			
		||||
 * @param maxlength		Maximum length of string buffer.
 | 
			
		||||
 * @return				Number of cells written to buffer.
 | 
			
		||||
 */
 | 
			
		||||
native FloatToString(Float:num, String:str[], maxlength);
 | 
			
		||||
native int FloatToString(float num, char[] str, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds the first "argument" in a string; either a set of space
 | 
			
		||||
@@ -243,14 +243,14 @@ native FloatToString(Float:num, String:str[], maxlength);
 | 
			
		||||
 * @param argLen		Maximum length of argument buffer.
 | 
			
		||||
 * @return				Index to next piece of string, or -1 if none.
 | 
			
		||||
 */
 | 
			
		||||
native BreakString(const String:source[], String:arg[], argLen);
 | 
			
		||||
native int BreakString(const char[] source, char[] arg, int argLen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Backwards compatibility stock - use BreakString
 | 
			
		||||
 * @deprecated			Renamed to BreakString.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use BreakString() instead
 | 
			
		||||
stock StrBreak(const String:source[], String:arg[], argLen)
 | 
			
		||||
stock int StrBreak(const char[] source, char[] arg, int argLen)
 | 
			
		||||
{
 | 
			
		||||
	return BreakString(source, arg, argLen);
 | 
			
		||||
}
 | 
			
		||||
@@ -261,7 +261,7 @@ stock StrBreak(const String:source[], String:arg[], argLen)
 | 
			
		||||
 * @param str			The string to trim.
 | 
			
		||||
 * @return				Number of bytes written (UTF-8 safe).
 | 
			
		||||
 */
 | 
			
		||||
native TrimString(String:str[]);
 | 
			
		||||
native int TrimString(char[] str);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns text in a string up until a certain character sequence is reached.
 | 
			
		||||
@@ -274,7 +274,7 @@ native TrimString(String:str[]);
 | 
			
		||||
 *						marking the first index after the searched text.  The
 | 
			
		||||
 *						index is always relative to the start of the input string.
 | 
			
		||||
 */
 | 
			
		||||
native SplitString(const String:source[], const String:split[], String:part[], partLen);
 | 
			
		||||
native int SplitString(const char[] source, const char[] split, char[] part, int partLen);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Given a string, replaces all occurrences of a search string with a 
 | 
			
		||||
@@ -287,7 +287,7 @@ native SplitString(const String:source[], const String:split[], String:part[], p
 | 
			
		||||
 * @param caseSensitive	If true (default), search is case sensitive.
 | 
			
		||||
 * @return				Number of replacements that were performed.
 | 
			
		||||
 */
 | 
			
		||||
native ReplaceString(String:text[], maxlength, const String:search[], const String:replace[], bool:caseSensitive=true);
 | 
			
		||||
native int ReplaceString(char[] text, int maxlength, const char[] search, const char[] replace, bool caseSensitive=true);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Given a string, replaces the first occurrence of a search string with a 
 | 
			
		||||
@@ -306,7 +306,7 @@ native ReplaceString(String:text[], maxlength, const String:search[], const Stri
 | 
			
		||||
 *						the last replacement ended, or -1 if no replacements were
 | 
			
		||||
 *						made.
 | 
			
		||||
 */
 | 
			
		||||
native ReplaceStringEx(String:text[], maxlength, const String:search[], const String:replace[], searchLen=-1, replaceLen=-1, bool:caseSensitive=true);
 | 
			
		||||
native int ReplaceStringEx(char[] text, int maxlength, const char[] search, const char[] replace, int searchLen=-1, int replaceLen=-1, bool caseSensitive=true);
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * Returns the number of bytes a character is using.  This is
 | 
			
		||||
@@ -316,7 +316,7 @@ native ReplaceStringEx(String:text[], maxlength, const String:search[], const St
 | 
			
		||||
 * @param source		Source input string.
 | 
			
		||||
 * @return				Number of bytes the current character uses.
 | 
			
		||||
 */
 | 
			
		||||
native GetCharBytes(const String:source[]);
 | 
			
		||||
native int GetCharBytes(const char[] source);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether a character is an ASCII alphabet character.
 | 
			
		||||
@@ -326,7 +326,7 @@ native GetCharBytes(const String:source[]);
 | 
			
		||||
 * @param chr			Character to test.
 | 
			
		||||
 * @return				True if character is alphabetical, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsCharAlpha(chr);
 | 
			
		||||
native bool IsCharAlpha(int chr);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether a character is numeric.
 | 
			
		||||
@@ -336,7 +336,7 @@ native bool:IsCharAlpha(chr);
 | 
			
		||||
 * @param chr			Character to test.
 | 
			
		||||
 * @return				True if character is numeric, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsCharNumeric(chr);
 | 
			
		||||
native bool IsCharNumeric(int chr);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether a character is whitespace.
 | 
			
		||||
@@ -346,7 +346,7 @@ native bool:IsCharNumeric(chr);
 | 
			
		||||
 * @param chr			Character to test.
 | 
			
		||||
 * @return				True if character is whitespace, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsCharSpace(chr);
 | 
			
		||||
native bool IsCharSpace(int chr);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns if a character is multi-byte or not.
 | 
			
		||||
@@ -355,7 +355,7 @@ native bool:IsCharSpace(chr);
 | 
			
		||||
 * @return				0 for a normal 7-bit ASCII character,
 | 
			
		||||
 *						otherwise number of bytes in multi-byte character.
 | 
			
		||||
 */
 | 
			
		||||
native IsCharMB(chr);
 | 
			
		||||
native int IsCharMB(int chr);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether an alphabetic character is uppercase.
 | 
			
		||||
@@ -365,7 +365,7 @@ native IsCharMB(chr);
 | 
			
		||||
 * @param chr			Character to test.
 | 
			
		||||
 * @return				True if character is uppercase, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsCharUpper(chr);
 | 
			
		||||
native bool IsCharUpper(int chr);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether an alphabetic character is lowercase.
 | 
			
		||||
@@ -375,7 +375,7 @@ native bool:IsCharUpper(chr);
 | 
			
		||||
 * @param chr			Character to test.
 | 
			
		||||
 * @return				True if character is lowercase, otherwise false.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsCharLower(chr);
 | 
			
		||||
native bool IsCharLower(int chr);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Strips a quote pair off a string if it exists.  That is, the following 
 | 
			
		||||
@@ -389,16 +389,16 @@ native bool:IsCharLower(chr);
 | 
			
		||||
 * @return				True if string was modified, false if there was no 
 | 
			
		||||
 *						set of quotes.
 | 
			
		||||
 */
 | 
			
		||||
native bool:StripQuotes(String:text[]);
 | 
			
		||||
native bool StripQuotes(char[] text);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns an uppercase character to a lowercase character.
 | 
			
		||||
 *
 | 
			
		||||
 * @param chr			Characer to convert.
 | 
			
		||||
 * @param chr			Character to convert.
 | 
			
		||||
 * @return				Lowercase character on success, 
 | 
			
		||||
 *						no change on failure.
 | 
			
		||||
 */
 | 
			
		||||
stock CharToUpper(chr)
 | 
			
		||||
stock int CharToUpper(int chr)
 | 
			
		||||
{
 | 
			
		||||
	if (IsCharLower(chr))
 | 
			
		||||
	{
 | 
			
		||||
@@ -410,11 +410,11 @@ stock CharToUpper(chr)
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a lowercase character to an uppercase character.
 | 
			
		||||
 *
 | 
			
		||||
 * @param chr			Characer to convert.
 | 
			
		||||
 * @param chr			Character to convert.
 | 
			
		||||
 * @return				Uppercase character on success, 
 | 
			
		||||
 *						no change on failure.
 | 
			
		||||
 */
 | 
			
		||||
stock CharToLower(chr)
 | 
			
		||||
stock int CharToLower(int chr)
 | 
			
		||||
{
 | 
			
		||||
	if (IsCharUpper(chr))
 | 
			
		||||
	{
 | 
			
		||||
@@ -460,9 +460,9 @@ stock int FindCharInString(const char[] str, char c, bool reverse = false)
 | 
			
		||||
 * @param source		Source string to concatenate.
 | 
			
		||||
 * @return				Number of bytes written.
 | 
			
		||||
 */
 | 
			
		||||
stock StrCat(String:buffer[], maxlength, const String:source[])
 | 
			
		||||
stock int StrCat(char[] buffer, int maxlength, const char[] source)
 | 
			
		||||
{
 | 
			
		||||
	new len = strlen(buffer);
 | 
			
		||||
	int len = strlen(buffer);
 | 
			
		||||
	if (len >= maxlength)
 | 
			
		||||
	{
 | 
			
		||||
		return 0;
 | 
			
		||||
@@ -483,10 +483,10 @@ stock StrCat(String:buffer[], maxlength, const String:source[])
 | 
			
		||||
 *							delimiters after last piece.
 | 
			
		||||
 * @return					Number of strings retrieved.
 | 
			
		||||
 */
 | 
			
		||||
stock ExplodeString(const String:text[], const String:split[], String:buffers[][], maxStrings,
 | 
			
		||||
                    maxStringLength, bool:copyRemainder = false)
 | 
			
		||||
stock int ExplodeString(const char[] text, const char[] split, char[][] buffers, int maxStrings,
 | 
			
		||||
                    int maxStringLength, bool copyRemainder = false)
 | 
			
		||||
{
 | 
			
		||||
	new reloc_idx, idx, total;
 | 
			
		||||
	int reloc_idx, idx, total;
 | 
			
		||||
 | 
			
		||||
	if (maxStrings < 1 || !split[0])
 | 
			
		||||
	{
 | 
			
		||||
@@ -522,11 +522,11 @@ stock ExplodeString(const String:text[], const String:split[], String:buffers[][
 | 
			
		||||
 * @param maxLength		Maximum length of the output buffer.
 | 
			
		||||
 * @return				Number of bytes written to the output buffer.
 | 
			
		||||
 */
 | 
			
		||||
stock ImplodeStrings(const String:strings[][], numStrings, const String:join[], String:buffer[], maxLength)
 | 
			
		||||
stock int ImplodeStrings(const char[][] strings, int numStrings, const char[] join, char[] buffer, int maxLength)
 | 
			
		||||
{
 | 
			
		||||
	new total, length, part_length;
 | 
			
		||||
	new join_length = strlen(join);
 | 
			
		||||
	for (new i=0; i<numStrings; i++)
 | 
			
		||||
	int total, length, part_length;
 | 
			
		||||
	int join_length = strlen(join);
 | 
			
		||||
	for (int i=0; i<numStrings; i++)
 | 
			
		||||
	{
 | 
			
		||||
		length = strcopy(buffer[total], maxLength-total, strings[i]);
 | 
			
		||||
		total += length;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								env/include/testing.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								env/include/testing.inc
									
									
									
									
										vendored
									
									
								
							@@ -9,7 +9,7 @@
 | 
			
		||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
			
		||||
 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
			
		||||
 * Free Software Foundation.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
			
		||||
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
			
		||||
@@ -30,15 +30,15 @@
 | 
			
		||||
 * Version: $Id$
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static TestNumber = 0;
 | 
			
		||||
static String:TestContext[255];
 | 
			
		||||
static int TestNumber = 0;
 | 
			
		||||
static char TestContext[255];
 | 
			
		||||
 | 
			
		||||
SetTestContext(const String:context[])
 | 
			
		||||
stock void SetTestContext(const char[] context)
 | 
			
		||||
{
 | 
			
		||||
	strcopy(TestContext, sizeof(TestContext), context);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AssertEq(const String:text[], cell1, cell2)
 | 
			
		||||
stock void AssertEq(const char[] text, int cell1, int cell2)
 | 
			
		||||
{
 | 
			
		||||
	TestNumber++;
 | 
			
		||||
	if (cell1 == cell2) {
 | 
			
		||||
@@ -49,7 +49,7 @@ AssertEq(const String:text[], cell1, cell2)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AssertFalse(const String:text[], bool:value)
 | 
			
		||||
stock void AssertFalse(const char[] text, bool value)
 | 
			
		||||
{
 | 
			
		||||
	TestNumber++;
 | 
			
		||||
	if (!value) {
 | 
			
		||||
@@ -60,7 +60,7 @@ AssertFalse(const String:text[], bool:value)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AssertTrue(const String:text[], bool:value)
 | 
			
		||||
stock void AssertTrue(const char[] text, bool value)
 | 
			
		||||
{
 | 
			
		||||
	TestNumber++;
 | 
			
		||||
	if (value) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								env/include/textparse.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								env/include/textparse.inc
									
									
									
									
										vendored
									
									
								
							@@ -45,7 +45,7 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Parse result directive.
 | 
			
		||||
 */
 | 
			
		||||
enum SMCResult:
 | 
			
		||||
enum SMCResult
 | 
			
		||||
{
 | 
			
		||||
	SMCParse_Continue,			/**< Continue parsing */
 | 
			
		||||
	SMCParse_Halt,				/**< Stop parsing here */
 | 
			
		||||
@@ -55,7 +55,7 @@ enum SMCResult:
 | 
			
		||||
/**
 | 
			
		||||
 * Parse error codes.
 | 
			
		||||
 */
 | 
			
		||||
enum SMCError:
 | 
			
		||||
enum SMCError
 | 
			
		||||
{
 | 
			
		||||
	SMCError_Okay = 0,			/**< No error */
 | 
			
		||||
	SMCError_StreamOpen,		/**< Stream failed to open */
 | 
			
		||||
@@ -109,7 +109,6 @@ typedef SMC_EndSection = function SMCResult (SMCParser smc);
 | 
			
		||||
// @param smc			The SMCParser.
 | 
			
		||||
// @param halted		True if abnormally halted, false otherwise.
 | 
			
		||||
// @param failed		True if parsing failed, false otherwise.
 | 
			
		||||
// @noreturn
 | 
			
		||||
typedef SMC_ParseEnd = function void (SMCParser smc, bool halted, bool failed);
 | 
			
		||||
 | 
			
		||||
// Callback for whenever a new line of text is about to be parsed.
 | 
			
		||||
@@ -212,20 +211,18 @@ native bool SMC_GetErrorString(SMCError error, char[] buffer, int buf_max);
 | 
			
		||||
 *
 | 
			
		||||
 * @param smc			Handle to an SMC Parse.
 | 
			
		||||
 * @param func			SMC_ParseStart function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native SMC_SetParseStart(Handle smc, SMC_ParseStart func);
 | 
			
		||||
native void SMC_SetParseStart(Handle smc, SMC_ParseStart func);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the SMC_ParseEnd of a parse handle.
 | 
			
		||||
 *
 | 
			
		||||
 * @param smc			Handle to an SMC Parse.
 | 
			
		||||
 * @param func			SMC_ParseEnd function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid or corrupt Handle.
 | 
			
		||||
 */
 | 
			
		||||
native SMC_SetParseEnd(Handle smc, SMC_ParseEnd func);
 | 
			
		||||
native void SMC_SetParseEnd(Handle smc, SMC_ParseEnd func);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the three main reader functions.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										122
									
								
								env/include/tf2.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										122
									
								
								env/include/tf2.inc
									
									
									
									
										vendored
									
									
								
							@@ -153,8 +153,9 @@ enum TFCond
 | 
			
		||||
	TFCond_HalloweenTiny,
 | 
			
		||||
	TFCond_HalloweenInHell,
 | 
			
		||||
	TFCond_HalloweenGhostMode,
 | 
			
		||||
 | 
			
		||||
	TFCond_DodgeChance = 79,
 | 
			
		||||
	TFCond_MiniCritOnKill,
 | 
			
		||||
	TFCond_DodgeChance, //79
 | 
			
		||||
	TFCond_ObscuredSmoke = 79,
 | 
			
		||||
	TFCond_Parachute,
 | 
			
		||||
	TFCond_BlastJumping,
 | 
			
		||||
	TFCond_HalloweenKart,
 | 
			
		||||
@@ -162,7 +163,8 @@ enum TFCond
 | 
			
		||||
	TFCond_BalloonHead,
 | 
			
		||||
	TFCond_MeleeOnly,
 | 
			
		||||
	TFCond_SwimmingCurse,
 | 
			
		||||
	TFCond_HalloweenKartNoTurn,
 | 
			
		||||
	TFCond_HalloweenKartNoTurn, //87
 | 
			
		||||
	TFCond_FreezeInput = 87,
 | 
			
		||||
	TFCond_HalloweenKartCage,
 | 
			
		||||
	TFCond_HasRune,
 | 
			
		||||
	TFCond_RuneStrength,
 | 
			
		||||
@@ -173,26 +175,47 @@ enum TFCond
 | 
			
		||||
	TFCond_RuneWarlock,
 | 
			
		||||
	TFCond_RunePrecision, // 96
 | 
			
		||||
	TFCond_RuneAgility,
 | 
			
		||||
	TFCond_GrapplingHook,
 | 
			
		||||
	TFCond_GrapplingHookSafeFall,
 | 
			
		||||
	TFCond_GrapplingHookLatched,
 | 
			
		||||
	TFCond_GrapplingHookBleeding,
 | 
			
		||||
	TFCond_AfterburnImmune,
 | 
			
		||||
	TFCond_RuneKnockout,
 | 
			
		||||
	TFCond_RuneImbalance,
 | 
			
		||||
	TFCond_CritRuneTemp,
 | 
			
		||||
	TFCond_PasstimeInterception,
 | 
			
		||||
	TFCond_SwimmingNoEffects,
 | 
			
		||||
	TFCond_EyeaductUnderworld,
 | 
			
		||||
	TFCond_KingRune,
 | 
			
		||||
	TFCond_PlagueRune,
 | 
			
		||||
	TFCond_SupernovaRune,
 | 
			
		||||
	TFCond_Plague,
 | 
			
		||||
	TFCond_KingAura,
 | 
			
		||||
	TFCond_SpawnOutline, //114
 | 
			
		||||
	TFCond_KnockedIntoAir,
 | 
			
		||||
	TFCond_CompetitiveWinner,
 | 
			
		||||
	TFCond_CompetitiveLoser,
 | 
			
		||||
	TFCond_NoTaunting,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const Float:TFCondDuration_Infinite = -1.0;
 | 
			
		||||
const float TFCondDuration_Infinite = -1.0;
 | 
			
		||||
 | 
			
		||||
enum TFHoliday
 | 
			
		||||
{
 | 
			
		||||
	TFHoliday_Invalid = -1
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
public const TFHoliday:TFHoliday_Birthday;
 | 
			
		||||
public const TFHoliday:TFHoliday_Halloween;
 | 
			
		||||
public const TFHoliday:TFHoliday_Christmas;
 | 
			
		||||
public const TFHoliday:TFHoliday_EndOfTheLine;
 | 
			
		||||
public const TFHoliday:TFHoliday_ValentinesDay;
 | 
			
		||||
public const TFHoliday:TFHoliday_MeetThePyro;
 | 
			
		||||
public const TFHoliday:TFHoliday_SpyVsEngyWar;
 | 
			
		||||
public const TFHoliday:TFHoliday_FullMoon;
 | 
			
		||||
public const TFHoliday:TFHoliday_HalloweenOrFullMoon;
 | 
			
		||||
public const TFHoliday:TFHoliday_HalloweenOrFullMoonOrValentines;
 | 
			
		||||
public const TFHoliday:TFHoliday_AprilFools;
 | 
			
		||||
public const TFHoliday TFHoliday_Birthday;
 | 
			
		||||
public const TFHoliday TFHoliday_Halloween;
 | 
			
		||||
public const TFHoliday TFHoliday_Christmas;
 | 
			
		||||
public const TFHoliday TFHoliday_EndOfTheLine;
 | 
			
		||||
public const TFHoliday TFHoliday_CommunityUpdate;
 | 
			
		||||
public const TFHoliday TFHoliday_ValentinesDay;
 | 
			
		||||
public const TFHoliday TFHoliday_MeetThePyro;
 | 
			
		||||
public const TFHoliday TFHoliday_FullMoon;
 | 
			
		||||
public const TFHoliday TFHoliday_HalloweenOrFullMoon;
 | 
			
		||||
public const TFHoliday TFHoliday_HalloweenOrFullMoonOrValentines;
 | 
			
		||||
public const TFHoliday TFHoliday_AprilFools;
 | 
			
		||||
 | 
			
		||||
enum TFObjectType
 | 
			
		||||
{
 | 
			
		||||
@@ -215,28 +238,25 @@ enum TFObjectMode
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param attacker		Attacker's index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_IgnitePlayer(client, attacker);
 | 
			
		||||
native void TF2_IgnitePlayer(int client, int attacker);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Respawns a client
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_RespawnPlayer(client);
 | 
			
		||||
native void TF2_RespawnPlayer(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Regenerates a client's health and ammunition
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_RegeneratePlayer(client);
 | 
			
		||||
native void TF2_RegeneratePlayer(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a condition to a player
 | 
			
		||||
@@ -246,30 +266,27 @@ native TF2_RegeneratePlayer(client);
 | 
			
		||||
 * @param duration		Duration of condition (does not apply to all conditions).
 | 
			
		||||
 *                      Pass TFCondDuration_Infinite to apply until manually removed.
 | 
			
		||||
 * @param inflictor		Condition inflictor's index (0 for no inflictor).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_AddCondition(client, TFCond:condition, Float:duration=TFCondDuration_Infinite, inflictor=0);
 | 
			
		||||
native void TF2_AddCondition(int client, TFCond condition, float duration=TFCondDuration_Infinite, int inflictor=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes a condition from a player
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param condition		Integer identifier of condition to remove.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_RemoveCondition(client, TFCond:condition);
 | 
			
		||||
native void TF2_RemoveCondition(int client, TFCond condition);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Enables/disables PowerPlay mode on a player.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param enabled		Whether to enable or disable PowerPlay on player.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_SetPlayerPowerPlay(client, bool:enabled);
 | 
			
		||||
native void TF2_SetPlayerPowerPlay(int client, bool enabled);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Disguises a client to the given model and team. Only has an effect on spies.
 | 
			
		||||
@@ -280,19 +297,17 @@ native TF2_SetPlayerPowerPlay(client, bool:enabled);
 | 
			
		||||
 * @param team			Team to disguise the player as (only TFTeam_Red and TFTeam_Blue have an effect)
 | 
			
		||||
 * @param classType		TFClassType class to disguise the player as
 | 
			
		||||
 * @param target		Specific target player to disguise as (0 for any)
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_DisguisePlayer(client, TFTeam:team, TFClassType:classType, target=0);
 | 
			
		||||
native void TF2_DisguisePlayer(int client, TFTeam team, TFClassType classType, int target=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes the current disguise from a client. Only has an effect on spies.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index, client not in game, or no mod support.
 | 
			
		||||
 */
 | 
			
		||||
native TF2_RemovePlayerDisguise(client);
 | 
			
		||||
native void TF2_RemovePlayerDisguise(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Stuns a client
 | 
			
		||||
@@ -303,9 +318,8 @@ native TF2_RemovePlayerDisguise(client);
 | 
			
		||||
 *						Ignored if TF_STUNFLAG_SLOWDOWN is not set.
 | 
			
		||||
 * @param stunflags		Stun flags.
 | 
			
		||||
 * @param attacker		Attacker's index (0 is allowed for world).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native TF2_StunPlayer(client, Float:duration, Float:slowdown=0.0, stunflags, attacker=0);
 | 
			
		||||
native void TF2_StunPlayer(int client, float duration, float slowdown=0.0, int stunflags, int attacker=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Induces the bleed effect on a client
 | 
			
		||||
@@ -313,9 +327,8 @@ native TF2_StunPlayer(client, Float:duration, Float:slowdown=0.0, stunflags, att
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param attacker		Attacker's index.
 | 
			
		||||
 * @param duration		Duration of bleeding (in seconds).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native TF2_MakeBleed(client, attacker, Float:duration);
 | 
			
		||||
native void TF2_MakeBleed(int client, int attacker, float duration);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the entity index of the CPlayerResource entity
 | 
			
		||||
@@ -323,7 +336,7 @@ native TF2_MakeBleed(client, attacker, Float:duration);
 | 
			
		||||
 * @return				The current resource entity index.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use GetPlayerResourceEntity instead
 | 
			
		||||
native TF2_GetResourceEntity();
 | 
			
		||||
native int TF2_GetResourceEntity();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Finds the TFClassType for a given class name.
 | 
			
		||||
@@ -331,7 +344,7 @@ native TF2_GetResourceEntity();
 | 
			
		||||
 * @param classname		A classname string such as "sniper" or "demoman"
 | 
			
		||||
 * @return				A TFClassType constant.
 | 
			
		||||
 */
 | 
			
		||||
native TFClassType:TF2_GetClass(const String:classname[]);
 | 
			
		||||
native TFClassType TF2_GetClass(const char[] classname);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called on weapon fire to decide if the current shot should be critical.
 | 
			
		||||
@@ -348,13 +361,13 @@ native TFClassType:TF2_GetClass(const String:classname[]);
 | 
			
		||||
 * @param weaponname	Classname of the weapon.
 | 
			
		||||
 * @param result		Buffer param for the result of the decision.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:TF2_CalcIsAttackCritical(client, weapon, String:weaponname[], &bool:result);
 | 
			
		||||
forward Action TF2_CalcIsAttackCritical(int client, int weapon, char[] weaponname, bool &result);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated		No longer called. Use TF2_OnIsHolidayActive.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated No longer called. Use TF2_OnIsHolidayActive.
 | 
			
		||||
forward Action:TF2_OnGetHoliday(&TFHoliday:holiday);
 | 
			
		||||
forward Action TF2_OnGetHoliday(TFHoliday &holiday);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called at various times when the game checks to see if the given holiday is active.
 | 
			
		||||
@@ -365,7 +378,7 @@ forward Action:TF2_OnGetHoliday(&TFHoliday:holiday);
 | 
			
		||||
 * @param result		Buffer param for the result of the decision.
 | 
			
		||||
 * @return				Plugin_Continue for original calculation, higher value to use 'result'.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:TF2_OnIsHolidayActive(TFHoliday:holiday, &bool:result);
 | 
			
		||||
forward Action TF2_OnIsHolidayActive(TFHoliday holiday, bool &result);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not a holiday is active
 | 
			
		||||
@@ -373,7 +386,7 @@ forward Action:TF2_OnIsHolidayActive(TFHoliday:holiday, &bool:result);
 | 
			
		||||
 * @param holiday		Holiday being checked.
 | 
			
		||||
 * @return				Boolean of whether or not the holiday is active.
 | 
			
		||||
 */
 | 
			
		||||
native bool:TF2_IsHolidayActive(TFHoliday:holiday);
 | 
			
		||||
native bool TF2_IsHolidayActive(TFHoliday holiday);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns whether or not a client (Player) is in a duel.
 | 
			
		||||
@@ -381,7 +394,7 @@ native bool:TF2_IsHolidayActive(TFHoliday:holiday);
 | 
			
		||||
 * @param client    Client Index.
 | 
			
		||||
 * @return          Boolean of whether or not the client/player is dueling.
 | 
			
		||||
 */
 | 
			
		||||
native bool:TF2_IsPlayerInDuel(client);
 | 
			
		||||
native bool TF2_IsPlayerInDuel(int client);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes an econ wearable (hat, misc, etc) from a player.
 | 
			
		||||
@@ -389,42 +402,35 @@ native bool:TF2_IsPlayerInDuel(client);
 | 
			
		||||
 *
 | 
			
		||||
 * @param client	Client index.
 | 
			
		||||
 * @param wearable	Index of the wearable entity.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error			Invalid client index, client not in game, invalid wearable entity, or no mod support.
 | 
			
		||||
*/
 | 
			
		||||
native TF2_RemoveWearable(client, wearable);
 | 
			
		||||
native void TF2_RemoveWearable(int client, int wearable);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called after a condition is added to a player
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Index of the client to which the conditon is being added.
 | 
			
		||||
 * @param client		Index of the client to which the condition is being added.
 | 
			
		||||
 * @param condition     Condition that is being added.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward TF2_OnConditionAdded(client, TFCond:condition);
 | 
			
		||||
forward void TF2_OnConditionAdded(int client, TFCond condition);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called after a condition is removed from a player
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Index of the client to which the condition is being removed.
 | 
			
		||||
 * @param condition		Condition that is being removed.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward TF2_OnConditionRemoved(client, TFCond:condition);
 | 
			
		||||
forward void TF2_OnConditionRemoved(int client, TFCond condition);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when the server enters the Waiting for Players round state
 | 
			
		||||
 *
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward TF2_OnWaitingForPlayersStart();
 | 
			
		||||
forward void TF2_OnWaitingForPlayersStart();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when the server exits the Waiting for Players round state
 | 
			
		||||
 *
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
forward TF2_OnWaitingForPlayersEnd();
 | 
			
		||||
forward void TF2_OnWaitingForPlayersEnd();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called when a player attempts to use a teleporter to decide if the player should be allowed to teleport.
 | 
			
		||||
@@ -437,12 +443,12 @@ forward TF2_OnWaitingForPlayersEnd();
 | 
			
		||||
 *						This is prepopulated with the game's original decision to let a player teleport.
 | 
			
		||||
 * @return				Plugin_Continue for original calculation, higher value to use 'result'.
 | 
			
		||||
 */
 | 
			
		||||
forward Action:TF2_OnPlayerTeleport(client, teleporter, &bool:result);
 | 
			
		||||
forward Action TF2_OnPlayerTeleport(int client, int teleporter, bool &result);
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_tf2 = 
 | 
			
		||||
public Extension __ext_tf2 = 
 | 
			
		||||
{
 | 
			
		||||
	name = "TF2 Tools",
 | 
			
		||||
	file = "game.tf2.ext",
 | 
			
		||||
@@ -455,7 +461,7 @@ public Extension:__ext_tf2 =
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_EXTENSIONS
 | 
			
		||||
public __ext_tf2_SetNTVOptional()
 | 
			
		||||
public void __ext_tf2_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("TF2_IgnitePlayer");
 | 
			
		||||
	MarkNativeAsOptional("TF2_RespawnPlayer");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										213
									
								
								env/include/tf2_stocks.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										213
									
								
								env/include/tf2_stocks.inc
									
									
									
									
										vendored
									
									
								
							@@ -9,7 +9,7 @@
 | 
			
		||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
			
		||||
 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
			
		||||
 * Free Software Foundation.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
			
		||||
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
			
		||||
@@ -144,6 +144,21 @@ enum {
 | 
			
		||||
	TF_CUSTOM_MERASMUS_DECAPITATION,
 | 
			
		||||
	TF_CUSTOM_CANNONBALL_PUSH,
 | 
			
		||||
	TF_CUSTOM_TAUNT_ALLCLASS_GUITAR_RIFF,
 | 
			
		||||
	TF_CUSTOM_THROWABLE,
 | 
			
		||||
	TF_CUSTOM_THROWABLE_KILL,
 | 
			
		||||
	TF_CUSTOM_SPELL_TELEPORT,
 | 
			
		||||
	TF_CUSTOM_SPELL_SKELETON,
 | 
			
		||||
	TF_CUSTOM_SPELL_MIRV,
 | 
			
		||||
	TF_CUSTOM_SPELL_METEOR,
 | 
			
		||||
	TF_CUSTOM_SPELL_LIGHTNING,
 | 
			
		||||
	TF_CUSTOM_SPELL_FIREBALL,
 | 
			
		||||
	TF_CUSTOM_SPELL_MONOCULUS,
 | 
			
		||||
	TF_CUSTOM_SPELL_BLASTJUMP,
 | 
			
		||||
	TF_CUSTOM_SPELL_BATS,
 | 
			
		||||
	TF_CUSTOM_SPELL_TINY,
 | 
			
		||||
	TF_CUSTOM_KART,
 | 
			
		||||
	TF_CUSTOM_GIANT_HAMMER,
 | 
			
		||||
	TF_CUSTOM_RUNE_REFLECT,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Weapon codes as used in some events, such as player_death
 | 
			
		||||
@@ -250,6 +265,9 @@ enum {
 | 
			
		||||
	TF_WEAPON_SPELLBOOK_PROJECTILE,
 | 
			
		||||
	TF_WEAPON_SNIPERRIFLE_CLASSIC,
 | 
			
		||||
	TF_WEAPON_PARACHUTE,
 | 
			
		||||
	TF_WEAPON_GRAPPLINGHOOK,
 | 
			
		||||
	TF_WEAPON_PASSTIME_GUN,
 | 
			
		||||
	TF_WEAPON_CHARGED_SMG,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// TF2 Weapon Loadout Slots
 | 
			
		||||
@@ -262,7 +280,7 @@ enum
 | 
			
		||||
	TFWeaponSlot_Building,
 | 
			
		||||
	TFWeaponSlot_PDA,
 | 
			
		||||
	TFWeaponSlot_Item1,
 | 
			
		||||
	TFWeaponSlot_Item2	
 | 
			
		||||
	TFWeaponSlot_Item2
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Identifiers for the eventtype property on the teamplay_flag_event event
 | 
			
		||||
@@ -279,12 +297,12 @@ enum TFResourceType
 | 
			
		||||
	TFResource_Ping,
 | 
			
		||||
	TFResource_Score,
 | 
			
		||||
	TFResource_Deaths,
 | 
			
		||||
	TFResource_TotalScore, 
 | 
			
		||||
	TFResource_TotalScore,
 | 
			
		||||
	TFResource_Captures,
 | 
			
		||||
	TFResource_Defenses,
 | 
			
		||||
	TFResource_Dominations,
 | 
			
		||||
	TFResource_Revenge,
 | 
			
		||||
	TFResource_BuildingsDestroyed, 
 | 
			
		||||
	TFResource_BuildingsDestroyed,
 | 
			
		||||
	TFResource_Headshots,
 | 
			
		||||
	TFResource_Backstabs,
 | 
			
		||||
	TFResource_HealPoints,
 | 
			
		||||
@@ -296,7 +314,7 @@ enum TFResourceType
 | 
			
		||||
	TFResource_PlayerClass
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const String:TFResourceNames[TFResourceType][] =
 | 
			
		||||
static const char TFResourceNames[TFResourceType][] =
 | 
			
		||||
{
 | 
			
		||||
	"m_iPing",
 | 
			
		||||
	"m_iScore",
 | 
			
		||||
@@ -320,14 +338,26 @@ static const String:TFResourceNames[TFResourceType][] =
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets a client's current team.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Client index.
 | 
			
		||||
 * @return				Current TFTeam of client.
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock TFTeam:TF2_GetClientTeam(client)
 | 
			
		||||
stock TFTeam TF2_GetClientTeam(int client)
 | 
			
		||||
{
 | 
			
		||||
	return TFTeam:GetClientTeam(client);
 | 
			
		||||
	return view_as<TFTeam>(GetClientTeam(client));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Changes a client's current team.
 | 
			
		||||
 *
 | 
			
		||||
 * @param client        Client index.
 | 
			
		||||
 * @param team          TFTeam team symbol.
 | 
			
		||||
 * @error               Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock void TF2_ChangeClientTeam(int client, TFTeam team)
 | 
			
		||||
{
 | 
			
		||||
    ChangeClientTeam(client, view_as<int>(team));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -337,9 +367,9 @@ stock TFTeam:TF2_GetClientTeam(client)
 | 
			
		||||
 * @return				Current TFClassType of player.
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock TFClassType:TF2_GetPlayerClass(client)
 | 
			
		||||
stock TFClassType TF2_GetPlayerClass(int client)
 | 
			
		||||
{
 | 
			
		||||
	return TFClassType:GetEntProp(client, Prop_Send, "m_iClass");
 | 
			
		||||
	return view_as<TFClassType>(GetEntProp(client, Prop_Send, "m_iClass"));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -351,16 +381,15 @@ stock TFClassType:TF2_GetPlayerClass(client)
 | 
			
		||||
 * @param classType		TFClassType class symbol.
 | 
			
		||||
 * @param weapons		This parameter is ignored.
 | 
			
		||||
 * @param persistent	If true, changes the player's desired class so the change stays after death.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client index.
 | 
			
		||||
 */
 | 
			
		||||
stock TF2_SetPlayerClass(client, TFClassType:classType, bool:weapons=true, bool:persistent=true)
 | 
			
		||||
stock void TF2_SetPlayerClass(int client, TFClassType classType, bool weapons=true, bool persistent=true)
 | 
			
		||||
{
 | 
			
		||||
	SetEntProp(client, Prop_Send, "m_iClass", _:classType);
 | 
			
		||||
	
 | 
			
		||||
	SetEntProp(client, Prop_Send, "m_iClass", view_as<int>(classType));
 | 
			
		||||
 | 
			
		||||
	if (persistent)
 | 
			
		||||
	{
 | 
			
		||||
		SetEntProp(client, Prop_Send, "m_iDesiredPlayerClass", _:classType);
 | 
			
		||||
		SetEntProp(client, Prop_Send, "m_iDesiredPlayerClass", view_as<int>(classType));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -373,27 +402,27 @@ stock TF2_SetPlayerClass(client, TFClassType:classType, bool:weapons=true, bool:
 | 
			
		||||
 * @error				Invalid client index, client not in game or failed to find resource entity.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use GetPlayerResourceEntity and GetEntProp instead
 | 
			
		||||
stock TF2_GetPlayerResourceData(client, TFResourceType:type)
 | 
			
		||||
stock int TF2_GetPlayerResourceData(int client, TFResourceType type)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsClientConnected(client))
 | 
			
		||||
	{
 | 
			
		||||
		return -1;	
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	new offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	int offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
 | 
			
		||||
 | 
			
		||||
	if (offset < 1)
 | 
			
		||||
	{
 | 
			
		||||
		return -1;	
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	new entity = TF2_GetResourceEntity();
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	int entity = TF2_GetResourceEntity();
 | 
			
		||||
 | 
			
		||||
	if (entity == -1)
 | 
			
		||||
	{
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	return GetEntData(entity, offset + (client*4));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -409,30 +438,30 @@ stock TF2_GetPlayerResourceData(client, TFResourceType:type)
 | 
			
		||||
 * @error				Invalid client index, client not in game or failed to find resource entity.
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use GetPlayerResourceEntity and SetEntProp instead
 | 
			
		||||
stock bool:TF2_SetPlayerResourceData(client, TFResourceType:type, any:value)
 | 
			
		||||
stock bool TF2_SetPlayerResourceData(int client, TFResourceType type, any value)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsClientConnected(client))
 | 
			
		||||
	{
 | 
			
		||||
		return false;	
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	new offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	int offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
 | 
			
		||||
 | 
			
		||||
	if (offset < 1)
 | 
			
		||||
	{
 | 
			
		||||
		return false;	
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	new entity = TF2_GetResourceEntity();
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	int entity = TF2_GetResourceEntity();
 | 
			
		||||
 | 
			
		||||
	if (entity == -1)
 | 
			
		||||
	{
 | 
			
		||||
		return false;	
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	SetEntData(entity, offset + (client*4), value);
 | 
			
		||||
	
 | 
			
		||||
	return true;	
 | 
			
		||||
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -440,17 +469,16 @@ stock bool:TF2_SetPlayerResourceData(client, TFResourceType:type, any:value)
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @param slot			Slot index (0-5)
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid client, invalid slot or lack of mod support
 | 
			
		||||
 */
 | 
			
		||||
stock TF2_RemoveWeaponSlot(client, slot)
 | 
			
		||||
stock void TF2_RemoveWeaponSlot(int client, int slot)
 | 
			
		||||
{
 | 
			
		||||
	new weaponIndex;
 | 
			
		||||
	int weaponIndex;
 | 
			
		||||
	while ((weaponIndex = GetPlayerWeaponSlot(client, slot)) != -1)
 | 
			
		||||
	{
 | 
			
		||||
		// bug #6206
 | 
			
		||||
		// papering over a valve bug where a weapon's extra wearables aren't properly removed from the weapon's owner
 | 
			
		||||
		new extraWearable = GetEntPropEnt(weaponIndex, Prop_Send, "m_hExtraWearable");
 | 
			
		||||
		int extraWearable = GetEntPropEnt(weaponIndex, Prop_Send, "m_hExtraWearable");
 | 
			
		||||
		if (extraWearable != -1)
 | 
			
		||||
		{
 | 
			
		||||
			TF2_RemoveWearable(client, extraWearable);
 | 
			
		||||
@@ -471,11 +499,10 @@ stock TF2_RemoveWeaponSlot(client, slot)
 | 
			
		||||
 * Removes all weapons from a client
 | 
			
		||||
 *
 | 
			
		||||
 * @param client		Player's index.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock TF2_RemoveAllWeapons(client)
 | 
			
		||||
stock void TF2_RemoveAllWeapons(int client)
 | 
			
		||||
{
 | 
			
		||||
	for (new i = 0; i <= 5; i++)
 | 
			
		||||
	for (int i = 0; i <= 5; i++)
 | 
			
		||||
	{
 | 
			
		||||
		TF2_RemoveWeaponSlot(client, i);
 | 
			
		||||
	}
 | 
			
		||||
@@ -488,7 +515,7 @@ stock TF2_RemoveAllWeapons(client)
 | 
			
		||||
 * @return				Player's condition bits
 | 
			
		||||
 */
 | 
			
		||||
#pragma deprecated Use TF2_IsPlayerInCondition instead.
 | 
			
		||||
stock TF2_GetPlayerConditionFlags(client)
 | 
			
		||||
stock int TF2_GetPlayerConditionFlags(int client)
 | 
			
		||||
{
 | 
			
		||||
	return GetEntProp(client, Prop_Send, "m_nPlayerCond")|GetEntProp(client, Prop_Send, "_condition_bits");
 | 
			
		||||
}
 | 
			
		||||
@@ -500,47 +527,53 @@ stock TF2_GetPlayerConditionFlags(client)
 | 
			
		||||
 * @param cond			TFCond constant
 | 
			
		||||
 * @return				True if set, false otherwise
 | 
			
		||||
 */
 | 
			
		||||
stock bool:TF2_IsPlayerInCondition(client, TFCond:cond)
 | 
			
		||||
stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
 | 
			
		||||
{
 | 
			
		||||
	// Conditions are stored across two netprops now, one for each 32-bit segment.
 | 
			
		||||
	if (_:cond < 32)
 | 
			
		||||
	// Conditions are stored across multiple netprops now, one for each 32-bit segment.
 | 
			
		||||
	int iCond = view_as<int>(cond);
 | 
			
		||||
	switch (iCond / 32)
 | 
			
		||||
	{
 | 
			
		||||
		new bit = 1 << _:cond;
 | 
			
		||||
		if ((GetEntProp(client, Prop_Send, "m_nPlayerCond") & bit) == bit)
 | 
			
		||||
	case 0:
 | 
			
		||||
		{
 | 
			
		||||
			return true;
 | 
			
		||||
			int bit = 1 << iCond;
 | 
			
		||||
			if ((GetEntProp(client, Prop_Send, "m_nPlayerCond") & bit) == bit)
 | 
			
		||||
			{
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ((GetEntProp(client, Prop_Send, "_condition_bits") & bit) == bit)
 | 
			
		||||
			{
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if ((GetEntProp(client, Prop_Send, "_condition_bits") & bit) == bit)
 | 
			
		||||
	case 1:
 | 
			
		||||
		{
 | 
			
		||||
			return true;
 | 
			
		||||
			int bit = (1 << (iCond - 32));
 | 
			
		||||
			if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx") & bit) == bit)
 | 
			
		||||
			{
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	case 2:
 | 
			
		||||
		{
 | 
			
		||||
			int bit = (1 << (iCond - 64));
 | 
			
		||||
			if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx2") & bit) == bit)
 | 
			
		||||
			{
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	case 3:
 | 
			
		||||
		{
 | 
			
		||||
			int bit = (1 << (iCond - 96));
 | 
			
		||||
			if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx3") & bit) == bit)
 | 
			
		||||
			{
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	default:
 | 
			
		||||
		ThrowError("Invalid TFCond value %d", iCond);
 | 
			
		||||
	}
 | 
			
		||||
	else if (_:cond < 64)
 | 
			
		||||
	{
 | 
			
		||||
		new bit = (1 << (_:cond - 32));
 | 
			
		||||
		if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx") & bit) == bit)
 | 
			
		||||
		{
 | 
			
		||||
			return true;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else if (_:cond < 96)
 | 
			
		||||
	{
 | 
			
		||||
		new bit = (1 << (_:cond - 64));
 | 
			
		||||
		if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx2") & bit) == bit)
 | 
			
		||||
		{
 | 
			
		||||
			return true;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		new bit = (1 << (_:cond - 96));
 | 
			
		||||
		if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx3") & bit) == bit)
 | 
			
		||||
		{
 | 
			
		||||
			return true;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -551,16 +584,16 @@ stock bool:TF2_IsPlayerInCondition(client, TFCond:cond)
 | 
			
		||||
 * @return				Current TFObjectType of entity.
 | 
			
		||||
 * @error				Invalid entity index.
 | 
			
		||||
 */
 | 
			
		||||
stock TFObjectType:TF2_GetObjectType(entity)
 | 
			
		||||
stock TFObjectType TF2_GetObjectType(int entity)
 | 
			
		||||
{
 | 
			
		||||
	new offset = GetEntSendPropOffs(entity, "m_iObjectType");
 | 
			
		||||
	
 | 
			
		||||
	int offset = GetEntSendPropOffs(entity, "m_iObjectType");
 | 
			
		||||
 | 
			
		||||
	if (offset <= 0)
 | 
			
		||||
	{
 | 
			
		||||
		ThrowError("Entity index %d is not an object", entity);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return TFObjectType:GetEntData(entity, offset);
 | 
			
		||||
 | 
			
		||||
	return view_as<TFObjectType>(GetEntData(entity, offset));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -570,14 +603,14 @@ stock TFObjectType:TF2_GetObjectType(entity)
 | 
			
		||||
 * @return				Current TFObjectMode of entity.
 | 
			
		||||
 * @error				Invalid entity index.
 | 
			
		||||
 */
 | 
			
		||||
stock TFObjectMode:TF2_GetObjectMode(entity)
 | 
			
		||||
stock TFObjectMode TF2_GetObjectMode(int entity)
 | 
			
		||||
{
 | 
			
		||||
	new offset = GetEntSendPropOffs(entity, "m_iObjectMode");
 | 
			
		||||
	
 | 
			
		||||
	int offset = GetEntSendPropOffs(entity, "m_iObjectMode");
 | 
			
		||||
 | 
			
		||||
	if (offset <= 0)
 | 
			
		||||
	{
 | 
			
		||||
		ThrowError("Entity index %d is not an object", entity);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return TFObjectMode:GetEntData(entity, offset);
 | 
			
		||||
 | 
			
		||||
	return view_as<TFObjectMode>(GetEntData(entity, offset));
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								env/include/timers.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								env/include/timers.inc
									
									
									
									
										vendored
									
									
								
							@@ -87,7 +87,7 @@ typeset Timer
 | 
			
		||||
 * @return					Handle to the timer object.  You do not need to call CloseHandle().
 | 
			
		||||
 *							If the timer could not be created, INVALID_HANDLE will be returned.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:CreateTimer(Float:interval, Timer:func, any:data=INVALID_HANDLE, flags=0);
 | 
			
		||||
native Handle CreateTimer(float interval, Timer func, any data=INVALID_HANDLE, int flags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Kills a timer.  Use this instead of CloseHandle() if you need more options.
 | 
			
		||||
@@ -95,9 +95,9 @@ native Handle:CreateTimer(Float:interval, Timer:func, any:data=INVALID_HANDLE, f
 | 
			
		||||
 * @param timer				Timer Handle to kill.
 | 
			
		||||
 * @param autoClose			If autoClose is true, the data that was passed to CreateTimer() will
 | 
			
		||||
 *							be closed as a handle if TIMER_DATA_HNDL_CLOSE was not specified.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid handles will cause a run time error.
 | 
			
		||||
 */
 | 
			
		||||
native KillTimer(Handle:timer, bool:autoClose=false);
 | 
			
		||||
native void KillTimer(Handle timer, bool autoClose=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Manually triggers a timer so its function will be called.
 | 
			
		||||
@@ -105,9 +105,8 @@ native KillTimer(Handle:timer, bool:autoClose=false);
 | 
			
		||||
 * @param timer				Timer Handle to trigger.
 | 
			
		||||
 * @param reset				If reset is true, the elapsed time counter is reset
 | 
			
		||||
 *							so the full interval must pass again.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native TriggerTimer(Handle:timer, bool:reset=false);
 | 
			
		||||
native void TriggerTimer(Handle timer, bool reset=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the simulated game time.  
 | 
			
		||||
@@ -120,7 +119,7 @@ native TriggerTimer(Handle:timer, bool:reset=false);
 | 
			
		||||
 *
 | 
			
		||||
 * @return					Time based on the game tick count.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetTickedTime();
 | 
			
		||||
native float GetTickedTime();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns an estimate of the time left before the map ends.  If the server 
 | 
			
		||||
@@ -131,7 +130,7 @@ native Float:GetTickedTime();
 | 
			
		||||
 *							value is less than 0, the time limit is infinite.
 | 
			
		||||
 * @return					True if the operation is supported, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetMapTimeLeft(&timeleft);
 | 
			
		||||
native bool GetMapTimeLeft(int &timeleft);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the current map time limit.  If the server has not processed any 
 | 
			
		||||
@@ -142,7 +141,7 @@ native bool:GetMapTimeLeft(&timeleft);
 | 
			
		||||
 *							limit, or 0 if there is no time limit set.
 | 
			
		||||
 * @return					True on success, false if operation is not supported.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetMapTimeLimit(&time);
 | 
			
		||||
native bool GetMapTimeLimit(int &time);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Extends the map time limit in a way that will notify all plugins.
 | 
			
		||||
@@ -152,7 +151,7 @@ native bool:GetMapTimeLimit(&time);
 | 
			
		||||
 *							If 0, the map will be set to have no time limit.
 | 
			
		||||
 * @return					True on success, false if operation is not supported.
 | 
			
		||||
 */
 | 
			
		||||
native bool:ExtendMapTimeLimit(time);
 | 
			
		||||
native bool ExtendMapTimeLimit(int time);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns the number of seconds in between game server ticks.
 | 
			
		||||
@@ -161,7 +160,7 @@ native bool:ExtendMapTimeLimit(time);
 | 
			
		||||
 *
 | 
			
		||||
 * @return					Number of seconds in between ticks.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetTickInterval();
 | 
			
		||||
native float GetTickInterval();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Notification that the map's time left has changed via a change in the time 
 | 
			
		||||
@@ -188,7 +187,7 @@ forward void OnMapTimeLeftChanged();
 | 
			
		||||
 *
 | 
			
		||||
 * @return					True if the server is ticking, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:IsServerProcessing();
 | 
			
		||||
native bool IsServerProcessing();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates a timer associated with a new datapack, and returns the datapack.
 | 
			
		||||
@@ -202,10 +201,9 @@ native bool:IsServerProcessing();
 | 
			
		||||
 * @param flags				Timer flags.
 | 
			
		||||
 * @return					Handle to the timer object.  You do not need to call CloseHandle().
 | 
			
		||||
 */
 | 
			
		||||
stock Handle:CreateDataTimer(Float:interval, Timer:func, &Handle:datapack, flags=0)
 | 
			
		||||
stock Handle CreateDataTimer(float interval, Timer func, Handle &datapack, int flags=0)
 | 
			
		||||
{
 | 
			
		||||
	datapack = CreateDataPack();
 | 
			
		||||
	datapack = new DataPack();
 | 
			
		||||
	flags |= TIMER_DATA_HNDL_CLOSE;
 | 
			
		||||
	return CreateTimer(interval, func, datapack, flags);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								env/include/topmenus.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								env/include/topmenus.inc
									
									
									
									
										vendored
									
									
								
							@@ -40,7 +40,7 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Actions a top menu will take on an topobj.
 | 
			
		||||
 */
 | 
			
		||||
enum TopMenuAction:
 | 
			
		||||
enum TopMenuAction
 | 
			
		||||
{
 | 
			
		||||
	/**
 | 
			
		||||
	 * An option is being drawn for a menu (or for sorting purposes).
 | 
			
		||||
@@ -92,7 +92,7 @@ enum TopMenuAction:
 | 
			
		||||
/**
 | 
			
		||||
 * Top menu topobj types.
 | 
			
		||||
 */
 | 
			
		||||
enum TopMenuObjectType:
 | 
			
		||||
enum TopMenuObjectType
 | 
			
		||||
{
 | 
			
		||||
	TopMenuObject_Category = 0,			/**< Category (sub-menu branching from root) */
 | 
			
		||||
	TopMenuObject_Item = 1				/**< Item on a sub-menu */
 | 
			
		||||
@@ -101,7 +101,7 @@ enum TopMenuObjectType:
 | 
			
		||||
/**
 | 
			
		||||
 * Top menu starting positions for display.
 | 
			
		||||
 */
 | 
			
		||||
enum TopMenuPosition:
 | 
			
		||||
enum TopMenuPosition
 | 
			
		||||
{
 | 
			
		||||
	TopMenuPosition_Start = 0,			/**< Start/root of the menu */
 | 
			
		||||
	TopMenuPosition_LastRoot = 1,		/**< Last position in the root menu */
 | 
			
		||||
@@ -111,7 +111,7 @@ enum TopMenuPosition:
 | 
			
		||||
/**
 | 
			
		||||
 * Top menu topobj tag for type checking.
 | 
			
		||||
 */
 | 
			
		||||
enum TopMenuObject:
 | 
			
		||||
enum TopMenuObject
 | 
			
		||||
{
 | 
			
		||||
	INVALID_TOPMENUOBJECT = 0,
 | 
			
		||||
};
 | 
			
		||||
@@ -125,10 +125,9 @@ enum TopMenuObject:
 | 
			
		||||
 * @param param				Extra parameter (if used).
 | 
			
		||||
 * @param buffer			Output buffer (if used).
 | 
			
		||||
 * @param maxlength			Output buffer (if used).
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
typedef TopMenuHandler = function void (
 | 
			
		||||
  Handle topmenu, 
 | 
			
		||||
  TopMenu topmenu, 
 | 
			
		||||
  TopMenuAction action,
 | 
			
		||||
  TopMenuObject topobj_id,
 | 
			
		||||
  int param,
 | 
			
		||||
@@ -246,7 +245,7 @@ methodmap TopMenu < Handle
 | 
			
		||||
	//                     INVALID_TOPMENUOBJECT on failure.
 | 
			
		||||
	public native TopMenuObject FindCategory(const char[] name);
 | 
			
		||||
	
 | 
			
		||||
	// Set the menu title caching behaviour of the TopMenu. By default titles
 | 
			
		||||
	// Set the menu title caching behavior of the TopMenu. By default titles
 | 
			
		||||
	// are cached to reduce overhead. If you need dynamic menu titles which
 | 
			
		||||
	// change each time the menu is displayed to a user, set this to false.
 | 
			
		||||
	property bool CacheTitles {
 | 
			
		||||
@@ -351,7 +350,6 @@ native int GetTopMenuObjName(Handle topmenu, TopMenuObject topobj, char[] buffer
 | 
			
		||||
 *
 | 
			
		||||
 * @param topmenu			TopMenu Handle.
 | 
			
		||||
 * @param topobj			TopMenuObject ID.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error					Invalid TopMenu Handle.
 | 
			
		||||
 */
 | 
			
		||||
native void RemoveFromTopMenu(Handle topmenu, TopMenuObject topobj);
 | 
			
		||||
@@ -390,14 +388,13 @@ native bool DisplayTopMenuCategory(Handle topmenu, TopMenuObject category, int c
 | 
			
		||||
native TopMenuObject FindTopMenuCategory(Handle topmenu, const char[] name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Change the menu title caching behaviour of the TopMenu. By default the
 | 
			
		||||
 * Change the menu title caching behavior of the TopMenu. By default the
 | 
			
		||||
 * titles are cached to reduce overhead. If you need dynamic menu titles, which
 | 
			
		||||
 * can change everytime the menu is displayed to a user, set this to false.
 | 
			
		||||
 *
 | 
			
		||||
 * @param topmenu       TopMenu Handle.
 | 
			
		||||
 * @param cache_titles  Cache the menu titles and don't call the handler with
 | 
			
		||||
 *                      TopMenuAction_DisplayTitle everytime the menu is drawn?
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error               Invalid TopMenu Handle
 | 
			
		||||
 */
 | 
			
		||||
native void SetTopMenuTitleCaching(Handle topmenu, bool cache_titles);
 | 
			
		||||
@@ -406,7 +403,7 @@ native void SetTopMenuTitleCaching(Handle topmenu, bool cache_titles);
 | 
			
		||||
/**
 | 
			
		||||
 * Do not edit below this line!
 | 
			
		||||
 */
 | 
			
		||||
public Extension:__ext_topmenus = 
 | 
			
		||||
public Extension __ext_topmenus = 
 | 
			
		||||
{
 | 
			
		||||
	name = "TopMenus",
 | 
			
		||||
	file = "topmenus.ext",
 | 
			
		||||
@@ -423,7 +420,7 @@ public Extension:__ext_topmenus =
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#if !defined REQUIRE_EXTENSIONS
 | 
			
		||||
public __ext_topmenus_SetNTVOptional()
 | 
			
		||||
public void __ext_topmenus_SetNTVOptional()
 | 
			
		||||
{
 | 
			
		||||
	MarkNativeAsOptional("CreateTopMenu");
 | 
			
		||||
	MarkNativeAsOptional("LoadTopMenuConfig");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								env/include/usermessages.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								env/include/usermessages.inc
									
									
									
									
										vendored
									
									
								
							@@ -68,13 +68,13 @@ enum UserMessageType
 | 
			
		||||
 *
 | 
			
		||||
 * @return				The supported usermessage type.
 | 
			
		||||
 */
 | 
			
		||||
native UserMessageType:GetUserMessageType();
 | 
			
		||||
native UserMessageType GetUserMessageType();
 | 
			
		||||
 | 
			
		||||
stock Protobuf UserMessageToProtobuf(Handle msg)
 | 
			
		||||
{
 | 
			
		||||
	if (GetUserMessageType() != UM_Protobuf)
 | 
			
		||||
		return null;
 | 
			
		||||
	return Protobuf:msg;
 | 
			
		||||
	return view_as<Protobuf>(msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Make sure to only call this on writable buffers (eg from StartMessage).
 | 
			
		||||
@@ -82,7 +82,7 @@ stock BfWrite UserMessageToBfWrite(Handle msg)
 | 
			
		||||
{
 | 
			
		||||
	if (GetUserMessageType() == UM_Protobuf)
 | 
			
		||||
		return null;
 | 
			
		||||
	return BfWrite:msg;
 | 
			
		||||
	return view_as<BfWrite>(msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Make sure to only call this on readable buffers (eg from a message hook).
 | 
			
		||||
@@ -90,7 +90,7 @@ stock BfWrite UserMessageToBfRead(Handle msg)
 | 
			
		||||
{
 | 
			
		||||
	if (GetUserMessageType() == UM_Protobuf)
 | 
			
		||||
		return null;
 | 
			
		||||
	return BfRead:msg;
 | 
			
		||||
	return view_as<BfRead>(msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -99,7 +99,7 @@ stock BfWrite UserMessageToBfRead(Handle msg)
 | 
			
		||||
 * @param msg			String containing message name (case sensitive).
 | 
			
		||||
 * @return				A message index, or INVALID_MESSAGE_ID on failure.
 | 
			
		||||
 */
 | 
			
		||||
native UserMsg:GetUserMessageId(const String:msg[]);
 | 
			
		||||
native UserMsg GetUserMessageId(const char[] msg);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Retrieves the name of a message by ID.
 | 
			
		||||
@@ -109,7 +109,7 @@ native UserMsg:GetUserMessageId(const String:msg[]);
 | 
			
		||||
 * @param maxlength		Maximum length of string buffer.
 | 
			
		||||
 * @return				True if message index is valid, false otherwise.
 | 
			
		||||
 */
 | 
			
		||||
native bool:GetUserMessageName(UserMsg:msg_id, String:msg[], maxlength);
 | 
			
		||||
native bool GetUserMessageName(UserMsg msg_id, char[] msg, int maxlength);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts a usermessage (network message).
 | 
			
		||||
@@ -125,7 +125,7 @@ native bool:GetUserMessageName(UserMsg:msg_id, String:msg[], maxlength);
 | 
			
		||||
 * @error				Invalid message name, unable to start a message, invalid client,
 | 
			
		||||
 *						or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:StartMessage(String:msgname[], clients[], numClients, flags=0);
 | 
			
		||||
native Handle StartMessage(char[] msgname, int[] clients, int numClients, int flags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts a usermessage (network message).
 | 
			
		||||
@@ -141,14 +141,12 @@ native Handle:StartMessage(String:msgname[], clients[], numClients, flags=0);
 | 
			
		||||
 * @error				Invalid message name, unable to start a message, invalid client,
 | 
			
		||||
 *						or client not connected.
 | 
			
		||||
 */
 | 
			
		||||
native Handle:StartMessageEx(UserMsg:msg, clients[], numClients, flags=0);
 | 
			
		||||
native Handle StartMessageEx(UserMsg msg, int[] clients, int numClients, int flags=0);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Ends a previously started user message (network message).
 | 
			
		||||
 *
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native EndMessage();
 | 
			
		||||
native void EndMessage();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Hook function types for user messages.
 | 
			
		||||
@@ -190,7 +188,6 @@ typeset MsgHook
 | 
			
		||||
 *
 | 
			
		||||
 * @param msg_id		Message index.
 | 
			
		||||
 * @param sent			True if message was sent, false if blocked.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
typedef MsgPostHook = function void (UserMsg msg_id, bool sent);
 | 
			
		||||
 | 
			
		||||
@@ -203,10 +200,9 @@ typedef MsgPostHook = function void (UserMsg msg_id, bool sent);
 | 
			
		||||
 * 						allowing the user to block the message.  Otherwise,
 | 
			
		||||
 *						the hook is normal and ignores the return value.
 | 
			
		||||
 * @param post		Notification function.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid message index.
 | 
			
		||||
 */
 | 
			
		||||
native HookUserMessage(UserMsg:msg_id, MsgHook:hook, bool:intercept=false, MsgPostHook:post=INVALID_FUNCTION);
 | 
			
		||||
native void HookUserMessage(UserMsg msg_id, MsgHook hook, bool intercept=false, MsgPostHook post=INVALID_FUNCTION);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes one usermessage hook.
 | 
			
		||||
@@ -214,10 +210,9 @@ native HookUserMessage(UserMsg:msg_id, MsgHook:hook, bool:intercept=false, MsgPo
 | 
			
		||||
 * @param msg_id		Message index.
 | 
			
		||||
 * @param hook			Function used for the hook.
 | 
			
		||||
 * @param intercept		Specifies whether the hook was an intercept hook or not.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 * @error				Invalid message index.
 | 
			
		||||
 */
 | 
			
		||||
native UnhookUserMessage(UserMsg:msg_id, MsgHook:hook, bool:intercept=false);
 | 
			
		||||
native void UnhookUserMessage(UserMsg msg_id, MsgHook hook, bool intercept=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Starts a usermessage (network message) that broadcasts to all clients.
 | 
			
		||||
@@ -228,11 +223,11 @@ native UnhookUserMessage(UserMsg:msg_id, MsgHook:hook, bool:intercept=false);
 | 
			
		||||
 * @return				A handle to a bf_write bit packing structure, or
 | 
			
		||||
 *						INVALID_HANDLE on failure.
 | 
			
		||||
 */
 | 
			
		||||
stock Handle:StartMessageAll(String:msgname[], flags=0)
 | 
			
		||||
stock Handle StartMessageAll(char[] msgname, int flags=0)
 | 
			
		||||
{
 | 
			
		||||
	new total = 0;
 | 
			
		||||
	new clients[MaxClients];
 | 
			
		||||
	for (new i=1; i<=MaxClients; i++)
 | 
			
		||||
	int total = 0;
 | 
			
		||||
	int[] clients = new int[MaxClients];
 | 
			
		||||
	for (int i=1; i<=MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (IsClientConnected(i))
 | 
			
		||||
		{
 | 
			
		||||
@@ -252,9 +247,9 @@ stock Handle:StartMessageAll(String:msgname[], flags=0)
 | 
			
		||||
 * @return				A handle to a bf_write bit packing structure, or
 | 
			
		||||
 *						INVALID_HANDLE on failure.
 | 
			
		||||
 */
 | 
			
		||||
stock Handle:StartMessageOne(String:msgname[], client, flags=0)
 | 
			
		||||
stock Handle StartMessageOne(char[] msgname, int client, int flags=0)
 | 
			
		||||
{
 | 
			
		||||
	new players[1];
 | 
			
		||||
	int players[1];
 | 
			
		||||
	
 | 
			
		||||
	players[0] = client;
 | 
			
		||||
	
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								env/include/vector.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								env/include/vector.inc
									
									
									
									
										vendored
									
									
								
							@@ -42,7 +42,7 @@
 | 
			
		||||
 * @param squared	If true, the result will be squared (for optimization).
 | 
			
		||||
 * @return			Vector length (magnitude).			
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetVectorLength(const Float:vec[3], bool:squared=false);
 | 
			
		||||
native float GetVectorLength(const float vec[3], bool squared=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Calculates the distance between two vectors.
 | 
			
		||||
@@ -52,7 +52,7 @@ native Float:GetVectorLength(const Float:vec[3], bool:squared=false);
 | 
			
		||||
 * @param squared	If true, the result will be squared (for optimization).
 | 
			
		||||
 * @return			Vector distance.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetVectorDistance(const Float:vec1[3], const Float:vec2[3], bool:squared=false);
 | 
			
		||||
native float GetVectorDistance(const float vec1[3], const float vec2[3], bool squared=false);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Calculates the dot product of two vectors.
 | 
			
		||||
@@ -61,7 +61,7 @@ native Float:GetVectorDistance(const Float:vec1[3], const Float:vec2[3], bool:sq
 | 
			
		||||
 * @param vec2		Second vector.
 | 
			
		||||
 * @return			Dot product of the two vectors.
 | 
			
		||||
 */
 | 
			
		||||
native Float:GetVectorDotProduct(const Float:vec1[3], const Float:vec2[3]);
 | 
			
		||||
native float GetVectorDotProduct(const float vec1[3], const float vec2[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Computes the cross product of two vectors.  Any input array can be the same 
 | 
			
		||||
@@ -70,9 +70,8 @@ native Float:GetVectorDotProduct(const Float:vec1[3], const Float:vec2[3]);
 | 
			
		||||
 * @param vec1		First vector.
 | 
			
		||||
 * @param vec2		Second vector.
 | 
			
		||||
 * @param result	Resultant vector.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GetVectorCrossProduct(const Float:vec1[3], const Float:vec2[3], Float:result[3]);
 | 
			
		||||
native void GetVectorCrossProduct(const float vec1[3], const float vec2[3], float result[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Normalizes a vector.  The input array can be the same as the output array.
 | 
			
		||||
@@ -81,7 +80,7 @@ native GetVectorCrossProduct(const Float:vec1[3], const Float:vec2[3], Float:res
 | 
			
		||||
 * @param result	Resultant vector.
 | 
			
		||||
 * @return			Vector length.
 | 
			
		||||
 */
 | 
			
		||||
native Float:NormalizeVector(const Float:vec[3], Float:result[3]);
 | 
			
		||||
native float NormalizeVector(const float vec[3], float result[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns vectors in the direction of an angle.
 | 
			
		||||
@@ -90,18 +89,16 @@ native Float:NormalizeVector(const Float:vec[3], Float:result[3]);
 | 
			
		||||
 * @param fwd		Forward vector buffer or NULL_VECTOR.
 | 
			
		||||
 * @param right		Right vector buffer or NULL_VECTOR.
 | 
			
		||||
 * @param up		Up vector buffer or NULL_VECTOR.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GetAngleVectors(const Float:angle[3], Float:fwd[3], Float:right[3], Float:up[3]);
 | 
			
		||||
native void GetAngleVectors(const float angle[3], float fwd[3], float right[3], float up[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns angles from a vector.
 | 
			
		||||
 *
 | 
			
		||||
 * @param vec		Vector.
 | 
			
		||||
 * @param angle		Angle buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GetVectorAngles(const Float:vec[3], Float:angle[3]);
 | 
			
		||||
native void GetVectorAngles(const float vec[3], float angle[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns direction vectors from a vector.
 | 
			
		||||
@@ -109,9 +106,8 @@ native GetVectorAngles(const Float:vec[3], Float:angle[3]);
 | 
			
		||||
 * @param vec		Vector.
 | 
			
		||||
 * @param right		Right vector buffer or NULL_VECTOR.
 | 
			
		||||
 * @param up		Up vector buffer or NULL_VECTOR.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
native GetVectorVectors(const Float:vec[3], Float:right[3], Float:up[3]);
 | 
			
		||||
native void GetVectorVectors(const float vec[3], float right[3], float up[3]);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds two vectors.  It is safe to use either input buffer as an output 
 | 
			
		||||
@@ -120,9 +116,8 @@ native GetVectorVectors(const Float:vec[3], Float:right[3], Float:up[3]);
 | 
			
		||||
 * @param vec1		First vector.
 | 
			
		||||
 * @param vec2		Second vector.
 | 
			
		||||
 * @param result	Result buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock AddVectors(const Float:vec1[3], const Float:vec2[3], Float:result[3])
 | 
			
		||||
stock void AddVectors(const float vec1[3], const float vec2[3], float result[3])
 | 
			
		||||
{
 | 
			
		||||
	result[0] = vec1[0] + vec2[0];
 | 
			
		||||
	result[1] = vec1[1] + vec2[1];
 | 
			
		||||
@@ -136,9 +131,8 @@ stock AddVectors(const Float:vec1[3], const Float:vec2[3], Float:result[3])
 | 
			
		||||
 * @param vec1		First vector.
 | 
			
		||||
 * @param vec2		Second vector to subtract from first.
 | 
			
		||||
 * @param result	Result buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock SubtractVectors(const Float:vec1[3], const Float:vec2[3], Float:result[3])
 | 
			
		||||
stock void SubtractVectors(const float vec1[3], const float vec2[3], float result[3])
 | 
			
		||||
{
 | 
			
		||||
	result[0] = vec1[0] - vec2[0];
 | 
			
		||||
	result[1] = vec1[1] - vec2[1];
 | 
			
		||||
@@ -150,9 +144,8 @@ stock SubtractVectors(const Float:vec1[3], const Float:vec2[3], Float:result[3])
 | 
			
		||||
 *
 | 
			
		||||
 * @param vec		Vector.
 | 
			
		||||
 * @param scale		Scale value.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock ScaleVector(Float:vec[3], Float:scale)
 | 
			
		||||
stock void ScaleVector(float vec[3], float scale)
 | 
			
		||||
{
 | 
			
		||||
	vec[0] *= scale;
 | 
			
		||||
	vec[1] *= scale;
 | 
			
		||||
@@ -163,9 +156,8 @@ stock ScaleVector(Float:vec[3], Float:scale)
 | 
			
		||||
 * Negatives a vector.
 | 
			
		||||
 *
 | 
			
		||||
 * @param vec		Vector.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock NegateVector(Float:vec[3])
 | 
			
		||||
stock void NegateVector(float vec[3])
 | 
			
		||||
{
 | 
			
		||||
	vec[0] = -vec[0];
 | 
			
		||||
	vec[1] = -vec[1];
 | 
			
		||||
@@ -178,9 +170,8 @@ stock NegateVector(Float:vec[3])
 | 
			
		||||
 * @param pt1		First point (to be subtracted from the second).
 | 
			
		||||
 * @param pt2		Second point.
 | 
			
		||||
 * @param output	Output vector buffer.
 | 
			
		||||
 * @noreturn
 | 
			
		||||
 */
 | 
			
		||||
stock MakeVectorFromPoints(const Float:pt1[3], const Float:pt2[3], Float:output[3])
 | 
			
		||||
stock void MakeVectorFromPoints(const float pt1[3], const float pt2[3], float output[3])
 | 
			
		||||
{
 | 
			
		||||
	output[0] = pt2[0] - pt1[0];
 | 
			
		||||
	output[1] = pt2[1] - pt1[1];
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								env/include/version.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								env/include/version.inc
									
									
									
									
										vendored
									
									
								
							@@ -42,8 +42,8 @@
 | 
			
		||||
#define SOURCEMOD_V_REV			0
 | 
			
		||||
#define SOURCEMOD_V_CSET		"0"
 | 
			
		||||
#define SOURCEMOD_V_MAJOR		1				/**< SourceMod Major version */
 | 
			
		||||
#define SOURCEMOD_V_MINOR		7				/**< SourceMod Minor version */
 | 
			
		||||
#define SOURCEMOD_V_MINOR		8				/**< SourceMod Minor version */
 | 
			
		||||
#define SOURCEMOD_V_RELEASE		0				/**< SourceMod Release version */
 | 
			
		||||
 | 
			
		||||
#define SOURCEMOD_VERSION	"1.7.0-manual"	/**< SourceMod version string (major.minor.release-tag) */
 | 
			
		||||
#define SOURCEMOD_VERSION	"1.8.0-manual"	/**< SourceMod version string (major.minor.release-tag) */
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								env/include/version_auto.inc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								env/include/version_auto.inc
									
									
									
									
										vendored
									
									
								
							@@ -5,11 +5,11 @@
 | 
			
		||||
#define _auto_version_included
 | 
			
		||||
 | 
			
		||||
#define SOURCEMOD_V_TAG		""
 | 
			
		||||
#define SOURCEMOD_V_CSET	"fd0aaf9"
 | 
			
		||||
#define SOURCEMOD_V_CSET	"19b0d34"
 | 
			
		||||
#define SOURCEMOD_V_MAJOR	1
 | 
			
		||||
#define SOURCEMOD_V_MINOR	7
 | 
			
		||||
#define SOURCEMOD_V_MINOR	9
 | 
			
		||||
#define SOURCEMOD_V_RELEASE	0
 | 
			
		||||
#define SOURCEMOD_V_REV		5150
 | 
			
		||||
#define SOURCEMOD_V_REV		5970
 | 
			
		||||
 | 
			
		||||
#define SOURCEMOD_VERSION	"1.7.0"
 | 
			
		||||
#define SOURCEMOD_VERSION	"1.9.0.5970"
 | 
			
		||||
    
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								env/linux/bin/spcomp
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/linux/bin/spcomp
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.4.0-3218
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.4.0-3218
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.4.1
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.4.1
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.6.0
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.6.0
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.7.0
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/linux/bin/spcomp-1.7.0
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.4.0-3218.exe
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.4.0-3218.exe
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.4.1.exe
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.4.1.exe
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.6.0.exe
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.6.0.exe
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.7.0.exe
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/win32/bin/spcomp-1.7.0.exe
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								env/win32/bin/spcomp.exe
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								env/win32/bin/spcomp.exe
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user