Correct Plugin API Documentation Formatting (#1019)
This commit is contained in:
parent
28036966a6
commit
81dc80fbd1
@ -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 _admin_included
|
||||
#endinput
|
||||
#endif
|
||||
@ -40,67 +40,66 @@
|
||||
*/
|
||||
enum AdminFlag
|
||||
{
|
||||
Admin_Reservation = 0, /**< Reserved slot */
|
||||
Admin_Generic, /**< Generic admin abilities */
|
||||
Admin_Kick, /**< Kick another user */
|
||||
Admin_Ban, /**< Ban another user */
|
||||
Admin_Unban, /**< Unban another user */
|
||||
Admin_Slay, /**< Slay/kill/damage another user */
|
||||
Admin_Changemap, /**< Change the map */
|
||||
Admin_Convars, /**< Change basic convars */
|
||||
Admin_Config, /**< Change configuration */
|
||||
Admin_Chat, /**< Special chat privileges */
|
||||
Admin_Vote, /**< Special vote privileges */
|
||||
Admin_Password, /**< Set a server password */
|
||||
Admin_RCON, /**< Use RCON */
|
||||
Admin_Cheats, /**< Change sv_cheats and use its commands */
|
||||
Admin_Root, /**< All access by default */
|
||||
Admin_Custom1, /**< First custom flag type */
|
||||
Admin_Custom2, /**< Second custom flag type */
|
||||
Admin_Custom3, /**< Third custom flag type */
|
||||
Admin_Custom4, /**< Fourth custom flag type */
|
||||
Admin_Custom5, /**< Fifth custom flag type */
|
||||
Admin_Custom6, /**< Sixth custom flag type */
|
||||
/* --- */
|
||||
Admin_Reservation = 0, /**< Reserved slot */
|
||||
Admin_Generic, /**< Generic admin abilities */
|
||||
Admin_Kick, /**< Kick another user */
|
||||
Admin_Ban, /**< Ban another user */
|
||||
Admin_Unban, /**< Unban another user */
|
||||
Admin_Slay, /**< Slay/kill/damage another user */
|
||||
Admin_Changemap, /**< Change the map */
|
||||
Admin_Convars, /**< Change basic convars */
|
||||
Admin_Config, /**< Change configuration */
|
||||
Admin_Chat, /**< Special chat privileges */
|
||||
Admin_Vote, /**< Special vote privileges */
|
||||
Admin_Password, /**< Set a server password */
|
||||
Admin_RCON, /**< Use RCON */
|
||||
Admin_Cheats, /**< Change sv_cheats and use its commands */
|
||||
Admin_Root, /**< All access by default */
|
||||
Admin_Custom1, /**< First custom flag type */
|
||||
Admin_Custom2, /**< Second custom flag type */
|
||||
Admin_Custom3, /**< Third custom flag type */
|
||||
Admin_Custom4, /**< Fourth custom flag type */
|
||||
Admin_Custom5, /**< Fifth custom flag type */
|
||||
Admin_Custom6 /**< Sixth custom flag type */
|
||||
};
|
||||
|
||||
#define AdminFlags_TOTAL 21 /**< Total number of admin flags */
|
||||
#define AdminFlags_TOTAL 21 /**< Total number of admin flags */
|
||||
|
||||
/**
|
||||
* @section Bitwise values definitions for admin flags.
|
||||
*/
|
||||
#define ADMFLAG_RESERVATION (1<<0) /**< Convenience macro for Admin_Reservation as a FlagBit */
|
||||
#define ADMFLAG_GENERIC (1<<1) /**< Convenience macro for Admin_Generic as a FlagBit */
|
||||
#define ADMFLAG_KICK (1<<2) /**< Convenience macro for Admin_Kick as a FlagBit */
|
||||
#define ADMFLAG_BAN (1<<3) /**< Convenience macro for Admin_Ban as a FlagBit */
|
||||
#define ADMFLAG_UNBAN (1<<4) /**< Convenience macro for Admin_Unban as a FlagBit */
|
||||
#define ADMFLAG_SLAY (1<<5) /**< Convenience macro for Admin_Slay as a FlagBit */
|
||||
#define ADMFLAG_CHANGEMAP (1<<6) /**< Convenience macro for Admin_Changemap as a FlagBit */
|
||||
#define ADMFLAG_CONVARS (1<<7) /**< Convenience macro for Admin_Convars as a FlagBit */
|
||||
#define ADMFLAG_CONFIG (1<<8) /**< Convenience macro for Admin_Config as a FlagBit */
|
||||
#define ADMFLAG_CHAT (1<<9) /**< Convenience macro for Admin_Chat as a FlagBit */
|
||||
#define ADMFLAG_VOTE (1<<10) /**< Convenience macro for Admin_Vote as a FlagBit */
|
||||
#define ADMFLAG_PASSWORD (1<<11) /**< Convenience macro for Admin_Password as a FlagBit */
|
||||
#define ADMFLAG_RCON (1<<12) /**< Convenience macro for Admin_RCON as a FlagBit */
|
||||
#define ADMFLAG_CHEATS (1<<13) /**< Convenience macro for Admin_Cheats as a FlagBit */
|
||||
#define ADMFLAG_ROOT (1<<14) /**< Convenience macro for Admin_Root as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM1 (1<<15) /**< Convenience macro for Admin_Custom1 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM2 (1<<16) /**< Convenience macro for Admin_Custom2 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM3 (1<<17) /**< Convenience macro for Admin_Custom3 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM4 (1<<18) /**< Convenience macro for Admin_Custom4 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM5 (1<<19) /**< Convenience macro for Admin_Custom5 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM6 (1<<20) /**< Convenience macro for Admin_Custom6 as a FlagBit */
|
||||
#define ADMFLAG_RESERVATION (1<<0) /**< Convenience macro for Admin_Reservation as a FlagBit */
|
||||
#define ADMFLAG_GENERIC (1<<1) /**< Convenience macro for Admin_Generic as a FlagBit */
|
||||
#define ADMFLAG_KICK (1<<2) /**< Convenience macro for Admin_Kick as a FlagBit */
|
||||
#define ADMFLAG_BAN (1<<3) /**< Convenience macro for Admin_Ban as a FlagBit */
|
||||
#define ADMFLAG_UNBAN (1<<4) /**< Convenience macro for Admin_Unban as a FlagBit */
|
||||
#define ADMFLAG_SLAY (1<<5) /**< Convenience macro for Admin_Slay as a FlagBit */
|
||||
#define ADMFLAG_CHANGEMAP (1<<6) /**< Convenience macro for Admin_Changemap as a FlagBit */
|
||||
#define ADMFLAG_CONVARS (1<<7) /**< Convenience macro for Admin_Convars as a FlagBit */
|
||||
#define ADMFLAG_CONFIG (1<<8) /**< Convenience macro for Admin_Config as a FlagBit */
|
||||
#define ADMFLAG_CHAT (1<<9) /**< Convenience macro for Admin_Chat as a FlagBit */
|
||||
#define ADMFLAG_VOTE (1<<10) /**< Convenience macro for Admin_Vote as a FlagBit */
|
||||
#define ADMFLAG_PASSWORD (1<<11) /**< Convenience macro for Admin_Password as a FlagBit */
|
||||
#define ADMFLAG_RCON (1<<12) /**< Convenience macro for Admin_RCON as a FlagBit */
|
||||
#define ADMFLAG_CHEATS (1<<13) /**< Convenience macro for Admin_Cheats as a FlagBit */
|
||||
#define ADMFLAG_ROOT (1<<14) /**< Convenience macro for Admin_Root as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM1 (1<<15) /**< Convenience macro for Admin_Custom1 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM2 (1<<16) /**< Convenience macro for Admin_Custom2 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM3 (1<<17) /**< Convenience macro for Admin_Custom3 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM4 (1<<18) /**< Convenience macro for Admin_Custom4 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM5 (1<<19) /**< Convenience macro for Admin_Custom5 as a FlagBit */
|
||||
#define ADMFLAG_CUSTOM6 (1<<20) /**< Convenience macro for Admin_Custom6 as a FlagBit */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
*/
|
||||
|
||||
/**
|
||||
* @section Hardcoded authentication methods
|
||||
* @section Hardcoded authentication methods
|
||||
*/
|
||||
#define AUTHMETHOD_STEAM "steam" /**< SteamID based authentication */
|
||||
#define AUTHMETHOD_IP "ip" /**< IP based authentication */
|
||||
#define AUTHMETHOD_NAME "name" /**< Name based authentication */
|
||||
#define AUTHMETHOD_STEAM "steam" /**< SteamID based authentication */
|
||||
#define AUTHMETHOD_IP "ip" /**< IP based authentication */
|
||||
#define AUTHMETHOD_NAME "name" /**< Name based authentication */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
@ -111,8 +110,8 @@ enum AdminFlag
|
||||
*/
|
||||
enum OverrideType
|
||||
{
|
||||
Override_Command = 1, /**< Command */
|
||||
Override_CommandGroup, /**< Command group */
|
||||
Override_Command = 1, /**< Command */
|
||||
Override_CommandGroup /**< Command group */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -121,7 +120,7 @@ enum OverrideType
|
||||
enum OverrideRule
|
||||
{
|
||||
Command_Deny = 0,
|
||||
Command_Allow = 1,
|
||||
Command_Allow = 1
|
||||
};
|
||||
|
||||
/**
|
||||
@ -129,24 +128,24 @@ enum OverrideRule
|
||||
*/
|
||||
enum ImmunityType
|
||||
{
|
||||
Immunity_Default = 1, /**< Deprecated. */
|
||||
Immunity_Global, /**< Deprecated. */
|
||||
Immunity_Default = 1, /**< Deprecated. */
|
||||
Immunity_Global /**< Deprecated. */
|
||||
};
|
||||
|
||||
/**
|
||||
/**
|
||||
* Identifies a unique entry in the group permissions cache. These are not Handles.
|
||||
*/
|
||||
enum GroupId
|
||||
{
|
||||
INVALID_GROUP_ID = -1, /**< An invalid/non-existent group */
|
||||
INVALID_GROUP_ID = -1 /**< An invalid/non-existent group */
|
||||
};
|
||||
|
||||
/**
|
||||
/**
|
||||
* Identifies a unique entry in the admin permissions cache. These are not Handles.
|
||||
*/
|
||||
enum AdminId
|
||||
{
|
||||
INVALID_ADMIN_ID = -1, /**< An invalid/non-existent admin */
|
||||
INVALID_ADMIN_ID = -1 /**< An invalid/non-existent admin */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -154,8 +153,8 @@ enum AdminId
|
||||
*/
|
||||
enum AdmAccessMode
|
||||
{
|
||||
Access_Real, /**< Access the user has inherently */
|
||||
Access_Effective, /**< Access the user has from their groups */
|
||||
Access_Real, /**< Access the user has inherently */
|
||||
Access_Effective /**< Access the user has from their groups */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -163,9 +162,9 @@ enum AdmAccessMode
|
||||
*/
|
||||
enum AdminCachePart
|
||||
{
|
||||
AdminCache_Overrides = 0, /**< Global overrides */
|
||||
AdminCache_Groups = 1, /**< All groups (automatically invalidates admins too) */
|
||||
AdminCache_Admins = 2, /**< All admins */
|
||||
AdminCache_Overrides = 0, /**< Global overrides */
|
||||
AdminCache_Groups = 1, /**< All groups (automatically invalidates admins too) */
|
||||
AdminCache_Admins = 2 /**< All admins */
|
||||
};
|
||||
|
||||
methodmap AdminId {
|
||||
@ -269,45 +268,45 @@ methodmap AdminId {
|
||||
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,
|
||||
// @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.
|
||||
// @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.
|
||||
// @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.
|
||||
// @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.
|
||||
// @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.
|
||||
// @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.
|
||||
// @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
|
||||
@ -325,15 +324,15 @@ methodmap GroupId {
|
||||
/**
|
||||
* Called when part of the cache needs to be rebuilt.
|
||||
*
|
||||
* @param part Part of the admin cache to rebuild.
|
||||
* @param part Part of the admin cache to rebuild.
|
||||
*/
|
||||
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.
|
||||
* @param part Part of the cache to dump. Specifying groups also dumps admins.
|
||||
* @param rebuild If true, the rebuild forwards will fire.
|
||||
*/
|
||||
native void DumpAdminCache(AdminCachePart part, bool rebuild);
|
||||
|
||||
@ -341,43 +340,43 @@ native void DumpAdminCache(AdminCachePart part, bool rebuild);
|
||||
* Adds a global command flag override. Any command registered with this name
|
||||
* will assume the new flag. This is applied retroactively as well.
|
||||
*
|
||||
* @param cmd String containing command name (case sensitive).
|
||||
* @param type Override type (specific command or group).
|
||||
* @param flags New admin flag.
|
||||
* @param cmd String containing command name (case sensitive).
|
||||
* @param type Override type (specific command or group).
|
||||
* @param flags New admin flag.
|
||||
*/
|
||||
native void AddCommandOverride(const char[] cmd, OverrideType type, int flags);
|
||||
|
||||
/**
|
||||
* Returns a command override.
|
||||
*
|
||||
* @param cmd String containing command name (case sensitive).
|
||||
* @param type Override type (specific command or group).
|
||||
* @param flags By-reference cell to store the flag (undefined if not found).
|
||||
* @return True if there is an override, false otherwise.
|
||||
* @param cmd String containing command name (case sensitive).
|
||||
* @param type Override type (specific command or group).
|
||||
* @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 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).
|
||||
* @param cmd String containing command name (case sensitive).
|
||||
* @param type Override type (specific command or group).
|
||||
*/
|
||||
native void UnsetCommandOverride(const char[] cmd, OverrideType type);
|
||||
|
||||
/**
|
||||
* Adds a new group. Name must be unique.
|
||||
*
|
||||
* @param group_name String containing the group name.
|
||||
* @return A new group id, INVALID_GROUP_ID if it already exists.
|
||||
* @param group_name String containing the group name.
|
||||
* @return A new group id, INVALID_GROUP_ID if it already exists.
|
||||
*/
|
||||
native GroupId CreateAdmGroup(const char[] group_name);
|
||||
|
||||
/**
|
||||
* Finds a group by name.
|
||||
*
|
||||
* @param group_name String containing the group name.
|
||||
* @return A group id, or INVALID_GROUP_ID if not found.
|
||||
* @param group_name String containing the group name.
|
||||
* @return A group id, or INVALID_GROUP_ID if not found.
|
||||
*/
|
||||
native GroupId FindAdmGroup(const char[] group_name);
|
||||
|
||||
@ -385,9 +384,9 @@ native GroupId FindAdmGroup(const char[] group_name);
|
||||
* Adds or removes a flag from a group's flag set.
|
||||
* @note These are called "add flags" because they add to a user's flags.
|
||||
*
|
||||
* @param id Group id.
|
||||
* @param flag Admin flag to toggle.
|
||||
* @param enabled True to set the flag, false to unset/disable.
|
||||
* @param id Group id.
|
||||
* @param flag Admin flag to toggle.
|
||||
* @param enabled True to set the flag, false to unset/disable.
|
||||
*/
|
||||
native void SetAdmGroupAddFlag(GroupId id, AdminFlag flag, bool enabled);
|
||||
|
||||
@ -395,9 +394,9 @@ native void SetAdmGroupAddFlag(GroupId id, AdminFlag flag, bool enabled);
|
||||
* Gets the set value of an add flag on a group's flag set.
|
||||
* @note These are called "add flags" because they add to a user's flags.
|
||||
*
|
||||
* @param id Group id.
|
||||
* @param flag Admin flag to retrieve.
|
||||
* @return True if enabled, false otherwise,
|
||||
* @param id Group id.
|
||||
* @param flag Admin flag to retrieve.
|
||||
* @return True if enabled, false otherwise,
|
||||
*/
|
||||
native bool GetAdmGroupAddFlag(GroupId id, AdminFlag flag);
|
||||
|
||||
@ -405,19 +404,19 @@ native bool GetAdmGroupAddFlag(GroupId id, AdminFlag flag);
|
||||
* Returns the flag set that is added to a user from their group.
|
||||
* @note These are called "add flags" because they add to a user's flags.
|
||||
*
|
||||
* @param id GroupId of the group.
|
||||
* @return Bitstring containing the flags enabled.
|
||||
* @param id GroupId of the group.
|
||||
* @return Bitstring containing the flags enabled.
|
||||
*/
|
||||
native int GetAdmGroupAddFlags(GroupId id);
|
||||
|
||||
/**
|
||||
* @deprecated Functionality removed.
|
||||
* @deprecated Functionality removed.
|
||||
*/
|
||||
#pragma deprecated Use SetAdmGroupImmunityLevel() instead.
|
||||
native void SetAdmGroupImmunity(GroupId id, ImmunityType type, bool enabled);
|
||||
|
||||
/**
|
||||
* @deprecated Functionality removed.
|
||||
* @deprecated Functionality removed.
|
||||
*/
|
||||
#pragma deprecated Use GetAdmGroupImmunityLevel() instead.
|
||||
native bool GetAdmGroupImmunity(GroupId id, ImmunityType type);
|
||||
@ -425,62 +424,63 @@ 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.
|
||||
* @param id Group id.
|
||||
* @param other_id Group id to receive immunity to.
|
||||
*/
|
||||
native void SetAdmGroupImmuneFrom(GroupId id, GroupId other_id);
|
||||
|
||||
/**
|
||||
* Returns the number of specific group immunities.
|
||||
*
|
||||
* @param id Group id.
|
||||
* @return Number of group immunities.
|
||||
* @param id Group id.
|
||||
* @return Number of group immunities.
|
||||
*/
|
||||
native int GetAdmGroupImmuneCount(GroupId id);
|
||||
|
||||
/**
|
||||
* Returns a group that this group is immune to given an index.
|
||||
*
|
||||
* @param id Group 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.
|
||||
* @param id Group 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, int number);
|
||||
native GroupId GetAdmGroupImmuneFrom(GroupId id, int number);
|
||||
|
||||
/**
|
||||
* Adds a group-specific override type.
|
||||
*
|
||||
* @param id Group id.
|
||||
* @param name String containing command name (case sensitive).
|
||||
* @param type Override type (specific command or group).
|
||||
* @param rule Override allow/deny setting.
|
||||
* @param id Group id.
|
||||
* @param name String containing command name (case sensitive).
|
||||
* @param type Override type (specific command or group).
|
||||
* @param rule Override allow/deny setting.
|
||||
*/
|
||||
native void AddAdmGroupCmdOverride(GroupId id, const char[] name, OverrideType type, OverrideRule rule);
|
||||
|
||||
/**
|
||||
* Retrieves a group-specific command override.
|
||||
*
|
||||
* @param id Group id.
|
||||
* @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.
|
||||
* @param id Group id.
|
||||
* @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.
|
||||
*/
|
||||
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
|
||||
* 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.
|
||||
* @param name Codename to use for your authentication type.
|
||||
*/
|
||||
native void RegisterAuthIdentType(const char[] name);
|
||||
|
||||
/**
|
||||
* Creates a new admin entry in the permissions cache.
|
||||
* Creates a new admin entry in the permissions cache and returns the generated AdminId index.
|
||||
*
|
||||
* @param name Name for this entry (does not have to be unique).
|
||||
* Specify an empty string for an anonymous admin.
|
||||
* @param name Name for this entry (does not have to be unique).
|
||||
* Specify an empty string for an anonymous admin.
|
||||
* @return New AdminId index or INVALID_ADMIN_ID if name is empty
|
||||
*/
|
||||
native AdminId CreateAdmin(const char[] name="");
|
||||
|
||||
@ -489,109 +489,109 @@ native AdminId CreateAdmin(const char[] name="");
|
||||
*
|
||||
* @note This function can return UTF-8 strings, and will safely chop UTF-8 strings.
|
||||
*
|
||||
* @param id AdminId of the admin.
|
||||
* @param name String buffer to store name.
|
||||
* @param maxlength Maximum size of string buffer.
|
||||
* @return Number of bytes written.
|
||||
* @param id AdminId of the admin.
|
||||
* @param name String buffer to store name.
|
||||
* @param maxlength Maximum size of string buffer.
|
||||
* @return Number of bytes written.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param id AdminId of the admin.
|
||||
* @param auth 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.
|
||||
* @param id AdminId of the admin.
|
||||
* @param auth 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.
|
||||
*/
|
||||
native bool BindAdminIdentity(AdminId id, const char[] auth, const char[] ident);
|
||||
|
||||
/**
|
||||
* Sets whether or not a flag is enabled on an admin.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @param flag Admin flag to use.
|
||||
* @param enabled True to enable, false to disable.
|
||||
* @param id AdminId index of the admin.
|
||||
* @param flag Admin flag to use.
|
||||
* @param enabled True to enable, false to disable.
|
||||
*/
|
||||
native void SetAdminFlag(AdminId id, AdminFlag flag, bool enabled);
|
||||
|
||||
/**
|
||||
* Returns whether or not a flag is enabled on an admin.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @param flag Admin flag to use.
|
||||
* @param mode Access mode to check.
|
||||
* @return True if enabled, false otherwise.
|
||||
* @param id AdminId index of the admin.
|
||||
* @param flag Admin flag to use.
|
||||
* @param mode Access mode to check.
|
||||
* @return True if enabled, false otherwise.
|
||||
*/
|
||||
native bool GetAdminFlag(AdminId id, AdminFlag flag, AdmAccessMode mode=Access_Effective);
|
||||
|
||||
/**
|
||||
* Returns the bitstring of access flags on an admin.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @param mode Access mode to use.
|
||||
* @return A bitstring containing which flags are enabled.
|
||||
* @param id AdminId index of the admin.
|
||||
* @param mode Access mode to use.
|
||||
* @return A bitstring containing which flags are enabled.
|
||||
*/
|
||||
native int GetAdminFlags(AdminId id, AdmAccessMode mode);
|
||||
|
||||
/**
|
||||
* Adds a group to an admin's inherited group list. Any flags the group has
|
||||
* 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 id AdminId index of the admin.
|
||||
* @param gid GroupId index of the group.
|
||||
* @return True on success, false on invalid input or duplicate membership.
|
||||
* @param id AdminId index of the admin.
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* Returns the number of groups this admin is a member of.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @return Number of groups this admin is a member of.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @return Number of groups this admin is a member of.
|
||||
*/
|
||||
native int GetAdminGroupCount(AdminId id);
|
||||
|
||||
/**
|
||||
* Returns group information from an admin.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @param index Group number to retrieve, from 0 to N-1, where N
|
||||
* is the value of GetAdminGroupCount(id).
|
||||
* @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.
|
||||
* @param id AdminId index of the admin.
|
||||
* @param index Group number to retrieve, from 0 to N-1, where N
|
||||
* is the value of GetAdminGroupCount(id).
|
||||
* @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.
|
||||
*/
|
||||
native GroupId GetAdminGroup(AdminId id, int index, char[] name, int maxlength);
|
||||
|
||||
/**
|
||||
* Sets a password on an admin.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @param password String containing the password.
|
||||
* @param id AdminId index of the admin.
|
||||
* @param password String containing the password.
|
||||
*/
|
||||
native void SetAdminPassword(AdminId id, const char[] password);
|
||||
|
||||
/**
|
||||
* Gets an admin's password.
|
||||
*
|
||||
* @param id AdminId index of the admin.
|
||||
* @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.
|
||||
* @param id AdminId index of the admin.
|
||||
* @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.
|
||||
*/
|
||||
native bool GetAdminPassword(AdminId id, char[] buffer="", int maxlength=0);
|
||||
|
||||
/**
|
||||
* Attempts to find an admin by an auth method and an identity.
|
||||
*
|
||||
* @param auth Auth method to try.
|
||||
* @param identity Identity string to look up.
|
||||
* @return An AdminId index if found, INVALID_ADMIN_ID otherwise.
|
||||
* @param auth Auth method to try.
|
||||
* @param identity Identity string to look up.
|
||||
* @return An AdminId index if found, INVALID_ADMIN_ID otherwise.
|
||||
*/
|
||||
native AdminId FindAdminByIdentity(const char[] auth, const char[] identity);
|
||||
|
||||
@ -600,82 +600,82 @@ native AdminId FindAdminByIdentity(const char[] auth, const char[] identity);
|
||||
*
|
||||
* @note This will remove any bindings to a specific user.
|
||||
*
|
||||
* @param id AdminId index to remove/invalidate.
|
||||
* @return True on success, false otherwise.
|
||||
* @param id AdminId index to remove/invalidate.
|
||||
* @return True on success, false otherwise.
|
||||
*/
|
||||
native bool RemoveAdmin(AdminId id);
|
||||
|
||||
/**
|
||||
* Converts a flag bit string to a bit array.
|
||||
*
|
||||
* @param bits Bit string containing the flags.
|
||||
* @param array Array to write the flags to. Enabled flags will be 'true'.
|
||||
* @param maxSize Maximum number of flags the array can store.
|
||||
* @return Number of flags written.
|
||||
* @param bits Bit string containing the flags.
|
||||
* @param array Array to write the flags to. Enabled flags will be 'true'.
|
||||
* @param maxSize Maximum number of flags the array can store.
|
||||
* @return Number of flags written.
|
||||
*/
|
||||
native int FlagBitsToBitArray(int bits, bool[] array, int maxSize);
|
||||
|
||||
/**
|
||||
* Converts a flag array to a bit string.
|
||||
*
|
||||
* @param array Array containing true or false for each AdminFlag.
|
||||
* @param maxSize Maximum size of the flag array.
|
||||
* @return A bit string composed of the array bits.
|
||||
* @param array Array containing true or false for each AdminFlag.
|
||||
* @param maxSize Maximum size of the flag array.
|
||||
* @return A bit string composed of the array bits.
|
||||
*/
|
||||
native int FlagBitArrayToBits(const bool[] array, int maxSize);
|
||||
|
||||
/**
|
||||
* Converts an array of flags to bits.
|
||||
*
|
||||
* @param array Array containing flags that are enabled.
|
||||
* @param numFlags Number of flags in the array.
|
||||
* @return A bit string composed of the array flags.
|
||||
* @param array Array containing flags that are enabled.
|
||||
* @param numFlags Number of flags in the array.
|
||||
* @return A bit string composed of the array flags.
|
||||
*/
|
||||
native int FlagArrayToBits(const AdminFlag[] array, int numFlags);
|
||||
|
||||
/**
|
||||
* Converts a bit string to an array of flags.
|
||||
*
|
||||
* @param bits Bit string containing the flags.
|
||||
* @param array Output array to write flags.
|
||||
* @param maxSize Maximum size of the flag array.
|
||||
* @return Number of flags written.
|
||||
* @param bits Bit string containing the flags.
|
||||
* @param array Output array to write flags.
|
||||
* @param maxSize Maximum size of the flag array.
|
||||
* @return Number of flags written.
|
||||
*/
|
||||
native int FlagBitsToArray(int bits, AdminFlag[] array, int maxSize);
|
||||
|
||||
/**
|
||||
* Finds a flag by its string name.
|
||||
*
|
||||
* @param name Flag name (like "kick"), case sensitive.
|
||||
* @param flag Variable to store flag in.
|
||||
* @return True on success, false if not found.
|
||||
* @param name Flag name (like "kick"), case sensitive.
|
||||
* @param flag Variable to store flag in.
|
||||
* @return True on success, false if not found.
|
||||
*/
|
||||
native bool FindFlagByName(const char[] name, AdminFlag &flag);
|
||||
|
||||
/**
|
||||
* Finds a flag by a given character.
|
||||
*
|
||||
* @param c Flag ASCII character/token.
|
||||
* @param flag Variable to store flag in.
|
||||
* @return True on success, false if not found.
|
||||
* @param c Flag ASCII character/token.
|
||||
* @param flag Variable to store flag in.
|
||||
* @return True on success, false if not found.
|
||||
*/
|
||||
native bool FindFlagByChar(int c, AdminFlag &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.
|
||||
* @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, int &c);
|
||||
|
||||
/**
|
||||
* Converts a string of flag characters to a bit string.
|
||||
*
|
||||
* @param flags Flag ASCII string.
|
||||
* @param numchars Optional variable to store the number of bytes read.
|
||||
* @return Bit string of ADMFLAG values.
|
||||
* @param flags Flag ASCII string.
|
||||
* @param numchars Optional variable to store the number of bytes read.
|
||||
* @return Bit string of ADMFLAG values.
|
||||
*/
|
||||
native int ReadFlagString(const char[] flags, int &numchars=0);
|
||||
|
||||
@ -688,15 +688,15 @@ native int ReadFlagString(const char[] flags, int &numchars=0);
|
||||
* 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
|
||||
* 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 admin Admin doing the targetting (may be INVALID_ADMIN_ID).
|
||||
* @param target Target admin (may be INVALID_ADMIN_ID).
|
||||
* @return True if targetable, false if immune.
|
||||
* @param admin Admin doing the targetting (may be INVALID_ADMIN_ID).
|
||||
* @param target Target admin (may be INVALID_ADMIN_ID).
|
||||
* @return True if targetable, false if immune.
|
||||
*/
|
||||
native bool CanAdminTarget(AdminId admin, AdminId target);
|
||||
|
||||
@ -704,50 +704,50 @@ native bool CanAdminTarget(AdminId admin, AdminId target);
|
||||
* Creates an admin auth method. This does not need to be called more than once
|
||||
* per method, ever.
|
||||
*
|
||||
* @param method Name of the authentication method.
|
||||
* @return True on success, false on failure.
|
||||
* @param method Name of the authentication method.
|
||||
* @return True on success, false on failure.
|
||||
*/
|
||||
native bool CreateAuthMethod(const char[] method);
|
||||
|
||||
/**
|
||||
* Sets a group's immunity level.
|
||||
*
|
||||
* @param gid Group Id.
|
||||
* @param level Immunity level value.
|
||||
* @return Old immunity level value.
|
||||
* @param gid Group Id.
|
||||
* @param level Immunity level value.
|
||||
* @return Old immunity level value.
|
||||
*/
|
||||
native int SetAdmGroupImmunityLevel(GroupId gid, int level);
|
||||
|
||||
/**
|
||||
* Gets a group's immunity level (defaults to 0).
|
||||
*
|
||||
* @param gid Group Id.
|
||||
* @return Immunity level value.
|
||||
* @param gid Group Id.
|
||||
* @return Immunity level value.
|
||||
*/
|
||||
native int GetAdmGroupImmunityLevel(GroupId gid);
|
||||
|
||||
/**
|
||||
* Sets an admin's immunity level.
|
||||
*
|
||||
* @param id Admin Id.
|
||||
* @param level Immunity level value.
|
||||
* @return Old immunity level value.
|
||||
* @param id Admin Id.
|
||||
* @param level Immunity level value.
|
||||
* @return Old immunity level value.
|
||||
*/
|
||||
native int SetAdminImmunityLevel(AdminId id, int level);
|
||||
|
||||
/**
|
||||
* Gets an admin's immunity level.
|
||||
*
|
||||
* @param id Admin Id.
|
||||
* @return Immunity level value.
|
||||
* @param id Admin Id.
|
||||
* @return Immunity level value.
|
||||
*/
|
||||
native int GetAdminImmunityLevel(AdminId id);
|
||||
|
||||
/**
|
||||
* Converts a flag to its single bit.
|
||||
*
|
||||
* @param flag Flag to convert.
|
||||
* @return Bit representation of the flag.
|
||||
*
|
||||
* @param flag Flag to convert.
|
||||
* @return Bit representation of the flag.
|
||||
*/
|
||||
stock int FlagToBit(AdminFlag flag)
|
||||
{
|
||||
@ -757,19 +757,19 @@ stock int FlagToBit(AdminFlag flag)
|
||||
/**
|
||||
* Converts a bit to an AdminFlag.
|
||||
*
|
||||
* @param bit Bit to convert.
|
||||
* @param flag Stores the converted flag by reference.
|
||||
* @return True on success, false otherwise.
|
||||
* @param bit Bit to convert.
|
||||
* @param flag Stores the converted flag by reference.
|
||||
* @return True on success, false otherwise.
|
||||
*/
|
||||
stock bool BitToFlag(int bit, AdminFlag &flag)
|
||||
{
|
||||
AdminFlag array[1];
|
||||
|
||||
|
||||
if (FlagBitsToArray(bit, array, 1))
|
||||
{
|
||||
flag = array[0];
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -52,32 +52,32 @@
|
||||
#endif
|
||||
|
||||
/** Category for player commands. */
|
||||
#define ADMINMENU_PLAYERCOMMANDS "PlayerCommands"
|
||||
#define ADMINMENU_PLAYERCOMMANDS "PlayerCommands"
|
||||
/** Category for server commands. */
|
||||
#define ADMINMENU_SERVERCOMMANDS "ServerCommands"
|
||||
#define ADMINMENU_SERVERCOMMANDS "ServerCommands"
|
||||
/** Category for voting commands. */
|
||||
#define ADMINMENU_VOTINGCOMMANDS "VotingCommands"
|
||||
#define ADMINMENU_VOTINGCOMMANDS "VotingCommands"
|
||||
|
||||
/**
|
||||
* Called when the admin menu is created and 3rd party plugins can grab
|
||||
* the Handle or add categories.
|
||||
*
|
||||
* @param topmenu Handle to the admin menu's TopMenu.
|
||||
* @param topmenu Handle to the admin menu's 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.
|
||||
* @param topmenu Handle to the admin menu's TopMenu.
|
||||
*/
|
||||
forward void OnAdminMenuReady(Handle topmenu);
|
||||
|
||||
/**
|
||||
* Retrieves the Handle to the admin top menu.
|
||||
*
|
||||
* @return Handle to the admin menu's TopMenu,
|
||||
* or INVALID_HANDLE if not created yet.
|
||||
* @return Handle to the admin menu's TopMenu,
|
||||
* or INVALID_HANDLE if not created yet.
|
||||
*/
|
||||
native TopMenu GetAdminTopMenu();
|
||||
|
||||
@ -87,16 +87,16 @@ native TopMenu GetAdminTopMenu();
|
||||
* Each client is displayed as: name (userid)
|
||||
* Each item contains the userid as a string for its info.
|
||||
*
|
||||
* @param menu Menu Handle.
|
||||
* @param source_client Source client, or 0 to ignore immunity.
|
||||
* @param in_game_only True to only select in-game players.
|
||||
* @param alive_only True to only select alive players.
|
||||
* @return Number of clients added.
|
||||
* @param menu Menu Handle.
|
||||
* @param source_client Source client, or 0 to ignore immunity.
|
||||
* @param in_game_only True to only select in-game players.
|
||||
* @param alive_only True to only select alive players.
|
||||
* @return Number of clients added.
|
||||
*/
|
||||
native int AddTargetsToMenu(Handle menu,
|
||||
int source_client,
|
||||
bool in_game_only=true,
|
||||
bool alive_only=false);
|
||||
int source_client,
|
||||
bool in_game_only=true,
|
||||
bool alive_only=false);
|
||||
|
||||
/**
|
||||
* Adds targets to an admin menu.
|
||||
@ -104,10 +104,10 @@ native int AddTargetsToMenu(Handle menu,
|
||||
* Each client is displayed as: name (userid)
|
||||
* Each item contains the userid as a string for its info.
|
||||
*
|
||||
* @param menu Menu Handle.
|
||||
* @param source_client Source client, or 0 to ignore immunity.
|
||||
* @param flags COMMAND_FILTER flags from commandfilters.inc.
|
||||
* @return Number of clients added.
|
||||
* @param menu Menu Handle.
|
||||
* @param source_client Source client, or 0 to ignore immunity.
|
||||
* @param flags COMMAND_FILTER flags from commandfilters.inc.
|
||||
* @return Number of clients added.
|
||||
*/
|
||||
native int AddTargetsToMenu2(Handle menu, int source_client, int flags);
|
||||
|
||||
@ -115,9 +115,9 @@ native int AddTargetsToMenu2(Handle menu, int source_client, int flags);
|
||||
* Re-displays the admin menu to a client after selecting an item.
|
||||
* Auto-aborts if the Handle is invalid.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param client Client index.
|
||||
* @return True on success, false on failure.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param client Client index.
|
||||
* @return True on success, false on failure.
|
||||
*/
|
||||
stock bool RedisplayAdminMenu(Handle topmenu, int client)
|
||||
{
|
||||
|
@ -39,13 +39,16 @@
|
||||
* 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.
|
||||
* @param size Number of bytes.
|
||||
* @return Minimum number of cells required to fit the byte count.
|
||||
*/
|
||||
stock int ByteCountToCells(int size)
|
||||
{
|
||||
if (!size)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return (size + 3) / 4;
|
||||
}
|
||||
|
||||
@ -92,7 +95,6 @@ methodmap ArrayList < Handle {
|
||||
// @param value Value to push.
|
||||
// @return Index of the new entry.
|
||||
// @error Invalid Handle or out of memory.
|
||||
//
|
||||
public native int Push(any value);
|
||||
|
||||
// Pushes a string onto the end of an array, truncating it if it is too big.
|
||||
@ -208,20 +210,16 @@ methodmap ArrayList < Handle {
|
||||
// @error Invalid block index
|
||||
public native int FindValue(any item, int block=0);
|
||||
|
||||
/**
|
||||
* Sort an ADT Array. Specify the type as Integer, Float, or String.
|
||||
*
|
||||
* @param order Sort order to use, same as other sorts.
|
||||
* @param type Data type stored in the ADT Array
|
||||
*/
|
||||
// Sort an ADT Array. Specify the type as Integer, Float, or String.
|
||||
//
|
||||
// @param order Sort order to use, same as other sorts.
|
||||
// @param type Data type stored in the ADT Array
|
||||
public native void Sort(SortOrder order, SortType type);
|
||||
|
||||
/**
|
||||
* Custom sorts an ADT Array. You must pass in a comparison function.
|
||||
*
|
||||
* @param sortfunc Sort comparison function to use
|
||||
* @param hndl Optional Handle to pass through the comparison calls.
|
||||
*/
|
||||
// Custom sorts an ADT Array. You must pass in a comparison function.
|
||||
//
|
||||
// @param sortfunc Sort comparison function to use
|
||||
// @param hndl Optional Handle to pass through the comparison calls.
|
||||
public native void SortCustom(SortFuncADTArray sortfunc, Handle hndl=INVALID_HANDLE);
|
||||
|
||||
// Retrieve the size of the array.
|
||||
@ -244,20 +242,20 @@ methodmap ArrayList < Handle {
|
||||
* 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
|
||||
* 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-initialized.
|
||||
* @return New Handle to the array object.
|
||||
* @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-initialized.
|
||||
* @return New Handle to the array object.
|
||||
*/
|
||||
native ArrayList CreateArray(int blocksize=1, int startsize=0);
|
||||
|
||||
/**
|
||||
* Clears an array of all entries. This is the same as ResizeArray(0).
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @error Invalid Handle.
|
||||
* @param array Array Handle.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void ClearArray(Handle array);
|
||||
|
||||
@ -266,9 +264,9 @@ native void ClearArray(Handle array);
|
||||
* be confused with CloneHandle. This is a completely new handle with the same data but
|
||||
* no relation to the original. You MUST close it.
|
||||
*
|
||||
* @param array Array handle to be cloned
|
||||
* @return New handle to the cloned array object
|
||||
* @error Invalid Handle
|
||||
* @param array Array handle to be cloned
|
||||
* @return New handle to the cloned array object
|
||||
* @error Invalid Handle
|
||||
*/
|
||||
native Handle CloneArray(Handle array);
|
||||
|
||||
@ -277,18 +275,18 @@ native Handle CloneArray(Handle array);
|
||||
* the array is truncated. If the size is larger than the current size,
|
||||
* the data at the additional indexes will not be initialized.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param newsize New size.
|
||||
* @error Invalid Handle or out of memory.
|
||||
* @param array Array Handle.
|
||||
* @param newsize New size.
|
||||
* @error Invalid Handle or out of memory.
|
||||
*/
|
||||
native void ResizeArray(Handle array, int newsize);
|
||||
|
||||
/**
|
||||
* Returns the array size.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @return Number of elements in the array.
|
||||
* @error Invalid Handle.
|
||||
* @param array Array Handle.
|
||||
* @return Number of elements in the array.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int GetArraySize(Handle array);
|
||||
|
||||
@ -298,10 +296,10 @@ native int GetArraySize(Handle array);
|
||||
* This may safely be used even if the array has a blocksize
|
||||
* greater than 1.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param value Value to push.
|
||||
* @return Index of the new entry.
|
||||
* @error Invalid Handle or out of memory.
|
||||
* @param array Array Handle.
|
||||
* @param value Value to push.
|
||||
* @return Index of the new entry.
|
||||
* @error Invalid Handle or out of memory.
|
||||
*/
|
||||
native int PushArrayCell(Handle array, any value);
|
||||
|
||||
@ -309,10 +307,10 @@ native int PushArrayCell(Handle array, any value);
|
||||
* Pushes a string onto the end of an array, truncating it
|
||||
* if it is too big.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param value String to push.
|
||||
* @return Index of the new entry.
|
||||
* @error Invalid Handle or out of memory.
|
||||
* @param array Array Handle.
|
||||
* @param value String to push.
|
||||
* @return Index of the new entry.
|
||||
* @error Invalid Handle or out of memory.
|
||||
*/
|
||||
native int PushArrayString(Handle array, const char[] value);
|
||||
|
||||
@ -321,88 +319,88 @@ native int PushArrayString(Handle array, const char[] value);
|
||||
* are pushed as a block (i.e. the entire array sits at the index),
|
||||
* rather than pushing each cell individually.
|
||||
*
|
||||
* @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
|
||||
* blocksize, the operation will be truncated.
|
||||
* @return Index of the new entry.
|
||||
* @error Invalid Handle or out of memory.
|
||||
* @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
|
||||
* blocksize, the operation will be truncated.
|
||||
* @return Index of the new entry.
|
||||
* @error Invalid Handle or out of memory.
|
||||
*/
|
||||
native int PushArrayArray(Handle array, const any[] values, int size=-1);
|
||||
|
||||
/**
|
||||
* Retrieves a cell value from an array.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param block Optionally specify which block to read from
|
||||
* (useful if the blocksize > 0).
|
||||
* @param asChar Optionally read as a byte instead of a cell.
|
||||
* @return Value read.
|
||||
* @error Invalid Handle, invalid index, or invalid block.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param block Optionally specify which block to read from
|
||||
* (useful if the blocksize > 0).
|
||||
* @param asChar Optionally read as a byte instead of a cell.
|
||||
* @return Value read.
|
||||
* @error Invalid Handle, invalid index, or invalid block.
|
||||
*/
|
||||
native any GetArrayCell(Handle array, int index, int block=0, bool asChar=false);
|
||||
|
||||
/**
|
||||
* Retrieves a string value from an array.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param buffer Buffer to copy to.
|
||||
* @param maxlength Maximum size of the buffer.
|
||||
* @return Number of characters copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param buffer Buffer to copy to.
|
||||
* @param maxlength Maximum size of the buffer.
|
||||
* @return Number of characters copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
*/
|
||||
native int GetArrayString(Handle array, int index, char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Retrieves an array of cells from an array.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param buffer Buffer to store the array in.
|
||||
* @param size If not set, assumes the buffer size is equal to the
|
||||
* blocksize. Otherwise, the size passed is used.
|
||||
* @return Number of cells copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param buffer Buffer to store the array in.
|
||||
* @param size If not set, assumes the buffer size is equal to the
|
||||
* blocksize. Otherwise, the size passed is used.
|
||||
* @return Number of cells copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
*/
|
||||
native int GetArrayArray(Handle array, int index, any[] buffer, int size=-1);
|
||||
|
||||
/**
|
||||
* Sets a cell value in an array.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param value Cell value to set.
|
||||
* @param block Optionally specify which block to write to
|
||||
* (useful if the blocksize > 0).
|
||||
* @param asChar Optionally set as a byte instead of a cell.
|
||||
* @error Invalid Handle, invalid index, or invalid block.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param value Cell value to set.
|
||||
* @param block Optionally specify which block to write to
|
||||
* (useful if the blocksize > 0).
|
||||
* @param asChar Optionally set as a byte instead of a cell.
|
||||
* @error Invalid Handle, invalid index, or invalid block.
|
||||
*/
|
||||
native void SetArrayCell(Handle array, int index, any value, int block=0, bool asChar=false);
|
||||
|
||||
/**
|
||||
* Sets a string value in an array.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param value String value to set.
|
||||
* @return Number of characters copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param value String value to set.
|
||||
* @return Number of characters copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
*/
|
||||
native int SetArrayString(Handle array, int index, const char[] value);
|
||||
|
||||
/**
|
||||
* Sets an array of cells in an array.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param values Array to copy.
|
||||
* @param size If not set, assumes the buffer size is equal to the
|
||||
* blocksize. Otherwise, the size passed is used.
|
||||
* @return Number of cells copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array.
|
||||
* @param values Array to copy.
|
||||
* @param size If not set, assumes the buffer size is equal to the
|
||||
* blocksize. Otherwise, the size passed is used.
|
||||
* @return Number of cells copied.
|
||||
* @error Invalid Handle or invalid index.
|
||||
*/
|
||||
native int SetArrayArray(Handle array, int index, const any[] values, int size=-1);
|
||||
|
||||
@ -411,9 +409,9 @@ native int SetArrayArray(Handle array, int index, const any[] values, int size=-
|
||||
* 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.
|
||||
* @param index Index in the array to shift up from.
|
||||
* @error Invalid Handle or invalid index.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array to shift up from.
|
||||
* @error Invalid Handle or invalid index.
|
||||
*/
|
||||
native void ShiftArrayUp(Handle array, int index);
|
||||
|
||||
@ -422,19 +420,19 @@ native void ShiftArrayUp(Handle array, int index);
|
||||
* 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.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array to remove at.
|
||||
* @error Invalid Handle or invalid index.
|
||||
* @param array Array Handle.
|
||||
* @param index Index in the array to remove at.
|
||||
* @error Invalid Handle or invalid index.
|
||||
*/
|
||||
native void RemoveFromArray(Handle array, int index);
|
||||
|
||||
/**
|
||||
* Swaps two items in the array.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @param index1 First index.
|
||||
* @param index2 Second index.
|
||||
* @error Invalid Handle or invalid index.
|
||||
* @param array Array Handle.
|
||||
* @param index1 First index.
|
||||
* @param index2 Second index.
|
||||
* @error Invalid Handle or invalid index.
|
||||
*/
|
||||
native void SwapArrayItems(Handle array, int index1, int index2);
|
||||
|
||||
@ -442,10 +440,10 @@ native void SwapArrayItems(Handle array, int index1, int index2);
|
||||
* 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.
|
||||
* @param item String to search for
|
||||
* @return Array index, or -1 on failure
|
||||
* @error Invalid Handle
|
||||
* @param array Array Handle.
|
||||
* @param item String to search for
|
||||
* @return Array index, or -1 on failure
|
||||
* @error Invalid Handle
|
||||
*/
|
||||
native int FindStringInArray(Handle array, const char[] item);
|
||||
|
||||
@ -453,19 +451,19 @@ native int FindStringInArray(Handle array, const char[] item);
|
||||
* 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 or invalid block
|
||||
* @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 or invalid block
|
||||
*/
|
||||
native int FindValueInArray(Handle array, any item, int block=0);
|
||||
|
||||
/**
|
||||
* Returns the blocksize the array was created with.
|
||||
*
|
||||
* @param array Array Handle.
|
||||
* @return The blocksize of the array.
|
||||
* @error Invalid Handle
|
||||
* @param array Array Handle.
|
||||
* @return The blocksize of the array.
|
||||
* @error Invalid Handle
|
||||
*/
|
||||
native int GetArrayBlockSize(Handle array);
|
||||
|
@ -129,10 +129,10 @@ methodmap ArrayStack < Handle
|
||||
* The "blocksize" determines how many cells each slot has; it cannot
|
||||
* be changed after creation.
|
||||
*
|
||||
* @param blocksize The number of cells each entry in the stack can
|
||||
* hold. For example, 32 cells is equivalent to:
|
||||
* new Array[X][32]
|
||||
* @return New stack Handle.
|
||||
* @param blocksize The number of cells each entry in the stack can
|
||||
* hold. For example, 32 cells is equivalent to:
|
||||
* new Array[X][32]
|
||||
* @return New stack Handle.
|
||||
*/
|
||||
native ArrayStack CreateStack(int blocksize=1);
|
||||
|
||||
@ -142,9 +142,9 @@ native ArrayStack CreateStack(int blocksize=1);
|
||||
* This may safely be used even if the stack has a blocksize
|
||||
* greater than 1.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @param value Value to push.
|
||||
* @error Invalid Handle or out of memory.
|
||||
* @param stack Stack Handle.
|
||||
* @param value Value to push.
|
||||
* @error Invalid Handle or out of memory.
|
||||
*/
|
||||
native void PushStackCell(Handle stack, any value);
|
||||
|
||||
@ -152,9 +152,9 @@ native void PushStackCell(Handle stack, any value);
|
||||
* Pushes a copy of a string onto the end of a stack, truncating it if it is
|
||||
* too big.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @param value String to push.
|
||||
* @error Invalid Handle or out of memory.
|
||||
* @param stack Stack Handle.
|
||||
* @param value String to push.
|
||||
* @error Invalid Handle or out of memory.
|
||||
*/
|
||||
native void PushStackString(Handle stack, const char[] value);
|
||||
|
||||
@ -163,66 +163,66 @@ native void PushStackString(Handle stack, const char[] value);
|
||||
* are pushed as a block (i.e. the entire array takes up one stack slot),
|
||||
* rather than pushing each cell individually.
|
||||
*
|
||||
* @param stack Stack 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
|
||||
* blocksize, the operation will be truncated.
|
||||
* @error Invalid Handle or out of memory.
|
||||
* @param stack Stack 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
|
||||
* blocksize, the operation will be truncated.
|
||||
* @error Invalid Handle or out of memory.
|
||||
*/
|
||||
native void PushStackArray(Handle stack, const any[] values, int size=-1);
|
||||
|
||||
/**
|
||||
* Pops a cell value from a stack.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @param value Variable to store the value.
|
||||
* @param block Optionally specify which block to read from
|
||||
* (useful if the blocksize > 0).
|
||||
* @param asChar Optionally read as a byte instead of a cell.
|
||||
* @return True on success, false if the stack is empty.
|
||||
* @error Invalid Handle.
|
||||
* @param stack Stack Handle.
|
||||
* @param value Variable to store the value.
|
||||
* @param block Optionally specify which block to read from
|
||||
* (useful if the blocksize > 0).
|
||||
* @param asChar Optionally read as a byte instead of a cell.
|
||||
* @return True on success, false if the stack is empty.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool PopStackCell(Handle stack, any &value, int block=0, bool asChar=false);
|
||||
|
||||
/**
|
||||
* Pops a string value from a stack.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @param buffer Buffer to store string.
|
||||
* @param maxlength Maximum size of the buffer.
|
||||
* @return True on success, false if the stack is empty.
|
||||
* @error Invalid Handle.
|
||||
* @param stack Stack Handle.
|
||||
* @param buffer Buffer to store string.
|
||||
* @param maxlength Maximum size of the buffer.
|
||||
* @return True on success, false if the stack is empty.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool PopStackString(Handle stack, char[] buffer, int maxlength, int &written=0);
|
||||
|
||||
/**
|
||||
* Pops an array of cells from a stack.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @param buffer Buffer to store the array in.
|
||||
* @param size If not set, assumes the buffer size is equal to the
|
||||
* blocksize. Otherwise, the size passed is used.
|
||||
* @return True on success, false if the stack is empty.
|
||||
* @error Invalid Handle.
|
||||
* @param stack Stack Handle.
|
||||
* @param buffer Buffer to store the array in.
|
||||
* @param size If not set, assumes the buffer size is equal to the
|
||||
* blocksize. Otherwise, the size passed is used.
|
||||
* @return True on success, false if the stack is empty.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool PopStackArray(Handle stack, any[] buffer, int size=-1);
|
||||
|
||||
/**
|
||||
* Checks if a stack is empty.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @return True if empty, false if not empty.
|
||||
* @error Invalid Handle.
|
||||
* @param stack Stack Handle.
|
||||
* @return True if empty, false if not empty.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool IsStackEmpty(Handle stack);
|
||||
|
||||
/**
|
||||
* Pops a value off a stack, ignoring it completely.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @return True if something was popped, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param stack Stack Handle.
|
||||
* @return True if something was popped, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
stock bool PopStack(Handle stack)
|
||||
{
|
||||
@ -233,8 +233,8 @@ stock bool PopStack(Handle stack)
|
||||
/**
|
||||
* Returns the blocksize the stack was created with.
|
||||
*
|
||||
* @param stack Stack Handle.
|
||||
* @return The blocksize of the stack.
|
||||
* @error Invalid Handle
|
||||
* @param stack Stack Handle.
|
||||
* @return The blocksize of the stack.
|
||||
* @error Invalid Handle
|
||||
*/
|
||||
native int GetStackBlockSize(Handle stack);
|
||||
|
@ -124,9 +124,11 @@ methodmap StringMap < Handle
|
||||
}
|
||||
};
|
||||
|
||||
// A StringMapSnapshot is created via StringMap.Snapshot(). It captures the
|
||||
// keys on a map so they can be read. Snapshots must be freed with delete or
|
||||
// CloseHandle().
|
||||
/**
|
||||
* A StringMapSnapshot is created via StringMap.Snapshot(). It captures the
|
||||
* keys on a map so they can be read. Snapshots must be freed with delete or
|
||||
* CloseHandle().
|
||||
*/
|
||||
methodmap StringMapSnapshot < Handle
|
||||
{
|
||||
// Returns the number of keys in the map snapshot.
|
||||
@ -164,111 +166,111 @@ methodmap StringMapSnapshot < Handle
|
||||
* been internally replaced with hash tables, which have O(1) insertion time
|
||||
* instead of O(n).
|
||||
*
|
||||
* @return New Map Handle, which must be freed via CloseHandle().
|
||||
* @return New Map Handle, which must be freed via CloseHandle().
|
||||
*/
|
||||
native StringMap CreateTrie();
|
||||
|
||||
/**
|
||||
* Sets a value in a hash map, either inserting a new entry or replacing an old one.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value Value to store at this key.
|
||||
* @param replace If false, operation will fail if the key is already set.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value Value to store at this key.
|
||||
* @param replace If false, operation will fail if the key is already set.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool SetTrieValue(Handle map, const char[] key, any value, bool replace=true);
|
||||
|
||||
/**
|
||||
* Sets an array value in a Map, either inserting a new entry or replacing an old one.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param array Array to store.
|
||||
* @param num_items Number of items in the array.
|
||||
* @param replace If false, operation will fail if the key is already set.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param array Array to store.
|
||||
* @param num_items Number of items in the array.
|
||||
* @param replace If false, operation will fail if the key is already set.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool SetTrieArray(Handle map, const char[] key, const any[] array, int num_items, bool replace=true);
|
||||
|
||||
/**
|
||||
* Sets a string value in a Map, either inserting a new entry or replacing an old one.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value String to store.
|
||||
* @param replace If false, operation will fail if the key is already set.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value String to store.
|
||||
* @param replace If false, operation will fail if the key is already set.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool SetTrieString(Handle map, const char[] key, const char[] value, bool replace=true);
|
||||
|
||||
/**
|
||||
* Retrieves a value in a Map.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value Variable to store value.
|
||||
* @return True on success. False if the key is not set, or the key is set
|
||||
* as an array or string (not a value).
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value Variable to store value.
|
||||
* @return True on success. False if the key is not set, or the key is set
|
||||
* as an array or string (not a value).
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool GetTrieValue(Handle map, const char[] key, any &value);
|
||||
|
||||
/**
|
||||
* Retrieves an array in a Map.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param array Buffer to store array.
|
||||
* @param max_size Maximum size of array buffer.
|
||||
* @param size Optional parameter to store the number of elements written to the buffer.
|
||||
* @return True on success. False if the key is not set, or the key is set
|
||||
* as a value or string (not an array).
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param array Buffer to store array.
|
||||
* @param max_size Maximum size of array buffer.
|
||||
* @param size Optional parameter to store the number of elements written to the buffer.
|
||||
* @return True on success. False if the key is not set, or the key is set
|
||||
* as a value or string (not an array).
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool GetTrieArray(Handle map, const char[] key, any[] array, int max_size, int &size=0);
|
||||
|
||||
/**
|
||||
* Retrieves a string in a Map.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value Buffer to store value.
|
||||
* @param max_size Maximum size of string buffer.
|
||||
* @param size Optional parameter to store the number of bytes written to the buffer.
|
||||
* @return True on success. False if the key is not set, or the key is set
|
||||
* as a value or array (not a string).
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @param value Buffer to store value.
|
||||
* @param max_size Maximum size of string buffer.
|
||||
* @param size Optional parameter to store the number of bytes written to the buffer.
|
||||
* @return True on success. False if the key is not set, or the key is set
|
||||
* as a value or array (not a string).
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool GetTrieString(Handle map, const char[] key, char[] value, int max_size, int &size=0);
|
||||
|
||||
/**
|
||||
* Removes a key entry from a Map.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @return True on success, false if the value was never set.
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @param key Key string.
|
||||
* @return True on success, false if the value was never set.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool RemoveFromTrie(Handle map, const char[] key);
|
||||
|
||||
/**
|
||||
* Clears all entries from a Map.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void ClearTrie(Handle map);
|
||||
|
||||
/**
|
||||
* Retrieves the number of elements in a map.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @return Number of elements in the trie.
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @return Number of elements in the trie.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int GetTrieSize(Handle map);
|
||||
|
||||
@ -276,9 +278,9 @@ native int GetTrieSize(Handle map);
|
||||
* Creates a snapshot of all keys in the map. If the map is changed after this
|
||||
* call, the changes are not reflected in the snapshot. Keys are not sorted.
|
||||
*
|
||||
* @param map Map Handle.
|
||||
* @return New Map Snapshot Handle, which must be closed via CloseHandle().
|
||||
* @error Invalid Handle.
|
||||
* @param map Map Handle.
|
||||
* @return New Map Snapshot Handle, which must be closed via CloseHandle().
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native Handle CreateTrieSnapshot(Handle map);
|
||||
|
||||
@ -287,9 +289,9 @@ native Handle CreateTrieSnapshot(Handle map);
|
||||
* different from the size of the map, since the map can change after the
|
||||
* snapshot of its keys was taken.
|
||||
*
|
||||
* @param snapshot Map snapshot.
|
||||
* @return Number of keys.
|
||||
* @error Invalid Handle.
|
||||
* @param snapshot Map snapshot.
|
||||
* @return Number of keys.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int TrieSnapshotLength(Handle snapshot);
|
||||
|
||||
@ -297,21 +299,21 @@ native int TrieSnapshotLength(Handle snapshot);
|
||||
* Returns the buffer size required to store a given key. That is, it returns
|
||||
* the length of the key plus one.
|
||||
*
|
||||
* @param snapshot Map snapshot.
|
||||
* @param index Key index (starting from 0).
|
||||
* @return Buffer size required to store the key string.
|
||||
* @error Invalid Handle or index out of range.
|
||||
* @param snapshot Map snapshot.
|
||||
* @param index Key index (starting from 0).
|
||||
* @return Buffer size required to store the key string.
|
||||
* @error Invalid Handle or index out of range.
|
||||
*/
|
||||
native int TrieSnapshotKeyBufferSize(Handle snapshot, int index);
|
||||
|
||||
/**
|
||||
* Retrieves the key string of a given key in a map snapshot.
|
||||
*
|
||||
* @param snapshot Map snapshot.
|
||||
* @param index Key index (starting from 0).
|
||||
* @param buffer String buffer.
|
||||
* @param maxlength Maximum buffer length.
|
||||
* @return Number of bytes written to the buffer.
|
||||
* @error Invalid Handle or index out of range.
|
||||
* @param snapshot Map snapshot.
|
||||
* @param index Key index (starting from 0).
|
||||
* @param buffer String buffer.
|
||||
* @param maxlength Maximum buffer length.
|
||||
* @return Number of bytes written to the buffer.
|
||||
* @error Invalid Handle or index out of range.
|
||||
*/
|
||||
native int GetTrieSnapshotKey(Handle snapshot, int index, char[] buffer, int maxlength);
|
||||
|
@ -35,24 +35,24 @@
|
||||
#endif
|
||||
#define _banning_included
|
||||
|
||||
#define BANFLAG_AUTO (1<<0) /**< Auto-detects whether to ban by steamid or IP */
|
||||
#define BANFLAG_IP (1<<1) /**< Always ban by IP address */
|
||||
#define BANFLAG_AUTHID (1<<2) /**< Always ban by authstring (for BanIdentity) if possible */
|
||||
#define BANFLAG_NOKICK (1<<3) /**< Does not kick the client */
|
||||
#define BANFLAG_AUTO (1<<0) /**< Auto-detects whether to ban by steamid or IP */
|
||||
#define BANFLAG_IP (1<<1) /**< Always ban by IP address */
|
||||
#define BANFLAG_AUTHID (1<<2) /**< Always ban by authstring (for BanIdentity) if possible */
|
||||
#define BANFLAG_NOKICK (1<<3) /**< Does not kick the client */
|
||||
|
||||
/**
|
||||
* Called for calls to BanClient() with a non-empty command.
|
||||
*
|
||||
* @param client Client being banned.
|
||||
* @param time Time the client is being banned for (0 = permanent).
|
||||
* @param flags One if AUTHID or IP will be enabled. If AUTO is also
|
||||
* enabled, it means Core autodetected which to use.
|
||||
* @param reason Reason passed via BanClient().
|
||||
* @param kick_message Kick message passed via BanClient().
|
||||
* @param command Command string to identify the ban source.
|
||||
* @param source Source value passed via BanClient().
|
||||
* @return Plugin_Handled to block the actual server banning.
|
||||
* Kicking will still occur.
|
||||
* @param client Client being banned.
|
||||
* @param time Time the client is being banned for (0 = permanent).
|
||||
* @param flags One if AUTHID or IP will be enabled. If AUTO is also
|
||||
* enabled, it means Core autodetected which to use.
|
||||
* @param reason Reason passed via BanClient().
|
||||
* @param kick_message Kick message passed via BanClient().
|
||||
* @param command Command string to identify the ban source.
|
||||
* @param source Source value passed via BanClient().
|
||||
* @return Plugin_Handled to block the actual server banning.
|
||||
* Kicking will still occur.
|
||||
*/
|
||||
forward Action OnBanClient(int client,
|
||||
int time,
|
||||
@ -65,13 +65,13 @@ forward Action OnBanClient(int client,
|
||||
/**
|
||||
* Called for calls to BanIdentity() with a non-empty command.
|
||||
*
|
||||
* @param identity Identity string being banned (authstring or ip).
|
||||
* @param time Time the client is being banned for (0 = permanent).
|
||||
* @param flags Ban flags (only IP or AUTHID are valid here).
|
||||
* @param reason Reason passed via BanIdentity().
|
||||
* @param command Command string to identify the ban source.
|
||||
* @param source Source value passed via BanIdentity().
|
||||
* @return Plugin_Handled to block the actual server banning.
|
||||
* @param identity Identity string being banned (authstring or ip).
|
||||
* @param time Time the client is being banned for (0 = permanent).
|
||||
* @param flags Ban flags (only IP or AUTHID are valid here).
|
||||
* @param reason Reason passed via BanIdentity().
|
||||
* @param command Command string to identify the ban source.
|
||||
* @param source Source value passed via BanIdentity().
|
||||
* @return Plugin_Handled to block the actual server banning.
|
||||
*/
|
||||
forward Action OnBanIdentity(const char[] identity,
|
||||
int time,
|
||||
@ -83,11 +83,11 @@ forward Action OnBanIdentity(const char[] identity,
|
||||
/**
|
||||
* Called for calls to RemoveBan() with a non-empty command.
|
||||
*
|
||||
* @param identity Identity string being banned (authstring or ip).
|
||||
* @param flags Ban flags (only IP or AUTHID are valid here).
|
||||
* @param command Command string to identify the ban source.
|
||||
* @param source Source value passed via BanIdentity().
|
||||
* @return Plugin_Handled to block the actual unbanning.
|
||||
* @param identity Identity string being banned (authstring or ip).
|
||||
* @param flags Ban flags (only IP or AUTHID are valid here).
|
||||
* @param command Command string to identify the ban source.
|
||||
* @param source Source value passed via BanIdentity().
|
||||
* @return Plugin_Handled to block the actual unbanning.
|
||||
*/
|
||||
forward Action OnRemoveBan(const char[] identity,
|
||||
int flags,
|
||||
@ -97,19 +97,19 @@ forward Action OnRemoveBan(const char[] identity,
|
||||
/**
|
||||
* Bans a client.
|
||||
*
|
||||
* @param client Client being banned.
|
||||
* @param time Time (in minutes) to ban (0 = permanent).
|
||||
* @param flags Flags for controlling the ban mechanism. If AUTHID
|
||||
* is set and no AUTHID is available, the ban will fail
|
||||
* unless AUTO is also flagged.
|
||||
* @param reason Reason to ban the client for.
|
||||
* @param kick_message Message to display to the user when kicking.
|
||||
* @param command Command string to identify the source. If this is left
|
||||
* empty, then the OnBanClient forward will not be called.
|
||||
* @param source A source value that could be interpreted as a player
|
||||
* index of any sort (not actually checked by Core).
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid client index or client not in game.
|
||||
* @param client Client being banned.
|
||||
* @param time Time (in minutes) to ban (0 = permanent).
|
||||
* @param flags Flags for controlling the ban mechanism. If AUTHID
|
||||
* is set and no AUTHID is available, the ban will fail
|
||||
* unless AUTO is also flagged.
|
||||
* @param reason Reason to ban the client for.
|
||||
* @param kick_message Message to display to the user when kicking.
|
||||
* @param command Command string to identify the source. If this is left
|
||||
* empty, then the OnBanClient forward will not be called.
|
||||
* @param source A source value that could be interpreted as a player
|
||||
* index of any sort (not actually checked by Core).
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid client index or client not in game.
|
||||
*/
|
||||
native bool BanClient(int client,
|
||||
int time,
|
||||
@ -122,15 +122,15 @@ native bool BanClient(int client,
|
||||
/**
|
||||
* Bans an identity (either an IP address or auth string).
|
||||
*
|
||||
* @param identity String to ban (ip or authstring).
|
||||
* @param time Time to ban for (0 = permanent).
|
||||
* @param flags Flags (only IP and AUTHID are valid flags here).
|
||||
* @param reason Ban reason string.
|
||||
* @param command Command string to identify the source. If this is left
|
||||
* empty, then the OnBanIdentity forward will not be called.
|
||||
* @param source A source value that could be interpreted as a player
|
||||
* index of any sort (not actually checked by Core).
|
||||
* @return True on success, false on failure.
|
||||
* @param identity String to ban (ip or authstring).
|
||||
* @param time Time to ban for (0 = permanent).
|
||||
* @param flags Flags (only IP and AUTHID are valid flags here).
|
||||
* @param reason Ban reason string.
|
||||
* @param command Command string to identify the source. If this is left
|
||||
* empty, then the OnBanIdentity forward will not be called.
|
||||
* @param source A source value that could be interpreted as a player
|
||||
* index of any sort (not actually checked by Core).
|
||||
* @return True on success, false on failure.
|
||||
*/
|
||||
native bool BanIdentity(const char[] identity,
|
||||
int time,
|
||||
@ -142,13 +142,13 @@ native bool BanIdentity(const char[] identity,
|
||||
/**
|
||||
* Removes a ban that was written to the server (either in memory or on disk).
|
||||
*
|
||||
* @param identity String to unban (ip or authstring).
|
||||
* @param flags Flags (only IP and AUTHID are valid flags here).
|
||||
* @param command Command string to identify the source. If this is left
|
||||
* empty, then OnRemoveBan will not be called.
|
||||
* @param source A source value that could be interpreted as a player
|
||||
* index of any sort (not actually checked by Core).
|
||||
* @return True on success, false on failure.
|
||||
* @param identity String to unban (ip or authstring).
|
||||
* @param flags Flags (only IP and AUTHID are valid flags here).
|
||||
* @param command Command string to identify the source. If this is left
|
||||
* empty, then OnRemoveBan will not be called.
|
||||
* @param source A source value that could be interpreted as a player
|
||||
* index of any sort (not actually checked by Core).
|
||||
* @return True on success, false on failure.
|
||||
*/
|
||||
native bool RemoveBan(const char[] identity,
|
||||
int flags,
|
||||
|
@ -38,50 +38,50 @@
|
||||
/**
|
||||
* Called when a client is muted or unmuted
|
||||
*
|
||||
* @param client Client index
|
||||
* @param muteState True if client was muted, false otherwise
|
||||
* @param client Client index
|
||||
* @param muteState True if client was muted, false otherwise
|
||||
*/
|
||||
forward void BaseComm_OnClientMute(int client, bool muteState);
|
||||
forward void BaseComm_OnClientMute(int client, bool muteState);
|
||||
|
||||
/**
|
||||
* Called when a client is gagged or ungagged
|
||||
*
|
||||
* @param client Client index
|
||||
* @param gagState True if client was gaged, false otherwise
|
||||
* @param client Client index
|
||||
* @param gagState True if client was gaged, false otherwise
|
||||
*/
|
||||
forward void BaseComm_OnClientGag(int client, bool gagState);
|
||||
forward void BaseComm_OnClientGag(int client, bool gagState);
|
||||
|
||||
/**
|
||||
* Returns whether or not a client is gagged
|
||||
*
|
||||
* @param client Client index.
|
||||
* @return True if client is gagged, false otherwise.
|
||||
* @param client Client index.
|
||||
* @return True if client is gagged, false otherwise.
|
||||
*/
|
||||
native bool BaseComm_IsClientGagged(int client);
|
||||
|
||||
/**
|
||||
* Returns whether or not a client is muted
|
||||
*
|
||||
* @param client Client index.
|
||||
* @return True if client is muted, false otherwise.
|
||||
* @param client Client index.
|
||||
* @return True if client is muted, false otherwise.
|
||||
*/
|
||||
native bool BaseComm_IsClientMuted(int client);
|
||||
|
||||
/**
|
||||
* Sets a client's gag state
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param gagState True to gag client, false to ungag.
|
||||
* @return True if this caused a change in gag state, false otherwise.
|
||||
* @param client Client index.
|
||||
* @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(int client, bool gagState);
|
||||
|
||||
/**
|
||||
* Sets a client's mute state
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param muteState True to mute client, false to unmute.
|
||||
* @return True if this caused a change in mute state, false otherwise.
|
||||
* @param client Client index.
|
||||
* @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(int client, bool muteState);
|
||||
|
||||
|
@ -200,72 +200,72 @@ methodmap BfRead < Handle
|
||||
/**
|
||||
* Writes a single bit to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param bit Bit to write (true for 1, false for 0).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param bit Bit to write (true for 1, false for 0).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteBool(Handle bf, bool bit);
|
||||
|
||||
/**
|
||||
* Writes a byte to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param byte Byte to write (value will be written as 8bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param byte Byte to write (value will be written as 8bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteByte(Handle bf, int byte);
|
||||
|
||||
/**
|
||||
* Writes a byte to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param chr Character to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param chr Character to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteChar(Handle bf, int chr);
|
||||
|
||||
/**
|
||||
* Writes a 16bit integer to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Integer to write (value will be written as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Integer to write (value will be written as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteShort(Handle bf, int num);
|
||||
|
||||
/**
|
||||
* Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Integer to write (value will be written as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Integer to write (value will be written as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteWord(Handle bf, int num);
|
||||
|
||||
/**
|
||||
* Writes a normal integer to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Integer to write (value will be written as 32bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Integer to write (value will be written as 32bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteNum(Handle bf, int num);
|
||||
|
||||
/**
|
||||
* Writes a floating point number to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Number to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param num Number to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteFloat(Handle bf, float num);
|
||||
|
||||
/**
|
||||
* Writes a string to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param string Text string to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param string Text string to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteString(Handle bf, const char[] string);
|
||||
|
||||
@ -273,134 +273,134 @@ native void BfWriteString(Handle bf, const char[] string);
|
||||
* Writes an entity to a writable bitbuffer (bf_write).
|
||||
* @note This is a wrapper around BfWriteShort().
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param ent Entity index to write.
|
||||
* @error Invalid or incorrect Handle, or invalid entity.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param ent Entity index to write.
|
||||
* @error Invalid or incorrect Handle, or invalid entity.
|
||||
*/
|
||||
native void BfWriteEntity(Handle bf, int ent);
|
||||
|
||||
/**
|
||||
* Writes a bit angle to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param angle Angle to write.
|
||||
* @param numBits Optional number of bits to use.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param angle Angle to write.
|
||||
* @param numBits Optional number of bits to use.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteAngle(Handle bf, float angle, int numBits=8);
|
||||
|
||||
/**
|
||||
* Writes a coordinate to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param coord Coordinate to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param coord Coordinate to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteCoord(Handle bf, float coord);
|
||||
|
||||
/**
|
||||
* Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param coord Coordinate array to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param coord Coordinate array to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteVecCoord(Handle bf, float coord[3]);
|
||||
|
||||
/**
|
||||
* Writes a 3D normal vector to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param vec Vector to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param vec Vector to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteVecNormal(Handle bf, float vec[3]);
|
||||
|
||||
/**
|
||||
* Writes a 3D angle vector to a writable bitbuffer (bf_write).
|
||||
*
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param angles Angle vector to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_write handle to write to.
|
||||
* @param angles Angle vector to write.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfWriteAngles(Handle bf, float angles[3]);
|
||||
|
||||
/**
|
||||
* Reads a single bit from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Bit value read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Bit value read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native bool BfReadBool(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a byte from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Byte value read (read as 8bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Byte value read (read as 8bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfReadByte(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a character from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Character value read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Character value read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfReadChar(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a 16bit integer from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Integer value read (read as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Integer value read (read as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfReadShort(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a 16bit unsigned integer from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Integer value read (read as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Integer value read (read as 16bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfReadWord(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a normal integer to a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Integer value read (read as 32bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Integer value read (read as 32bit).
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfReadNum(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a floating point number from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Floating point value read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Floating point value read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native float BfReadFloat(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a string from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param line If true the buffer will be copied until it reaches a '\n' or a null terminator.
|
||||
* @return Number of bytes written to the buffer. If the bitbuffer stream overflowed,
|
||||
* that is, had no terminator before the end of the stream, then a negative
|
||||
* number will be returned equal to the number of characters written to the
|
||||
* buffer minus 1. The buffer will be null terminated regardless of the
|
||||
* return value.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param line If true the buffer will be copied until it reaches a '\n' or a null terminator.
|
||||
* @return Number of bytes written to the buffer. If the bitbuffer stream overflowed,
|
||||
* that is, had no terminator before the end of the stream, then a negative
|
||||
* number will be returned equal to the number of characters written to the
|
||||
* buffer minus 1. The buffer will be null terminated regardless of the
|
||||
* return value.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfReadString(Handle bf, char[] buffer, int maxlength, bool line=false);
|
||||
|
||||
@ -408,63 +408,63 @@ native int BfReadString(Handle bf, char[] buffer, int maxlength, bool line=false
|
||||
* Reads an entity from a readable bitbuffer (bf_read).
|
||||
* @note This is a wrapper around BfReadShort().
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Entity index read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Entity index read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfReadEntity(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a bit angle from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param numBits Optional number of bits to use.
|
||||
* @return Angle read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param numBits Optional number of bits to use.
|
||||
* @return Angle read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native float BfReadAngle(Handle bf, int numBits=8);
|
||||
|
||||
/**
|
||||
* Reads a coordinate from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Coordinate read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Coordinate read.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native float BfReadCoord(Handle bf);
|
||||
|
||||
/**
|
||||
* Reads a 3D vector of coordinates from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param coord Destination coordinate array.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param coord Destination coordinate array.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfReadVecCoord(Handle bf, float coord[3]);
|
||||
|
||||
/**
|
||||
* Reads a 3D normal vector from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param vec Destination vector array.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param vec Destination vector array.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfReadVecNormal(Handle bf, float vec[3]);
|
||||
|
||||
/**
|
||||
* Reads a 3D angle vector from a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param angles Destination angle vector.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @param angles Destination angle vector.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native void BfReadAngles(Handle bf, float angles[3]);
|
||||
|
||||
/**
|
||||
* Returns the number of bytes left in a readable bitbuffer (bf_read).
|
||||
*
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Number of bytes left unread.
|
||||
* @error Invalid or incorrect Handle.
|
||||
* @param bf bf_read handle to read from.
|
||||
* @return Number of bytes left unread.
|
||||
* @error Invalid or incorrect Handle.
|
||||
*/
|
||||
native int BfGetNumBytesLeft(Handle bf);
|
||||
|
@ -40,9 +40,9 @@
|
||||
*/
|
||||
enum CookieAccess
|
||||
{
|
||||
CookieAccess_Public, /**< Visible and Changeable by users */
|
||||
CookieAccess_Protected, /**< Read only to users */
|
||||
CookieAccess_Private, /**< Completely hidden cookie */
|
||||
CookieAccess_Public, /**< Visible and Changeable by users */
|
||||
CookieAccess_Protected, /**< Read only to users */
|
||||
CookieAccess_Private /**< Completely hidden cookie */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -50,10 +50,10 @@ enum CookieAccess
|
||||
*/
|
||||
enum CookieMenu
|
||||
{
|
||||
CookieMenu_YesNo, /**< Yes/No menu with "yes"/"no" results saved into the cookie */
|
||||
CookieMenu_YesNo_Int, /**< Yes/No menu with 1/0 saved into the cookie */
|
||||
CookieMenu_OnOff, /**< On/Off menu with "on"/"off" results saved into the cookie */
|
||||
CookieMenu_OnOff_Int, /**< On/Off menu with 1/0 saved into the cookie */
|
||||
CookieMenu_YesNo, /**< Yes/No menu with "yes"/"no" results saved into the cookie */
|
||||
CookieMenu_YesNo_Int, /**< Yes/No menu with 1/0 saved into the cookie */
|
||||
CookieMenu_OnOff, /**< On/Off menu with "on"/"off" results saved into the cookie */
|
||||
CookieMenu_OnOff_Int /**< On/Off menu with 1/0 saved into the cookie */
|
||||
};
|
||||
|
||||
enum CookieMenuAction
|
||||
@ -71,7 +71,7 @@ enum CookieMenuAction
|
||||
*
|
||||
* INPUT : Client index and any data if available.
|
||||
*/
|
||||
CookieMenuAction_SelectOption = 1,
|
||||
CookieMenuAction_SelectOption = 1
|
||||
};
|
||||
|
||||
/**
|
||||
@ -88,12 +88,12 @@ enum CookieMenuAction
|
||||
* Handles returned by RegClientCookie can be closed via CloseHandle() when
|
||||
* no longer needed.
|
||||
*
|
||||
* @param name Name of the new preference cookie.
|
||||
* @param description Optional description of the preference cookie.
|
||||
* @param access What CookieAccess level to assign to this cookie.
|
||||
* @return A handle to the newly created cookie. If the cookie already
|
||||
* @param name Name of the new preference cookie.
|
||||
* @param description Optional description of the preference cookie.
|
||||
* @param access What CookieAccess level to assign to this cookie.
|
||||
* @return A handle to the newly created cookie. If the cookie already
|
||||
* exists, a handle to it will still be returned.
|
||||
* @error Cookie name is blank.
|
||||
* @error Cookie name is blank.
|
||||
*/
|
||||
native Handle RegClientCookie(const char[] name, const char[] description, CookieAccess access);
|
||||
|
||||
@ -103,66 +103,66 @@ native Handle RegClientCookie(const char[] name, const char[] description, Cooki
|
||||
* Handles returned by FindClientCookie can be closed via CloseHandle() when
|
||||
* no longer needed.
|
||||
*
|
||||
* @param name Name of cookie to find.
|
||||
* @return A handle to the cookie if it is found. INVALID_HANDLE otherwise.
|
||||
* @param name Name of cookie to find.
|
||||
* @return A handle to the cookie if it is found. INVALID_HANDLE otherwise.
|
||||
*/
|
||||
native Handle FindClientCookie(const char[] name);
|
||||
|
||||
/**
|
||||
* Set the value of a Client preference cookie.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param value String value to set.
|
||||
* @error Invalid cookie handle or invalid client index.
|
||||
* @param client Client index.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param value String value to set.
|
||||
* @error Invalid cookie handle or invalid client index.
|
||||
*/
|
||||
native void SetClientCookie(int client, Handle cookie, const char[] value);
|
||||
|
||||
/**
|
||||
* Retrieve the value of a Client preference cookie.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param buffer Copyback buffer for value.
|
||||
* @param maxlen Maximum length of the buffer.
|
||||
* @error Invalid cookie handle or invalid client index.
|
||||
* @param client Client index.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param buffer Copyback buffer for value.
|
||||
* @param maxlen Maximum length of the buffer.
|
||||
* @error Invalid cookie handle or invalid client index.
|
||||
*/
|
||||
native void GetClientCookie(int client, Handle cookie, char[] buffer, int maxlen);
|
||||
|
||||
/**
|
||||
* Sets the value of a Client preference cookie based on an authID string.
|
||||
*
|
||||
* @param authID String Auth/STEAM ID of player to set.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param value String value to set.
|
||||
* @error Invalid cookie handle.
|
||||
* @param authID String Auth/STEAM ID of player to set.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param value String value to set.
|
||||
* @error Invalid cookie handle.
|
||||
*/
|
||||
native void SetAuthIdCookie(const char[] authID, Handle cookie, const char[] value);
|
||||
|
||||
/**
|
||||
* Checks if a clients cookies have been loaded from the database.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @return True if loaded, false otherwise.
|
||||
* @error Invalid client index.
|
||||
* @param client Client index.
|
||||
* @return True if loaded, false otherwise.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
native bool AreClientCookiesCached(int client);
|
||||
|
||||
/**
|
||||
* Called once a client's saved cookies have been loaded from the database.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientCookiesCached(int client);
|
||||
|
||||
/**
|
||||
* Cookie Menu Callback prototype
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param action CookieMenuAction being performed.
|
||||
* @param info Info data passed.
|
||||
* @param buffer Outbut buffer.
|
||||
* @param maxlen Max length of the output buffer.
|
||||
* @param client Client index.
|
||||
* @param action CookieMenuAction being performed.
|
||||
* @param info Info data passed.
|
||||
* @param buffer Outbut buffer.
|
||||
* @param maxlen Max length of the output buffer.
|
||||
*/
|
||||
typedef CookieMenuHandler = function void (
|
||||
int client,
|
||||
@ -177,12 +177,12 @@ typedef CookieMenuHandler = function void (
|
||||
*
|
||||
* Note: This handles everything automatically and does not require a callback
|
||||
*
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param type A CookieMenu prefab menu type.
|
||||
* @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.
|
||||
* @error Invalid cookie handle.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @param type A CookieMenu prefab menu type.
|
||||
* @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.
|
||||
* @error Invalid cookie handle.
|
||||
*/
|
||||
native void SetCookiePrefabMenu(Handle cookie, CookieMenu type, const char[] display, CookieMenuHandler handler=INVALID_FUNCTION, any info=0);
|
||||
|
||||
@ -191,37 +191,37 @@ native void SetCookiePrefabMenu(Handle cookie, CookieMenu type, const char[] dis
|
||||
*
|
||||
* Note: This only adds the top level menu item. You need to handle any submenus from the callback.
|
||||
*
|
||||
* @param handler A MenuHandler callback function.
|
||||
* @param info Data to pass to the callback.
|
||||
* @param display Text to show on the menu.
|
||||
* @error Invalid cookie handle.
|
||||
* @param handler A MenuHandler callback function.
|
||||
* @param info Data to pass to the callback.
|
||||
* @param display Text to show on the menu.
|
||||
* @error Invalid cookie handle.
|
||||
*/
|
||||
native void SetCookieMenuItem(CookieMenuHandler handler, any info, const char[] display);
|
||||
|
||||
/**
|
||||
* Displays the settings menu to a client.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param client Client index.
|
||||
*/
|
||||
native void ShowCookieMenu(int client);
|
||||
|
||||
/**
|
||||
* Gets a cookie iterator. Must be freed with CloseHandle().
|
||||
*
|
||||
* @return A new cookie iterator.
|
||||
* @return A new cookie iterator.
|
||||
*/
|
||||
native Handle GetCookieIterator();
|
||||
|
||||
/**
|
||||
* Reads a cookie iterator, then advances to the next cookie if any.
|
||||
*
|
||||
* @param iter Cookie iterator Handle.
|
||||
* @param name Name buffer.
|
||||
* @param nameLen Name buffer size.
|
||||
* @param access Access level of the cookie.
|
||||
* @param desc Cookie description buffer.
|
||||
* @param descLen Cookie description buffer size.
|
||||
* @return True on success, false if there are no more commands.
|
||||
* @param iter Cookie iterator Handle.
|
||||
* @param name Name buffer.
|
||||
* @param nameLen Name buffer size.
|
||||
* @param access Access level of the cookie.
|
||||
* @param desc Cookie description buffer.
|
||||
* @param descLen Cookie description buffer size.
|
||||
* @return True on success, false if there are no more commands.
|
||||
*/
|
||||
native bool ReadCookieIterator(Handle iter,
|
||||
char[] name,
|
||||
@ -229,22 +229,22 @@ native bool ReadCookieIterator(Handle iter,
|
||||
CookieAccess &access,
|
||||
char[] desc="",
|
||||
int descLen=0);
|
||||
|
||||
|
||||
/**
|
||||
* Returns the access level of a cookie
|
||||
*
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @return CookieAccess access level.
|
||||
* @error Invalid cookie handle.
|
||||
* @param cookie Client preference cookie handle.
|
||||
* @return CookieAccess access level.
|
||||
* @error Invalid cookie handle.
|
||||
*/
|
||||
native CookieAccess GetCookieAccess(Handle cookie);
|
||||
|
||||
/**
|
||||
* Returns the last updated timestamp for a client cookie
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param cookie Cookie handle.
|
||||
* @return Last updated timestamp.
|
||||
* @param client Client index.
|
||||
* @param cookie Cookie handle.
|
||||
* @return Last updated timestamp.
|
||||
*/
|
||||
native int GetClientCookieTime(int client, Handle cookie);
|
||||
|
||||
|
@ -40,9 +40,9 @@
|
||||
*/
|
||||
enum NetFlow
|
||||
{
|
||||
NetFlow_Outgoing = 0, /**< Outgoing traffic */
|
||||
NetFlow_Incoming, /**< Incoming traffic */
|
||||
NetFlow_Both, /**< Both values added together */
|
||||
NetFlow_Outgoing = 0, /**< Outgoing traffic */
|
||||
NetFlow_Incoming, /**< Incoming traffic */
|
||||
NetFlow_Both /**< Both values added together */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -61,7 +61,7 @@ enum AuthIdType
|
||||
// The following are only available on games that support Steam authentication.
|
||||
AuthId_Steam2, /**< Steam2 rendered format, ex "STEAM_1:1:4153990" */
|
||||
AuthId_Steam3, /**< Steam3 rendered format, ex "[U:1:8307981]" */
|
||||
AuthId_SteamID64, /**< A SteamID64 (uint64) as a String, ex "76561197968573709" */
|
||||
AuthId_SteamID64 /**< A SteamID64 (uint64) as a String, ex "76561197968573709" */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -69,10 +69,10 @@ enum AuthIdType
|
||||
* MAXPLAYERS is a hardcoded value as an upper limit. MaxClients changes based on the server.
|
||||
*/
|
||||
|
||||
#define MAXPLAYERS 65 /**< Maximum number of players SourceMod supports */
|
||||
#define MAX_NAME_LENGTH 128 /**< Maximum buffer required to store a client name */
|
||||
#define MAXPLAYERS 65 /**< Maximum number of players SourceMod supports */
|
||||
#define MAX_NAME_LENGTH 128 /**< Maximum buffer required to store a client name */
|
||||
|
||||
public const int 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.
|
||||
@ -83,17 +83,17 @@ public const int MaxClients; /**< Maximum number of players the server supports
|
||||
* to the string buffer, it is not defined which plugin's string will be shown to the client,
|
||||
* but it is guaranteed one of them will.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param rejectmsg Buffer to store the rejection message when the connection is refused.
|
||||
* @param maxlen Maximum number of characters for rejection buffer.
|
||||
* @return True to validate client's connection, false to refuse it.
|
||||
* @param client Client index.
|
||||
* @param rejectmsg Buffer to store the rejection message when the connection is refused.
|
||||
* @param maxlen Maximum number of characters for rejection buffer.
|
||||
* @return True to validate client's connection, false to refuse it.
|
||||
*/
|
||||
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.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientConnected(int client);
|
||||
|
||||
@ -108,21 +108,21 @@ forward void OnClientConnected(int client);
|
||||
* GetClientCount() will include clients as they are passed through this
|
||||
* function, as clients are already in game at this point.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientPutInServer(int client);
|
||||
|
||||
/**
|
||||
* Called when a client is disconnecting from the server.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientDisconnect(int client);
|
||||
|
||||
/**
|
||||
* Called when a client is disconnected from the server.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientDisconnect_Post(int client);
|
||||
|
||||
@ -132,39 +132,39 @@ forward void OnClientDisconnect_Post(int client);
|
||||
* As of SourceMod 1.3, the client is guaranteed to be in-game.
|
||||
* Use command listeners (console.inc) for more advanced hooks.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param args Number of arguments.
|
||||
* @return Plugin_Handled blocks the command from being sent,
|
||||
* and Plugin_Continue resumes normal functionality.
|
||||
* @param client Client index.
|
||||
* @param args Number of arguments.
|
||||
* @return Plugin_Handled blocks the command from being sent,
|
||||
* and Plugin_Continue resumes normal functionality.
|
||||
*/
|
||||
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.
|
||||
* @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.)
|
||||
* @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.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientSettingsChanged(int client);
|
||||
|
||||
@ -175,8 +175,8 @@ forward void OnClientSettingsChanged(int client);
|
||||
*
|
||||
* This is called by bots, but the ID will be "BOT".
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param auth Client Steam2 id, if available, else engine auth id.
|
||||
* @param client Client index.
|
||||
* @param auth Client Steam2 id, if available, else engine auth id.
|
||||
*/
|
||||
forward void OnClientAuthorized(int client, const char[] auth);
|
||||
|
||||
@ -193,8 +193,8 @@ forward void OnClientAuthorized(int client, const char[] auth);
|
||||
* 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.
|
||||
* @param client Client index.
|
||||
* @return Plugin_Handled to block admin checks.
|
||||
*/
|
||||
forward Action OnClientPreAdminCheck(int client);
|
||||
|
||||
@ -210,7 +210,7 @@ forward Action OnClientPreAdminCheck(int client);
|
||||
*
|
||||
* See OnClientPostAdminCheck() for more information.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientPostAdminFilter(int client);
|
||||
|
||||
@ -221,7 +221,7 @@ forward void OnClientPostAdminFilter(int client);
|
||||
* This callback is guaranteed to occur on all clients, and always
|
||||
* after each OnClientPutInServer() call.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param client Client index.
|
||||
*/
|
||||
forward void OnClientPostAdminCheck(int client);
|
||||
|
||||
@ -236,7 +236,8 @@ forward void OnClientPostAdminCheck(int client);
|
||||
* SourceTV or TF2's arena mode. Use the "MaxClients" dynamic variable documented at the
|
||||
* top of this file.
|
||||
*
|
||||
* @return Maximum number of clients allowed.
|
||||
* @return Maximum number of clients allowed.
|
||||
* @deprecated Use MaxClients variable instead.
|
||||
*/
|
||||
#pragma deprecated Use MaxClients variable instead.
|
||||
native int GetMaxClients();
|
||||
@ -252,52 +253,53 @@ native int GetMaxClients();
|
||||
* You should not globally cache the value to GetMaxHumanPlayers() because it can change across
|
||||
* game modes. You may still cache it locally.
|
||||
*
|
||||
* @return Maximum number of humans allowed.
|
||||
* @return Maximum number of humans allowed.
|
||||
*/
|
||||
native int GetMaxHumanPlayers();
|
||||
|
||||
/**
|
||||
* Returns the client count put in the server.
|
||||
*
|
||||
* @param inGameOnly If false connecting players are also counted.
|
||||
* @return Client count in the server.
|
||||
* @param inGameOnly If false connecting players are also counted.
|
||||
* @return Client count in the server.
|
||||
*/
|
||||
native int GetClientCount(bool inGameOnly=true);
|
||||
|
||||
/**
|
||||
* Returns the client's name.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @param name Buffer to store the client's name.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
* @param client Player index.
|
||||
* @param name Buffer to store the client's name.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
*/
|
||||
native bool GetClientName(int client, char[] name, int maxlen);
|
||||
|
||||
/**
|
||||
* Retrieves a client's IP address.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @param ip Buffer to store the client's ip address.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @param remport Remove client's port from the ip string (true by default).
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
* @param client Player index.
|
||||
* @param ip Buffer to store the client's ip address.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @param remport Remove client's port from the ip string (true by default).
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
*/
|
||||
native bool GetClientIP(int client, char[] ip, int maxlen, bool remport=true);
|
||||
|
||||
/**
|
||||
* Retrieves a client's authentication string (SteamID).
|
||||
*
|
||||
* @param client Player index.
|
||||
* @param auth Buffer to store the client's auth string.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @param validate Check backend validation status.
|
||||
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
* @param client Player index.
|
||||
* @param auth Buffer to store the client's auth string.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @param validate Check backend validation status.
|
||||
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
* @deprecated Use GetClientAuthId
|
||||
*/
|
||||
#pragma deprecated Use GetClientAuthId
|
||||
native bool GetClientAuthString(int client, char[] auth, int maxlen, bool validate=true);
|
||||
@ -305,15 +307,15 @@ native bool GetClientAuthString(int client, char[] auth, int maxlen, bool valida
|
||||
/**
|
||||
* Retrieves a client's authentication string (SteamID).
|
||||
*
|
||||
* @param client Player index.
|
||||
* @param authType Auth id type and format to use.
|
||||
* @param auth Buffer to store the client's auth id.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @param validate Check backend validation status.
|
||||
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
* @param client Player index.
|
||||
* @param authType Auth id type and format to use.
|
||||
* @param auth Buffer to store the client's auth id.
|
||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||
* @param validate Check backend validation status.
|
||||
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||
* @return True on success, false otherwise.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
*/
|
||||
native bool GetClientAuthId(int client, AuthIdType authType, char[] auth, int maxlen, bool validate=true);
|
||||
|
||||
@ -321,12 +323,12 @@ native bool GetClientAuthId(int client, AuthIdType authType, char[] auth, int ma
|
||||
* Returns the client's Steam account ID, a number uniquely identifying a given Steam account.
|
||||
* This number is the basis for the various display SteamID forms, see the AuthIdType enum for examples.
|
||||
*
|
||||
* @param client Client Index.
|
||||
* @param validate Check backend validation status.
|
||||
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||
* @return Steam account ID or 0 if not available.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
* @param client Client Index.
|
||||
* @param validate Check backend validation status.
|
||||
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||
* @return Steam account ID or 0 if not available.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
*/
|
||||
native int GetSteamAccountID(int client, bool validate=true);
|
||||
|
||||
@ -334,26 +336,26 @@ native int GetSteamAccountID(int client, bool validate=true);
|
||||
* Retrieves a client's user id, which is an index incremented for every client
|
||||
* that joins the server.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @return User id of the client.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
* @param client Player index.
|
||||
* @return User id of the client.
|
||||
* @error If the client is not connected or the index is invalid.
|
||||
*/
|
||||
native int GetClientUserId(int client);
|
||||
|
||||
/**
|
||||
* Returns if a certain player is connected.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @return True if player is connected to the server, false otherwise.
|
||||
* @param client Player index.
|
||||
* @return True if player is connected to the server, false otherwise.
|
||||
*/
|
||||
native bool IsClientConnected(int client);
|
||||
|
||||
/**
|
||||
* Returns if a certain player has entered the game.
|
||||
*
|
||||
* @param client Player index (index does not have to be connected).
|
||||
* @return True if player has entered the game, false otherwise.
|
||||
* @error Invalid client index.
|
||||
* @param client Player index (index does not have to be connected).
|
||||
* @return True if player has entered the game, false otherwise.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
native bool IsClientInGame(int client);
|
||||
|
||||
@ -361,15 +363,15 @@ native bool IsClientInGame(int client);
|
||||
* Returns if a client is in the "kick queue" (i.e. the client will be kicked
|
||||
* shortly and thus they should not appear as valid).
|
||||
*
|
||||
* @param client Player index (must be connected).
|
||||
* @return True if in the kick queue, false otherwise.
|
||||
* @error Invalid client index.
|
||||
* @param client Player index (must be connected).
|
||||
* @return True if in the kick queue, false otherwise.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
native bool IsClientInKickQueue(int client);
|
||||
|
||||
/**
|
||||
* Backwards compatibility stock - use IsClientInGame
|
||||
* @deprecated Renamed to IsClientInGame
|
||||
* @deprecated Renamed to IsClientInGame
|
||||
*/
|
||||
#pragma deprecated Use IsClientInGame() instead
|
||||
stock bool IsPlayerInGame(int client)
|
||||
@ -380,40 +382,40 @@ stock bool IsPlayerInGame(int client)
|
||||
/**
|
||||
* Returns if a certain player has been authenticated.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @return True if player has been authenticated, false otherwise.
|
||||
* @param client Player index.
|
||||
* @return True if player has been authenticated, false otherwise.
|
||||
*/
|
||||
native bool IsClientAuthorized(int client);
|
||||
|
||||
/**
|
||||
* Returns if a certain player is a fake client.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @return True if player is a fake client, false otherwise.
|
||||
* @param client Player index.
|
||||
* @return True if player is a fake client, false otherwise.
|
||||
*/
|
||||
native bool IsFakeClient(int client);
|
||||
|
||||
/**
|
||||
* Returns if a certain player is the SourceTV bot.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @return True if player is the SourceTV bot, false otherwise.
|
||||
* @param client Player index.
|
||||
* @return True if player is the SourceTV bot, false otherwise.
|
||||
*/
|
||||
native bool IsClientSourceTV(int client);
|
||||
|
||||
/**
|
||||
* Returns if a certain player is the Replay bot.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @return True if player is the Replay bot, false otherwise.
|
||||
* @param client Player index.
|
||||
* @return True if player is the Replay bot, false otherwise.
|
||||
*/
|
||||
native bool IsClientReplay(int client);
|
||||
|
||||
/**
|
||||
* Returns if a certain player is an observer/spectator.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @return True if player is an observer, false otherwise.
|
||||
* @param client Player index.
|
||||
* @return True if player is an observer, false otherwise.
|
||||
*/
|
||||
native bool IsClientObserver(int client);
|
||||
|
||||
@ -422,49 +424,49 @@ native bool IsClientObserver(int client);
|
||||
*
|
||||
* Note: This function was originally in SDKTools and was moved to core.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return True if the client is alive, false otherwise.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @return True if the client is alive, false otherwise.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native bool IsPlayerAlive(int client);
|
||||
|
||||
/**
|
||||
* Retrieves values from client replicated keys.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param key Key string.
|
||||
* @param value Buffer to store value.
|
||||
* @param maxlen Maximum length of valve (UTF-8 safe).
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Player's index.
|
||||
* @param key Key string.
|
||||
* @param value Buffer to store value.
|
||||
* @param maxlen Maximum length of valve (UTF-8 safe).
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native bool GetClientInfo(int client, const char[] key, char[] value, int maxlen);
|
||||
|
||||
/**
|
||||
* Retrieves a client's team index.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Team index the client is on (mod specific).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @return Team index the client is on (mod specific).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native int GetClientTeam(int client);
|
||||
|
||||
/**
|
||||
* Sets a client's AdminId.
|
||||
*
|
||||
* @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.
|
||||
* @error Invalid client index, client not connected, or bogus AdminId.
|
||||
* @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.
|
||||
* @error Invalid client index, client not connected, or bogus AdminId.
|
||||
*/
|
||||
native void SetUserAdmin(int client, AdminId id, bool temp=false);
|
||||
|
||||
/**
|
||||
* Retrieves a client's AdminId.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return AdminId of the client, or INVALID_ADMIN_ID if none.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Player's index.
|
||||
* @return AdminId of the client, or INVALID_ADMIN_ID if none.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native AdminId GetUserAdmin(int client);
|
||||
|
||||
@ -472,9 +474,9 @@ native AdminId GetUserAdmin(int client);
|
||||
* Sets access flags on a client. If the client is not an admin,
|
||||
* a temporary, anonymous AdminId is given.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param ... Flags to set on the client.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Player's index.
|
||||
* @param ... Flags to set on the client.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native void AddUserFlags(int client, AdminFlag ...);
|
||||
|
||||
@ -482,9 +484,9 @@ native void AddUserFlags(int client, AdminFlag ...);
|
||||
* Removes flags from a client. If the client is not an admin,
|
||||
* this has no effect.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param ... Flags to remove from the client.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Player's index.
|
||||
* @param ... Flags to remove from the client.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native void RemoveUserFlags(int client, AdminFlag ...);
|
||||
|
||||
@ -492,8 +494,8 @@ native void RemoveUserFlags(int client, AdminFlag ...);
|
||||
* Sets access flags on a client using bits instead of flags. If the
|
||||
* client is not an admin, and flags not 0, a temporary, anonymous AdminId is given.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param flags Bitstring of flags to set on client.
|
||||
* @param client Player's index.
|
||||
* @param flags Bitstring of flags to set on client.
|
||||
*/
|
||||
native void SetUserFlagBits(int client, int flags);
|
||||
|
||||
@ -501,9 +503,9 @@ native void SetUserFlagBits(int client, int flags);
|
||||
* Returns client access flags. If the client is not an admin,
|
||||
* the result is always 0.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Flags
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Player's index.
|
||||
* @return Flags
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native int GetUserFlagBits(int client);
|
||||
|
||||
@ -511,10 +513,10 @@ native int GetUserFlagBits(int client);
|
||||
* Returns whether a user can target another user.
|
||||
* This is a helper function for CanAdminTarget.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param target Target player's index.
|
||||
* @return True if target is targettable by the player, false otherwise.
|
||||
* @error Invalid or unconnected player indexers.
|
||||
* @param client Player's index.
|
||||
* @param target Target player's index.
|
||||
* @return True if target is targettable by the player, false otherwise.
|
||||
* @error Invalid or unconnected player indexers.
|
||||
*/
|
||||
native bool CanUserTarget(int client, int target);
|
||||
|
||||
@ -524,9 +526,9 @@ native bool CanUserTarget(int client, int target);
|
||||
*
|
||||
* Note: This function is based on the internal cache only.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @return True if access was changed, false if it did not.
|
||||
* @error Invalid client index or client not in-game AND authorized.
|
||||
* @param client Client index.
|
||||
* @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(int client);
|
||||
|
||||
@ -536,215 +538,215 @@ native bool RunAdminCacheChecks(int client);
|
||||
*
|
||||
* Note: This must be sent even if no admin id was assigned.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @error Invalid client index or client not in-game AND authorized.
|
||||
* @param client Client index.
|
||||
* @error Invalid client index or client not in-game AND authorized.
|
||||
*/
|
||||
native void NotifyPostAdminCheck(int client);
|
||||
|
||||
/**
|
||||
* Creates a fake client.
|
||||
*
|
||||
* @param name Name to use.
|
||||
* @return Client index on success, 0 otherwise.
|
||||
* @param name Name to use.
|
||||
* @return Client index on success, 0 otherwise.
|
||||
*/
|
||||
native int CreateFakeClient(const char[] name);
|
||||
|
||||
/**
|
||||
* Sets a convar value on a fake client.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param cvar ConVar name.
|
||||
* @param value ConVar value.
|
||||
* @error Invalid client index, client not connected,
|
||||
* or client not a fake client.
|
||||
* @param client Client index.
|
||||
* @param cvar ConVar name.
|
||||
* @param value ConVar value.
|
||||
* @error Invalid client index, client not connected,
|
||||
* or client not a fake client.
|
||||
*/
|
||||
native void SetFakeClientConVar(int client, const char[] cvar, const char[] value);
|
||||
|
||||
/**
|
||||
* Returns the client's health.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Health value.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @return Health value.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native int GetClientHealth(int client);
|
||||
|
||||
/**
|
||||
* Returns the client's model name.
|
||||
*
|
||||
* @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).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @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).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void GetClientModel(int client, char[] model, int maxlen);
|
||||
|
||||
/**
|
||||
* Returns the client's weapon name.
|
||||
*
|
||||
* @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).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @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).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param vec Destination vector to store the client's max size.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param vec Destination vector to store the client's min size.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param ang Destination vector to store the client's position angle.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param vec Destination vector to store the client's origin vector.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void GetClientAbsOrigin(int client, float vec[3]);
|
||||
|
||||
/**
|
||||
* Returns the client's armor.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Armor value.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @return Armor value.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native int GetClientArmor(int client);
|
||||
|
||||
/**
|
||||
* Returns the client's death count.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Death count.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @return Death count.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native int GetClientDeaths(int client);
|
||||
|
||||
/**
|
||||
* Returns the client's frag count.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Frag count.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @return Frag count.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native int GetClientFrags(int client);
|
||||
|
||||
/**
|
||||
* Returns the client's send data rate in bytes/sec.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Data rate.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @return Data rate.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
*/
|
||||
native int GetClientDataRate(int client);
|
||||
|
||||
/**
|
||||
* Returns if a client is timing out
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return True if client is timing out, false otherwise.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @return True if client is timing out, false otherwise.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
*/
|
||||
native bool IsClientTimingOut(int client);
|
||||
|
||||
/**
|
||||
* Returns the client's connection time in seconds.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Connection time.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @return Connection time.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
*/
|
||||
native float GetClientTime(int client);
|
||||
|
||||
/**
|
||||
* Returns the client's current latency (RTT), more accurate than GetAvgLatency but jittering.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Latency, or -1 if network info is not available.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Latency, or -1 if network info is not available.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
*/
|
||||
native float GetClientLatency(int client, NetFlow flow);
|
||||
|
||||
/**
|
||||
* Returns the client's average packet latency in seconds.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Latency, or -1 if network info is not available.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Latency, or -1 if network info is not available.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
*/
|
||||
native float GetClientAvgLatency(int client, NetFlow flow);
|
||||
|
||||
/**
|
||||
* Returns the client's average packet loss, values go from 0 to 1 (for percentages).
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Average packet loss, or -1 if network info is not available.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @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(int client, NetFlow flow);
|
||||
|
||||
/**
|
||||
* Returns the client's average packet choke, values go from 0 to 1 (for percentages).
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Average packet loss, or -1 if network info is not available.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @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(int client, NetFlow flow);
|
||||
|
||||
/**
|
||||
* Returns the client's data flow in bytes/sec.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Data flow.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Data flow.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
*/
|
||||
native float GetClientAvgData(int client, NetFlow flow);
|
||||
|
||||
/**
|
||||
* Returns the client's average packet frequency in packets/sec.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Packet frequency.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
* @param client Player's index.
|
||||
* @param flow Traffic flowing direction.
|
||||
* @return Packet frequency.
|
||||
* @error Invalid client index, client not connected, or fake client.
|
||||
*/
|
||||
native float GetClientAvgPackets(int client, NetFlow flow);
|
||||
|
||||
/**
|
||||
* Translates an userid index to the real player index.
|
||||
*
|
||||
* @param userid Userid value.
|
||||
* @return Client value.
|
||||
* @error Returns 0 if invalid userid.
|
||||
* @param userid Userid value.
|
||||
* @return Client value.
|
||||
* @error Returns 0 if invalid userid.
|
||||
*/
|
||||
native int GetClientOfUserId(int userid);
|
||||
|
||||
@ -760,11 +762,11 @@ native int GetClientOfUserId(int userid);
|
||||
*
|
||||
* Note: IsClientInKickQueue() will return true before the kick occurs.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param format Optional formatting rules for disconnect reason.
|
||||
* @param client Client index.
|
||||
* @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.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native void KickClient(int client, const char[] format="", any ...);
|
||||
|
||||
@ -775,11 +777,11 @@ native void KickClient(int client, const char[] format="", any ...);
|
||||
* doubt, create a short (0.1 second) timer to kick the client in the next
|
||||
* available frame.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param format Optional formatting rules for disconnect reason.
|
||||
* @param client Client index.
|
||||
* @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.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native void KickClientEx(int client, const char[] format="", any ...);
|
||||
|
||||
@ -787,26 +789,26 @@ native void KickClientEx(int client, const char[] format="", any ...);
|
||||
* Changes a client's team through the mod's generic team changing function.
|
||||
* On CS:S, this will kill the player.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param team Mod-specific team index.
|
||||
* @error Invalid client index, client not connected, or lack of
|
||||
* mod support.
|
||||
* @param client Client index.
|
||||
* @param team Mod-specific team index.
|
||||
* @error Invalid client index, client not connected, or lack of
|
||||
* mod support.
|
||||
*/
|
||||
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.
|
||||
* @param client Client index.
|
||||
* @return Serial number.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native int GetClientSerial(int client);
|
||||
|
||||
/**
|
||||
* Returns the client index by its serial number.
|
||||
*
|
||||
* @param serial Serial number.
|
||||
* @return Client index, or 0 for invalid serial.
|
||||
* @param serial Serial number.
|
||||
* @return Client index, or 0 for invalid serial.
|
||||
*/
|
||||
native int GetClientFromSerial(int serial);
|
||||
|
@ -35,23 +35,23 @@
|
||||
#endif
|
||||
#define _commandfilters_included
|
||||
|
||||
#define MAX_TARGET_LENGTH 64
|
||||
#define MAX_TARGET_LENGTH 64
|
||||
|
||||
#define COMMAND_FILTER_ALIVE (1<<0) /**< Only allow alive players */
|
||||
#define COMMAND_FILTER_DEAD (1<<1) /**< Only filter dead players */
|
||||
#define COMMAND_FILTER_CONNECTED (1<<2) /**< Allow players not fully in-game */
|
||||
#define COMMAND_FILTER_NO_IMMUNITY (1<<3) /**< Ignore immunity rules */
|
||||
#define COMMAND_FILTER_NO_MULTI (1<<4) /**< Do not allow multiple target patterns */
|
||||
#define COMMAND_FILTER_NO_BOTS (1<<5) /**< Do not allow bots to be targetted */
|
||||
#define COMMAND_FILTER_ALIVE (1<<0) /**< Only allow alive players */
|
||||
#define COMMAND_FILTER_DEAD (1<<1) /**< Only filter dead players */
|
||||
#define COMMAND_FILTER_CONNECTED (1<<2) /**< Allow players not fully in-game */
|
||||
#define COMMAND_FILTER_NO_IMMUNITY (1<<3) /**< Ignore immunity rules */
|
||||
#define COMMAND_FILTER_NO_MULTI (1<<4) /**< Do not allow multiple target patterns */
|
||||
#define COMMAND_FILTER_NO_BOTS (1<<5) /**< Do not allow bots to be targetted */
|
||||
|
||||
#define COMMAND_TARGET_NONE 0 /**< No target was found */
|
||||
#define COMMAND_TARGET_NOT_ALIVE -1 /**< Single client is not alive */
|
||||
#define COMMAND_TARGET_NOT_DEAD -2 /**< Single client is not dead */
|
||||
#define COMMAND_TARGET_NOT_IN_GAME -3 /**< Single client is not in game */
|
||||
#define COMMAND_TARGET_IMMUNE -4 /**< Single client is immune */
|
||||
#define COMMAND_TARGET_EMPTY_FILTER -5 /**< A multi-filter (such as @all) had no targets */
|
||||
#define COMMAND_TARGET_NOT_HUMAN -6 /**< Target was not human */
|
||||
#define COMMAND_TARGET_AMBIGUOUS -7 /**< Partial name had too many targets */
|
||||
#define COMMAND_TARGET_NONE 0 /**< No target was found */
|
||||
#define COMMAND_TARGET_NOT_ALIVE -1 /**< Single client is not alive */
|
||||
#define COMMAND_TARGET_NOT_DEAD -2 /**< Single client is not dead */
|
||||
#define COMMAND_TARGET_NOT_IN_GAME -3 /**< Single client is not in game */
|
||||
#define COMMAND_TARGET_IMMUNE -4 /**< Single client is immune */
|
||||
#define COMMAND_TARGET_EMPTY_FILTER -5 /**< A multi-filter (such as @all) had no targets */
|
||||
#define COMMAND_TARGET_NOT_HUMAN -6 /**< Target was not human */
|
||||
#define COMMAND_TARGET_AMBIGUOUS -7 /**< Partial name had too many targets */
|
||||
|
||||
/**
|
||||
* Processes a generic command target string, and resolves it to a list
|
||||
@ -61,28 +61,28 @@
|
||||
* as that file is guaranteed to contain all of the translatable phrases that
|
||||
* ProcessTargetString() will return.
|
||||
*
|
||||
* @param pattern Pattern to find clients against.
|
||||
* @param admin Admin performing the action, or 0 if the server.
|
||||
* @param targets Array to hold targets.
|
||||
* @param max_targets Maximum size of the targets array.
|
||||
* @param filter_flags Filter flags.
|
||||
* @param target_name Buffer to store the target name.
|
||||
* @param tn_maxlength Maximum length of the target name buffer.
|
||||
* @param tn_is_ml OUTPUT: Will be true if the target name buffer is an ML phrase,
|
||||
* false if it is a normal string.
|
||||
* @return If a multi-target pattern was used, the number of clients found
|
||||
* is returned. If a single-target pattern was used, 1 is returned
|
||||
* if one valid client is found. Otherwise, a COMMAND_TARGET reason
|
||||
* for failure is returned.
|
||||
* @param pattern Pattern to find clients against.
|
||||
* @param admin Admin performing the action, or 0 if the server.
|
||||
* @param targets Array to hold targets.
|
||||
* @param max_targets Maximum size of the targets array.
|
||||
* @param filter_flags Filter flags.
|
||||
* @param target_name Buffer to store the target name.
|
||||
* @param tn_maxlength Maximum length of the target name buffer.
|
||||
* @param tn_is_ml OUTPUT: Will be true if the target name buffer is an ML phrase,
|
||||
* false if it is a normal string.
|
||||
* @return If a multi-target pattern was used, the number of clients found
|
||||
* is returned. If a single-target pattern was used, 1 is returned
|
||||
* if one valid client is found. Otherwise, a COMMAND_TARGET reason
|
||||
* for failure is returned.
|
||||
*/
|
||||
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);
|
||||
int admin,
|
||||
int[] targets,
|
||||
int max_targets,
|
||||
int filter_flags,
|
||||
char[] target_name,
|
||||
int tn_maxlength,
|
||||
bool &tn_is_ml);
|
||||
|
||||
/**
|
||||
* Replies to a client with a given message describing a targetting
|
||||
@ -90,8 +90,8 @@ native int ProcessTargetString(const char[] pattern,
|
||||
*
|
||||
* Note: The translation phrases are found in common.phrases.txt.
|
||||
*
|
||||
* @param client Client index, or 0 for server.
|
||||
* @param reason COMMAND_TARGET reason.
|
||||
* @param client Client index, or 0 for server.
|
||||
* @param reason COMMAND_TARGET reason.
|
||||
*/
|
||||
stock void ReplyToTargetError(int client, int reason)
|
||||
{
|
||||
|
@ -31,56 +31,56 @@
|
||||
*/
|
||||
|
||||
#if defined _commandline_included_
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _commandline_included_
|
||||
|
||||
/**
|
||||
* Gets the full command line the server was launched with.
|
||||
*
|
||||
* @param commandLine Buffer to store the command line in.
|
||||
* @param maxlen Maximum length of the command line buffer.
|
||||
* @return True if the command line is valid; otherwise, false.
|
||||
* @error No command line available, or no mod support.
|
||||
* @param commandLine Buffer to store the command line in.
|
||||
* @param maxlen Maximum length of the command line buffer.
|
||||
* @return True if the command line is valid; otherwise, false.
|
||||
* @error No command line available, or no mod support.
|
||||
*/
|
||||
native bool GetCommandLine(char[] commandLine, int maxlen);
|
||||
|
||||
/**
|
||||
* Gets the value of a command line parameter the server was launched with.
|
||||
*
|
||||
* @param param The command line parameter to get the value of.
|
||||
* @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.
|
||||
* @error No command line available, or no mod support.
|
||||
* @param param The command line parameter to get the value of.
|
||||
* @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.
|
||||
* @error No command line available, or no mod support.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param param The command line parameter to get the value of.
|
||||
* @param defValue The default value to return if the parameter wasn't specified.
|
||||
* @return The integer value of the command line parameter value.
|
||||
* @error No command line available, or no mod support.
|
||||
* @param param The command line parameter to get the value of.
|
||||
* @param defValue The default value to return if the parameter wasn't specified.
|
||||
* @return The integer value of the command line parameter value.
|
||||
* @error No command line available, or no mod support.
|
||||
*/
|
||||
native int GetCommandLineParamInt(const char[] param, int defValue=0);
|
||||
|
||||
/**
|
||||
* Gets the value of a command line parameter the server was launched with.
|
||||
*
|
||||
* @param param The command line parameter to get the value of.
|
||||
* @param defValue The default value to return if the parameter wasn't specified.
|
||||
* @return The floating point value of the command line parameter value.
|
||||
* @error No command line available, or no mod support.
|
||||
* @param param The command line parameter to get the value of.
|
||||
* @param defValue The default value to return if the parameter wasn't specified.
|
||||
* @return The floating point value of the command line parameter value.
|
||||
* @error No command line available, or no mod support.
|
||||
*/
|
||||
native float GetCommandLineParamFloat(const char[] param, float defValue=0.0);
|
||||
|
||||
/**
|
||||
* Determines if a specific command line parameter is present.
|
||||
*
|
||||
* @param param The command line parameter to test.
|
||||
* @return True if the command line parameter is specified; otherwise, false.
|
||||
* @error No command line available, or no mod support.
|
||||
* @param param The command line parameter to test.
|
||||
* @return True if the command line parameter is specified; otherwise, false.
|
||||
* @error No command line available, or no mod support.
|
||||
*/
|
||||
native bool FindCommandLineParam(const char[] param);
|
||||
|
@ -35,14 +35,14 @@
|
||||
#endif
|
||||
#define _console_included
|
||||
|
||||
#define INVALID_FCVAR_FLAGS (-1)
|
||||
#define INVALID_FCVAR_FLAGS (-1)
|
||||
|
||||
/**
|
||||
* Console variable query helper values.
|
||||
*/
|
||||
enum QueryCookie
|
||||
{
|
||||
QUERYCOOKIE_FAILED = 0,
|
||||
QUERYCOOKIE_FAILED = 0
|
||||
};
|
||||
|
||||
/**
|
||||
@ -51,7 +51,7 @@ enum QueryCookie
|
||||
enum ReplySource
|
||||
{
|
||||
SM_REPLY_TO_CONSOLE = 0,
|
||||
SM_REPLY_TO_CHAT = 1,
|
||||
SM_REPLY_TO_CHAT = 1
|
||||
};
|
||||
|
||||
/**
|
||||
@ -65,25 +65,25 @@ enum ReplySource
|
||||
#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.
|
||||
#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_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+)
|
||||
@ -109,8 +109,8 @@ enum ReplySource
|
||||
/**
|
||||
* Executes a server command as if it were on the server console (or RCON)
|
||||
*
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
native void ServerCommand(const char[] format, any ...);
|
||||
|
||||
@ -123,18 +123,18 @@ native void ServerCommand(const char[] format, any ...);
|
||||
* the response.
|
||||
* Also, on L4D2 this will not print the command output to the server console.
|
||||
*
|
||||
* @param buffer String to store command result into.
|
||||
* @param maxlen Length of buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @param buffer String to store command result into.
|
||||
* @param maxlen Length of buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
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.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
native void InsertServerCommand(const char[] format, any ...);
|
||||
|
||||
@ -147,10 +147,10 @@ native void ServerExecute();
|
||||
* Executes a client command. Note that this will not work on clients unless
|
||||
* they have cl_restrict_server_commands set to 0.
|
||||
*
|
||||
* @param client Index of the client.
|
||||
* @param fmt Format of the client command.
|
||||
* @param ... Format parameters
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Index of the client.
|
||||
* @param fmt Format of the client command.
|
||||
* @param ... Format parameters
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native void ClientCommand(int client, const char[] fmt, any ...);
|
||||
|
||||
@ -163,10 +163,10 @@ native void ClientCommand(int client, const char[] fmt, any ...);
|
||||
* a hook where this matters (for example, a "say" hook), you should use
|
||||
* FakeClientCommandEx() instead.
|
||||
*
|
||||
* @param client Index of the client.
|
||||
* @param fmt Format of the client command.
|
||||
* @param ... Format parameters
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Index of the client.
|
||||
* @param fmt Format of the client command.
|
||||
* @param ... Format parameters
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native void FakeClientCommand(int client, const char[] fmt, any ...);
|
||||
|
||||
@ -175,38 +175,38 @@ native void FakeClientCommand(int client, const char[] fmt, any ...);
|
||||
* execution of the client command is delayed by one frame to prevent any
|
||||
* re-entrancy issues that might surface with FakeClientCommand().
|
||||
*
|
||||
* @param client Index of the client.
|
||||
* @param fmt Format of the client command.
|
||||
* @param ... Format parameters
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Index of the client.
|
||||
* @param fmt Format of the client command.
|
||||
* @param ... Format parameters
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
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.
|
||||
* @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.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
native void PrintToServer(const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Sends a message to a client's console.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
*/
|
||||
native void PrintToConsole(int client, const char[] format, any ...);
|
||||
|
||||
@ -214,8 +214,8 @@ native void PrintToConsole(int client, const char[] format, any ...);
|
||||
/**
|
||||
* Sends a message to every client's console.
|
||||
*
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
stock void PrintToConsoleAll(const char[] format, any ...)
|
||||
{
|
||||
@ -239,17 +239,17 @@ stock void PrintToConsoleAll(const char[] format, any ...)
|
||||
* If the command was from the console, PrintToConsole() is used.
|
||||
* If the command was from chat, PrintToChat() is used.
|
||||
*
|
||||
* @param client Client index, or 0 for server.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected or invalid.
|
||||
* @param client Client index, or 0 for server.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected or invalid.
|
||||
*/
|
||||
native void ReplyToCommand(int client, const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Returns the current reply source of a command.
|
||||
*
|
||||
* @return ReplySource value.
|
||||
* @return ReplySource value.
|
||||
*/
|
||||
native ReplySource GetCmdReplySource();
|
||||
|
||||
@ -259,8 +259,8 @@ native ReplySource GetCmdReplySource();
|
||||
* Only use this if you know what you are doing. You should save the old value
|
||||
* and restore it once you are done.
|
||||
*
|
||||
* @param source New ReplySource value.
|
||||
* @return Old ReplySource value.
|
||||
* @param source New ReplySource value.
|
||||
* @return Old ReplySource value.
|
||||
*/
|
||||
native ReplySource SetCmdReplySource(ReplySource source);
|
||||
|
||||
@ -269,7 +269,7 @@ native ReplySource SetCmdReplySource(ReplySource source);
|
||||
*
|
||||
* This function is only meaningful inside say or say_team hooks.
|
||||
*
|
||||
* @return True if a chat trigger, false otherwise.
|
||||
* @return True if a chat trigger, false otherwise.
|
||||
*/
|
||||
native bool IsChatTrigger();
|
||||
|
||||
@ -279,10 +279,10 @@ native bool IsChatTrigger();
|
||||
* in their chat text, except for the originating client, who receives
|
||||
* the message based on the current ReplySource.
|
||||
*
|
||||
* @param client Client index doing the action, or 0 for server.
|
||||
* @param tag Tag to prepend to the message.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @param client Client index doing the action, or 0 for server.
|
||||
* @param tag Tag to prepend to the message.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error
|
||||
*/
|
||||
native void ShowActivity2(int client, const char[] tag, const char[] format, any ...);
|
||||
@ -296,9 +296,9 @@ native void ShowActivity2(int client, const char[] tag, const char[] format, any
|
||||
* for these cases, then this function will suffice. Otherwise,
|
||||
* ShowActivity2() is slightly more useful.
|
||||
*
|
||||
* @param client Client index doing the action, or 0 for server.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @param client Client index doing the action, or 0 for server.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error
|
||||
*/
|
||||
native void ShowActivity(int client, const char[] format, any ...);
|
||||
@ -307,10 +307,10 @@ native void ShowActivity(int client, const char[] format, any ...);
|
||||
* Same as ShowActivity(), except the tag parameter is used instead of
|
||||
* "[SM] " (note that you must supply any spacing).
|
||||
*
|
||||
* @param client Client index doing the action, or 0 for server.
|
||||
* @param tag Tag to display with.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @param client Client index doing the action, or 0 for server.
|
||||
* @param tag Tag to display with.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error
|
||||
*/
|
||||
native void ShowActivityEx(int client, const char[] tag, const char[] format, any ...);
|
||||
@ -336,9 +336,9 @@ native bool FormatActivitySource(int client, int target, const char[] namebuf, i
|
||||
/**
|
||||
* Called when a server-only command is invoked.
|
||||
*
|
||||
* @param args Number of arguments that were in the argument string.
|
||||
* @return An Action value. Not handling the command
|
||||
* means that Source will report it as "not found."
|
||||
* @param args Number of arguments that were in the argument string.
|
||||
* @return An Action value. Not handling the command
|
||||
* means that Source will report it as "not found."
|
||||
*/
|
||||
typedef SrvCmd = function Action (int args);
|
||||
|
||||
@ -347,21 +347,21 @@ typedef SrvCmd = function Action (int args);
|
||||
*
|
||||
* Server commands are case sensitive.
|
||||
*
|
||||
* @param cmd Name of the command to hook or create.
|
||||
* @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.
|
||||
* @error Command name is the same as an existing convar.
|
||||
* @param cmd Name of the command to hook or create.
|
||||
* @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.
|
||||
* @error Command name is the same as an existing convar.
|
||||
*/
|
||||
native void RegServerCmd(const char[] cmd, SrvCmd callback, const char[] description="", int flags=0);
|
||||
|
||||
/**
|
||||
* Called when a generic console command is invoked.
|
||||
*
|
||||
* @param client Index of the client, or 0 from the server.
|
||||
* @param args Number of arguments that were in the argument string.
|
||||
* @return An Action value. Not handling the command
|
||||
* means that Source will report it as "not found."
|
||||
* @param client Index of the client, or 0 from the server.
|
||||
* @param args Number of arguments that were in the argument string.
|
||||
* @return An Action value. Not handling the command
|
||||
* means that Source will report it as "not found."
|
||||
*/
|
||||
typedef ConCmd = function Action (int client, int args);
|
||||
|
||||
@ -372,11 +372,11 @@ typedef ConCmd = function Action (int client, int args);
|
||||
* a client may enter the command in any case. SourceMod corrects for this automatically,
|
||||
* and you should only hook the "real" version of the command.
|
||||
*
|
||||
* @param cmd Name of the command to hook or create.
|
||||
* @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.
|
||||
* @error Command name is the same as an existing convar.
|
||||
* @param cmd Name of the command to hook or create.
|
||||
* @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.
|
||||
* @error Command name is the same as an existing convar.
|
||||
*/
|
||||
native void RegConsoleCmd(const char[] cmd, ConCmd callback, const char[] description="", int flags=0);
|
||||
|
||||
@ -387,14 +387,14 @@ native void RegConsoleCmd(const char[] cmd, ConCmd callback, const char[] descri
|
||||
*
|
||||
* Admin commands are case sensitive from both the client and server.
|
||||
*
|
||||
* @param cmd String containing command to register.
|
||||
* @param callback A function to use as a callback for when the command is invoked.
|
||||
* @param adminflags Administrative flags (bitstring) to use for permissions.
|
||||
* @param description Optional description to use for help.
|
||||
* @param group String containing the command group to use. If empty,
|
||||
* the plugin's filename will be used instead.
|
||||
* @param flags Optional console flags.
|
||||
* @error Command name is the same as an existing convar.
|
||||
* @param cmd String containing command to register.
|
||||
* @param callback A function to use as a callback for when the command is invoked.
|
||||
* @param adminflags Administrative flags (bitstring) to use for permissions.
|
||||
* @param description Optional description to use for help.
|
||||
* @param group String containing the command group to use. If empty,
|
||||
* the plugin's filename will be used instead.
|
||||
* @param flags Optional console flags.
|
||||
* @error Command name is the same as an existing convar.
|
||||
*/
|
||||
native void RegAdminCmd(const char[] cmd,
|
||||
ConCmd callback,
|
||||
@ -407,7 +407,7 @@ native void RegAdminCmd(const char[] cmd,
|
||||
* 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.
|
||||
* @return Number of arguments to the current command.
|
||||
*/
|
||||
native int GetCmdArgs();
|
||||
|
||||
@ -416,10 +416,10 @@ native int GetCmdArgs();
|
||||
* server command.
|
||||
* @note Argument indexes start at 1; 0 retrieves the command name.
|
||||
*
|
||||
* @param argnum Argument number to retrieve.
|
||||
* @param buffer Buffer to use for storing the string.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return Length of string written to buffer.
|
||||
* @param argnum Argument number to retrieve.
|
||||
* @param buffer Buffer to use for storing the string.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return Length of string written to buffer.
|
||||
*/
|
||||
native int GetCmdArg(int argnum, char[] buffer, int maxlength);
|
||||
|
||||
@ -427,9 +427,9 @@ native int GetCmdArg(int argnum, char[] buffer, int maxlength);
|
||||
* Retrieves the entire command argument string in one lump from the current
|
||||
* console or server command.
|
||||
*
|
||||
* @param buffer Buffer to use for storing the string.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return Length of string written to buffer.
|
||||
* @param buffer Buffer to use for storing the string.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return Length of string written to buffer.
|
||||
*/
|
||||
native int GetCmdArgString(char[] buffer, int maxlength);
|
||||
|
||||
@ -441,39 +441,39 @@ methodmap CommandIterator < Handle {
|
||||
// SourceMod plugins and allows inspection of properties associated
|
||||
// with the command.
|
||||
//
|
||||
// @return New CommandIterator Handle.
|
||||
// @return New CommandIterator Handle.
|
||||
public native CommandIterator();
|
||||
|
||||
// Determines if there is a next command. If one is found, the
|
||||
// iterator is advanced to it.
|
||||
//
|
||||
// @return true if found and iterator is advanced.
|
||||
// @return true if found and iterator is advanced.
|
||||
public native bool Next();
|
||||
|
||||
// Retrieves the command's description.
|
||||
//
|
||||
// @param buffer Buffer to copy to.
|
||||
// @param maxlen Maximum size of the buffer.
|
||||
// @error Invalid iterator position.
|
||||
// @param buffer Buffer to copy to.
|
||||
// @param maxlen Maximum size of the buffer.
|
||||
// @error Invalid iterator position.
|
||||
public native void GetDescription(char[] buffer, int maxlen);
|
||||
|
||||
// Retrieves the command's name.
|
||||
//
|
||||
// @param buffer Buffer to copy to.
|
||||
// @param maxlen Maximum size of the buffer.
|
||||
// @error Invalid iterator position.
|
||||
// @param buffer Buffer to copy to.
|
||||
// @param maxlen Maximum size of the buffer.
|
||||
// @error Invalid iterator position.
|
||||
public native void GetName(char[] buffer, int maxlen);
|
||||
|
||||
// Retrieves the plugin handle of the command's creator
|
||||
//
|
||||
// @error Invalid iterator position.
|
||||
// @error Invalid iterator position.
|
||||
property Handle Plugin {
|
||||
public native get();
|
||||
}
|
||||
|
||||
// Retrieves the command's default flags
|
||||
//
|
||||
// @error Invalid iterator position.
|
||||
// @error Invalid iterator position.
|
||||
property int Flags {
|
||||
public native get();
|
||||
}
|
||||
@ -482,7 +482,7 @@ methodmap CommandIterator < Handle {
|
||||
/**
|
||||
* Gets a command iterator. Must be freed with CloseHandle().
|
||||
*
|
||||
* @return A new command iterator.
|
||||
* @return A new command iterator.
|
||||
*/
|
||||
native Handle GetCommandIterator();
|
||||
|
||||
@ -490,13 +490,13 @@ native Handle GetCommandIterator();
|
||||
* Reads a command iterator, then advances to the next command if any.
|
||||
* Only SourceMod specific commands are returned.
|
||||
*
|
||||
* @param iter Command iterator Handle.
|
||||
* @param name Name buffer.
|
||||
* @param nameLen Name buffer size.
|
||||
* @param eflags Effective default flags of a command.
|
||||
* @param desc Command description buffer.
|
||||
* @param descLen Command description buffer size.
|
||||
* @return True on success, false if there are no more commands.
|
||||
* @param iter Command iterator Handle.
|
||||
* @param name Name buffer.
|
||||
* @param nameLen Name buffer size.
|
||||
* @param eflags Effective default flags of a command.
|
||||
* @param desc Command description buffer.
|
||||
* @param descLen Command description buffer size.
|
||||
* @return True on success, false if there are no more commands.
|
||||
*/
|
||||
native bool ReadCommandIterator(Handle iter,
|
||||
char[] name,
|
||||
@ -511,16 +511,16 @@ native bool ReadCommandIterator(Handle iter,
|
||||
* commands. This feature essentially allows you to create custom
|
||||
* flags using the override system.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param command Command name. If the command is not found, the default
|
||||
* flags are used.
|
||||
* @param flags Flag string to use as a default, if the command or override
|
||||
* is not found.
|
||||
* @param override_only If true, SourceMod will not attempt to find a matching
|
||||
* command, and it will only use the default flags specified.
|
||||
* Otherwise, SourceMod will ignore the default flags if
|
||||
* there is a matching admin command.
|
||||
* @return True if the client has access, false otherwise.
|
||||
* @param client Client index.
|
||||
* @param command Command name. If the command is not found, the default
|
||||
* flags are used.
|
||||
* @param flags Flag string to use as a default, if the command or override
|
||||
* is not found.
|
||||
* @param override_only If true, SourceMod will not attempt to find a matching
|
||||
* command, and it will only use the default flags specified.
|
||||
* Otherwise, SourceMod will ignore the default flags if
|
||||
* there is a matching admin command.
|
||||
* @return True if the client has access, false otherwise.
|
||||
*/
|
||||
native bool CheckCommandAccess(int client,
|
||||
const char[] command,
|
||||
@ -533,16 +533,16 @@ native bool CheckCommandAccess(int client,
|
||||
* commands. This feature essentially allows you to create custom flags
|
||||
* using the override system.
|
||||
*
|
||||
* @param id AdminId of the admin.
|
||||
* @param command Command name. If the command is not found, the default
|
||||
* flags are used.
|
||||
* @param flags Flag string to use as a default, if the command or override
|
||||
* is not found.
|
||||
* @param override_only If true, SourceMod will not attempt to find a matching
|
||||
* command, and it will only use the default flags specified.
|
||||
* Otherwise, SourceMod will ignore the default flags if
|
||||
* there is a matching admin command.
|
||||
* @return True if the admin has access, false otherwise.
|
||||
* @param id AdminId of the admin.
|
||||
* @param command Command name. If the command is not found, the default
|
||||
* flags are used.
|
||||
* @param flags Flag string to use as a default, if the command or override
|
||||
* is not found.
|
||||
* @param override_only If true, SourceMod will not attempt to find a matching
|
||||
* command, and it will only use the default flags specified.
|
||||
* Otherwise, SourceMod will ignore the default flags if
|
||||
* there is a matching admin command.
|
||||
* @return True if the admin has access, false otherwise.
|
||||
*/
|
||||
native bool CheckAccess(AdminId id,
|
||||
const char[] command,
|
||||
@ -552,18 +552,18 @@ native bool CheckAccess(AdminId id,
|
||||
/**
|
||||
* Returns the bitstring of flags of a command.
|
||||
*
|
||||
* @param name Name of the command.
|
||||
* @return A bitstring containing the FCVAR_* flags that are enabled
|
||||
* or INVALID_FCVAR_FLAGS if command not found.
|
||||
* @param name Name of the command.
|
||||
* @return A bitstring containing the FCVAR_* flags that are enabled
|
||||
* or INVALID_FCVAR_FLAGS if command not found.
|
||||
*/
|
||||
native int GetCommandFlags(const char[] name);
|
||||
|
||||
/**
|
||||
* Sets the bitstring of flags of a command.
|
||||
*
|
||||
* @param name Name of the command.
|
||||
* @param flags A bitstring containing the FCVAR_* flags to enable.
|
||||
* @return True on success, otherwise false.
|
||||
* @param name Name of the command.
|
||||
* @param flags A bitstring containing the FCVAR_* flags to enable.
|
||||
* @return True on success, otherwise false.
|
||||
*/
|
||||
native bool SetCommandFlags(const char[] name, int flags);
|
||||
|
||||
@ -572,38 +572,38 @@ native bool SetCommandFlags(const char[] name, int flags);
|
||||
* ConCommands. If a Handle is returned, the next entry must be read
|
||||
* via FindNextConCommand(). The order of the list is undefined.
|
||||
*
|
||||
* @param buffer Buffer to store entry name.
|
||||
* @param max_size Maximum size of the buffer.
|
||||
* @param isCommand Variable to store whether the entry is a command.
|
||||
* If it is not a command, it is a ConVar.
|
||||
* @param flags Variable to store entry flags.
|
||||
* @param description Buffer to store the description, empty if no description present.
|
||||
* @param descrmax_size Maximum size of the description buffer.
|
||||
* @return On success, a ConCmdIter Handle is returned, which
|
||||
* can be read via FindNextConCommand(), and must be
|
||||
* closed via CloseHandle(). Additionally, the output
|
||||
* parameters will be filled with information of the
|
||||
* first ConCommandBase entry.
|
||||
* On failure, INVALID_HANDLE is returned, and the
|
||||
* contents of outputs is undefined.
|
||||
* @param buffer Buffer to store entry name.
|
||||
* @param max_size Maximum size of the buffer.
|
||||
* @param isCommand Variable to store whether the entry is a command.
|
||||
* If it is not a command, it is a ConVar.
|
||||
* @param flags Variable to store entry flags.
|
||||
* @param description Buffer to store the description, empty if no description present.
|
||||
* @param descrmax_size Maximum size of the description buffer.
|
||||
* @return On success, a ConCmdIter Handle is returned, which
|
||||
can be read via FindNextConCommand(), and must be
|
||||
closed via CloseHandle(). Additionally, the output
|
||||
parameters will be filled with information of the
|
||||
first ConCommandBase entry.
|
||||
On failure, INVALID_HANDLE is returned, and the
|
||||
contents of outputs is undefined.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param search ConCmdIter Handle to search.
|
||||
* @param buffer Buffer to store entry name.
|
||||
* @param max_size Maximum size of the buffer.
|
||||
* @param isCommand Variable to store whether the entry is a command.
|
||||
* If it is not a command, it is a ConVar.
|
||||
* @param flags Variable to store entry flags.
|
||||
* @param description Buffer to store the description, empty if no description present.
|
||||
* @param descrmax_size Maximum size of the description buffer.
|
||||
* @return On success, the outputs are filled, the iterator is
|
||||
* advanced to the next entry, and true is returned.
|
||||
* If no more entries exist, false is returned, and the
|
||||
* contents of outputs is undefined.
|
||||
* @param search ConCmdIter Handle to search.
|
||||
* @param buffer Buffer to store entry name.
|
||||
* @param max_size Maximum size of the buffer.
|
||||
* @param isCommand Variable to store whether the entry is a command.
|
||||
If it is not a command, it is a ConVar.
|
||||
* @param flags Variable to store entry flags.
|
||||
* @param description Buffer to store the description, empty if no description present.
|
||||
* @param descrmax_size Maximum size of the description buffer.
|
||||
* @return On success, the outputs are filled, the iterator is
|
||||
advanced to the next entry, and true is returned.
|
||||
If no more entries exist, false is returned, and the
|
||||
contents of outputs is undefined.
|
||||
*/
|
||||
native bool FindNextConCommand(Handle search, char[] buffer, int max_size, bool &isCommand, int &flags=0, char[] description="", int descrmax_size=0);
|
||||
|
||||
@ -614,14 +614,14 @@ native bool FindNextConCommand(Handle search, char[] buffer, int max_size, bool
|
||||
* Note: Tags are automatically removed when a plugin unloads.
|
||||
* Note: Currently, this function does nothing because of bugs in the Valve master.
|
||||
*
|
||||
* @param tag Tag string to append.
|
||||
* @param tag Tag string to append.
|
||||
*/
|
||||
native void AddServerTag(const char[] tag);
|
||||
|
||||
/**
|
||||
* Removes a tag previously added by the calling plugin.
|
||||
*
|
||||
* @param tag Tag string to remove.
|
||||
* @param tag Tag string to remove.
|
||||
*/
|
||||
native void RemoveServerTag(const char[] tag);
|
||||
|
||||
@ -647,7 +647,7 @@ native void RemoveServerTag(const char[] tag);
|
||||
* @param command Command name, lower case. To get name as typed, use
|
||||
* GetCmdArg() and specify argument 0.
|
||||
* @param argc Argument count.
|
||||
* @return Action to take (see extended notes above).
|
||||
* @return Action to take (see extended notes above).
|
||||
*/
|
||||
typedef CommandListener = function Action (int client, const char[] command, int argc);
|
||||
|
||||
@ -665,7 +665,7 @@ typedef CommandListener = function Action (int client, const char[] command, int
|
||||
* FEATURECAP_COMMANDLISTENER.
|
||||
*
|
||||
* @param callback Callback.
|
||||
* @param command Command, or if not specified, a global listener.
|
||||
* @param command Command, or if not specified, a global listener.
|
||||
* The command is case insensitive.
|
||||
* @return True if this feature is available on the current game,
|
||||
* false otherwise.
|
||||
@ -675,18 +675,18 @@ native bool AddCommandListener(CommandListener callback, const char[] command=""
|
||||
/**
|
||||
* Removes a previously added command listener, in reverse order of being added.
|
||||
*
|
||||
* @param callback Callback.
|
||||
* @param command Command, or if not specified, a global listener.
|
||||
* @param callback Callback.
|
||||
* @param command Command, or if not specified, a global listener.
|
||||
* The command is case insensitive.
|
||||
* @error Callback has no active listeners.
|
||||
* @error Callback has no active listeners.
|
||||
*/
|
||||
native void RemoveCommandListener(CommandListener callback, const char[] command="");
|
||||
|
||||
/**
|
||||
* Returns true if the supplied command exists.
|
||||
*
|
||||
* @param command Command to find.
|
||||
* @return True if command is found, false otherwise.
|
||||
* @param command Command to find.
|
||||
* @return True if command is found, false otherwise.
|
||||
*/
|
||||
stock bool CommandExists(const char[] command)
|
||||
{
|
||||
@ -695,20 +695,20 @@ stock bool CommandExists(const char[] command)
|
||||
/**
|
||||
* Global listener for the chat commands.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param command Command name.
|
||||
* @param sArgs Chat argument string.
|
||||
* @param client Client index.
|
||||
* @param command Command name.
|
||||
* @param sArgs Chat argument string.
|
||||
*
|
||||
* @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.
|
||||
* @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(int client, const char[] command, const char[] sArgs);
|
||||
|
||||
/**
|
||||
* Global post listener for the chat commands.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param command Command name.
|
||||
* @param sArgs Chat argument string.
|
||||
* @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);
|
||||
|
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#if defined _convars_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _convars_included
|
||||
|
||||
@ -49,31 +49,35 @@ enum ConVarBounds
|
||||
*/
|
||||
enum ConVarQueryResult
|
||||
{
|
||||
ConVarQuery_Okay = 0, //< Retrieval of client convar value was successful. */
|
||||
ConVarQuery_NotFound, //< Client convar was not found. */
|
||||
ConVarQuery_NotValid, //< A console command with the same name was found, but there is no convar. */
|
||||
ConVarQuery_Protected //< Client convar was found, but it is protected. The server cannot retrieve its value. */
|
||||
ConVarQuery_Okay = 0, //< Retrieval of client convar value was successful. */
|
||||
ConVarQuery_NotFound, //< Client convar was not found. */
|
||||
ConVarQuery_NotValid, //< A console command with the same name was found, but there is no convar. */
|
||||
ConVarQuery_Protected //< Client convar was found, but it is protected. The server cannot retrieve its value. */
|
||||
};
|
||||
|
||||
// Called when a console variable's value is changed.
|
||||
//
|
||||
// @param convar Handle to the convar that was changed.
|
||||
// @param oldValue String containing the value of the convar before it was changed.
|
||||
// @param newValue String containing the new value of the convar.
|
||||
/**
|
||||
* Called when a console variable's value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar that was changed.
|
||||
* @param oldValue String containing the value of the convar before it was changed.
|
||||
* @param newValue String containing the new value of the convar.
|
||||
*/
|
||||
typedef ConVarChanged = function void (ConVar convar, const char[] oldValue, const char[] newValue);
|
||||
|
||||
// Creates a new console variable.
|
||||
//
|
||||
// @param name Name of new convar.
|
||||
// @param defaultValue String containing the default value of new convar.
|
||||
// @param description Optional description of the convar.
|
||||
// @param flags Optional bitstring of flags determining how the convar should be handled. See FCVAR_* constants for more details.
|
||||
// @param hasMin Optional boolean that determines if the convar has a minimum value.
|
||||
// @param min Minimum floating point value that the convar can have if hasMin is true.
|
||||
// @param hasMax Optional boolean that determines if the convar has a maximum value.
|
||||
// @param max Maximum floating point value that the convar can have if hasMax is true.
|
||||
// @return A handle to the newly created convar. If the convar already exists, a handle to it will still be returned.
|
||||
// @error Convar name is blank or is the same as an existing console command.
|
||||
/**
|
||||
* Creates a new console variable.
|
||||
*
|
||||
* @param name Name of new convar.
|
||||
* @param defaultValue String containing the default value of new convar.
|
||||
* @param description Optional description of the convar.
|
||||
* @param flags Optional bitstring of flags determining how the convar should be handled. See FCVAR_* constants for more details.
|
||||
* @param hasMin Optional boolean that determines if the convar has a minimum value.
|
||||
* @param min Minimum floating point value that the convar can have if hasMin is true.
|
||||
* @param hasMax Optional boolean that determines if the convar has a maximum value.
|
||||
* @param max Maximum floating point value that the convar can have if hasMax is true.
|
||||
* @return A handle to the newly created convar. If the convar already exists, a handle to it will still be returned.
|
||||
* @error Convar name is blank or is the same as an existing console command.
|
||||
*/
|
||||
native ConVar CreateConVar(
|
||||
const char[] name,
|
||||
const char[] defaultValue,
|
||||
@ -82,10 +86,12 @@ native ConVar CreateConVar(
|
||||
bool hasMin=false, float min=0.0,
|
||||
bool hasMax=false, float max=0.0);
|
||||
|
||||
// Searches for a console variable.
|
||||
//
|
||||
// @param name Name of convar to find.
|
||||
// @return A ConVar object if found; null otherwise.
|
||||
/**
|
||||
* Searches for a console variable.
|
||||
*
|
||||
* @param name Name of convar to find.
|
||||
* @return A ConVar object if found; null otherwise.
|
||||
*/
|
||||
native ConVar FindConVar(const char[] name);
|
||||
|
||||
// A ConVar is a configurable, named setting in the srcds console.
|
||||
@ -242,27 +248,27 @@ methodmap ConVar < Handle
|
||||
/**
|
||||
* Creates a hook for when a console variable's value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param callback An OnConVarChanged function pointer.
|
||||
* @error Invalid or corrupt Handle or invalid callback function.
|
||||
* @param convar Handle to the convar.
|
||||
* @param callback An OnConVarChanged function pointer.
|
||||
* @error Invalid or corrupt Handle or invalid callback function.
|
||||
*/
|
||||
native void HookConVarChange(Handle convar, ConVarChanged callback);
|
||||
|
||||
/**
|
||||
* Removes a hook for when a console variable's value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param callback An OnConVarChanged function pointer.
|
||||
* @error Invalid or corrupt Handle, invalid callback function, or no active hook on convar.
|
||||
* @param convar Handle to the convar.
|
||||
* @param callback An OnConVarChanged function pointer.
|
||||
* @error Invalid or corrupt Handle, invalid callback function, or no active hook on convar.
|
||||
*/
|
||||
native void UnhookConVarChange(Handle convar, ConVarChanged callback);
|
||||
|
||||
/**
|
||||
* Returns the boolean value of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @return The boolean value of the convar.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @return The boolean value of the convar.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native bool GetConVarBool(Handle convar);
|
||||
|
||||
@ -272,23 +278,23 @@ native bool GetConVarBool(Handle convar);
|
||||
* Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
|
||||
* Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New boolean value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New boolean value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetConVarBool(Handle convar, bool value, bool replicate=false, bool notify=false);
|
||||
|
||||
/**
|
||||
* Returns the integer value of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @return The integer value of the convar.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @return The integer value of the convar.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native int GetConVarInt(Handle convar);
|
||||
|
||||
@ -298,23 +304,23 @@ native int GetConVarInt(Handle convar);
|
||||
* Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
|
||||
* Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New integer value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New integer value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetConVarInt(Handle convar, int value, bool replicate=false, bool notify=false);
|
||||
|
||||
/**
|
||||
* Returns the floating point value of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @return The floating point value of the convar.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @return The floating point value of the convar.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native float GetConVarFloat(Handle convar);
|
||||
|
||||
@ -324,24 +330,24 @@ native float GetConVarFloat(Handle convar);
|
||||
* Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
|
||||
* Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New floating point value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New floating point value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetConVarFloat(Handle convar, float value, bool replicate=false, bool notify=false);
|
||||
|
||||
/**
|
||||
* Retrieves the string value of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param value Buffer to store the value of the convar.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param value Buffer to store the value of the convar.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void GetConVarString(Handle convar, char[] value, int maxlength);
|
||||
|
||||
@ -351,14 +357,14 @@ native void GetConVarString(Handle convar, char[] value, int maxlength);
|
||||
* Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
|
||||
* Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New string value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param value New string value.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetConVarString(Handle convar, const char[] value, bool replicate=false, bool notify=false);
|
||||
|
||||
@ -368,85 +374,85 @@ native void SetConVarString(Handle convar, const char[] value, bool replicate=fa
|
||||
* Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
|
||||
* Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param replicate If set to true, the new convar value will be set on all clients.
|
||||
* This will only work if the convar has the FCVAR_REPLICATED flag
|
||||
* and actually exists on clients.
|
||||
* @param notify If set to true, clients will be notified that the convar has changed.
|
||||
* This will only work if the convar has the FCVAR_NOTIFY flag.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void ResetConVar(Handle convar, bool replicate=false, bool notify=false);
|
||||
|
||||
/**
|
||||
* Retrieves the default string value of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param value Buffer to store the default value of the convar.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param value Buffer to store the default value of the convar.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native int GetConVarDefault(Handle convar, char[] value, int maxlength);
|
||||
|
||||
/**
|
||||
* Returns the bitstring of flags on a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @return A bitstring containing the FCVAR_* flags that are enabled.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @return A bitstring containing the FCVAR_* flags that are enabled.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native int GetConVarFlags(Handle convar);
|
||||
|
||||
/**
|
||||
* Sets the bitstring of flags on a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param flags A bitstring containing the FCVAR_* flags to enable.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param flags A bitstring containing the FCVAR_* flags to enable.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetConVarFlags(Handle convar, int flags);
|
||||
|
||||
/**
|
||||
* Retrieves the specified bound of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param type Type of bound to retrieve, ConVarBound_Lower or ConVarBound_Upper.
|
||||
* @param value By-reference cell to store the specified floating point bound value.
|
||||
* @return True if the convar has the specified bound set, false otherwise.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param type Type of bound to retrieve, ConVarBound_Lower or ConVarBound_Upper.
|
||||
* @param value By-reference cell to store the specified floating point bound value.
|
||||
* @return True if the convar has the specified bound set, false otherwise.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native bool GetConVarBounds(Handle convar, ConVarBounds type, float &value);
|
||||
|
||||
/**
|
||||
* Sets the specified bound of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param type Type of bound to set, ConVarBound_Lower or ConVarBound_Upper
|
||||
* @param set If set to true, convar will use specified bound. If false, bound will be removed.
|
||||
* @param value Floating point value to use as the specified bound.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param type Type of bound to set, ConVarBound_Lower or ConVarBound_Upper
|
||||
* @param set If set to true, convar will use specified bound. If false, bound will be removed.
|
||||
* @param value Floating point value to use as the specified bound.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetConVarBounds(Handle convar, ConVarBounds type, bool set, float value=0.0);
|
||||
|
||||
/**
|
||||
* Retrieves the name of a console variable.
|
||||
*
|
||||
* @param convar Handle to the convar.
|
||||
* @param name Buffer to store the name of the convar.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param convar Handle to the convar.
|
||||
* @param name Buffer to store the name of the convar.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param client Client index
|
||||
* @param convar ConVar handle
|
||||
* @param value String value to send
|
||||
* @return True on success, false on failure
|
||||
* @error Invalid client index, client not in game, or client is fake
|
||||
* @param client Client index
|
||||
* @param convar ConVar handle
|
||||
* @param value String value to send
|
||||
* @return True on success, false on failure
|
||||
* @error Invalid client index, client not in game, or client is fake
|
||||
*/
|
||||
native bool SendConVarValue(int client, Handle convar, const char[] value);
|
||||
|
||||
@ -454,43 +460,43 @@ typeset ConVarQueryFinished
|
||||
{
|
||||
// Called when a query to retrieve a client's console variable has finished.
|
||||
//
|
||||
// @param cookie Unique identifier of query.
|
||||
// @param client Player index.
|
||||
// @param result Result of query that tells one whether or not query was successful.
|
||||
// See ConVarQueryResult enum for more details.
|
||||
// @param convarName Name of client convar that was queried.
|
||||
// @param convarValue Value of client convar that was queried if successful. This will be "" if it was not.
|
||||
// @param value Value that was passed when query was started.
|
||||
// @param cookie Unique identifier of query.
|
||||
// @param client Player index.
|
||||
// @param result Result of query that tells one whether or not query was successful.
|
||||
// See ConVarQueryResult enum for more details.
|
||||
// @param convarName Name of client convar that was queried.
|
||||
// @param convarValue Value of client convar that was queried if successful. This will be "" if it was not.
|
||||
// @param value Value that was passed when query was started.
|
||||
function void (QueryCookie cookie, int client, ConVarQueryResult result, const char[] cvarName, const char[] cvarValue, any value);
|
||||
|
||||
// Called when a query to retrieve a client's console variable has finished.
|
||||
//
|
||||
// @param cookie Unique identifier of query.
|
||||
// @param client Player index.
|
||||
// @param result Result of query that tells one whether or not query was successful.
|
||||
// See ConVarQueryResult enum for more details.
|
||||
// @param convarName Name of client convar that was queried.
|
||||
// @param convarValue Value of client convar that was queried if successful. This will be "" if it was not.
|
||||
// @param cookie Unique identifier of query.
|
||||
// @param client Player index.
|
||||
// @param result Result of query that tells one whether or not query was successful.
|
||||
// See ConVarQueryResult enum for more details.
|
||||
// @param convarName Name of client convar that was queried.
|
||||
// @param convarValue Value of client convar that was queried if successful. This will be "" if it was not.
|
||||
function void (QueryCookie cookie, int client, ConVarQueryResult result, const char[] cvarName, const char[] cvarValue);
|
||||
};
|
||||
|
||||
/**
|
||||
* Starts a query to retrieve the value of a client's console variable.
|
||||
*
|
||||
* @param client Player index.
|
||||
* @param cvarName Name of client convar to query.
|
||||
* @param callback A function to use as a callback when the query has finished.
|
||||
* @param value Optional value to pass to the callback function.
|
||||
* @return A cookie that uniquely identifies the query.
|
||||
* Returns QUERYCOOKIE_FAILED on failure, such as when used on a bot.
|
||||
* @param client Player index.
|
||||
* @param cvarName Name of client convar to query.
|
||||
* @param callback A function to use as a callback when the query has finished.
|
||||
* @param value Optional value to pass to the callback function.
|
||||
* @return A cookie that uniquely identifies the query.
|
||||
* Returns QUERYCOOKIE_FAILED on failure, such as when used on a bot.
|
||||
*/
|
||||
native QueryCookie QueryClientConVar(int client, const char[] cvarName, ConVarQueryFinished callback, any value=0);
|
||||
|
||||
/**
|
||||
* Returns true if the supplied character is valid in a ConVar name.
|
||||
*
|
||||
* @param c Character to validate.
|
||||
* @return True is valid for ConVars, false otherwise
|
||||
* @param c Character to validate.
|
||||
* @return True is valid for ConVars, false otherwise
|
||||
*/
|
||||
stock bool IsValidConVarChar(int c)
|
||||
{
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <version>
|
||||
|
||||
/** If this gets changed, you need to update Core's check. */
|
||||
#define SOURCEMOD_PLUGINAPI_VERSION 5
|
||||
#define SOURCEMOD_PLUGINAPI_VERSION 5
|
||||
|
||||
struct PlVers
|
||||
{
|
||||
@ -53,10 +53,10 @@ struct PlVers
|
||||
*/
|
||||
enum Action
|
||||
{
|
||||
Plugin_Continue = 0, /**< Continue with the original action */
|
||||
Plugin_Changed = 1, /**< Inputs or outputs have been overridden with new values */
|
||||
Plugin_Handled = 3, /**< Handle the action at the end (don't call it) */
|
||||
Plugin_Stop = 4, /**< Immediately stop the hook chain and handle the original */
|
||||
Plugin_Continue = 0, /**< Continue with the original action */
|
||||
Plugin_Changed = 1, /**< Inputs or outputs have been overridden with new values */
|
||||
Plugin_Handled = 3, /**< Handle the action at the end (don't call it) */
|
||||
Plugin_Stop = 4 /**< Immediately stop the hook chain and handle the original */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -82,17 +82,17 @@ public PlVers __version =
|
||||
*/
|
||||
enum PluginStatus
|
||||
{
|
||||
Plugin_Running=0, /**< Plugin is running */
|
||||
Plugin_Running=0, /**< Plugin is running */
|
||||
/* All states below are "temporarily" unexecutable */
|
||||
Plugin_Paused, /**< Plugin is loaded but paused */
|
||||
Plugin_Error, /**< Plugin is loaded but errored/locked */
|
||||
Plugin_Paused, /**< Plugin is loaded but paused */
|
||||
Plugin_Error, /**< Plugin is loaded but errored/locked */
|
||||
/* All states below do not have all natives */
|
||||
Plugin_Loaded, /**< Plugin has passed loading and can be finalized */
|
||||
Plugin_Failed, /**< Plugin has a fatal failure */
|
||||
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_Loaded, /**< Plugin has passed loading and can be finalized */
|
||||
Plugin_Failed, /**< Plugin has a fatal failure */
|
||||
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 */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -112,11 +112,11 @@ enum PluginStatus
|
||||
*/
|
||||
enum PluginInfo
|
||||
{
|
||||
PlInfo_Name, /**< Plugin name */
|
||||
PlInfo_Author, /**< Plugin author */
|
||||
PlInfo_Description, /**< Plugin description */
|
||||
PlInfo_Version, /**< Plugin version */
|
||||
PlInfo_URL, /**< Plugin URL */
|
||||
PlInfo_Name, /**< Plugin name */
|
||||
PlInfo_Author, /**< Plugin author */
|
||||
PlInfo_Description, /**< Plugin description */
|
||||
PlInfo_Version, /**< Plugin version */
|
||||
PlInfo_URL /**< Plugin URL */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -124,10 +124,10 @@ enum PluginInfo
|
||||
*/
|
||||
struct Extension
|
||||
{
|
||||
public const char[] name; /**< Short name */
|
||||
public const char[] file; /**< Default file name */
|
||||
public bool autoload; /**< Whether or not to auto-load */
|
||||
public bool required; /**< Whether or not to require */
|
||||
public const char[] name; /**< Short name */
|
||||
public const char[] file; /**< Default file name */
|
||||
public bool autoload; /**< Whether or not to auto-load */
|
||||
public bool required; /**< Whether or not to require */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -135,13 +135,13 @@ struct Extension
|
||||
*/
|
||||
struct SharedPlugin
|
||||
{
|
||||
public const char[] name; /**< Short name */
|
||||
public const char[] file; /**< File name */
|
||||
public bool required; /**< Whether or not to require */
|
||||
public const char[] name; /**< Short name */
|
||||
public const char[] file; /**< File name */
|
||||
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 char 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 */
|
||||
|
||||
/**
|
||||
* Check if the given vector is the NULL_VECTOR.
|
||||
@ -177,7 +177,7 @@ native int VerifyCoreVersion();
|
||||
* or otherwise non-existent, the plugin will still work. Calling
|
||||
* removed natives results in a run-time error.
|
||||
*
|
||||
* @param name Native name.
|
||||
* @param name Native name.
|
||||
*/
|
||||
native void MarkNativeAsOptional(const char[] name);
|
||||
|
||||
@ -187,7 +187,7 @@ public void __ext_core_SetNTVOptional()
|
||||
MarkNativeAsOptional("RequireFeature");
|
||||
MarkNativeAsOptional("AddCommandListener");
|
||||
MarkNativeAsOptional("RemoveCommandListener");
|
||||
|
||||
|
||||
MarkNativeAsOptional("BfWriteBool");
|
||||
MarkNativeAsOptional("BfWriteByte");
|
||||
MarkNativeAsOptional("BfWriteChar");
|
||||
@ -247,7 +247,7 @@ public void __ext_core_SetNTVOptional()
|
||||
MarkNativeAsOptional("BfRead.ReadVecNormal");
|
||||
MarkNativeAsOptional("BfRead.ReadAngles");
|
||||
MarkNativeAsOptional("BfRead.BytesLeft.get");
|
||||
|
||||
|
||||
MarkNativeAsOptional("PbReadInt");
|
||||
MarkNativeAsOptional("PbReadFloat");
|
||||
MarkNativeAsOptional("PbReadBool");
|
||||
@ -310,7 +310,7 @@ public void __ext_core_SetNTVOptional()
|
||||
MarkNativeAsOptional("Protobuf.ReadMessage");
|
||||
MarkNativeAsOptional("Protobuf.ReadRepeatedMessage");
|
||||
MarkNativeAsOptional("Protobuf.AddMessage");
|
||||
|
||||
|
||||
VerifyCoreVersion();
|
||||
}
|
||||
|
||||
|
@ -31,22 +31,22 @@
|
||||
*/
|
||||
|
||||
#if defined _cstrike_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _cstrike_included
|
||||
|
||||
#define CS_TEAM_NONE 0 /**< No team yet. */
|
||||
#define CS_TEAM_SPECTATOR 1 /**< Spectators. */
|
||||
#define CS_TEAM_T 2 /**< Terrorists. */
|
||||
#define CS_TEAM_CT 3 /**< Counter-Terrorists. */
|
||||
#define CS_TEAM_NONE 0 /**< No team yet. */
|
||||
#define CS_TEAM_SPECTATOR 1 /**< Spectators. */
|
||||
#define CS_TEAM_T 2 /**< Terrorists. */
|
||||
#define CS_TEAM_CT 3 /**< Counter-Terrorists. */
|
||||
|
||||
#define CS_SLOT_PRIMARY 0 /**< Primary weapon slot. */
|
||||
#define CS_SLOT_SECONDARY 1 /**< Secondary weapon slot. */
|
||||
#define CS_SLOT_KNIFE 2 /**< Knife slot. */
|
||||
#define CS_SLOT_GRENADE 3 /**< Grenade slot (will only return one grenade). */
|
||||
#define CS_SLOT_C4 4 /**< C4 slot. */
|
||||
#define CS_SLOT_PRIMARY 0 /**< Primary weapon slot. */
|
||||
#define CS_SLOT_SECONDARY 1 /**< Secondary weapon slot. */
|
||||
#define CS_SLOT_KNIFE 2 /**< Knife slot. */
|
||||
#define CS_SLOT_GRENADE 3 /**< Grenade slot (will only return one grenade). */
|
||||
#define CS_SLOT_C4 4 /**< C4 slot. */
|
||||
|
||||
#define CS_DMG_HEADSHOT (1 << 30) /**< Headshot */
|
||||
#define CS_DMG_HEADSHOT (1 << 30) /**< Headshot */
|
||||
|
||||
enum CSRoundEndReason
|
||||
{
|
||||
@ -70,8 +70,8 @@ enum CSRoundEndReason
|
||||
// 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 */
|
||||
CSRoundEnd_TerroristsPlanted, /**< Terrorists Planted the bomb */
|
||||
CSRoundEnd_CTsReachedHostage /**< CTs Reached the hostage */
|
||||
};
|
||||
|
||||
enum CSWeaponID
|
||||
@ -177,8 +177,8 @@ enum CSWeaponID
|
||||
* Return Plugin_Continue to allow the purchase or return a
|
||||
* higher action to deny.
|
||||
*
|
||||
* @param client Client index
|
||||
* @param weapon User input for weapon name
|
||||
* @param client Client index
|
||||
* @param weapon User input for weapon name
|
||||
*/
|
||||
forward Action CS_OnBuyCommand(int client, const char[] weapon);
|
||||
|
||||
@ -187,8 +187,8 @@ forward Action CS_OnBuyCommand(int client, const char[] weapon);
|
||||
* Return Plugin_Continue to allow the call or return a
|
||||
* higher action to block.
|
||||
*
|
||||
* @param client Client index
|
||||
* @param weaponIndex Weapon index
|
||||
* @param client Client index
|
||||
* @param weaponIndex Weapon index
|
||||
*/
|
||||
forward Action CS_OnCSWeaponDrop(int client, int weaponIndex);
|
||||
|
||||
@ -199,11 +199,11 @@ forward Action CS_OnCSWeaponDrop(int client, int weaponIndex);
|
||||
*
|
||||
* @note This can be called multiple times per weapon purchase
|
||||
*
|
||||
* @param client Client index
|
||||
* @param weapon Weapon classname
|
||||
* @param price Buffer param for the price of the weapon
|
||||
* @param client Client index
|
||||
* @param weapon Weapon classname
|
||||
* @param price Buffer param for the price of the weapon
|
||||
*
|
||||
* @note Not all "weapons" call GetWeaponPrice. Example: c4, knife, vest, vest helmet, night vision.
|
||||
* @note Not all "weapons" call GetWeaponPrice. Example: c4, knife, vest, vest helmet, night vision.
|
||||
*/
|
||||
forward Action CS_OnGetWeaponPrice(int client, const char[] weapon, int &price);
|
||||
|
||||
@ -213,171 +213,173 @@ forward Action CS_OnGetWeaponPrice(int client, const char[] weapon, int &price);
|
||||
* using the given delay and reason, or return Plugin_Handled or a higher
|
||||
* action to block TerminateRound from firing.
|
||||
*
|
||||
* @param delay Time (in seconds) until new round starts
|
||||
* @param reason Reason for round end
|
||||
* @param delay Time (in seconds) until new round starts
|
||||
* @param reason Reason for round end
|
||||
*/
|
||||
forward Action CS_OnTerminateRound(float &delay, CSRoundEndReason &reason);
|
||||
|
||||
/**
|
||||
* Respawns a player.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game.
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game.
|
||||
*/
|
||||
native void CS_RespawnPlayer(int client);
|
||||
|
||||
/**
|
||||
* Switches the player's team.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param team Team index.
|
||||
* @error Invalid client index, client not in game.
|
||||
* @param client Player's index.
|
||||
* @param team Team index.
|
||||
* @error Invalid client index, client not in game.
|
||||
*/
|
||||
native void CS_SwitchTeam(int client, int team);
|
||||
|
||||
/**
|
||||
* Forces a player to drop or toss their weapon
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param weaponIndex Index of weapon to drop.
|
||||
* @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
|
||||
*
|
||||
* @error Invalid client index, client not in game, or invalid weapon index.
|
||||
* @param client Player's index.
|
||||
* @param weaponIndex Index of weapon to drop.
|
||||
* @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
|
||||
* @error Invalid client index, client not in game, or invalid weapon index.
|
||||
*/
|
||||
native void CS_DropWeapon(int client, int weaponIndex, bool toss, bool blockhook = false);
|
||||
|
||||
/**
|
||||
* Forces round to end with a reason
|
||||
*
|
||||
* @param delay Time (in seconds) to delay before new round starts
|
||||
* @param reason Reason for the round ending
|
||||
* @param blockhook Set to true to stop the corresponding CS_OnTerminateRound
|
||||
* forward from being called.
|
||||
* @param delay Time (in seconds) to delay before new round starts
|
||||
* @param reason Reason for the round ending
|
||||
* @param blockhook Set to true to stop the corresponding CS_OnTerminateRound
|
||||
* forward from being called.
|
||||
*/
|
||||
native void CS_TerminateRound(float delay, CSRoundEndReason reason, bool blockhook = false);
|
||||
|
||||
/**
|
||||
* Gets a weapon name from a weapon alias
|
||||
*
|
||||
* @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.
|
||||
* @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.
|
||||
*
|
||||
* @note Will set the buffer to the original alias if it is not an alias to a weapon.
|
||||
* @note Will set the buffer to the original alias if it is not an alias to a weapon.
|
||||
*/
|
||||
native void CS_GetTranslatedWeaponAlias(const char[] alias, char[] weapon, int size);
|
||||
|
||||
/**
|
||||
* Gets a weapon's price
|
||||
*
|
||||
* @param client Client to check weapon price for.
|
||||
* @param id Weapon id for the weapon to check
|
||||
* @param defaultprice Set to true to get defaultprice.
|
||||
* @return Returns price of the weapon (even if modified)
|
||||
* @param client Client to check weapon price for.
|
||||
* @param id Weapon id for the weapon to check
|
||||
* @param defaultprice Set to true to get defaultprice.
|
||||
* @return Returns price of the weapon (even if modified)
|
||||
* @error Invalid client, failing to get weapon info, or failing to get price offset.
|
||||
*
|
||||
* @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.
|
||||
* @note c4, knife and shield will always return 0. vest, vest helmet and night vision will always return default price.
|
||||
*/
|
||||
native int CS_GetWeaponPrice(int client, CSWeaponID id, bool defaultprice = false);
|
||||
|
||||
/**
|
||||
* Gets a clients clan tag
|
||||
* @param client Client index to get clan tag for.
|
||||
* @param buffer Buffer to store clients clan tag in.
|
||||
* @param size Size of the buffer.
|
||||
* @return Number of non-null bytes written.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to get clan tag for.
|
||||
* @param buffer Buffer to store clients clan tag in.
|
||||
* @param size Size of the buffer.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Invalid client.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to set clan tag for.
|
||||
* @param tag Tag to set clients clan tag as.
|
||||
* @error Invalid client.
|
||||
*/
|
||||
native void CS_SetClientClanTag(int client, const char[] tag);
|
||||
|
||||
/**
|
||||
* Gets a team's score
|
||||
* @param team Team index to get score for.
|
||||
* @return Returns the internal team score.
|
||||
*
|
||||
* @error Invalid team index.
|
||||
* @param team Team index to get score for.
|
||||
* @return Returns the internal team score.
|
||||
* @error Invalid team index.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @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.
|
||||
* @param team Team index to set score for.
|
||||
* @param value Value to set teams score as.
|
||||
* @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 void CS_SetTeamScore(int team, int value);
|
||||
|
||||
/**
|
||||
* Gets a client's mvp count
|
||||
* @param client Client index to get mvp count of.
|
||||
* @return Returns the client's internal MVP count.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to get mvp count of.
|
||||
* @return Returns the client's internal MVP count.
|
||||
* @error Invalid 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.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to set mvp count for.
|
||||
* @param value Value to set client's mvp count as.
|
||||
* @error Invalid client.
|
||||
*/
|
||||
native void CS_SetMVPCount(int client, int value);
|
||||
|
||||
/**
|
||||
* Gets a client's contribution score (CS:GO only)
|
||||
* @param client Client index to get score of.
|
||||
* @return Returns the client's score.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to get score of.
|
||||
* @return Returns the client's score.
|
||||
* @error Invalid 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.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to set score for.
|
||||
* @param value Value to set client's score as.
|
||||
* @error Invalid client.
|
||||
*/
|
||||
native void CS_SetClientContributionScore(int client, int value);
|
||||
|
||||
/**
|
||||
* Gets a client's assists (CS:GO only)
|
||||
* @param client Client index to get assists of.
|
||||
* @return Returns the client's assists.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to get assists of.
|
||||
* @return Returns the client's assists.
|
||||
* @error Invalid 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.
|
||||
*
|
||||
* @error Invalid client.
|
||||
* @param client Client index to set assists for.
|
||||
* @param value Value to set client's assists as.
|
||||
* @error Invalid client.
|
||||
*/
|
||||
native void CS_SetClientAssists(int client, int value);
|
||||
|
||||
/**
|
||||
* Gets a weaponID from a alias
|
||||
* @param alias Weapon alias to attempt to get an id for.
|
||||
* @return Returns a weapon id or 0 if failed to find a match.
|
||||
*
|
||||
* @param alias Weapon alias to attempt to get an id for.
|
||||
* @return Returns a weapon id or 0 if failed to find a match.
|
||||
*
|
||||
* @note For best results use CS_GetTranslatedWeaponAlias on the weapon name before passing it.
|
||||
*/
|
||||
@ -385,17 +387,19 @@ native CSWeaponID CS_AliasToWeaponID(const char[] alias);
|
||||
|
||||
/**
|
||||
* Gets a alias from a weaponID
|
||||
* @param weaponID WeaponID to get alias for.
|
||||
* @param destination Destination string to hold the weapon alias.
|
||||
* @param len Length of the destination array.
|
||||
* @return Returns number of cells written.
|
||||
*
|
||||
* @param weaponID WeaponID to get alias for.
|
||||
* @param destination Destination string to hold the weapon alias.
|
||||
* @param len Length of the destination array.
|
||||
* @return Returns number of cells written.
|
||||
*/
|
||||
native int CS_WeaponIDToAlias(CSWeaponID weaponID, char[] destination, int len);
|
||||
|
||||
/**
|
||||
* Returns weather a WeaponID is valid on the current mod (css or csgo)
|
||||
* @param weaponID WeaponID to check
|
||||
* @return Returns true if its a valid WeaponID false otherwise.
|
||||
*
|
||||
* @param weaponID WeaponID to check
|
||||
* @return Returns true if its a valid WeaponID false otherwise.
|
||||
*
|
||||
* @note This will return false always for CSWeapon_NONE. Should only be called after OnMapStart since weapon info isnt intialized before.
|
||||
*/
|
||||
@ -404,30 +408,30 @@ native bool CS_IsValidWeaponID(CSWeaponID id);
|
||||
/**
|
||||
* Sets a player's model based on their current class
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game.
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game.
|
||||
*/
|
||||
native void CS_UpdateClientModel(int client);
|
||||
|
||||
/**
|
||||
* Returns a CSWeaponID equivalent based on the item definition index.
|
||||
*
|
||||
* @param iDefIndex Definition index to get the CSWeaponID value for.
|
||||
* @return Returns CSWeaponID value for the definition index.
|
||||
*
|
||||
* @error Invalid definition index.
|
||||
* @note In most cases the id will be the item definition index. Works for CS:GO ONLY.
|
||||
* @param iDefIndex Definition index to get the CSWeaponID value for.
|
||||
* @return Returns CSWeaponID value for the definition index.
|
||||
* @error Invalid definition index.
|
||||
*
|
||||
* @note In most cases the id will be the item definition index. Works for CS:GO ONLY.
|
||||
*/
|
||||
native CSWeaponID CS_ItemDefIndexToID(int iDefIndex);
|
||||
|
||||
/**
|
||||
* Returns a item definition index equivalent based on the CSWeaponID.
|
||||
*
|
||||
* @param id CSWeaponID to get the item definition for.
|
||||
* @return Returns item definition index value for the weapon id.
|
||||
*
|
||||
* @error Invalid weapon id.
|
||||
* @note In most cases the item deinition index will be the id. Works for CS:GO ONLY.
|
||||
* @param id CSWeaponID to get the item definition for.
|
||||
* @return Returns item definition index value for the weapon id.
|
||||
* @error Invalid weapon id.
|
||||
*
|
||||
* @note In most cases the item deinition index will be the id. Works for CS:GO ONLY.
|
||||
*/
|
||||
native int CS_WeaponIDToItemDefIndex(CSWeaponID id);
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
||||
/**
|
||||
* Opaque handle to a datapack position.
|
||||
*/
|
||||
enum DataPackPos: {};
|
||||
enum DataPackPos: {};
|
||||
|
||||
// A DataPack allows serializing multiple variables into a single stream.
|
||||
methodmap DataPack < Handle
|
||||
@ -49,58 +49,58 @@ methodmap DataPack < Handle
|
||||
|
||||
// Packs a normal cell into a data pack.
|
||||
//
|
||||
// @param cell Cell to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
// @param cell Cell to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
public native void WriteCell(any cell, bool insert = false);
|
||||
|
||||
// Packs a float into a data pack.
|
||||
//
|
||||
// @param val Float to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
// @param val Float to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
public native void WriteFloat(float val, bool insert = false);
|
||||
|
||||
// Packs a string into a data pack.
|
||||
//
|
||||
// @param str String to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
// @param str String to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
public native void WriteString(const char[] str, bool insert = false);
|
||||
|
||||
// Packs a function pointer into a data pack.
|
||||
//
|
||||
// @param fktptr Function pointer to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
// @param fktptr Function pointer to add.
|
||||
// @param insert Determines whether mid-pack writes will insert instead of overwrite.
|
||||
public native void WriteFunction(Function fktptr, bool insert = false);
|
||||
|
||||
// Reads a cell from a data pack.
|
||||
//
|
||||
// @param pack Handle to the 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.
|
||||
// @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.
|
||||
// @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.
|
||||
// @return Function pointer.
|
||||
public native Function ReadFunction();
|
||||
|
||||
// Resets the position in a data pack.
|
||||
//
|
||||
// @param clear If true, clears the contained data.
|
||||
// @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 unused Unused variable. Exists for backwards compatability.
|
||||
// @param unused Unused variable. Exists for backwards compatability.
|
||||
public native bool IsReadable(int unused = 0);
|
||||
|
||||
// The read or write position in a data pack.
|
||||
@ -113,117 +113,117 @@ methodmap DataPack < Handle
|
||||
/**
|
||||
* Creates a new data pack.
|
||||
*
|
||||
* @return A Handle to the data pack. Must be closed with CloseHandle().
|
||||
* @return A Handle to the data pack. Must be closed with CloseHandle().
|
||||
*/
|
||||
native DataPack CreateDataPack();
|
||||
|
||||
/**
|
||||
* Packs a normal cell into a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @param cell Cell to add.
|
||||
* @error Invalid handle.
|
||||
* @param pack Handle to the data pack.
|
||||
* @param cell Cell to add.
|
||||
* @error Invalid handle.
|
||||
*/
|
||||
native void WritePackCell(Handle pack, any cell);
|
||||
|
||||
/**
|
||||
* Packs a float into a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @param val Float to add.
|
||||
* @error Invalid handle.
|
||||
* @param pack Handle to the data pack.
|
||||
* @param val Float to add.
|
||||
* @error Invalid handle.
|
||||
*/
|
||||
native void WritePackFloat(Handle pack, float val);
|
||||
|
||||
/**
|
||||
* Packs a string into a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @param str String to add.
|
||||
* @error Invalid handle.
|
||||
* @param pack Handle to the data pack.
|
||||
* @param str String to add.
|
||||
* @error Invalid handle.
|
||||
*/
|
||||
native void WritePackString(Handle pack, const char[] str);
|
||||
|
||||
/**
|
||||
* Packs a function pointer into a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @param fktptr Function pointer to add.
|
||||
* @error Invalid handle.
|
||||
* @param pack Handle to the data pack.
|
||||
* @param fktptr Function pointer to add.
|
||||
* @error Invalid handle.
|
||||
*/
|
||||
native void WritePackFunction(Handle pack, Function fktptr);
|
||||
|
||||
/**
|
||||
* Reads a cell from a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @return Cell value.
|
||||
* @error Invalid handle, or bounds error.
|
||||
* @param pack Handle to the data pack.
|
||||
* @return Cell value.
|
||||
* @error Invalid handle, or bounds error.
|
||||
*/
|
||||
native any ReadPackCell(Handle pack);
|
||||
|
||||
/**
|
||||
* Reads a float from a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @return Float value.
|
||||
* @error Invalid handle, or bounds error.
|
||||
* @param pack Handle to the data pack.
|
||||
* @return Float value.
|
||||
* @error Invalid handle, or bounds error.
|
||||
*/
|
||||
native float ReadPackFloat(Handle pack);
|
||||
|
||||
/**
|
||||
* Reads a string from a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @error Invalid handle, or bounds error.
|
||||
* @param pack Handle to the data pack.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @error Invalid handle, or bounds error.
|
||||
*/
|
||||
native void ReadPackString(Handle pack, char[] buffer, int maxlen);
|
||||
|
||||
/**
|
||||
* Reads a function pointer from a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @return Function pointer.
|
||||
* @error Invalid handle, or bounds error.
|
||||
* @param pack Handle to the data pack.
|
||||
* @return Function pointer.
|
||||
* @error Invalid handle, or bounds error.
|
||||
*/
|
||||
native Function ReadPackFunction(Handle pack);
|
||||
|
||||
/**
|
||||
* Resets the position in a data pack.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @param clear If true, clears the contained data.
|
||||
* @error Invalid handle.
|
||||
* @param pack Handle to the data pack.
|
||||
* @param clear If true, clears the contained data.
|
||||
* @error Invalid handle.
|
||||
*/
|
||||
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 Position in the data pack, only usable with calls to SetPackPosition.
|
||||
* @error Invalid handle.
|
||||
* @param pack Handle to the data pack.
|
||||
* @return Position in the data pack, only usable with calls to SetPackPosition.
|
||||
* @error Invalid handle.
|
||||
*/
|
||||
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. Must have been previously retrieved from a call to GetPackPosition.
|
||||
* @error Invalid handle, or position is beyond the pack bounds.
|
||||
* @param pack Handle to the data pack.
|
||||
* @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, DataPackPos position);
|
||||
|
||||
/**
|
||||
* Returns whether or not a specified number of bytes from the data pack
|
||||
* position to the end can be read.
|
||||
* position to the end can be read.
|
||||
*
|
||||
* @param pack Handle to the data pack.
|
||||
* @param bytes Number of bytes to simulate reading.
|
||||
* @return True if can be read, false otherwise.
|
||||
* @error Invalid handle.
|
||||
* @param pack Handle to the data pack.
|
||||
* @param bytes Number of bytes to simulate reading.
|
||||
* @return True if can be read, false otherwise.
|
||||
* @error Invalid handle.
|
||||
*/
|
||||
native bool IsPackReadable(Handle pack, int bytes);
|
||||
|
@ -40,10 +40,10 @@
|
||||
*/
|
||||
enum DBResult
|
||||
{
|
||||
DBVal_Error = 0, /**< Column number/field is invalid. */
|
||||
DBVal_TypeMismatch = 1, /**< You cannot retrieve this data with this type. */
|
||||
DBVal_Null = 2, /**< Field has no data (NULL) */
|
||||
DBVal_Data = 3, /**< Field has data */
|
||||
DBVal_Error = 0, /**< Column number/field is invalid. */
|
||||
DBVal_TypeMismatch = 1, /**< You cannot retrieve this data with this type. */
|
||||
DBVal_Null = 2, /**< Field has no data (NULL) */
|
||||
DBVal_Data = 3 /**< Field has data */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -51,9 +51,9 @@ enum DBResult
|
||||
*/
|
||||
enum DBBindType
|
||||
{
|
||||
DBBind_Int = 0, /**< Bind an integer. */
|
||||
DBBind_Float = 1, /**< Bind a float. */
|
||||
DBBind_String = 2, /**< Bind a string. */
|
||||
DBBind_Int = 0, /**< Bind an integer. */
|
||||
DBBind_Float = 1, /**< Bind a float. */
|
||||
DBBind_String = 2 /**< Bind a string. */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -61,9 +61,9 @@ enum DBBindType
|
||||
*/
|
||||
enum DBPriority
|
||||
{
|
||||
DBPrio_High = 0, /**< High priority. */
|
||||
DBPrio_Normal = 1, /**< Normal priority. */
|
||||
DBPrio_Low = 2, /**< Low priority. */
|
||||
DBPrio_High = 0, /**< High priority. */
|
||||
DBPrio_Normal = 1, /**< Normal priority. */
|
||||
DBPrio_Low = 2 /**< Low priority. */
|
||||
};
|
||||
|
||||
// A Driver represents a database backend, currently MySQL or SQLite.
|
||||
@ -192,8 +192,7 @@ methodmap DBResultSet < Handle
|
||||
// @return Number of bytes written.
|
||||
// @error Invalid field index, invalid type conversion requested
|
||||
// from the database, or no current result set.
|
||||
public native int FetchString(int field, char[] buffer, int maxlength,
|
||||
DBResult &result=DBVal_Error);
|
||||
public native int FetchString(int field, char[] buffer, int maxlength, DBResult &result=DBVal_Error);
|
||||
|
||||
// Fetches a float from a field in the current row of a result set.
|
||||
// If the result is NULL, a value of 0.0 will be returned. A NULL
|
||||
@ -257,14 +256,16 @@ typeset SQLTxnSuccess
|
||||
function void (Database db, any data, int numQueries, DBResultSet[] results, any[] queryData);
|
||||
}
|
||||
|
||||
// Callback for a failed transaction.
|
||||
//
|
||||
// @param db Database handle.
|
||||
// @param data Data value passed to SQL_ExecuteTransaction().
|
||||
// @param numQueries Number of queries executed in the transaction.
|
||||
// @param error Error message.
|
||||
// @param failIndex Index of the query that failed, or -1 if something else.
|
||||
// @param queryData An array of each data value passed to SQL_AddQuery().
|
||||
/**
|
||||
* Callback for a failed transaction.
|
||||
*
|
||||
* @param db Database handle.
|
||||
* @param data Data value passed to SQL_ExecuteTransaction().
|
||||
* @param numQueries Number of queries executed in the transaction.
|
||||
* @param error Error message.
|
||||
* @param failIndex Index of the query that failed, or -1 if something else.
|
||||
* @param queryData An array of each data value passed to SQL_AddQuery().
|
||||
*/
|
||||
typedef SQLTxnFailure = function void (Database db, any data, int numQueries, const char[] error, int failIndex, any[] queryData);
|
||||
|
||||
// A Transaction is a collection of SQL statements that must all execute
|
||||
@ -315,23 +316,27 @@ methodmap DBStatement < Handle
|
||||
public native void BindString(int param, const char[] value, bool copy);
|
||||
};
|
||||
|
||||
// Callback for receiving asynchronous database connections.
|
||||
//
|
||||
// @param db Handle to the database connection.
|
||||
// @param error Error string if there was an error. The error could be
|
||||
// empty even if an error condition exists, so it is important
|
||||
// to check the actual Handle value instead.
|
||||
// @param data Data passed in via the original threaded invocation.
|
||||
/**
|
||||
* Callback for receiving asynchronous database connections.
|
||||
*
|
||||
* @param db Handle to the database connection.
|
||||
* @param error Error string if there was an error. The error could be
|
||||
* empty even if an error condition exists, so it is important
|
||||
* to check the actual Handle value instead.
|
||||
* @param data Data passed in via the original threaded invocation.
|
||||
*/
|
||||
typedef SQLConnectCallback = function void (Database db, const char[] error, any data);
|
||||
|
||||
// Callback for receiving asynchronous database query results.
|
||||
//
|
||||
// @param db Cloned handle to the database connection.
|
||||
// @param results Result object, or null on failure.
|
||||
// @param error Error string if there was an error. The error could be
|
||||
// empty even if an error condition exists, so it is important
|
||||
// to check the actual results value instead.
|
||||
// @param data Data passed in via the original threaded invocation.
|
||||
/**
|
||||
* Callback for receiving asynchronous database query results.
|
||||
*
|
||||
* @param db Cloned handle to the database connection.
|
||||
* @param results Result object, or null on failure.
|
||||
* @param error Error string if there was an error. The error could be
|
||||
* empty even if an error condition exists, so it is important
|
||||
* to check the actual results value instead.
|
||||
* @param data Data passed in via the original threaded invocation.
|
||||
*/
|
||||
typedef SQLQueryCallback = function void (Database db, DBResultSet results, const char[] error, any data);
|
||||
|
||||
// A Database represents a live connection to a database, either over the
|
||||
@ -340,9 +345,9 @@ methodmap Database < Handle
|
||||
{
|
||||
// Connects to a database asynchronously, so the game thread is not blocked.
|
||||
//
|
||||
// @param callback Callback. If no driver was found, the owner is null.
|
||||
// @param name Database configuration name.
|
||||
// @param data Extra data value to pass to the callback.
|
||||
// @param callback Callback. If no driver was found, the owner is null.
|
||||
// @param name Database configuration name.
|
||||
// @param data Extra data value to pass to the callback.
|
||||
public static native void Connect(SQLConnectCallback callback, const char[] name="default", any data=0);
|
||||
|
||||
// Returns the driver for this database connection.
|
||||
@ -372,22 +377,22 @@ methodmap Database < Handle
|
||||
// encloses the string in ''. While drivers tend to allow " instead, the string
|
||||
// may be not be escaped (for example, on SQLite)!
|
||||
//
|
||||
// @param string String to quote.
|
||||
// @param buffer Buffer to store quoted string in.
|
||||
// @param maxlength Maximum length of the buffer.
|
||||
// @param written Optionally returns the number of bytes written.
|
||||
// @return True on success, false if buffer is not big enough.
|
||||
// The buffer must be at least 2*strlen(string)+1.
|
||||
// @param string String to quote.
|
||||
// @param buffer Buffer to store quoted string in.
|
||||
// @param maxlength Maximum length of the buffer.
|
||||
// @param written Optionally returns the number of bytes written.
|
||||
// @return True on success, false if buffer is not big enough.
|
||||
// The buffer must be at least 2*strlen(string)+1.
|
||||
public native bool Escape(const char[] string, char[] buffer, int maxlength, int &written=0);
|
||||
|
||||
// Formats a string according to the SourceMod format rules (see documentation).
|
||||
// All format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used.
|
||||
//
|
||||
// @param buffer Destination string buffer.
|
||||
// @param maxlength Maximum length of output string buffer.
|
||||
// @param format Formatting rules.
|
||||
// @param ... Variable number of format parameters.
|
||||
// @return Number of cells written.
|
||||
// @param buffer Destination string buffer.
|
||||
// @param maxlength Maximum length of output string buffer.
|
||||
// @param format Formatting rules.
|
||||
// @param ... Variable number of format parameters.
|
||||
// @return Number of cells written.
|
||||
public native int Format(const char[] buffer, int maxlength, const char[] format, any ...);
|
||||
|
||||
// Returns whether a database is the same connection as another database.
|
||||
@ -415,11 +420,11 @@ methodmap Database < Handle
|
||||
// automatically closed. When the transaction completes, the optional
|
||||
// callback is invoked.
|
||||
//
|
||||
// @param txn A transaction handle.
|
||||
// @param onSuccess An optional callback to receive a successful transaction.
|
||||
// @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.
|
||||
// @param txn A transaction handle.
|
||||
// @param onSuccess An optional callback to receive a successful transaction.
|
||||
// @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.
|
||||
public native void Execute(Transaction txn,
|
||||
SQLTxnSuccess onSuccess = INVALID_FUNCTION,
|
||||
SQLTxnFailure onError = INVALID_FUNCTION,
|
||||
@ -430,24 +435,24 @@ methodmap Database < Handle
|
||||
/**
|
||||
* Creates an SQL connection from a named configuration.
|
||||
*
|
||||
* @param confname Named configuration.
|
||||
* @param persistent True to re-use a previous persistent connection if
|
||||
* possible, false otherwise.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
* @param confname Named configuration.
|
||||
* @param persistent True to re-use a previous persistent connection if
|
||||
* possible, false otherwise.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
*/
|
||||
native Database SQL_Connect(const char[] confname, bool persistent, char[] error, int maxlength);
|
||||
|
||||
/**
|
||||
* Creates a default SQL connection.
|
||||
*
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @param persistent True to re-use a previous persistent connection
|
||||
* if possible, false otherwise.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
* On failure the error buffer will be filled with a message.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @param persistent True to re-use a previous persistent connection
|
||||
* if possible, false otherwise.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
* On failure the error buffer will be filled with a message.
|
||||
*/
|
||||
stock Database SQL_DefConnect(char[] error, int maxlength, bool persistent=true)
|
||||
{
|
||||
@ -466,19 +471,19 @@ stock Database SQL_DefConnect(char[] error, int maxlength, bool persistent=true)
|
||||
* In general it is discouraged to use this function. Connections should go through
|
||||
* databases.cfg for greatest flexibility on behalf of users.
|
||||
*
|
||||
* @param keyvalues Key/value pairs from a KeyValues handle, describing the connection.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @param persistent True to re-use a previous persistent connection if
|
||||
* possible, false otherwise.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
* On failure the error buffer will be filled with a message.
|
||||
* @error Invalid KeyValues handle.
|
||||
* @param keyvalues Key/value pairs from a KeyValues handle, describing the connection.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @param persistent True to re-use a previous persistent connection if
|
||||
* possible, false otherwise.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
* On failure the error buffer will be filled with a message.
|
||||
* @error Invalid KeyValues handle.
|
||||
*/
|
||||
native Database SQL_ConnectCustom(Handle keyvalues,
|
||||
char[] error,
|
||||
int maxlength,
|
||||
bool persistent);
|
||||
char[] error,
|
||||
int maxlength,
|
||||
bool persistent);
|
||||
|
||||
/**
|
||||
* Grabs a handle to an SQLite database, creating one if it does not exist.
|
||||
@ -489,15 +494,13 @@ native Database SQL_ConnectCustom(Handle keyvalues,
|
||||
* As a precaution, you should always create some sort of unique prefix to your table names so
|
||||
* there are no conflicts, and you should never drop or modify tables that you do not own.
|
||||
*
|
||||
* @param database Database name.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
* On failure the error buffer will be filled with a message.
|
||||
* @param database Database name.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the error buffer.
|
||||
* @return A database connection Handle, or INVALID_HANDLE on failure.
|
||||
* On failure the error buffer will be filled with a message.
|
||||
*/
|
||||
stock Database SQLite_UseDatabase(const char[] database,
|
||||
char[] error,
|
||||
int maxlength)
|
||||
stock Database SQLite_UseDatabase(const char[] database, char[] error, int maxlength)
|
||||
{
|
||||
KeyValues kv = new KeyValues("");
|
||||
kv.SetString("driver", "sqlite");
|
||||
@ -512,6 +515,7 @@ stock Database SQLite_UseDatabase(const char[] database,
|
||||
|
||||
/**
|
||||
* This function is deprecated. Use SQL_ConnectCustom or SQLite_UseDatabase instead.
|
||||
* @deprecated
|
||||
*/
|
||||
#pragma deprecated Use SQL_ConnectCustom instead.
|
||||
native Handle SQL_ConnectEx(Handle driver,
|
||||
@ -528,8 +532,8 @@ native Handle SQL_ConnectEx(Handle driver,
|
||||
/**
|
||||
* Returns if a named configuration is present in databases.cfg.
|
||||
*
|
||||
* @param name Configuration name.
|
||||
* @return True if it exists, false otherwise.
|
||||
* @param name Configuration name.
|
||||
* @return True if it exists, false otherwise.
|
||||
*/
|
||||
native bool SQL_CheckConfig(const char[] name);
|
||||
|
||||
@ -539,19 +543,19 @@ native bool SQL_CheckConfig(const char[] name);
|
||||
* If the driver is not found, SourceMod will attempt
|
||||
* to load an extension named dbi.<name>.ext.[dll|so].
|
||||
*
|
||||
* @param name Driver identification string, or an empty
|
||||
* string to return the default driver.
|
||||
* @return Driver Handle, or INVALID_HANDLE on failure.
|
||||
* @param name Driver identification string, or an empty
|
||||
* string to return the default driver.
|
||||
* @return Driver Handle, or INVALID_HANDLE on failure.
|
||||
*/
|
||||
native Handle SQL_GetDriver(const char[] name="");
|
||||
|
||||
/**
|
||||
* Reads the driver of an opened database.
|
||||
*
|
||||
* @param database Database Handle.
|
||||
* @param ident Option buffer to store the identification string.
|
||||
* @param ident_length Maximum length of the buffer.
|
||||
* @return Driver Handle.
|
||||
* @param database Database Handle.
|
||||
* @param ident Option buffer to store the identification string.
|
||||
* @param ident_length Maximum length of the buffer.
|
||||
* @return Driver Handle.
|
||||
*/
|
||||
native Handle SQL_ReadDriver(Handle database, char[] ident="", int ident_length=0);
|
||||
|
||||
@ -560,10 +564,10 @@ native Handle SQL_ReadDriver(Handle database, char[] ident="", int ident_length=
|
||||
*
|
||||
* Example: "mysql", "sqlite"
|
||||
*
|
||||
* @param driver Driver Handle, or INVALID_HANDLE for the default driver.
|
||||
* @param ident Identification string buffer.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @error Invalid Handle other than INVALID_HANDLE.
|
||||
* @param driver Driver Handle, or INVALID_HANDLE for the default driver.
|
||||
* @param ident Identification string buffer.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @error Invalid Handle other than INVALID_HANDLE.
|
||||
*/
|
||||
native void SQL_GetDriverIdent(Handle driver, char[] ident, int maxlength);
|
||||
|
||||
@ -572,10 +576,10 @@ native void SQL_GetDriverIdent(Handle driver, char[] ident, int maxlength);
|
||||
*
|
||||
* Example: "MySQL", "SQLite"
|
||||
*
|
||||
* @param driver Driver Handle, or INVALID_HANDLE for the default driver.
|
||||
* @param product Product string buffer.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @error Invalid Handle other than INVALID_HANDLE.
|
||||
* @param driver Driver Handle, or INVALID_HANDLE for the default driver.
|
||||
* @param product Product string buffer.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @error Invalid Handle other than INVALID_HANDLE.
|
||||
*/
|
||||
native void SQL_GetDriverProduct(Handle driver, char[] product, int maxlength);
|
||||
|
||||
@ -594,29 +598,29 @@ native bool SQL_SetCharset(Handle database, const char[] charset);
|
||||
/**
|
||||
* Returns the number of affected rows from the last query.
|
||||
*
|
||||
* @param hndl A database OR statement Handle.
|
||||
* @return Number of rows affected by the last query.
|
||||
* @error Invalid database or statement Handle.
|
||||
* @param hndl A database OR statement Handle.
|
||||
* @return Number of rows affected by the last query.
|
||||
* @error Invalid database or statement Handle.
|
||||
*/
|
||||
native int SQL_GetAffectedRows(Handle hndl);
|
||||
|
||||
/**
|
||||
* Returns the last query's insertion id.
|
||||
*
|
||||
* @param hndl A database, query, OR statement Handle.
|
||||
* @return Last query's insertion id.
|
||||
* @error Invalid database, query, or statement Handle.
|
||||
* @param hndl A database, query, OR statement Handle.
|
||||
* @return Last query's insertion id.
|
||||
* @error Invalid database, query, or statement Handle.
|
||||
*/
|
||||
native int SQL_GetInsertId(Handle hndl);
|
||||
|
||||
/**
|
||||
* Returns the error reported by the last query.
|
||||
*
|
||||
* @param hndl A database, query, OR statement Handle.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return True if there was an error, false otherwise.
|
||||
* @error Invalid database, query, or statement Handle.
|
||||
* @param hndl A database, query, OR statement Handle.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return True if there was an error, false otherwise.
|
||||
* @error Invalid database, query, or statement Handle.
|
||||
*/
|
||||
native bool SQL_GetError(Handle hndl, char[] error, int maxlength);
|
||||
|
||||
@ -634,14 +638,14 @@ native bool SQL_GetError(Handle hndl, char[] error, int maxlength);
|
||||
* encloses the string in ''. While drivers tend to allow " instead, the string
|
||||
* may be not be escaped (for example, on SQLite)!
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @param string String to quote.
|
||||
* @param buffer Buffer to store quoted string in.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @param written Optionally returns the number of bytes written.
|
||||
* @return True on success, false if buffer is not big enough.
|
||||
* The buffer must be at least 2*strlen(string)+1.
|
||||
* @error Invalid database or statement Handle.
|
||||
* @param database A database Handle.
|
||||
* @param string String to quote.
|
||||
* @param buffer Buffer to store quoted string in.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @param written Optionally returns the number of bytes written.
|
||||
* @return True on success, false if buffer is not big enough.
|
||||
* The buffer must be at least 2*strlen(string)+1.
|
||||
* @error Invalid database or statement Handle.
|
||||
*/
|
||||
native bool SQL_EscapeString(Handle database,
|
||||
const char[] string,
|
||||
@ -653,17 +657,18 @@ native bool SQL_EscapeString(Handle database,
|
||||
* Formats a string according to the SourceMod format rules (see documentation).
|
||||
* All format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used.
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return Number of cells written.
|
||||
* @param database A database Handle.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return Number of cells written.
|
||||
*/
|
||||
native int SQL_FormatQuery(Handle database, const char[] buffer, int maxlength, const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* This function is deprecated. Use SQL_EscapeString instead.
|
||||
* @deprecated
|
||||
*/
|
||||
#pragma deprecated Use SQL_EscapeString instead.
|
||||
stock bool SQL_QuoteString(Handle database,
|
||||
@ -678,14 +683,14 @@ stock bool SQL_QuoteString(Handle database,
|
||||
/**
|
||||
* Executes a query and ignores the result set.
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @param query Query string.
|
||||
* @param len Optional parameter to specify the query length, in
|
||||
* bytes. This can be used to send binary queries that
|
||||
* have a premature terminator.
|
||||
* @return True if query succeeded, false otherwise. Use
|
||||
* SQL_GetError to find the last error.
|
||||
* @error Invalid database Handle.
|
||||
* @param database A database Handle.
|
||||
* @param query Query string.
|
||||
* @param len Optional parameter to specify the query length, in
|
||||
* bytes. This can be used to send binary queries that
|
||||
* have a premature terminator.
|
||||
* @return True if query succeeded, false otherwise. Use
|
||||
* SQL_GetError to find the last error.
|
||||
* @error Invalid database Handle.
|
||||
*/
|
||||
native bool SQL_FastQuery(Handle database, const char[] query, int len=-1);
|
||||
|
||||
@ -693,14 +698,14 @@ native bool SQL_FastQuery(Handle database, const char[] query, int len=-1);
|
||||
* Executes a simple query and returns a new query Handle for
|
||||
* receiving the results.
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @param query Query string.
|
||||
* @param len Optional parameter to specify the query length, in
|
||||
* bytes. This can be used to send binary queries that
|
||||
* have a premature terminator.
|
||||
* @return A new Query Handle on success, INVALID_HANDLE
|
||||
* otherwise. The Handle must be freed with CloseHandle().
|
||||
* @error Invalid database Handle.
|
||||
* @param database A database Handle.
|
||||
* @param query Query string.
|
||||
* @param len Optional parameter to specify the query length, in
|
||||
* bytes. This can be used to send binary queries that
|
||||
* have a premature terminator.
|
||||
* @return A new Query Handle on success, INVALID_HANDLE
|
||||
* otherwise. The Handle must be freed with CloseHandle().
|
||||
* @error Invalid database Handle.
|
||||
*/
|
||||
native DBResultSet SQL_Query(Handle database, const char[] query, int len=-1);
|
||||
|
||||
@ -712,13 +717,13 @@ native DBResultSet SQL_Query(Handle database, const char[] query, int len=-1);
|
||||
*
|
||||
* Statement handles will work in any function that accepts a Query handle.
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @param query Query string.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum size of the error buffer.
|
||||
* @return A new statement Handle on success, INVALID_HANDLE
|
||||
* otherwise. The Handle must be freed with CloseHandle().
|
||||
* @error Invalid database Handle.
|
||||
* @param database A database Handle.
|
||||
* @param query Query string.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum size of the error buffer.
|
||||
* @return A new statement Handle on success, INVALID_HANDLE
|
||||
* otherwise. The Handle must be freed with CloseHandle().
|
||||
* @error Invalid database Handle.
|
||||
*/
|
||||
native DBStatement SQL_PrepareQuery(Handle database, const char[] query, char[] error, int maxlength);
|
||||
|
||||
@ -730,9 +735,9 @@ native DBStatement SQL_PrepareQuery(Handle database, const char[] query, char[]
|
||||
* query. If this is the case, all result sets must be processed before
|
||||
* another query is made.
|
||||
*
|
||||
* @param query A query Handle.
|
||||
* @return True if there was another result set, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
* @param query A query Handle.
|
||||
* @return True if there was another result set, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
*/
|
||||
native bool SQL_FetchMoreResults(Handle query);
|
||||
|
||||
@ -741,50 +746,50 @@ native bool SQL_FetchMoreResults(Handle query);
|
||||
* return true even if 0 results were returned, but false
|
||||
* on queries like UPDATE, INSERT, or DELETE.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True if there is a result set, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True if there is a result set, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
*/
|
||||
native bool SQL_HasResultSet(Handle query);
|
||||
|
||||
/**
|
||||
* Retrieves the number of rows in the last result set.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return Number of rows in the current result set.
|
||||
* @error Invalid query Handle.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return Number of rows in the current result set.
|
||||
* @error Invalid query Handle.
|
||||
*/
|
||||
native int SQL_GetRowCount(Handle query);
|
||||
|
||||
/**
|
||||
* Retrieves the number of fields in the last result set.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return Number of fields in the current result set.
|
||||
* @error Invalid query Handle.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return Number of fields in the current result set.
|
||||
* @error Invalid query Handle.
|
||||
*/
|
||||
native int SQL_GetFieldCount(Handle query);
|
||||
|
||||
/**
|
||||
* Retrieves the name of a field by index.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field Field number (starting from 0).
|
||||
* @param name Name buffer.
|
||||
* @param maxlength Maximum length of the name buffer.
|
||||
* @error Invalid query Handle, invalid field index, or
|
||||
* no current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field Field number (starting from 0).
|
||||
* @param name Name buffer.
|
||||
* @param maxlength Maximum length of the name buffer.
|
||||
* @error Invalid query Handle, invalid field index, or
|
||||
* no current result set.
|
||||
*/
|
||||
native void SQL_FieldNumToName(Handle query, int field, char[] name, int maxlength);
|
||||
|
||||
/**
|
||||
* Retrieves a field index by name.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param name Name of the field (case sensitive).
|
||||
* @param field Variable to store field index in.
|
||||
* @return True if found, false if not found.
|
||||
* @error Invalid query Handle or no current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param name Name of the field (case sensitive).
|
||||
* @param field Variable to store field index in.
|
||||
* @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, int &field);
|
||||
|
||||
@ -795,27 +800,27 @@ native bool SQL_FieldNameToNum(Handle query, const char[] name, int &field);
|
||||
* If this function fails, SQL_MoreResults() can be used to
|
||||
* tell if there was an error or the result set is finished.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True if a row was fetched, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True if a row was fetched, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
*/
|
||||
native bool SQL_FetchRow(Handle query);
|
||||
|
||||
/**
|
||||
* Returns if there are more rows.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True if there are more rows, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True if there are more rows, false otherwise.
|
||||
* @error Invalid query Handle.
|
||||
*/
|
||||
native bool SQL_MoreRows(Handle query);
|
||||
|
||||
/**
|
||||
* Rewinds a result set back to the first result.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid query Handle or no current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid query Handle or no current result set.
|
||||
*/
|
||||
native bool SQL_Rewind(Handle query);
|
||||
|
||||
@ -824,15 +829,15 @@ native bool SQL_Rewind(Handle query);
|
||||
* If the result is NULL, an empty string will be returned. A NULL
|
||||
* check can be done with the result parameter, or SQL_IsFieldNull().
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @param buffer String buffer.
|
||||
* @param maxlength Maximum size of the string buffer.
|
||||
* @param result Optional variable to store the status of the return value.
|
||||
* @return Number of bytes written.
|
||||
* @error Invalid query Handle or field index, invalid
|
||||
* type conversion requested from the database,
|
||||
* or no current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @param buffer String buffer.
|
||||
* @param maxlength Maximum size of the string buffer.
|
||||
* @param result Optional variable to store the status of the return value.
|
||||
* @return Number of bytes written.
|
||||
* @error Invalid query Handle or field index, invalid
|
||||
* 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);
|
||||
|
||||
@ -841,13 +846,13 @@ native int SQL_FetchString(Handle query, int field, char[] buffer, int maxlength
|
||||
* If the result is NULL, a value of 0.0 will be returned. A NULL
|
||||
* check can be done with the result parameter, or SQL_IsFieldNull().
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @param result Optional variable to store the status of the return value.
|
||||
* @return A float value.
|
||||
* @error Invalid query Handle or field index, invalid
|
||||
* type conversion requested from the database,
|
||||
* or no current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @param result Optional variable to store the status of the return value.
|
||||
* @return A float value.
|
||||
* @error Invalid query Handle or field index, invalid
|
||||
* type conversion requested from the database,
|
||||
* or no current result set.
|
||||
*/
|
||||
native float SQL_FetchFloat(Handle query, int field, DBResult &result=DBVal_Error);
|
||||
|
||||
@ -856,13 +861,13 @@ native float SQL_FetchFloat(Handle query, int field, DBResult &result=DBVal_Erro
|
||||
* If the result is NULL, a value of 0 will be returned. A NULL
|
||||
* check can be done with the result parameter, or SQL_IsFieldNull().
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @param result Optional variable to store the status of the return value.
|
||||
* @return An integer value.
|
||||
* @error Invalid query Handle or field index, invalid
|
||||
* type conversion requested from the database,
|
||||
* or no current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @param result Optional variable to store the status of the return value.
|
||||
* @return An integer value.
|
||||
* @error Invalid query Handle or field index, invalid
|
||||
* type conversion requested from the database,
|
||||
* or no current result set.
|
||||
*/
|
||||
native int SQL_FetchInt(Handle query, int field, DBResult &result=DBVal_Error);
|
||||
|
||||
@ -870,11 +875,11 @@ native int SQL_FetchInt(Handle query, int field, DBResult &result=DBVal_Error);
|
||||
* Returns whether a field's data in the current row of a result set is
|
||||
* NULL or not. NULL is an SQL type which means "no data."
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @return True if data is NULL, false otherwise.
|
||||
* @error Invalid query Handle or field index, or no
|
||||
* current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @return True if data is NULL, false otherwise.
|
||||
* @error Invalid query Handle or field index, or no
|
||||
* current result set.
|
||||
*/
|
||||
native bool SQL_IsFieldNull(Handle query, int field);
|
||||
|
||||
@ -884,59 +889,59 @@ native bool SQL_IsFieldNull(Handle query, int field);
|
||||
* bytes to use. Note that the return value does not include the null
|
||||
* terminator.
|
||||
*
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @return Number of bytes for the field's data size.
|
||||
* @error Invalid query Handle or field index or no
|
||||
* current result set.
|
||||
* @param query A query (or statement) Handle.
|
||||
* @param field The field index (starting from 0).
|
||||
* @return Number of bytes for the field's data size.
|
||||
* @error Invalid query Handle or field index or no
|
||||
* current result set.
|
||||
*/
|
||||
native int SQL_FetchSize(Handle query, int field);
|
||||
|
||||
/**
|
||||
* Binds a parameter in a prepared statement to a given integer value.
|
||||
*
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @param param The parameter index (starting from 0).
|
||||
* @param number The number to bind.
|
||||
* @param signed True to bind the number as signed, false to
|
||||
* bind it as unsigned.
|
||||
* @error Invalid statement Handle or parameter index, or
|
||||
* SQL error.
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @param param The parameter index (starting from 0).
|
||||
* @param number The number to bind.
|
||||
* @param signed True to bind the number as signed, false to
|
||||
* bind it as unsigned.
|
||||
* @error Invalid statement Handle or parameter index, or
|
||||
* SQL error.
|
||||
*/
|
||||
native void SQL_BindParamInt(Handle statement, int param, int number, bool signed=true);
|
||||
|
||||
/**
|
||||
* Binds a parameter in a prepared statement to a given float value.
|
||||
*
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @param param The parameter index (starting from 0).
|
||||
* @param value The float number to bind.
|
||||
* @error Invalid statement Handle or parameter index, or
|
||||
* SQL error.
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @param param The parameter index (starting from 0).
|
||||
* @param value The float number to bind.
|
||||
* @error Invalid statement Handle or parameter index, or
|
||||
* SQL error.
|
||||
*/
|
||||
native void SQL_BindParamFloat(Handle statement, int param, float value);
|
||||
|
||||
/**
|
||||
* Binds a parameter in a prepared statement to a given string value.
|
||||
*
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @param param The parameter index (starting from 0).
|
||||
* @param value The string to bind.
|
||||
* @param copy Whether or not SourceMod should copy the value
|
||||
* locally if necessary. If the string contents
|
||||
* won't change before calling SQL_Execute(), this
|
||||
* can be set to false for optimization.
|
||||
* @error Invalid statement Handle or parameter index, or
|
||||
* SQL error.
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @param param The parameter index (starting from 0).
|
||||
* @param value The string to bind.
|
||||
* @param copy Whether or not SourceMod should copy the value
|
||||
* locally if necessary. If the string contents
|
||||
* won't change before calling SQL_Execute(), this
|
||||
* can be set to false for optimization.
|
||||
* @error Invalid statement Handle or parameter index, or
|
||||
* SQL error.
|
||||
*/
|
||||
native void SQL_BindParamString(Handle statement, int param, const char[] value, bool copy);
|
||||
|
||||
/**
|
||||
* Executes a prepared statement. All parameters must be bound beforehand.
|
||||
*
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid statement Handle.
|
||||
* @param statement A statement (prepared query) Handle.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid statement Handle.
|
||||
*/
|
||||
native bool SQL_Execute(Handle statement);
|
||||
|
||||
@ -954,38 +959,40 @@ native bool SQL_Execute(Handle statement);
|
||||
* If the lock cannot be acquired, the main thread will pause until the
|
||||
* threaded operation has concluded.
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @error Invalid database Handle.
|
||||
* @param database A database Handle.
|
||||
* @error Invalid database Handle.
|
||||
*/
|
||||
native void SQL_LockDatabase(Handle database);
|
||||
|
||||
/**
|
||||
* Unlocks a database so threading operations may continue.
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @error Invalid database Handle.
|
||||
* @param database A database Handle.
|
||||
* @error Invalid database Handle.
|
||||
*/
|
||||
native void SQL_UnlockDatabase(Handle database);
|
||||
|
||||
// General callback for threaded SQL stuff.
|
||||
//
|
||||
// @param owner Parent object of the Handle (or INVALID_HANDLE if none).
|
||||
// @param hndl Handle to the child object (or INVALID_HANDLE if none).
|
||||
// @param error Error string if there was an error. The error could be
|
||||
// empty even if an error condition exists, so it is important
|
||||
// to check the actual Handle value instead.
|
||||
// @param data Data passed in via the original threaded invocation.
|
||||
/**
|
||||
* General callback for threaded SQL stuff.
|
||||
*
|
||||
* @param owner Parent object of the Handle (or INVALID_HANDLE if none).
|
||||
* @param hndl Handle to the child object (or INVALID_HANDLE if none).
|
||||
* @param error Error string if there was an error. The error could be
|
||||
* empty even if an error condition exists, so it is important
|
||||
* to check the actual Handle value instead.
|
||||
* @param data Data passed in via the original threaded invocation.
|
||||
*/
|
||||
typedef SQLTCallback = function void (Handle owner, Handle hndl, const char[] error, any data);
|
||||
|
||||
/**
|
||||
* Tells whether two database handles both point to the same database
|
||||
* connection.
|
||||
*
|
||||
* @param hndl1 First database Handle.
|
||||
* @param hndl2 Second database Handle.
|
||||
* @return True if the Handles point to the same
|
||||
* connection, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl1 First database Handle.
|
||||
* @param hndl2 Second database Handle.
|
||||
* @return True if the Handles point to the same
|
||||
* connection, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool SQL_IsSameConnection(Handle hndl1, Handle hndl2);
|
||||
|
||||
@ -997,10 +1004,10 @@ native bool SQL_IsSameConnection(Handle hndl1, Handle hndl2);
|
||||
* don't (or you mix threaded/non-threaded queries), you should see
|
||||
* SQL_LockDatabase().
|
||||
*
|
||||
* @param callback Callback; new Handle will be in hndl, owner is the driver.
|
||||
* If no driver was found, the owner is INVALID_HANDLE.
|
||||
* @param name Database name.
|
||||
* @param data Extra data value to pass to the callback.
|
||||
* @param callback Callback; new Handle will be in hndl, owner is the driver.
|
||||
* If no driver was found, the owner is INVALID_HANDLE.
|
||||
* @param name Database name.
|
||||
* @param data Extra data value to pass to the callback.
|
||||
*/
|
||||
native void SQL_TConnect(SQLTCallback callback, const char[] name="default", any data=0);
|
||||
|
||||
@ -1015,13 +1022,13 @@ native void SQL_TConnect(SQLTCallback callback, const char[] name="default", any
|
||||
* 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().
|
||||
*
|
||||
* @param database A database Handle.
|
||||
* @param callback Callback; database is in "owner" and the query Handle
|
||||
* is passed in "hndl".
|
||||
* @param query Query string.
|
||||
* @param data Extra data value to pass to the callback.
|
||||
* @param prio Priority queue to use.
|
||||
* @error Invalid database Handle.
|
||||
* @param database A database Handle.
|
||||
* @param callback Callback; database is in "owner" and the query Handle
|
||||
* is passed in "hndl".
|
||||
* @param query Query string.
|
||||
* @param data Extra data value to pass to the callback.
|
||||
* @param prio Priority queue to use.
|
||||
* @error Invalid database Handle.
|
||||
*/
|
||||
native void SQL_TQuery(Handle database, SQLTCallback callback, const char[] query, any data=0, DBPriority prio=DBPrio_Normal);
|
||||
|
||||
@ -1038,7 +1045,7 @@ native Transaction SQL_CreateTransaction();
|
||||
*
|
||||
* @param txn A transaction handle.
|
||||
* @param query Query string.
|
||||
* @param data Extra data value to pass to the final callback.
|
||||
* @param data Extra data value to pass to the final callback.
|
||||
* @return The index of the query in the transaction's query list.
|
||||
* @error Invalid transaction handle.
|
||||
*/
|
||||
|
@ -40,40 +40,39 @@
|
||||
*/
|
||||
enum PropType
|
||||
{
|
||||
Prop_Send = 0, /**< This property is networked. */
|
||||
Prop_Data = 1, /**< This property is for save game data fields. */
|
||||
Prop_Send = 0, /**< This property is networked. */
|
||||
Prop_Data = 1 /**< This property is for save game data fields. */
|
||||
};
|
||||
|
||||
/**
|
||||
* @section For more information on these, see the HL2SDK (public/edict.h)
|
||||
*/
|
||||
#define FL_EDICT_CHANGED (1<<0) /**< Game DLL sets this when the entity state changes
|
||||
Mutually exclusive with FL_EDICT_PARTIAL_CHANGE. */
|
||||
#define FL_EDICT_FREE (1<<1) /**< this edict if free for reuse */
|
||||
#define FL_EDICT_FULL (1<<2) /**< this is a full server entity */
|
||||
#define FL_EDICT_FULLCHECK (0<<0) /**< call ShouldTransmit() each time, this is a fake flag */
|
||||
#define FL_EDICT_ALWAYS (1<<3) /**< always transmit this entity */
|
||||
#define FL_EDICT_DONTSEND (1<<4) /**< don't transmit this entity */
|
||||
#define FL_EDICT_PVSCHECK (1<<5) /**< always transmit entity, but cull against PVS */
|
||||
#define FL_EDICT_PENDING_DORMANT_CHECK (1<<6)
|
||||
#define FL_EDICT_DIRTY_PVS_INFORMATION (1<<7)
|
||||
#define FL_FULL_EDICT_CHANGED (1<<8)
|
||||
#define FL_EDICT_CHANGED (1<<0) /**< Game DLL sets this when the entity state changes
|
||||
Mutually exclusive with FL_EDICT_PARTIAL_CHANGE. */
|
||||
#define FL_EDICT_FREE (1<<1) /**< this edict if free for reuse */
|
||||
#define FL_EDICT_FULL (1<<2) /**< this is a full server entity */
|
||||
#define FL_EDICT_FULLCHECK (0<<0) /**< call ShouldTransmit() each time, this is a fake flag */
|
||||
#define FL_EDICT_ALWAYS (1<<3) /**< always transmit this entity */
|
||||
#define FL_EDICT_DONTSEND (1<<4) /**< don't transmit this entity */
|
||||
#define FL_EDICT_PVSCHECK (1<<5) /**< always transmit entity, but cull against PVS */
|
||||
#define FL_EDICT_PENDING_DORMANT_CHECK (1<<6)
|
||||
#define FL_EDICT_DIRTY_PVS_INFORMATION (1<<7)
|
||||
#define FL_FULL_EDICT_CHANGED (1<<8)
|
||||
|
||||
enum PropFieldType
|
||||
{
|
||||
PropField_Unsupported, /**< The type is unsupported. */
|
||||
PropField_Integer, /**< Valid for SendProp and Data fields */
|
||||
PropField_Float, /**< Valid for SendProp and Data fields */
|
||||
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
|
||||
of the string_t container (which is 32 bits right now).
|
||||
*/
|
||||
PropField_Variant, /**< Valid for Data fields only Type is not known at the field level,
|
||||
(for this call), but dependent on current field value. */
|
||||
PropField_Unsupported, /**< The type is unsupported. */
|
||||
PropField_Integer, /**< Valid for SendProp and Data fields */
|
||||
PropField_Float, /**< Valid for SendProp and Data fields */
|
||||
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
|
||||
of the string_t container (which is 32 bits right now). */
|
||||
PropField_Variant /**< Valid for Data fields only Type is not known at the field level,
|
||||
(for this call), but dependent on current field value. */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -87,7 +86,7 @@ enum PropFieldType
|
||||
* networked entities (maximum edicts), rather than total
|
||||
* maximum entities.
|
||||
*
|
||||
* @return Maximum number of networked entities.
|
||||
* @return Maximum number of networked entities.
|
||||
*/
|
||||
native int GetMaxEntities();
|
||||
|
||||
@ -98,7 +97,7 @@ native int GetMaxEntities();
|
||||
* of networked entities (current edicts), rather than total
|
||||
* count of current entities.
|
||||
*
|
||||
* @return Number of entities in the server.
|
||||
* @return Number of entities in the server.
|
||||
*/
|
||||
native int GetEntityCount();
|
||||
|
||||
@ -106,75 +105,75 @@ native int GetEntityCount();
|
||||
* Returns whether or not an entity is valid. Returns false
|
||||
* if there is no matching CBaseEntity for this entity index.
|
||||
*
|
||||
* @param entity Index of the entity.
|
||||
* @return True if valid, false otherwise.
|
||||
* @param entity Index of the entity.
|
||||
* @return True if valid, false otherwise.
|
||||
*/
|
||||
native bool IsValidEntity(int entity);
|
||||
|
||||
/**
|
||||
* Returns whether or not an edict index is valid.
|
||||
*
|
||||
* @param edict Index of the edict.
|
||||
* @return True if valid, false otherwise.
|
||||
* @param edict Index of the edict.
|
||||
* @return True if valid, false otherwise.
|
||||
*/
|
||||
native bool IsValidEdict(int edict);
|
||||
|
||||
/**
|
||||
* Returns whether or not an entity has a valid networkable edict.
|
||||
*
|
||||
* @param entity Index of the entity.
|
||||
* @return True if networkable, false if invalid or not networkable.
|
||||
* @param entity Index of the entity.
|
||||
* @return True if networkable, false if invalid or not networkable.
|
||||
*/
|
||||
native bool IsEntNetworkable(int entity);
|
||||
|
||||
/**
|
||||
* Creates a new edict (the basis of a networkable entity)
|
||||
*
|
||||
* @return Index of the edict, 0 on failure.
|
||||
* @return Index of the edict, 0 on failure.
|
||||
*/
|
||||
native int CreateEdict();
|
||||
|
||||
/**
|
||||
* Removes an edict from the world.
|
||||
*
|
||||
* @param edict Index of the edict.
|
||||
* @error Invalid edict index.
|
||||
* @param edict Index of the edict.
|
||||
* @error Invalid edict index.
|
||||
*/
|
||||
native void RemoveEdict(int edict);
|
||||
|
||||
/**
|
||||
* Marks an entity for deletion.
|
||||
*
|
||||
* @param entity Index of the entity.
|
||||
* @error Invalid entity index.
|
||||
* @param entity Index of the entity.
|
||||
* @error Invalid entity index.
|
||||
*/
|
||||
native void RemoveEntity(int entity);
|
||||
|
||||
/**
|
||||
* Returns the flags on an edict. These are not the same as entity flags.
|
||||
*
|
||||
* @param edict Index of the entity.
|
||||
* @return Edict flags.
|
||||
* @error Invalid edict index.
|
||||
* @param edict Index of the entity.
|
||||
* @return Edict flags.
|
||||
* @error Invalid edict index.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid edict index.
|
||||
* @param edict Index of the entity.
|
||||
* @param flags Flags to set.
|
||||
* @error Invalid edict index.
|
||||
*/
|
||||
native void SetEdictFlags(int edict, int flags);
|
||||
|
||||
/**
|
||||
* Retrieves an edict classname.
|
||||
*
|
||||
* @param edict Index of the entity.
|
||||
* @param clsname Buffer to store the classname.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return True on success, false if there is no classname set.
|
||||
* @param edict Index of the entity.
|
||||
* @param clsname Buffer to store the classname.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return True on success, false if there is no classname set.
|
||||
*/
|
||||
native bool GetEdictClassname(int edict, char[] clsname, int maxlength);
|
||||
|
||||
@ -182,11 +181,11 @@ native bool GetEdictClassname(int edict, char[] clsname, int maxlength);
|
||||
* Retrieves an entity's networkable serverclass name.
|
||||
* This is not the same as the classname and is used for networkable state changes.
|
||||
*
|
||||
* @param edict Index of the entity.
|
||||
* @param clsname Buffer to store the serverclass name.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return True on success, false if the edict is not networkable.
|
||||
* @error Invalid edict index.
|
||||
* @param edict Index of the entity.
|
||||
* @param clsname Buffer to store the serverclass name.
|
||||
* @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(int edict, char[] clsname, int maxlength);
|
||||
|
||||
@ -216,10 +215,10 @@ native bool GetEntityNetClass(int edict, char[] clsname, int maxlength);
|
||||
* 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.
|
||||
* @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);
|
||||
|
||||
@ -227,11 +226,11 @@ 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.
|
||||
* @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 int GetEntData(int entity, int offset, int size=4);
|
||||
|
||||
@ -239,12 +238,12 @@ native int GetEntData(int entity, int offset, int size=4);
|
||||
* Peeks into an entity's object data and sets the integer value at
|
||||
* the given offset.
|
||||
*
|
||||
* @param entity Edict index.
|
||||
* @param offset Offset to use.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @param entity Edict index.
|
||||
* @param offset Offset to use.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native void SetEntData(int entity, int offset, any value, int size=4, bool changeState=false);
|
||||
|
||||
@ -252,10 +251,10 @@ native void SetEntData(int entity, int offset, any value, int size=4, bool chang
|
||||
* 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.
|
||||
* @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(int entity, int offset);
|
||||
|
||||
@ -263,11 +262,11 @@ native float GetEntDataFloat(int entity, int offset);
|
||||
* 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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native void SetEntDataFloat(int entity, int offset, float value, bool changeState=false);
|
||||
|
||||
@ -281,10 +280,11 @@ native void SetEntDataFloat(int entity, int offset, float value, bool changeStat
|
||||
* 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.
|
||||
* @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.
|
||||
* @deprecated Use GetEntDataEnt2() instead.
|
||||
*/
|
||||
#pragma deprecated Use GetEntDataEnt2() instead.
|
||||
native int GetEntDataEnt(int entity, int offset);
|
||||
@ -297,11 +297,12 @@ native int GetEntDataEnt(int entity, int offset);
|
||||
* 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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @deprecated Use SetEntDataEnt2() instead.
|
||||
*/
|
||||
#pragma deprecated Use SetEntDataEnt2() instead.
|
||||
native void SetEntDataEnt(int entity, int offset, int other, bool changeState=false);
|
||||
@ -314,11 +315,11 @@ native void SetEntDataEnt(int entity, int offset, int other, bool changeState=fa
|
||||
* 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,
|
||||
* or the stored entity is invalid, then -1 is returned.
|
||||
* @error Invalid input entity, or offset out of reasonable bounds.
|
||||
* @param entity Edict index.
|
||||
* @param offset Offset to use.
|
||||
* @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 int GetEntDataEnt2(int entity, int offset);
|
||||
|
||||
@ -330,11 +331,11 @@ native int GetEntDataEnt2(int entity, int offset);
|
||||
* 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.
|
||||
* @error Invalid input entity, or offset out of reasonable bounds.
|
||||
* @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.
|
||||
* @error Invalid input entity, or offset out of reasonable bounds.
|
||||
*/
|
||||
native void SetEntDataEnt2(int entity, int offset, int other, bool changeState=false);
|
||||
|
||||
@ -342,12 +343,12 @@ native void SetEntDataEnt2(int entity, int offset, int other, bool changeState=f
|
||||
* 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
|
||||
* convenience function and will work with both types.
|
||||
* 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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @param entity Edict index.
|
||||
* @param offset Offset to use.
|
||||
* @param vec Vector buffer to store data in.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native void GetEntDataVector(int entity, int offset, float vec[3]);
|
||||
|
||||
@ -355,13 +356,13 @@ native void GetEntDataVector(int entity, int offset, float vec[3]);
|
||||
* 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
|
||||
* convenience function and will work with both types.
|
||||
* 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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native void SetEntDataVector(int entity, int offset, const float vec[3], bool changeState=false);
|
||||
|
||||
@ -369,12 +370,12 @@ native void SetEntDataVector(int entity, int offset, const float vec[3], bool ch
|
||||
* 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.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @param entity Edict index.
|
||||
* @param offset Offset to use.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native int GetEntDataString(int entity, int offset, char[] buffer, int maxlen);
|
||||
|
||||
@ -382,13 +383,13 @@ native int GetEntDataString(int entity, int offset, char[] buffer, int maxlen);
|
||||
* 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.
|
||||
* @param maxlen Maximum length of bytes to write.
|
||||
* @param changeState If true, change will be sent over the network.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @param entity Edict index.
|
||||
* @param offset Offset to use.
|
||||
* @param buffer String to set.
|
||||
* @param maxlen Maximum length of bytes to write.
|
||||
* @param changeState If true, change will be sent over the network.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native int SetEntDataString(int entity, int offset, const char[] buffer, int maxlen, bool changeState=false);
|
||||
|
||||
@ -406,9 +407,10 @@ native int SetEntDataString(int entity, int offset, const char[] buffer, int max
|
||||
* 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.
|
||||
* @param cls Classname.
|
||||
* @param prop Property name.
|
||||
* @return An offset, or -1 on failure.
|
||||
* @deprecated Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
|
||||
*/
|
||||
#pragma deprecated Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
|
||||
native int FindSendPropOffs(const char[] cls, const char[] prop);
|
||||
@ -417,18 +419,18 @@ 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.
|
||||
*
|
||||
* @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
|
||||
* for strings.
|
||||
* @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.
|
||||
* @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
|
||||
* for strings.
|
||||
* @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 int FindSendPropInfo(const char[] cls,
|
||||
const char[] prop,
|
||||
@ -440,13 +442,14 @@ native int FindSendPropInfo(const char[] cls,
|
||||
* Given an entity, finds a datamap property offset.
|
||||
* This information is cached for future calls.
|
||||
*
|
||||
* @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
|
||||
* divisible by 8 (including 0 if unknown).
|
||||
* @return An offset, or -1 on failure.
|
||||
* @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
|
||||
* divisible by 8 (including 0 if unknown).
|
||||
* @return An offset, or -1 on failure.
|
||||
* @deprecated Use FindDataMapInfo instead, or HasEntProp if you just want to check for existence.
|
||||
*/
|
||||
#pragma deprecated Use FindDataMapInfo instead, or HasEntProp if you just want to check for existence.
|
||||
native int FindDataMapOffs(int entity,
|
||||
@ -458,15 +461,15 @@ native int FindDataMapOffs(int entity,
|
||||
* Given an entity, finds a nested datamap property offset.
|
||||
* This information is cached for future calls.
|
||||
*
|
||||
* @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
|
||||
* divisible by 8 (including 0 if unknown).
|
||||
* @param local_offset Optional parameter to store the local offset, as
|
||||
* FindDataMapOffs() would return.
|
||||
* @return An offset, or -1 on failure.
|
||||
* @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
|
||||
* divisible by 8 (including 0 if unknown).
|
||||
* @param local_offset Optional parameter to store the local offset, as
|
||||
* FindDataMapOffs() would return.
|
||||
* @return An offset, or -1 on failure.
|
||||
*/
|
||||
native int FindDataMapInfo(int entity,
|
||||
const char[] prop,
|
||||
@ -477,12 +480,12 @@ native int FindDataMapInfo(int entity,
|
||||
/**
|
||||
* Wrapper function for finding a send property for a particular entity.
|
||||
*
|
||||
* @param ent Entity index.
|
||||
* @param prop Property name.
|
||||
* @param actual Defaults to false for backwards compatibility.
|
||||
* If true, the newer FindSendPropInfo() function
|
||||
* is used instead.
|
||||
* @return An offset, or -1 on failure.
|
||||
* @param ent Entity index.
|
||||
* @param prop Property name.
|
||||
* @param actual Defaults to false for backwards compatibility.
|
||||
* If true, the newer FindSendPropInfo() function
|
||||
* is used instead.
|
||||
* @return An offset, or -1 on failure.
|
||||
*/
|
||||
stock int GetEntSendPropOffs(int ent, const char[] prop, bool actual=false)
|
||||
{
|
||||
@ -499,32 +502,35 @@ stock int GetEntSendPropOffs(int ent, const char[] prop, bool actual=false)
|
||||
if (actual)
|
||||
{
|
||||
return offset;
|
||||
} else {
|
||||
return local;
|
||||
}
|
||||
|
||||
return local;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
* @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) {
|
||||
if (type == Prop_Data)
|
||||
{
|
||||
return (FindDataMapInfo(entity, prop) != -1);
|
||||
}
|
||||
|
||||
if (type != Prop_Send) {
|
||||
if (type != Prop_Send)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
char cls[64];
|
||||
if (!GetEntityNetClass(entity, cls, sizeof(cls))) {
|
||||
if (!GetEntityNetClass(entity, cls, sizeof(cls)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -537,15 +543,15 @@ stock bool HasEntProp(int entity, PropType type, const char[] prop)
|
||||
* 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
|
||||
* 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.
|
||||
* @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
|
||||
* 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 int GetEntProp(int entity, PropType type, const char[] prop, int size=4, int element=0);
|
||||
|
||||
@ -555,15 +561,15 @@ native int GetEntProp(int entity, PropType type, const char[] prop, int size=4,
|
||||
* 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
|
||||
* 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.
|
||||
* @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
|
||||
* 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.
|
||||
*/
|
||||
native void SetEntProp(int entity, PropType type, const char[] prop, any value, int size=4, int element=0);
|
||||
|
||||
@ -573,12 +579,12 @@ native void SetEntProp(int entity, PropType type, const char[] prop, any value,
|
||||
* 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.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @return Value at the given property offset.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @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 Value at the given property offset.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native float GetEntPropFloat(int entity, PropType type, const char[] prop, int element=0);
|
||||
|
||||
@ -588,12 +594,12 @@ native float GetEntPropFloat(int entity, PropType type, const char[] prop, int e
|
||||
* 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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native void SetEntPropFloat(int entity, PropType type, const char[] prop, float value, int element=0);
|
||||
|
||||
@ -603,14 +609,14 @@ native void SetEntPropFloat(int entity, PropType type, const char[] prop, float
|
||||
* 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,
|
||||
* then -1 is returned.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @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,
|
||||
* then -1 is returned.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native int GetEntPropEnt(int entity, PropType type, const char[] prop, int element=0);
|
||||
|
||||
@ -620,12 +626,12 @@ native int GetEntPropEnt(int entity, PropType type, const char[] prop, int eleme
|
||||
* 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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
native void SetEntPropEnt(int entity, PropType type, const char[] prop, int other, int element=0);
|
||||
|
||||
@ -635,13 +641,13 @@ native void SetEntPropEnt(int entity, PropType type, const char[] prop, int othe
|
||||
* 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.
|
||||
* @error Invalid entity, property not found, or property not
|
||||
* actually a vector data type.
|
||||
* @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.
|
||||
* @error Invalid entity, property not found, or property not
|
||||
* actually a vector data type.
|
||||
*/
|
||||
native void GetEntPropVector(int entity, PropType type, const char[] prop, float vec[3], int element=0);
|
||||
|
||||
@ -651,84 +657,86 @@ native void GetEntPropVector(int entity, PropType type, const char[] prop, float
|
||||
* 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.
|
||||
* @error Invalid entity, property not found, or property not
|
||||
* actually a vector data type.
|
||||
* @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.
|
||||
* @error Invalid entity, property not found, or property not
|
||||
* actually a vector data type.
|
||||
*/
|
||||
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 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.
|
||||
* @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 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 int GetEntPropString(int entity, PropType type, const char[] prop, char[] buffer, int maxlen, int element=0);
|
||||
|
||||
/**
|
||||
* Sets a network property as a string.
|
||||
*
|
||||
* @param entity Edict index.
|
||||
* @param type Property type.
|
||||
* @param prop Property to use.
|
||||
* @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.
|
||||
* @param entity Edict index.
|
||||
* @param type Property type.
|
||||
* @param prop Property to use.
|
||||
* @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 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.
|
||||
* @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 int GetEntPropArraySize(int entity, PropType type, const char[] prop);
|
||||
|
||||
/**
|
||||
* Copies an array of cells from an entity at a given offset.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param offset Offset to use.
|
||||
* @param array Array to read into.
|
||||
* @param arraySize Number of values to read.
|
||||
* @param dataSize Size of each value in bytes (1, 2, or 4).
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @param entity Entity index.
|
||||
* @param offset Offset to use.
|
||||
* @param array Array to read into.
|
||||
* @param arraySize Number of values to read.
|
||||
* @param dataSize Size of each value in bytes (1, 2, or 4).
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
stock void GetEntDataArray(int entity, int offset, int[] array, int arraySize, int dataSize=4)
|
||||
{
|
||||
for (int i=0; i<arraySize; i++)
|
||||
for (int i = 0; i < arraySize; i++)
|
||||
{
|
||||
array[i] = GetEntData(entity, offset + i*dataSize, dataSize);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies an array of cells to an entity at a given offset.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param offset Offset to use.
|
||||
* @param array Array of values to copy.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
* @param entity Entity index.
|
||||
* @param offset Offset to use.
|
||||
* @param array Array of values to copy.
|
||||
* @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.
|
||||
* @error Invalid entity or offset out of reasonable bounds.
|
||||
*/
|
||||
stock void SetEntDataArray(int entity, int offset, const int[] array, int arraySize, int dataSize=4, bool changeState=false)
|
||||
{
|
||||
for (int i=0; i<arraySize; i++)
|
||||
for (int i = 0; i < arraySize; i++)
|
||||
{
|
||||
SetEntData(entity, offset + i*dataSize, array[i], dataSize, changeState);
|
||||
}
|
||||
@ -737,9 +745,9 @@ stock void SetEntDataArray(int entity, int offset, const int[] array, int arrayS
|
||||
/**
|
||||
* Gets the memory address of an entity.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return Address of the entity.
|
||||
* @error Invalid entity.
|
||||
* @param entity Entity index.
|
||||
* @return Address of the entity.
|
||||
* @error Invalid entity.
|
||||
*/
|
||||
native Address GetEntityAddress(int entity);
|
||||
|
||||
@ -748,10 +756,10 @@ native Address GetEntityAddress(int entity);
|
||||
* This is like GetEdictClassname(), except it works for ALL
|
||||
* entities, not just edicts.
|
||||
*
|
||||
* @param entity Index of the entity.
|
||||
* @param clsname Buffer to store the classname.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return True on success, false if there is no classname set.
|
||||
* @param entity Index of the entity.
|
||||
* @param clsname Buffer to store the classname.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @return True on success, false if there is no classname set.
|
||||
*/
|
||||
stock bool GetEntityClassname(int entity, char[] clsname, int maxlength)
|
||||
{
|
||||
|
@ -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_prop_stocks_included
|
||||
#endinput
|
||||
#endif
|
||||
@ -37,132 +37,132 @@
|
||||
|
||||
enum MoveType
|
||||
{
|
||||
MOVETYPE_NONE = 0, /**< never moves */
|
||||
MOVETYPE_ISOMETRIC, /**< For players */
|
||||
MOVETYPE_WALK, /**< Player only - moving on the ground */
|
||||
MOVETYPE_STEP, /**< gravity, special edge handling -- monsters use this */
|
||||
MOVETYPE_FLY, /**< No gravity, but still collides with stuff */
|
||||
MOVETYPE_FLYGRAVITY, /**< flies through the air + is affected by gravity */
|
||||
MOVETYPE_VPHYSICS, /**< uses VPHYSICS for simulation */
|
||||
MOVETYPE_PUSH, /**< no clip to world, push and crush */
|
||||
MOVETYPE_NOCLIP, /**< No gravity, no collisions, still do velocity/avelocity */
|
||||
MOVETYPE_LADDER, /**< Used by players only when going onto a ladder */
|
||||
MOVETYPE_OBSERVER, /**< Observer movement, depends on player's observer mode */
|
||||
MOVETYPE_CUSTOM, /**< Allows the entity to describe its own physics */
|
||||
MOVETYPE_NONE = 0, /**< never moves */
|
||||
MOVETYPE_ISOMETRIC, /**< For players */
|
||||
MOVETYPE_WALK, /**< Player only - moving on the ground */
|
||||
MOVETYPE_STEP, /**< gravity, special edge handling -- monsters use this */
|
||||
MOVETYPE_FLY, /**< No gravity, but still collides with stuff */
|
||||
MOVETYPE_FLYGRAVITY, /**< flies through the air + is affected by gravity */
|
||||
MOVETYPE_VPHYSICS, /**< uses VPHYSICS for simulation */
|
||||
MOVETYPE_PUSH, /**< no clip to world, push and crush */
|
||||
MOVETYPE_NOCLIP, /**< No gravity, no collisions, still do velocity/avelocity */
|
||||
MOVETYPE_LADDER, /**< Used by players only when going onto a ladder */
|
||||
MOVETYPE_OBSERVER, /**< Observer movement, depends on player's observer mode */
|
||||
MOVETYPE_CUSTOM /**< Allows the entity to describe its own physics */
|
||||
};
|
||||
|
||||
enum RenderMode
|
||||
{
|
||||
RENDER_NORMAL, /**< src */
|
||||
RENDER_TRANSCOLOR, /**< c*a+dest*(1-a) */
|
||||
RENDER_TRANSTEXTURE, /**< src*a+dest*(1-a) */
|
||||
RENDER_GLOW, /**< src*a+dest -- No Z buffer checks -- Fixed size in screen space */
|
||||
RENDER_TRANSALPHA, /**< src*srca+dest*(1-srca) */
|
||||
RENDER_TRANSADD, /**< src*a+dest */
|
||||
RENDER_ENVIRONMENTAL, /**< not drawn, used for environmental effects */
|
||||
RENDER_TRANSADDFRAMEBLEND, /**< use a fractional frame value to blend between animation frames */
|
||||
RENDER_TRANSALPHAADD, /**< src + dest*(1-a) */
|
||||
RENDER_WORLDGLOW, /**< Same as kRenderGlow but not fixed size in screen space */
|
||||
RENDER_NONE, /**< Don't render. */
|
||||
{
|
||||
RENDER_NORMAL, /**< src */
|
||||
RENDER_TRANSCOLOR, /**< c*a+dest*(1-a) */
|
||||
RENDER_TRANSTEXTURE, /**< src*a+dest*(1-a) */
|
||||
RENDER_GLOW, /**< src*a+dest -- No Z buffer checks -- Fixed size in screen space */
|
||||
RENDER_TRANSALPHA, /**< src*srca+dest*(1-srca) */
|
||||
RENDER_TRANSADD, /**< src*a+dest */
|
||||
RENDER_ENVIRONMENTAL, /**< not drawn, used for environmental effects */
|
||||
RENDER_TRANSADDFRAMEBLEND, /**< use a fractional frame value to blend between animation frames */
|
||||
RENDER_TRANSALPHAADD, /**< src + dest*(1-a) */
|
||||
RENDER_WORLDGLOW, /**< Same as kRenderGlow but not fixed size in screen space */
|
||||
RENDER_NONE /**< Don't render. */
|
||||
};
|
||||
|
||||
enum RenderFx
|
||||
{
|
||||
RENDERFX_NONE = 0,
|
||||
RENDERFX_PULSE_SLOW,
|
||||
RENDERFX_PULSE_FAST,
|
||||
RENDERFX_PULSE_SLOW_WIDE,
|
||||
RENDERFX_PULSE_FAST_WIDE,
|
||||
RENDERFX_FADE_SLOW,
|
||||
RENDERFX_FADE_FAST,
|
||||
RENDERFX_SOLID_SLOW,
|
||||
RENDERFX_SOLID_FAST,
|
||||
RENDERFX_STROBE_SLOW,
|
||||
RENDERFX_STROBE_FAST,
|
||||
RENDERFX_STROBE_FASTER,
|
||||
RENDERFX_FLICKER_SLOW,
|
||||
{
|
||||
RENDERFX_NONE = 0,
|
||||
RENDERFX_PULSE_SLOW,
|
||||
RENDERFX_PULSE_FAST,
|
||||
RENDERFX_PULSE_SLOW_WIDE,
|
||||
RENDERFX_PULSE_FAST_WIDE,
|
||||
RENDERFX_FADE_SLOW,
|
||||
RENDERFX_FADE_FAST,
|
||||
RENDERFX_SOLID_SLOW,
|
||||
RENDERFX_SOLID_FAST,
|
||||
RENDERFX_STROBE_SLOW,
|
||||
RENDERFX_STROBE_FAST,
|
||||
RENDERFX_STROBE_FASTER,
|
||||
RENDERFX_FLICKER_SLOW,
|
||||
RENDERFX_FLICKER_FAST,
|
||||
RENDERFX_NO_DISSIPATION,
|
||||
RENDERFX_DISTORT, /**< Distort/scale/translate flicker */
|
||||
RENDERFX_HOLOGRAM, /**< kRenderFxDistort + distance fade */
|
||||
RENDERFX_EXPLODE, /**< Scale up really big! */
|
||||
RENDERFX_GLOWSHELL, /**< Glowing Shell */
|
||||
RENDERFX_CLAMP_MIN_SCALE, /**< Keep this sprite from getting very small (SPRITES only!) */
|
||||
RENDERFX_ENV_RAIN, /**< for environmental rendermode, make rain */
|
||||
RENDERFX_ENV_SNOW, /**< " " " , make snow */
|
||||
RENDERFX_SPOTLIGHT, /**< TEST CODE for experimental spotlight */
|
||||
RENDERFX_RAGDOLL, /**< HACKHACK: TEST CODE for signalling death of a ragdoll character */
|
||||
RENDERFX_DISTORT, /**< Distort/scale/translate flicker */
|
||||
RENDERFX_HOLOGRAM, /**< kRenderFxDistort + distance fade */
|
||||
RENDERFX_EXPLODE, /**< Scale up really big! */
|
||||
RENDERFX_GLOWSHELL, /**< Glowing Shell */
|
||||
RENDERFX_CLAMP_MIN_SCALE, /**< Keep this sprite from getting very small (SPRITES only!) */
|
||||
RENDERFX_ENV_RAIN, /**< for environmental rendermode, make rain */
|
||||
RENDERFX_ENV_SNOW, /**< " " " , make snow */
|
||||
RENDERFX_SPOTLIGHT, /**< TEST CODE for experimental spotlight */
|
||||
RENDERFX_RAGDOLL, /**< HACKHACK: TEST CODE for signalling death of a ragdoll character */
|
||||
RENDERFX_PULSE_FAST_WIDER,
|
||||
RENDERFX_MAX
|
||||
};
|
||||
|
||||
// These defines are for client button presses.
|
||||
#define IN_ATTACK (1 << 0)
|
||||
#define IN_JUMP (1 << 1)
|
||||
#define IN_DUCK (1 << 2)
|
||||
#define IN_FORWARD (1 << 3)
|
||||
#define IN_BACK (1 << 4)
|
||||
#define IN_USE (1 << 5)
|
||||
#define IN_CANCEL (1 << 6)
|
||||
#define IN_LEFT (1 << 7)
|
||||
#define IN_RIGHT (1 << 8)
|
||||
#define IN_MOVELEFT (1 << 9)
|
||||
#define IN_MOVERIGHT (1 << 10)
|
||||
#define IN_ATTACK2 (1 << 11)
|
||||
#define IN_RUN (1 << 12)
|
||||
#define IN_RELOAD (1 << 13)
|
||||
#define IN_ALT1 (1 << 14)
|
||||
#define IN_ALT2 (1 << 15)
|
||||
#define IN_SCORE (1 << 16) /**< Used by client.dll for when scoreboard is held down */
|
||||
#define IN_SPEED (1 << 17) /**< Player is holding the speed key */
|
||||
#define IN_WALK (1 << 18) /**< Player holding walk key */
|
||||
#define IN_ZOOM (1 << 19) /**< Zoom key for HUD zoom */
|
||||
#define IN_WEAPON1 (1 << 20) /**< weapon defines these bits */
|
||||
#define IN_WEAPON2 (1 << 21) /**< weapon defines these bits */
|
||||
#define IN_BULLRUSH (1 << 22)
|
||||
#define IN_GRENADE1 (1 << 23) /**< grenade 1 */
|
||||
#define IN_GRENADE2 (1 << 24) /**< grenade 2 */
|
||||
#define IN_ATTACK3 (1 << 25)
|
||||
#define IN_ATTACK (1 << 0)
|
||||
#define IN_JUMP (1 << 1)
|
||||
#define IN_DUCK (1 << 2)
|
||||
#define IN_FORWARD (1 << 3)
|
||||
#define IN_BACK (1 << 4)
|
||||
#define IN_USE (1 << 5)
|
||||
#define IN_CANCEL (1 << 6)
|
||||
#define IN_LEFT (1 << 7)
|
||||
#define IN_RIGHT (1 << 8)
|
||||
#define IN_MOVELEFT (1 << 9)
|
||||
#define IN_MOVERIGHT (1 << 10)
|
||||
#define IN_ATTACK2 (1 << 11)
|
||||
#define IN_RUN (1 << 12)
|
||||
#define IN_RELOAD (1 << 13)
|
||||
#define IN_ALT1 (1 << 14)
|
||||
#define IN_ALT2 (1 << 15)
|
||||
#define IN_SCORE (1 << 16) /**< Used by client.dll for when scoreboard is held down */
|
||||
#define IN_SPEED (1 << 17) /**< Player is holding the speed key */
|
||||
#define IN_WALK (1 << 18) /**< Player holding walk key */
|
||||
#define IN_ZOOM (1 << 19) /**< Zoom key for HUD zoom */
|
||||
#define IN_WEAPON1 (1 << 20) /**< weapon defines these bits */
|
||||
#define IN_WEAPON2 (1 << 21) /**< weapon defines these bits */
|
||||
#define IN_BULLRUSH (1 << 22)
|
||||
#define IN_GRENADE1 (1 << 23) /**< grenade 1 */
|
||||
#define IN_GRENADE2 (1 << 24) /**< grenade 2 */
|
||||
#define IN_ATTACK3 (1 << 25)
|
||||
|
||||
// Note: these are only for use with GetEntityFlags and SetEntityFlags
|
||||
// and may not match the game's actual, internal m_fFlags values.
|
||||
// PLAYER SPECIFIC FLAGS FIRST BECAUSE WE USE ONLY A FEW BITS OF NETWORK PRECISION
|
||||
#define FL_ONGROUND (1 << 0) /**< At rest / on the ground */
|
||||
#define FL_DUCKING (1 << 1) /**< Player flag -- Player is fully crouched */
|
||||
#define FL_WATERJUMP (1 << 2) /**< player jumping out of water */
|
||||
#define FL_ONTRAIN (1 << 3) /**< Player is _controlling_ a train, so movement commands should be ignored on client during prediction. */
|
||||
#define FL_INRAIN (1 << 4) /**< Indicates the entity is standing in rain */
|
||||
#define FL_FROZEN (1 << 5) /**< Player is frozen for 3rd person camera */
|
||||
#define FL_ATCONTROLS (1 << 6) /**< Player can't move, but keeps key inputs for controlling another entity */
|
||||
#define FL_CLIENT (1 << 7) /**< Is a player */
|
||||
#define FL_FAKECLIENT (1 << 8) /**< Fake client, simulated server side; don't send network messages to them */
|
||||
#define FL_ONGROUND (1 << 0) /**< At rest / on the ground */
|
||||
#define FL_DUCKING (1 << 1) /**< Player flag -- Player is fully crouched */
|
||||
#define FL_WATERJUMP (1 << 2) /**< player jumping out of water */
|
||||
#define FL_ONTRAIN (1 << 3) /**< Player is _controlling_ a train, so movement commands should be ignored on client during prediction. */
|
||||
#define FL_INRAIN (1 << 4) /**< Indicates the entity is standing in rain */
|
||||
#define FL_FROZEN (1 << 5) /**< Player is frozen for 3rd person camera */
|
||||
#define FL_ATCONTROLS (1 << 6) /**< Player can't move, but keeps key inputs for controlling another entity */
|
||||
#define FL_CLIENT (1 << 7) /**< Is a player */
|
||||
#define FL_FAKECLIENT (1 << 8) /**< Fake client, simulated server side; don't send network messages to them */
|
||||
// NOTE if you move things up, make sure to change this value
|
||||
#define PLAYER_FLAG_BITS 9
|
||||
#define PLAYER_FLAG_BITS 9
|
||||
// NON-PLAYER SPECIFIC (i.e., not used by GameMovement or the client .dll ) -- Can still be applied to players, though
|
||||
#define FL_INWATER (1 << 9) /**< In water */
|
||||
#define FL_FLY (1 << 10) /**< Changes the SV_Movestep() behavior to not need to be on ground */
|
||||
#define FL_SWIM (1 << 11) /**< Changes the SV_Movestep() behavior to not need to be on ground (but stay in water) */
|
||||
#define FL_CONVEYOR (1 << 12)
|
||||
#define FL_NPC (1 << 13)
|
||||
#define FL_GODMODE (1 << 14)
|
||||
#define FL_NOTARGET (1 << 15)
|
||||
#define FL_AIMTARGET (1 << 16) /**< set if the crosshair needs to aim onto the entity */
|
||||
#define FL_PARTIALGROUND (1 << 17) /**< not all corners are valid */
|
||||
#define FL_STATICPROP (1 << 18) /**< Eetsa static prop! */
|
||||
#define FL_GRAPHED (1 << 19) /**< worldgraph has this ent listed as something that blocks a connection */
|
||||
#define FL_GRENADE (1 << 20)
|
||||
#define FL_STEPMOVEMENT (1 << 21) /**< Changes the SV_Movestep() behavior to not do any processing */
|
||||
#define FL_DONTTOUCH (1 << 22) /**< Doesn't generate touch functions, generates Untouch() for anything it was touching when this flag was set */
|
||||
#define FL_BASEVELOCITY (1 << 23) /**< Base velocity has been applied this frame (used to convert base velocity into momentum) */
|
||||
#define FL_WORLDBRUSH (1 << 24) /**< Not moveable/removeable brush entity (really part of the world, but represented as an entity for transparency or something) */
|
||||
#define FL_OBJECT (1 << 25) /**< Terrible name. This is an object that NPCs should see. Missiles, for example. */
|
||||
#define FL_KILLME (1 << 26) /**< This entity is marked for death -- will be freed by game DLL */
|
||||
#define FL_ONFIRE (1 << 27) /**< You know... */
|
||||
#define FL_DISSOLVING (1 << 28) /**< We're dissolving! */
|
||||
#define FL_TRANSRAGDOLL (1 << 29) /**< In the process of turning into a client side ragdoll. */
|
||||
#define FL_UNBLOCKABLE_BY_PLAYER (1 << 30) /**< pusher that can't be blocked by the player */
|
||||
#define FL_FREEZING (1 << 31) /**< We're becoming frozen! */
|
||||
#define FL_EP2V_UNKNOWN1 (1 << 31) /**< Unknown */
|
||||
#define FL_INWATER (1 << 9) /**< In water */
|
||||
#define FL_FLY (1 << 10) /**< Changes the SV_Movestep() behavior to not need to be on ground */
|
||||
#define FL_SWIM (1 << 11) /**< Changes the SV_Movestep() behavior to not need to be on ground (but stay in water) */
|
||||
#define FL_CONVEYOR (1 << 12)
|
||||
#define FL_NPC (1 << 13)
|
||||
#define FL_GODMODE (1 << 14)
|
||||
#define FL_NOTARGET (1 << 15)
|
||||
#define FL_AIMTARGET (1 << 16) /**< set if the crosshair needs to aim onto the entity */
|
||||
#define FL_PARTIALGROUND (1 << 17) /**< not all corners are valid */
|
||||
#define FL_STATICPROP (1 << 18) /**< Eetsa static prop! */
|
||||
#define FL_GRAPHED (1 << 19) /**< worldgraph has this ent listed as something that blocks a connection */
|
||||
#define FL_GRENADE (1 << 20)
|
||||
#define FL_STEPMOVEMENT (1 << 21) /**< Changes the SV_Movestep() behavior to not do any processing */
|
||||
#define FL_DONTTOUCH (1 << 22) /**< Doesn't generate touch functions, generates Untouch() for anything it was touching when this flag was set */
|
||||
#define FL_BASEVELOCITY (1 << 23) /**< Base velocity has been applied this frame (used to convert base velocity into momentum) */
|
||||
#define FL_WORLDBRUSH (1 << 24) /**< Not moveable/removeable brush entity (really part of the world, but represented as an entity for transparency or something) */
|
||||
#define FL_OBJECT (1 << 25) /**< Terrible name. This is an object that NPCs should see. Missiles, for example. */
|
||||
#define FL_KILLME (1 << 26) /**< This entity is marked for death -- will be freed by game DLL */
|
||||
#define FL_ONFIRE (1 << 27) /**< You know... */
|
||||
#define FL_DISSOLVING (1 << 28) /**< We're dissolving! */
|
||||
#define FL_TRANSRAGDOLL (1 << 29) /**< In the process of turning into a client side ragdoll. */
|
||||
#define FL_UNBLOCKABLE_BY_PLAYER (1 << 30) /**< pusher that can't be blocked by the player */
|
||||
#define FL_FREEZING (1 << 31) /**< We're becoming frozen! */
|
||||
#define FL_EP2V_UNKNOWN1 (1 << 31) /**< Unknown */
|
||||
// END entity flag #defines
|
||||
|
||||
/**
|
||||
@ -172,9 +172,9 @@ enum RenderFx
|
||||
* to match the entity flags defined above as the actual values
|
||||
* can differ per engine.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return Entity's flags, see entity flag defines above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @return Entity's flags, see entity flag defines above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
native int GetEntityFlags(int entity);
|
||||
|
||||
@ -185,9 +185,9 @@ native int GetEntityFlags(int entity);
|
||||
* to match the current game's expected value for the flags as
|
||||
* the actual values can differ per engine.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param flags Entity flags, see entity flag defines above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @param flags Entity flags, see entity flag defines above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
native void SetEntityFlags(int entity, int flags);
|
||||
|
||||
@ -195,213 +195,213 @@ native void SetEntityFlags(int entity, int flags);
|
||||
/**
|
||||
* Gets an entity's movetype.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return Movetype, see enum above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @return Movetype, see enum above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock MoveType GetEntityMoveType(int entity)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char datamap[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_MoveType", datamap, sizeof(datamap));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(datamap, sizeof(datamap), "m_MoveType");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
return view_as<MoveType>(GetEntProp(entity, Prop_Data, datamap));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an entity's movetype.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param mt Movetype, see enum above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @param mt Movetype, see enum above.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock void SetEntityMoveType(int entity, MoveType mt)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char datamap[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_MoveType", datamap, sizeof(datamap));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(datamap, sizeof(datamap), "m_MoveType");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
SetEntProp(entity, Prop_Data, datamap, mt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an entity's render mode.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return RenderMode value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @return RenderMode value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock RenderMode GetEntityRenderMode(int entity)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char prop[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_nRenderMode", prop, sizeof(prop));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(prop, sizeof(prop), "m_nRenderMode");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
return view_as<RenderMode>(GetEntProp(entity, Prop_Send, prop, 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an entity's render mode.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param mode RenderMode value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @param mode RenderMode value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock void SetEntityRenderMode(int entity, RenderMode mode)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char prop[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_nRenderMode", prop, sizeof(prop));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(prop, sizeof(prop), "m_nRenderMode");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
SetEntProp(entity, Prop_Send, prop, mode, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an entity's render Fx.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return RenderFx value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @return RenderFx value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock RenderFx GetEntityRenderFx(int entity)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char prop[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_nRenderFX", prop, sizeof(prop));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(prop, sizeof(prop), "m_nRenderFX");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
return view_as<RenderFx>(GetEntProp(entity, Prop_Send, prop, 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an entity's render Fx.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param fx RenderFx value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @param fx RenderFx value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock void SetEntityRenderFx(int entity, RenderFx fx)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char prop[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_nRenderFX", prop, sizeof(prop));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(prop, sizeof(prop), "m_nRenderFX");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
SetEntProp(entity, Prop_Send, prop, fx, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets 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.
|
||||
* @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 GetEntityRenderColor(int entity, int &r, int &g, int &b, int &a)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char prop[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_clrRender", prop, sizeof(prop));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(prop, sizeof(prop), "m_clrRender");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
@ -411,39 +411,39 @@ stock void GetEntityRenderColor(int entity, int &r, int &g, int &b, int &a)
|
||||
/**
|
||||
* 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.
|
||||
* @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)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_clrRender", prop, sizeof(prop));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(prop, sizeof(prop), "m_clrRender");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
int offset = GetEntSendPropOffs(entity, prop);
|
||||
|
||||
|
||||
if (offset <= 0)
|
||||
{
|
||||
ThrowError("SetEntityRenderColor not supported by this mod");
|
||||
}
|
||||
|
||||
|
||||
SetEntData(entity, offset, r, 1, true);
|
||||
SetEntData(entity, offset + 1, g, 1, true);
|
||||
SetEntData(entity, offset + 2, b, 1, true);
|
||||
@ -454,104 +454,104 @@ stock void SetEntityRenderColor(int entity, int r=255, int g=255, int b=255, int
|
||||
* Gets an entity's gravity.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return Entity's m_flGravity value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @return Entity's m_flGravity value.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock float GetEntityGravity(int entity)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char datamap[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_flGravity", datamap, sizeof(datamap));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(datamap, sizeof(datamap), "m_flGravity");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
return GetEntPropFloat(entity, Prop_Data, datamap);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an entity's gravity.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param amount Gravity to set (default = 1.0, half = 0.5, double = 2.0).
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @param amount Gravity to set (default = 1.0, half = 0.5, double = 2.0).
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock void SetEntityGravity(int entity, float amount)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char datamap[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_flGravity", datamap, sizeof(datamap));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(datamap, sizeof(datamap), "m_flGravity");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
SetEntPropFloat(entity, Prop_Data, datamap, amount);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an entity's health
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param amount Health amount.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
* @param entity Entity index.
|
||||
* @param amount Health amount.
|
||||
* @error Invalid entity index, or lack of mod compliance.
|
||||
*/
|
||||
stock void SetEntityHealth(int entity, int amount)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char prop[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_iHealth", prop, sizeof(prop));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(prop, sizeof(prop), "m_iHealth");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
char cls[64];
|
||||
PropFieldType type;
|
||||
int offset;
|
||||
|
||||
|
||||
if (!GetEntityNetClass(entity, cls, sizeof(cls)))
|
||||
{
|
||||
ThrowError("SetEntityHealth not supported by this mod: Could not get serverclass name");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
offset = FindSendPropInfo(cls, prop, type);
|
||||
|
||||
|
||||
if (offset <= 0)
|
||||
{
|
||||
ThrowError("SetEntityHealth not supported by this mod");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* Dark Messiah uses a float for the health instead an integer */
|
||||
if (type == PropField_Float)
|
||||
{
|
||||
@ -566,29 +566,29 @@ stock void SetEntityHealth(int entity, int amount)
|
||||
/**
|
||||
* Get's a users current pressed buttons
|
||||
*
|
||||
* @param client Client index
|
||||
* @return Bitsum of buttons
|
||||
* @error Invalid client index, client not in game,
|
||||
* or lack of mod compliance.
|
||||
* @param client Client index
|
||||
* @return Bitsum of buttons
|
||||
* @error Invalid client index, client not in game,
|
||||
* or lack of mod compliance.
|
||||
*/
|
||||
stock int GetClientButtons(int client)
|
||||
{
|
||||
static bool gotconfig = false;
|
||||
static char datamap[32];
|
||||
|
||||
|
||||
if (!gotconfig)
|
||||
{
|
||||
GameData gc = new GameData("core.games");
|
||||
bool exists = gc.GetKeyValue("m_nButtons", datamap, sizeof(datamap));
|
||||
delete gc;
|
||||
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
strcopy(datamap, sizeof(datamap), "m_nButtons");
|
||||
}
|
||||
|
||||
|
||||
gotconfig = true;
|
||||
}
|
||||
|
||||
|
||||
return GetEntProp(client, Prop_Data, datamap);
|
||||
}
|
||||
|
@ -40,9 +40,9 @@
|
||||
*/
|
||||
enum EventHookMode
|
||||
{
|
||||
EventHookMode_Pre, //< Hook callback fired before event is fired */
|
||||
EventHookMode_Post, //< Hook callback fired after event is fired */
|
||||
EventHookMode_PostNoCopy //< Hook callback fired after event is fired, but event data won't be copied */
|
||||
EventHookMode_Pre, //< Hook callback fired before event is fired */
|
||||
EventHookMode_Post, //< Hook callback fired after event is fired */
|
||||
EventHookMode_PostNoCopy //< Hook callback fired after event is fired, but event data won't be copied */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -52,21 +52,22 @@ typeset EventHook
|
||||
{
|
||||
// Called when a game event is fired.
|
||||
//
|
||||
// @param event Handle to event. This could be INVALID_HANDLE if every plugin hooking
|
||||
// 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.
|
||||
// May not correspond to the real value. Use the property BroadcastDisabled.
|
||||
// @return Ignored for post hooks. Plugin_Handled will block event if hooked as pre.
|
||||
// @param event Handle to event. This could be INVALID_HANDLE if every plugin hooking
|
||||
// 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.
|
||||
// May not correspond to the real value. Use the property BroadcastDisabled.
|
||||
// @return Ignored for post hooks. Plugin_Handled will block event if hooked as pre.
|
||||
///
|
||||
function Action (Event event, const char[] name, bool dontBroadcast);
|
||||
|
||||
//
|
||||
// Called when a game event is fired.
|
||||
//
|
||||
// @param event Handle to event. This could be INVALID_HANDLE if every plugin hooking
|
||||
// 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.
|
||||
// @param event Handle to event. This could be INVALID_HANDLE if every plugin hooking
|
||||
// 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.
|
||||
///
|
||||
function void (Event event, const char[] name, bool dontBroadcast);
|
||||
};
|
||||
@ -84,7 +85,7 @@ methodmap Event < Handle
|
||||
//
|
||||
// Unlike Fire, this function DOES NOT close the event Handle.
|
||||
//
|
||||
// @param client Index of client to receive the event..
|
||||
// @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
|
||||
@ -168,31 +169,31 @@ methodmap Event < Handle
|
||||
/**
|
||||
* Creates a hook for when a game event is fired.
|
||||
*
|
||||
* @param name Name of event.
|
||||
* @param callback An EventHook function pointer.
|
||||
* @param mode Optional EventHookMode determining the type of hook.
|
||||
* @error Invalid event name or invalid callback function.
|
||||
* @param name Name of event.
|
||||
* @param callback An EventHook function pointer.
|
||||
* @param mode Optional EventHookMode determining the type of hook.
|
||||
* @error Invalid event name or invalid callback function.
|
||||
*/
|
||||
native void HookEvent(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
|
||||
|
||||
/**
|
||||
* Creates a hook for when a game event is fired.
|
||||
*
|
||||
* @param name Name of event.
|
||||
* @param callback An EventHook function pointer.
|
||||
* @param mode Optional EventHookMode determining the type of hook.
|
||||
* @return True if event exists and was hooked successfully, false otherwise.
|
||||
* @error Invalid callback function.
|
||||
* @param name Name of event.
|
||||
* @param callback An EventHook function pointer.
|
||||
* @param mode Optional EventHookMode determining the type of hook.
|
||||
* @return True if event exists and was hooked successfully, false otherwise.
|
||||
* @error Invalid callback function.
|
||||
*/
|
||||
native bool HookEventEx(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
|
||||
|
||||
/**
|
||||
* Removes a hook for when a game event is fired.
|
||||
*
|
||||
* @param name Name of event.
|
||||
* @param callback An EventHook function pointer.
|
||||
* @param mode Optional EventHookMode determining the type of hook.
|
||||
* @error Invalid callback function or no active hook for specified event.
|
||||
* @param name Name of event.
|
||||
* @param callback An EventHook function pointer.
|
||||
* @param mode Optional EventHookMode determining the type of hook.
|
||||
* @error Invalid callback function or no active hook for specified event.
|
||||
*/
|
||||
native void UnhookEvent(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
|
||||
|
||||
@ -202,11 +203,11 @@ native void UnhookEvent(const char[] name, EventHook callback, EventHookMode mod
|
||||
* The Handle should not be closed via CloseHandle(). It must be closed via
|
||||
* event.Fire() or event.Cancel().
|
||||
*
|
||||
* @param name Name of event.
|
||||
* @param force If set to true, this forces the event to be created even if it's not being hooked.
|
||||
* Note that this will not force it if the event doesn't exist at all.
|
||||
* @return Handle to event. INVALID_HANDLE is returned if the event doesn't exist or isn't
|
||||
being hooked (unless force is true).
|
||||
* @param name Name of event.
|
||||
* @param force If set to true, this forces the event to be created even if it's not being hooked.
|
||||
* Note that this will not force it if the event doesn't exist at all.
|
||||
* @return Handle to event. INVALID_HANDLE is returned if the event doesn't exist or isn't
|
||||
* being hooked (unless force is true).
|
||||
*/
|
||||
native Event CreateEvent(const char[] name, bool force=false);
|
||||
|
||||
@ -215,49 +216,49 @@ native Event CreateEvent(const char[] name, bool force=false);
|
||||
*
|
||||
* This function closes the event Handle after completing.
|
||||
*
|
||||
* @param event Handle to the event.
|
||||
* @param dontBroadcast Optional boolean that determines if event should be broadcast to clients.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handle to the event.
|
||||
* @param dontBroadcast Optional boolean that determines if event should be broadcast to clients.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handled to the event.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void CancelCreatedEvent(Handle event);
|
||||
|
||||
/**
|
||||
* Returns the boolean value of a game event's key.
|
||||
*
|
||||
* @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 specified event key.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @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 specified event key.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native bool GetEventBool(Handle event, const char[] key, bool defValue=false);
|
||||
|
||||
/**
|
||||
* Sets the boolean value of a game event's key.
|
||||
*
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New boolean value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New boolean value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetEventBool(Handle event, const char[] key, bool value);
|
||||
|
||||
/**
|
||||
* Returns the integer value of a game event's key.
|
||||
*
|
||||
* @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 specified event key.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @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 specified event key.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native int GetEventInt(Handle event, const char[] key, int defValue=0);
|
||||
|
||||
@ -269,63 +270,63 @@ native int GetEventInt(Handle event, const char[] key, int defValue=0);
|
||||
* integers, and only refer to how much data will actually be sent
|
||||
* over the network (if applicable).
|
||||
*
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New integer value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New integer value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetEventInt(Handle event, const char[] key, int value);
|
||||
|
||||
/**
|
||||
* Returns the floating point value of a game event's key.
|
||||
*
|
||||
* @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 specified event key.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @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 specified event key.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native float GetEventFloat(Handle event, const char[] key, float defValue=0.0);
|
||||
|
||||
/**
|
||||
* Sets the floating point value of a game event's key.
|
||||
*
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New floating point value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New floating point value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetEventFloat(Handle event, const char[] key, float value);
|
||||
|
||||
/**
|
||||
* Retrieves the string value of a game event's key.
|
||||
*
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @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.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @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.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void GetEventString(Handle event, const char[] key, char[] value, int maxlength, const char[] defvalue="");
|
||||
|
||||
/**
|
||||
* Sets the string value of a game event's key.
|
||||
*
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New string value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handle to the event.
|
||||
* @param key Name of event key.
|
||||
* @param value New string value.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SetEventString(Handle event, const char[] key, const char[] value);
|
||||
|
||||
/**
|
||||
* Retrieves the name of a game event.
|
||||
*
|
||||
* @param event Handle to the event.
|
||||
* @param name Buffer to store the name of the event.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param event Handle to the event.
|
||||
* @param name Buffer to store the name of the event.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void GetEventName(Handle event, char[] name, int maxlength);
|
||||
|
||||
@ -339,4 +340,4 @@ native void GetEventName(Handle event, char[] name, int maxlength);
|
||||
* @param dontBroadcast True to disable broadcasting, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void SetEventBroadcast(Handle event, bool dontBroadcast);
|
||||
native void SetEventBroadcast(Handle event, bool dontBroadcast);
|
||||
|
@ -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
|
||||
@ -39,13 +39,13 @@
|
||||
* @global All paths in SourceMod natives are relative to the mod folder
|
||||
* unless otherwise noted.
|
||||
*
|
||||
* Most functions in SourceMod (at least, ones that deal with direct
|
||||
* Most functions in SourceMod (at least, ones that deal with direct
|
||||
* file manipulation) will support an alternate path specification.
|
||||
*
|
||||
* If the path starts with the string "file://" and the PathType is
|
||||
* not relative, then the "file://" portion is stripped off, and the
|
||||
* rest of the path is used without any modification (except for
|
||||
* correcting slashes). This can be used to override the path
|
||||
* If the path starts with the string "file://" and the PathType is
|
||||
* not relative, then the "file://" portion is stripped off, and the
|
||||
* rest of the path is used without any modification (except for
|
||||
* correcting slashes). This can be used to override the path
|
||||
* builder to supply alternate absolute paths. Examples:
|
||||
*
|
||||
* file://C:/Temp/file.txt
|
||||
@ -57,9 +57,9 @@
|
||||
*/
|
||||
enum FileType
|
||||
{
|
||||
FileType_Unknown = 0, /* Unknown file type (device/socket) */
|
||||
FileType_Directory = 1, /* File is a directory */
|
||||
FileType_File = 2, /* File is a file */
|
||||
FileType_Unknown = 0, /* Unknown file type (device/socket) */
|
||||
FileType_Directory = 1, /* File is a directory */
|
||||
FileType_File = 2 /* File is a file */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -67,23 +67,23 @@ enum FileType
|
||||
*/
|
||||
enum FileTimeMode
|
||||
{
|
||||
FileTime_LastAccess = 0, /* Last access (does not work on FAT) */
|
||||
FileTime_Created = 1, /* Creation (does not work on FAT) */
|
||||
FileTime_LastChange = 2, /* Last modification */
|
||||
FileTime_LastAccess = 0, /* Last access (does not work on FAT) */
|
||||
FileTime_Created = 1, /* Creation (does not work on FAT) */
|
||||
FileTime_LastChange = 2 /* Last modification */
|
||||
};
|
||||
|
||||
#define PLATFORM_MAX_PATH 256 /**< Maximum path length. */
|
||||
#define PLATFORM_MAX_PATH 256 /**< Maximum path length. */
|
||||
|
||||
#define SEEK_SET 0 /**< Seek from start. */
|
||||
#define SEEK_CUR 1 /**< Seek from current position. */
|
||||
#define SEEK_END 2 /**< Seek from end position. */
|
||||
#define SEEK_SET 0 /**< Seek from start. */
|
||||
#define SEEK_CUR 1 /**< Seek from current position. */
|
||||
#define SEEK_END 2 /**< Seek from end position. */
|
||||
|
||||
/**
|
||||
* Path types.
|
||||
*/
|
||||
enum PathType
|
||||
{
|
||||
Path_SM, /**< SourceMod root folder */
|
||||
Path_SM, /**< SourceMod root folder */
|
||||
};
|
||||
|
||||
// A DirectoryListing iterates over the contents of a directory. To obtain a
|
||||
@ -92,9 +92,9 @@ methodmap DirectoryListing < Handle
|
||||
{
|
||||
// Reads the current directory entry as a local filename, then moves to the
|
||||
// next file.
|
||||
//
|
||||
//
|
||||
// Note: Both the '.' and '..' automatic directory entries will be retrieved.
|
||||
//
|
||||
//
|
||||
// @param buffer String buffer to hold directory name.
|
||||
// @param maxlength Maximum size of string buffer.
|
||||
// @param type Optional variable to store the file type.
|
||||
@ -113,15 +113,15 @@ methodmap File < Handle
|
||||
}
|
||||
|
||||
// Reads a line of text from a file.
|
||||
//
|
||||
//
|
||||
// @param buffer String buffer to hold the line.
|
||||
// @param maxlength Maximum size of string buffer.
|
||||
// @param maxlength Maximum size of string buffer.
|
||||
// @return True on success, false otherwise.
|
||||
public native bool ReadLine(char[] buffer, int maxlength);
|
||||
|
||||
// Reads binary data from a file.
|
||||
//
|
||||
// @param items Array to store each item read.
|
||||
//
|
||||
// @param items Array to store each item read.
|
||||
// @param num_items Number of items to read into the array.
|
||||
// @param size Size of each element, in bytes, to be read.
|
||||
// Valid sizes are 1, 2, or 4.
|
||||
@ -129,40 +129,40 @@ methodmap File < Handle
|
||||
public native int Read(int[] items, int num_items, int size);
|
||||
|
||||
// Reads a UTF8 or ANSI string from a file.
|
||||
//
|
||||
//
|
||||
// @param buffer Buffer to store the string.
|
||||
// @param max_size Maximum size of the string buffer.
|
||||
// @param read_count If -1, reads until a null terminator is encountered in
|
||||
// the file. Otherwise, read_count bytes are read
|
||||
// into the buffer provided. In this case the buffer
|
||||
// is not explicitly null terminated, and the buffer
|
||||
// @param read_count If -1, reads until a null terminator is encountered in
|
||||
// the file. Otherwise, read_count bytes are read
|
||||
// into the buffer provided. In this case the buffer
|
||||
// is not explicitly null terminated, and the buffer
|
||||
// will contain any null terminators read from the file.
|
||||
// @return Number of characters written to the buffer, or -1
|
||||
// @return Number of characters written to the buffer, or -1
|
||||
// if an error was encountered.
|
||||
// @error read_count > max_size.
|
||||
public native int ReadString(char[] buffer, int max_size, int read_count=-1);
|
||||
|
||||
// Writes binary data to a file.
|
||||
//
|
||||
// @param items Array of items to write. The data is read directly.
|
||||
// That is, in 1 or 2-byte mode, the lower byte(s) in
|
||||
// each cell are used directly, rather than performing
|
||||
// @param items Array of items to write. The data is read directly.
|
||||
// That is, in 1 or 2-byte mode, the lower byte(s) in
|
||||
// each cell are used directly, rather than performing
|
||||
// any casts from a 4-byte number to a smaller number.
|
||||
// @param num_items Number of items in the array.
|
||||
// @param size Size of each item in the array in bytes.
|
||||
// @param size Size of each item in the array in bytes.
|
||||
// Valid sizes are 1, 2, or 4.
|
||||
// @return True on success, false on error.
|
||||
public native bool Write(const int[] items, int num_items, int size);
|
||||
|
||||
// Writes a binary string to a file.
|
||||
//
|
||||
//
|
||||
// @param buffer String to write.
|
||||
// @param term True to append NUL terminator, false otherwise.
|
||||
// @return True on success, false on error.
|
||||
public native bool WriteString(const char[] buffer, bool term);
|
||||
|
||||
// Writes a line of text to a text file. A newline is automatically appended.
|
||||
//
|
||||
//
|
||||
// @param hndl Handle to the file.
|
||||
// @param format Formatting rules.
|
||||
// @param ... Variable number of format parameters.
|
||||
@ -222,7 +222,7 @@ methodmap File < Handle
|
||||
public native bool WriteInt32(int data);
|
||||
|
||||
// Tests if the end of file has been reached.
|
||||
//
|
||||
//
|
||||
// @return True if end of file has been reached, false otherwise.
|
||||
public native bool EndOfFile();
|
||||
|
||||
@ -240,16 +240,16 @@ methodmap File < Handle
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a path relative to the SourceMod folder. This should be used instead of
|
||||
* directly referencing addons/sourcemod, in case users change the name of their
|
||||
* Builds a path relative to the SourceMod folder. This should be used instead of
|
||||
* directly referencing addons/sourcemod, in case users change the name of their
|
||||
* folder layout.
|
||||
*
|
||||
* @param type Type of path to build as the base.
|
||||
* @param buffer Buffer to store the path.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @param fmt Format string.
|
||||
* @param ... Format arguments.
|
||||
* @return Number of bytes written to buffer (not including null terminator).
|
||||
* @param type Type of path to build as the base.
|
||||
* @param buffer Buffer to store the path.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @param fmt Format string.
|
||||
* @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 ...);
|
||||
|
||||
@ -260,13 +260,13 @@ native int BuildPath(PathType type, char[] buffer, int maxlength, const char[] f
|
||||
* @note Directories Handles can be cloned.
|
||||
* @note OpenDirectory() supports the "file://" notation.
|
||||
*
|
||||
* @param path Path to open.
|
||||
* @param path Path to open.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to find files existing in any of
|
||||
* the Valve search paths, rather than solely files
|
||||
* existing directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return A Handle to the directory, null on error.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return A Handle to the directory, null on error.
|
||||
*/
|
||||
native DirectoryListing OpenDirectory(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
|
||||
|
||||
@ -275,13 +275,13 @@ native DirectoryListing OpenDirectory(const char[] path, bool use_valve_fs=false
|
||||
*
|
||||
* @note Contents of buffers are undefined when returning false.
|
||||
* @note Both the '.' and '..' automatic directory entries will be retrieved for Windows and Linux.
|
||||
*
|
||||
* @param dir Handle to a directory.
|
||||
* @param buffer String buffer to hold directory name.
|
||||
* @param maxlength Maximum size of string buffer.
|
||||
* @param type Optional variable to store the file type.
|
||||
* @return True on success, false if there are no more files to read.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*
|
||||
* @param dir Handle to a directory.
|
||||
* @param buffer String buffer to hold directory name.
|
||||
* @param maxlength Maximum size of string buffer.
|
||||
* @param type Optional variable to store the file type.
|
||||
* @return True on success, false if there are no more files to read.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native bool ReadDirEntry(Handle dir, char[] buffer, int maxlength, FileType &type=FileType_Unknown);
|
||||
|
||||
@ -310,227 +310,229 @@ native bool ReadDirEntry(Handle dir, char[] buffer, int maxlength, FileType &typ
|
||||
* Example: "rb" opens a binary file for writing; "at" opens a text file for
|
||||
* appending.
|
||||
*
|
||||
* @param file File to open.
|
||||
* @param mode Open mode.
|
||||
* @param file File to open.
|
||||
* @param mode Open mode.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to find files existing in valve
|
||||
* search paths, rather than solely files existing directly
|
||||
* in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return A File handle, or null if the file could not be opened.
|
||||
* search paths, rather than solely files existing directly
|
||||
* in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return A File handle, or null if the file could not be opened.
|
||||
*/
|
||||
native File OpenFile(const char[] file, const char[] mode, bool use_valve_fs=false, const char[] valve_path_id="GAME");
|
||||
|
||||
/**
|
||||
* Deletes a file.
|
||||
*
|
||||
* @param path Path of the file to delete.
|
||||
* @param path Path of the file to delete.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to delete files existing in the Valve
|
||||
* search path, rather than solely files existing directly
|
||||
* in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True on success, false on failure or if file not immediately removed.
|
||||
* in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True on success, false on failure or if file not immediately removed.
|
||||
*/
|
||||
native bool DeleteFile(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="DEFAULT_WRITE_PATH");
|
||||
|
||||
/**
|
||||
* Reads a line from a text file.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param buffer String buffer to hold the line.
|
||||
* @param maxlength Maximum size of string buffer.
|
||||
* @return True on success, false otherwise.
|
||||
* @param hndl Handle to the file.
|
||||
* @param buffer String buffer to hold the line.
|
||||
* @param maxlength Maximum size of string buffer.
|
||||
* @return True on success, false otherwise.
|
||||
*/
|
||||
native bool ReadFileLine(Handle hndl, char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Reads binary data from a file.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param items Array to store each item read.
|
||||
* @param num_items Number of items to read into the array.
|
||||
* @param size Size of each element, in bytes, to be read.
|
||||
* Valid sizes are 1, 2, or 4.
|
||||
* @return Number of elements read, or -1 on error.
|
||||
* @param hndl Handle to the file.
|
||||
* @param items Array to store each item read.
|
||||
* @param num_items Number of items to read into the array.
|
||||
* @param size Size of each element, in bytes, to be read.
|
||||
* Valid sizes are 1, 2, or 4.
|
||||
* @return Number of elements read, or -1 on error.
|
||||
*/
|
||||
native int ReadFile(Handle hndl, int[] items, int num_items, int size);
|
||||
|
||||
/**
|
||||
* Reads a UTF8 or ANSI string from a file.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param buffer Buffer to store the string.
|
||||
* @param max_size Maximum size of the string buffer.
|
||||
* @param read_count If -1, reads until a null terminator is encountered in
|
||||
* the file. Otherwise, read_count bytes are read
|
||||
* into the buffer provided. In this case the buffer
|
||||
* is not explicitly null terminated, and the buffer
|
||||
* will contain any null terminators read from the file.
|
||||
* @return Number of characters written to the buffer, or -1
|
||||
* if an error was encountered.
|
||||
* @error Invalid Handle, or read_count > max_size.
|
||||
* @param hndl Handle to the file.
|
||||
* @param buffer Buffer to store the string.
|
||||
* @param max_size Maximum size of the string buffer.
|
||||
* @param read_count If -1, reads until a null terminator is encountered in
|
||||
* the file. Otherwise, read_count bytes are read
|
||||
* into the buffer provided. In this case the buffer
|
||||
* is not explicitly null terminated, and the buffer
|
||||
* will contain any null terminators read from the file.
|
||||
* @return Number of characters written to the buffer, or -1
|
||||
* if an error was encountered.
|
||||
* @error Invalid Handle, or read_count > max_size.
|
||||
*/
|
||||
native int ReadFileString(Handle hndl, char[] buffer, int max_size, int read_count=-1);
|
||||
|
||||
/**
|
||||
* Writes binary data to a file.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param items Array of items to write. The data is read directly.
|
||||
* That is, in 1 or 2-byte mode, the lower byte(s) in
|
||||
* each cell are used directly, rather than performing
|
||||
* any casts from a 4-byte number to a smaller number.
|
||||
* @param num_items Number of items in the array.
|
||||
* @param size Size of each item in the array in bytes.
|
||||
* Valid sizes are 1, 2, or 4.
|
||||
* @return True on success, false on error.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl Handle to the file.
|
||||
* @param items Array of items to write. The data is read directly.
|
||||
* That is, in 1 or 2-byte mode, the lower byte(s) in
|
||||
* each cell are used directly, rather than performing
|
||||
* any casts from a 4-byte number to a smaller number.
|
||||
* @param num_items Number of items in the array.
|
||||
* @param size Size of each item in the array in bytes.
|
||||
* Valid sizes are 1, 2, or 4.
|
||||
* @return True on success, false on error.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool WriteFile(Handle hndl, const int[] items, int num_items, int size);
|
||||
|
||||
/**
|
||||
* Writes a binary string to a file.
|
||||
*
|
||||
* @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.
|
||||
* @error Invalid Handle.
|
||||
* @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.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool WriteFileString(Handle hndl, const char[] buffer, bool term);
|
||||
|
||||
/**
|
||||
* Writes a line of text to a text file. A newline is automatically appended.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl Handle to the file.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool WriteFileLine(Handle hndl, const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Reads a single binary cell from a file.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param data Variable to store the data read.
|
||||
* @param size Size of the data to read in bytes. Valid
|
||||
* sizes are 1, 2, or 4 bytes.
|
||||
* @return Number of elements read (max 1), or -1 on error.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl Handle to the file.
|
||||
* @param data Variable to store the data read.
|
||||
* @param size Size of the data to read in bytes. Valid
|
||||
* sizes are 1, 2, or 4 bytes.
|
||||
* @return Number of elements read (max 1), or -1 on error.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
stock int ReadFileCell(Handle hndl, int &data, int size)
|
||||
{
|
||||
int ret;
|
||||
int array[1];
|
||||
|
||||
|
||||
if ((ret = ReadFile(hndl, array, 1, size)) == 1)
|
||||
{
|
||||
data = array[0];
|
||||
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a single binary cell to a file.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param data Cell to write to the file.
|
||||
* @param size Size of the data to read in bytes. Valid
|
||||
* sizes are 1, 2, or 4 bytes. If the size
|
||||
* is less than 4 bytes, the data is truncated
|
||||
* rather than casted. That is, only the lower
|
||||
* bits will be read.
|
||||
* @return True on success, false on error.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl Handle to the file.
|
||||
* @param data Cell to write to the file.
|
||||
* @param size Size of the data to read in bytes. Valid
|
||||
* sizes are 1, 2, or 4 bytes. If the size
|
||||
* is less than 4 bytes, the data is truncated
|
||||
* rather than casted. That is, only the lower
|
||||
* bits will be read.
|
||||
* @return True on success, false on error.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
stock bool WriteFileCell(Handle hndl, int data, int size)
|
||||
{
|
||||
int array[1];
|
||||
|
||||
array[0] = data;
|
||||
|
||||
return WriteFile(hndl, array, 1, size);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests if the end of file has been reached.
|
||||
*
|
||||
* @param file Handle to the file.
|
||||
* @return True if end of file has been reached, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param file Handle to the file.
|
||||
* @return True if end of file has been reached, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool IsEndOfFile(Handle file);
|
||||
|
||||
/**
|
||||
* Sets the file position indicator.
|
||||
*
|
||||
* @param file Handle to the file.
|
||||
* @param position Position relative to what is specified in whence.
|
||||
* @param where SEEK_ constant value of where to see from.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param file Handle to the file.
|
||||
* @param position Position relative to what is specified in whence.
|
||||
* @param where SEEK_ constant value of where to see from.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool FileSeek(Handle file, int position, int where);
|
||||
|
||||
/**
|
||||
* Get current position in the file.
|
||||
*
|
||||
* @param file Handle to the file.
|
||||
* @return Value for the file position indicator.
|
||||
* @error Invalid Handle.
|
||||
* @param file Handle to the file.
|
||||
* @return Value for the file position indicator.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int FilePosition(Handle file);
|
||||
|
||||
/**
|
||||
* Checks if a file exists.
|
||||
*
|
||||
* @param path Path to the file.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to find files existing in any of
|
||||
* the Valve search paths, rather than solely files
|
||||
* existing directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True if the file exists, false otherwise.
|
||||
* @param path Path to the file.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to find files existing in any of
|
||||
* the Valve search paths, rather than solely files
|
||||
* existing directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True if the file exists, false otherwise.
|
||||
*/
|
||||
native bool FileExists(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
|
||||
|
||||
/**
|
||||
* Renames a file.
|
||||
*
|
||||
* @param newpath New path to the file.
|
||||
* @param oldpath Path to the existing file.
|
||||
* @param newpath New path to the file.
|
||||
* @param oldpath Path to the existing file.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to rename files in the game's
|
||||
* Valve search paths, rather than directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True on success or use_valve_fs specified, false otherwise.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True on success or use_valve_fs specified, false otherwise.
|
||||
*/
|
||||
native bool RenameFile(const char[] newpath, const char[] oldpath, bool use_valve_fs=false, const char[] valve_path_id="DEFAULT_WRITE_PATH");
|
||||
|
||||
/**
|
||||
* Checks if a directory exists.
|
||||
*
|
||||
* @param path Path to the directory.
|
||||
* @param path Path to the directory.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to find files existing in any of
|
||||
* the Valve search paths, rather than solely files
|
||||
* existing directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True if the directory exists, false otherwise.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return True if the directory exists, false otherwise.
|
||||
*/
|
||||
native bool DirExists(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
|
||||
|
||||
/**
|
||||
* Get the file size in bytes.
|
||||
*
|
||||
* @param path Path to the file.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to find files existing in any of
|
||||
* the Valve search paths, rather than solely files
|
||||
* existing directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return File size in bytes, -1 if file not found.
|
||||
* @param path Path to the file.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to find files existing in any of
|
||||
* the Valve search paths, rather than solely files
|
||||
* existing directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
|
||||
* @return File size in bytes, -1 if file not found.
|
||||
*/
|
||||
native int FileSize(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
|
||||
|
||||
@ -538,8 +540,8 @@ native int FileSize(const char[] path, bool use_valve_fs=false, const char[] val
|
||||
* Flushes a file's buffered output; any buffered output
|
||||
* is immediately written to the file.
|
||||
*
|
||||
* @param file Handle to the file.
|
||||
* @return True on success or use_valve_fs specified with OpenFile,
|
||||
* @param file Handle to the file.
|
||||
* @return True on success or use_valve_fs specified with OpenFile,
|
||||
* otherwise false on failure.
|
||||
*/
|
||||
native bool FlushFile(Handle file);
|
||||
@ -548,72 +550,72 @@ native bool FlushFile(Handle file);
|
||||
* Removes a directory.
|
||||
* @note On most Operating Systems you cannot remove a directory which has files inside it.
|
||||
*
|
||||
* @param path Path to the directory.
|
||||
* @return True on success, false otherwise.
|
||||
* @param path Path to the directory.
|
||||
* @return True on success, false otherwise.
|
||||
*/
|
||||
native bool RemoveDir(const char[] path);
|
||||
|
||||
#define FPERM_U_READ 0x0100 /* User can read. */
|
||||
#define FPERM_U_WRITE 0x0080 /* User can write. */
|
||||
#define FPERM_U_EXEC 0x0040 /* User can exec. */
|
||||
#define FPERM_G_READ 0x0020 /* Group can read. */
|
||||
#define FPERM_G_WRITE 0x0010 /* Group can write. */
|
||||
#define FPERM_G_EXEC 0x0008 /* Group can exec. */
|
||||
#define FPERM_O_READ 0x0004 /* Anyone can read. */
|
||||
#define FPERM_O_WRITE 0x0002 /* Anyone can write. */
|
||||
#define FPERM_O_EXEC 0x0001 /* Anyone can exec. */
|
||||
#define FPERM_U_READ 0x0100 /* User can read. */
|
||||
#define FPERM_U_WRITE 0x0080 /* User can write. */
|
||||
#define FPERM_U_EXEC 0x0040 /* User can exec. */
|
||||
#define FPERM_G_READ 0x0020 /* Group can read. */
|
||||
#define FPERM_G_WRITE 0x0010 /* Group can write. */
|
||||
#define FPERM_G_EXEC 0x0008 /* Group can exec. */
|
||||
#define FPERM_O_READ 0x0004 /* Anyone can read. */
|
||||
#define FPERM_O_WRITE 0x0002 /* Anyone can write. */
|
||||
#define FPERM_O_EXEC 0x0001 /* Anyone can exec. */
|
||||
|
||||
/**
|
||||
* Creates a directory.
|
||||
*
|
||||
* @param path Path to create.
|
||||
* @param mode Permissions (default is o=rx,g=rx,u=rwx). Note that folders must have
|
||||
* the execute bit set on Linux. On Windows, the mode is ignored.
|
||||
* @param path Path to create.
|
||||
* @param mode Permissions (default is o=rx,g=rx,u=rwx). Note that folders must have
|
||||
* the execute bit set on Linux. On Windows, the mode is ignored.
|
||||
* @param use_valve_fs If true, the Valve file system will be used instead.
|
||||
* This can be used to create folders in the game's
|
||||
* Valve search paths, rather than directly in the gamedir.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for default.
|
||||
* @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for default.
|
||||
* In this case, mode is ignored.
|
||||
* @return True on success, false otherwise.
|
||||
* @return True on success, false otherwise.
|
||||
*/
|
||||
native bool CreateDirectory(const char[] path, int mode, bool use_valve_fs=false, const char[] valve_path_id="DEFAULT_WRITE_PATH");
|
||||
|
||||
/**
|
||||
* Changes a file or directories permissions.
|
||||
*
|
||||
* @param path Path to the file.
|
||||
* @param mode Permissions to set.
|
||||
* @return True on success, false otherwise.
|
||||
* @param path Path to the file.
|
||||
* @param mode Permissions to set.
|
||||
* @return True on success, false otherwise.
|
||||
*/
|
||||
native bool SetFilePermissions(const char[] path, int mode);
|
||||
|
||||
/**
|
||||
* Returns a file timestamp as a unix timestamp.
|
||||
*
|
||||
* @param file File name.
|
||||
* @param tmode Time mode.
|
||||
* @return Time value, or -1 on failure.
|
||||
* @param file File name.
|
||||
* @param tmode Time mode.
|
||||
* @return Time value, or -1 on failure.
|
||||
*/
|
||||
native int GetFileTime(const char[] file, FileTimeMode tmode);
|
||||
|
||||
/**
|
||||
* Same as LogToFile(), except uses an open file Handle. The file must
|
||||
* Same as LogToFile(), except uses an open file Handle. The file must
|
||||
* be opened in text appending mode.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param message Message format.
|
||||
* @param ... Message format parameters.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl Handle to the file.
|
||||
* @param message Message format.
|
||||
* @param ... Message format parameters.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void LogToOpenFile(Handle hndl, const char[] message, any ...);
|
||||
|
||||
/**
|
||||
* Same as LogToFileEx(), except uses an open file Handle. The file must
|
||||
* Same as LogToFileEx(), except uses an open file Handle. The file must
|
||||
* be opened in text appending mode.
|
||||
*
|
||||
* @param hndl Handle to the file.
|
||||
* @param message Message format.
|
||||
* @param ... Message format parameters.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl Handle to the file.
|
||||
* @param message Message format.
|
||||
* @param ... Message format parameters.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void LogToOpenFileEx(Handle hndl, const char[] message, any ...);
|
||||
|
@ -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 _float_included
|
||||
#endinput
|
||||
#endif
|
||||
@ -39,8 +39,8 @@
|
||||
/**
|
||||
* Converts an integer into a floating point value.
|
||||
*
|
||||
* @param value Integer to convert.
|
||||
* @return Floating point value.
|
||||
* @param value Integer to convert.
|
||||
* @return Floating point value.
|
||||
*/
|
||||
native float float(int value);
|
||||
#endif
|
||||
@ -50,9 +50,10 @@ native float float(int value);
|
||||
*
|
||||
* Note: This native is internal implementation. For multiplication use the '*' operator.
|
||||
*
|
||||
* @param oper1 First value.
|
||||
* @param oper2 Second value.
|
||||
* @return oper1*oper2.
|
||||
* @param oper1 First value.
|
||||
* @param oper2 Second value.
|
||||
* @return oper1*oper2.
|
||||
* @deprecated This native is internal implementation. For multiplication use the '*' operator.
|
||||
*/
|
||||
#pragma deprecated This native is internal implementation. For multiplication use the '*' operator.
|
||||
native float FloatMul(float oper1, float oper2);
|
||||
@ -62,9 +63,10 @@ native float FloatMul(float oper1, float oper2);
|
||||
*
|
||||
* Note: This native is internal implementation. For division use the '/' operator.
|
||||
*
|
||||
* @param dividend First value.
|
||||
* @param divisor Second value.
|
||||
* @return dividend/divisor.
|
||||
* @param dividend First value.
|
||||
* @param divisor Second value.
|
||||
* @return dividend/divisor.
|
||||
* @deprecated This native is internal implementation. For division use the '/' operator.
|
||||
*/
|
||||
#pragma deprecated This native is internal implementation. For division use the '/' operator.
|
||||
native float FloatDiv(float dividend, float divisor);
|
||||
@ -74,9 +76,10 @@ native float FloatDiv(float dividend, float divisor);
|
||||
*
|
||||
* Note: This native is internal implementation. For addition use the '+' operator.
|
||||
*
|
||||
* @param oper1 First value.
|
||||
* @param oper2 Second value.
|
||||
* @return oper1+oper2.
|
||||
* @param oper1 First value.
|
||||
* @param oper2 Second value.
|
||||
* @return oper1+oper2.
|
||||
* @deprecated This native is internal implementation. For addition use the '+' operator.
|
||||
*/
|
||||
#pragma deprecated This native is internal implementation. For addition use the '+' operator.
|
||||
native float FloatAdd(float oper1, float oper2);
|
||||
@ -86,9 +89,10 @@ native float FloatAdd(float oper1, float oper2);
|
||||
*
|
||||
* Note: This native is internal implementation. For subtraction use the '-' operator.
|
||||
*
|
||||
* @param oper1 First value.
|
||||
* @param oper2 Second value.
|
||||
* @return oper1-oper2.
|
||||
* @param oper1 First value.
|
||||
* @param oper2 Second value.
|
||||
* @return oper1-oper2.
|
||||
* @deprecated This native is internal implementation. For subtraction use the '-' operator.
|
||||
*/
|
||||
#pragma deprecated This native is internal implementation. For subtraction use the '-' operator.
|
||||
native float FloatSub(float oper1, float oper2);
|
||||
@ -96,49 +100,49 @@ native float FloatSub(float oper1, float oper2);
|
||||
/**
|
||||
* Returns the decimal part of a float.
|
||||
*
|
||||
* @param value Input value.
|
||||
* @return Decimal part.
|
||||
* @param value Input value.
|
||||
* @return Decimal part.
|
||||
*/
|
||||
native float FloatFraction(float value);
|
||||
|
||||
/**
|
||||
* Rounds a float to the closest integer to zero.
|
||||
*
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
*/
|
||||
native int RoundToZero(float value);
|
||||
|
||||
/**
|
||||
* Rounds a float to the next highest integer value.
|
||||
*
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
*/
|
||||
native int RoundToCeil(float value);
|
||||
|
||||
/**
|
||||
* Rounds a float to the next lowest integer value.
|
||||
*
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
*/
|
||||
native int RoundToFloor(float value);
|
||||
|
||||
/**
|
||||
* Standard IEEE rounding.
|
||||
*
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
* @param value Input value to be rounded.
|
||||
* @return Rounded value.
|
||||
*/
|
||||
native int RoundToNearest(float value);
|
||||
|
||||
/**
|
||||
* Compares two floats.
|
||||
*
|
||||
* @param fOne First value.
|
||||
* @param fTwo Second value.
|
||||
* @return Returns 1 if the first argument is greater than the second argument.
|
||||
* @param fOne First value.
|
||||
* @param fTwo Second value.
|
||||
* @return Returns 1 if the first argument is greater than the second argument.
|
||||
* Returns -1 if the first argument is smaller than the second argument.
|
||||
* Returns 0 if both arguments are equal.
|
||||
*/
|
||||
@ -147,107 +151,107 @@ native int FloatCompare(float fOne, float fTwo);
|
||||
/**
|
||||
* Returns the square root of the input value, equivalent to floatpower(value, 0.5).
|
||||
*
|
||||
* @param value Input value.
|
||||
* @return Square root of the value.
|
||||
* @param value Input value.
|
||||
* @return Square root of the value.
|
||||
*/
|
||||
native float SquareRoot(float value);
|
||||
|
||||
/**
|
||||
* Returns the value raised to the power of the exponent.
|
||||
*
|
||||
* @param value Value to be raised.
|
||||
* @param exponent Value to raise the base.
|
||||
* @return value^exponent.
|
||||
* @param value Value to be raised.
|
||||
* @param exponent Value to raise the base.
|
||||
* @return value^exponent.
|
||||
*/
|
||||
native float Pow(float value, float exponent);
|
||||
|
||||
/**
|
||||
* Returns the value of raising the input by e.
|
||||
*
|
||||
* @param value Input value.
|
||||
* @return exp(value).
|
||||
* @param value Input value.
|
||||
* @return exp(value).
|
||||
*/
|
||||
native float Exponential(float value);
|
||||
|
||||
/**
|
||||
* Returns the logarithm of any base specified.
|
||||
*
|
||||
* @param value Input value.
|
||||
* @param base Logarithm base to use, default is 10.
|
||||
* @return log(value)/log(base).
|
||||
* @param value Input value.
|
||||
* @param base Logarithm base to use, default is 10.
|
||||
* @return log(value)/log(base).
|
||||
*/
|
||||
native float Logarithm(float value, float base=10.0);
|
||||
|
||||
/**
|
||||
* Returns the sine of the argument.
|
||||
*
|
||||
* @param value Input value in radians.
|
||||
* @return sin(value).
|
||||
* @param value Input value in radians.
|
||||
* @return sin(value).
|
||||
*/
|
||||
native float Sine(float value);
|
||||
|
||||
/**
|
||||
* Returns the cosine of the argument.
|
||||
*
|
||||
* @param value Input value in radians.
|
||||
* @return cos(value).
|
||||
* @param value Input value in radians.
|
||||
* @return cos(value).
|
||||
*/
|
||||
native float Cosine(float value);
|
||||
|
||||
/**
|
||||
* Returns the tangent of the argument.
|
||||
*
|
||||
* @param value Input value in radians.
|
||||
* @return tan(value).
|
||||
* @param value Input value in radians.
|
||||
* @return tan(value).
|
||||
*/
|
||||
native float Tangent(float value);
|
||||
|
||||
/**
|
||||
* Returns an absolute value.
|
||||
*
|
||||
* @param value Input value.
|
||||
* @return Absolute value of the input.
|
||||
* @param value Input value.
|
||||
* @return Absolute value of the input.
|
||||
*/
|
||||
native float FloatAbs(float value);
|
||||
|
||||
/**
|
||||
* Returns the arctangent of the input value.
|
||||
*
|
||||
* @param angle Input value.
|
||||
* @return atan(value) in radians.
|
||||
* @param angle Input value.
|
||||
* @return atan(value) in radians.
|
||||
*/
|
||||
native float ArcTangent(float angle);
|
||||
|
||||
/**
|
||||
* Returns the arccosine of the input value.
|
||||
*
|
||||
* @param angle Input value.
|
||||
* @return acos(value) in radians.
|
||||
* @param angle Input value.
|
||||
* @return acos(value) in radians.
|
||||
*/
|
||||
native float ArcCosine(float angle);
|
||||
|
||||
/**
|
||||
* Returns the arcsine of the input value.
|
||||
*
|
||||
* @param angle Input value.
|
||||
* @return asin(value) in radians.
|
||||
* @param angle Input value.
|
||||
* @return asin(value) in radians.
|
||||
*/
|
||||
native float ArcSine(float angle);
|
||||
|
||||
/**
|
||||
* Returns the arctangent2 of the input values.
|
||||
*
|
||||
* @param x Horizontal value.
|
||||
* @param y Vertical value.
|
||||
* @return atan2(value) in radians.
|
||||
* @param x Horizontal value.
|
||||
* @param y Vertical value.
|
||||
* @return atan2(value) in radians.
|
||||
*/
|
||||
native float ArcTangent2(float x, float y);
|
||||
|
||||
/**
|
||||
* Rounds a floating point number using the "round to nearest" algorithm.
|
||||
*
|
||||
* @param value Floating point value to round.
|
||||
* @return The value rounded to the nearest integer.
|
||||
* @param value Floating point value to round.
|
||||
* @return The value rounded to the nearest integer.
|
||||
*/
|
||||
stock int RoundFloat(float value)
|
||||
{
|
||||
@ -298,14 +302,14 @@ stock float operator--(float oper)
|
||||
|
||||
stock float operator-(float oper)
|
||||
{
|
||||
return oper^view_as<float>(cellmin); /* IEEE values are sign/magnitude */
|
||||
return oper^view_as<float>(cellmin); /* IEEE values are sign/magnitude */
|
||||
}
|
||||
|
||||
// The stocks below are int->float converting versions of the above natives.
|
||||
|
||||
stock float operator*(float oper1, int oper2)
|
||||
{
|
||||
return __FLOAT_MUL__(oper1, float(oper2)); /* "*" is commutative */
|
||||
return __FLOAT_MUL__(oper1, float(oper2)); /* "*" is commutative */
|
||||
}
|
||||
|
||||
stock float operator/(float oper1, int oper2)
|
||||
@ -320,7 +324,7 @@ stock float operator/(int oper1, float oper2)
|
||||
|
||||
stock float operator+(float oper1, int oper2)
|
||||
{
|
||||
return __FLOAT_ADD__(oper1, float(oper2)); /* "+" is commutative */
|
||||
return __FLOAT_ADD__(oper1, float(oper2)); /* "+" is commutative */
|
||||
}
|
||||
|
||||
stock float operator-(float oper1, int oper2)
|
||||
@ -396,8 +400,8 @@ forward operator%(int oper1, float oper2);
|
||||
/**
|
||||
* Converts degrees to radians.
|
||||
*
|
||||
* @param angle Degrees.
|
||||
* @return Radians.
|
||||
* @param angle Degrees.
|
||||
* @return Radians.
|
||||
*/
|
||||
stock float DegToRad(float angle)
|
||||
{
|
||||
@ -407,8 +411,8 @@ stock float DegToRad(float angle)
|
||||
/**
|
||||
* Converts radians to degrees.
|
||||
*
|
||||
* @param angle Radians.
|
||||
* @return Degrees.
|
||||
* @param angle Radians.
|
||||
* @return Degrees.
|
||||
*/
|
||||
stock float RadToDeg(float angle)
|
||||
{
|
||||
@ -420,7 +424,7 @@ stock float RadToDeg(float angle)
|
||||
*
|
||||
* Note: Uniform random number streams are seeded automatically per-plugin.
|
||||
*
|
||||
* @return Random integer.
|
||||
* @return Random integer.
|
||||
*/
|
||||
native int GetURandomInt();
|
||||
|
||||
@ -429,7 +433,7 @@ native int GetURandomInt();
|
||||
*
|
||||
* Note: Uniform random number streams are seeded automatically per-plugin.
|
||||
*
|
||||
* @return Uniform random floating-point number.
|
||||
* @return Uniform random floating-point number.
|
||||
*/
|
||||
native float GetURandomFloat();
|
||||
|
||||
@ -437,8 +441,8 @@ native float GetURandomFloat();
|
||||
* Seeds a plugin's uniform random number stream. This is done automatically,
|
||||
* so normally it is totally unnecessary to call this.
|
||||
*
|
||||
* @param seeds Array of numbers to use as seeding data.
|
||||
* @param numSeeds Number of seeds in the seeds array.
|
||||
* @param seeds Array of numbers to use as seeding data.
|
||||
* @param numSeeds Number of seeds in the seeds array.
|
||||
*/
|
||||
native void SetURandomSeed(const int[] seeds, int numSeeds);
|
||||
|
||||
|
@ -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,27 +29,27 @@
|
||||
*
|
||||
* Version: $Id$
|
||||
*/
|
||||
|
||||
|
||||
#if defined _functions_included
|
||||
#endinput
|
||||
#endif
|
||||
#define _functions_included
|
||||
|
||||
#define SP_PARAMFLAG_BYREF (1<<0) /**< Internal use only. */
|
||||
|
||||
#define SP_PARAMFLAG_BYREF (1<<0) /**< Internal use only. */
|
||||
|
||||
/**
|
||||
* Describes the various ways to pass parameters to functions or forwards.
|
||||
*/
|
||||
enum ParamType
|
||||
{
|
||||
Param_Any = 0, /**< Any data type can be pushed */
|
||||
Param_Cell = (1<<1), /**< Only basic cells can be pushed */
|
||||
Param_Float = (2<<1), /**< Only floats can be pushed */
|
||||
Param_String = (3<<1)|SP_PARAMFLAG_BYREF, /**< Only strings can be pushed */
|
||||
Param_Array = (4<<1)|SP_PARAMFLAG_BYREF, /**< Only arrays can be pushed */
|
||||
Param_VarArgs = (5<<1), /**< Same as "..." in plugins, anything can be pushed, but it will always be byref */
|
||||
Param_CellByRef = (1<<1)|SP_PARAMFLAG_BYREF, /**< Only a cell by reference can be pushed */
|
||||
Param_FloatByRef = (2<<1)|SP_PARAMFLAG_BYREF /**< Only a float by reference can be pushed */
|
||||
Param_Any = 0, /**< Any data type can be pushed */
|
||||
Param_Cell = (1<<1), /**< Only basic cells can be pushed */
|
||||
Param_Float = (2<<1), /**< Only floats can be pushed */
|
||||
Param_String = (3<<1)|SP_PARAMFLAG_BYREF, /**< Only strings can be pushed */
|
||||
Param_Array = (4<<1)|SP_PARAMFLAG_BYREF, /**< Only arrays can be pushed */
|
||||
Param_VarArgs = (5<<1), /**< Same as "..." in plugins, anything can be pushed, but it will always be byref */
|
||||
Param_CellByRef = (1<<1)|SP_PARAMFLAG_BYREF, /**< Only a cell by reference can be pushed */
|
||||
Param_FloatByRef = (2<<1)|SP_PARAMFLAG_BYREF /**< Only a float by reference can be pushed */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -57,21 +57,21 @@ enum ParamType
|
||||
*/
|
||||
enum ExecType
|
||||
{
|
||||
ET_Ignore = 0, /**< Ignore all return values, return 0 */
|
||||
ET_Single = 1, /**< Only return the last exec, ignore all others */
|
||||
ET_Event = 2, /**< Acts as an event with the Actions defined in core.inc, no mid-Stops allowed, returns highest */
|
||||
ET_Hook = 3 /**< Acts as a hook with the Actions defined in core.inc, mid-Stops allowed, returns highest */
|
||||
ET_Ignore = 0, /**< Ignore all return values, return 0 */
|
||||
ET_Single = 1, /**< Only return the last exec, ignore all others */
|
||||
ET_Event = 2, /**< Acts as an event with the Actions defined in core.inc, no mid-Stops allowed, returns highest */
|
||||
ET_Hook = 3 /**< Acts as a hook with the Actions defined in core.inc, mid-Stops allowed, returns highest */
|
||||
};
|
||||
|
||||
/**
|
||||
* @section Flags that are used with Call_PushArrayEx() and Call_PushStringEx()
|
||||
*/
|
||||
|
||||
#define SM_PARAM_COPYBACK (1<<0) /**< Copy an array/reference back after call */
|
||||
|
||||
#define SM_PARAM_STRING_UTF8 (1<<0) /**< String should be UTF-8 handled */
|
||||
#define SM_PARAM_STRING_COPY (1<<1) /**< String should be copied into the plugin */
|
||||
#define SM_PARAM_STRING_BINARY (1<<2) /**< Treat the string as a binary string */
|
||||
#define SM_PARAM_COPYBACK (1<<0) /**< Copy an array/reference back after call */
|
||||
|
||||
#define SM_PARAM_STRING_UTF8 (1<<0) /**< String should be UTF-8 handled */
|
||||
#define SM_PARAM_STRING_COPY (1<<1) /**< String should be copied into the plugin */
|
||||
#define SM_PARAM_STRING_BINARY (1<<2) /**< Treat the string as a binary string */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
@ -80,45 +80,45 @@ enum ExecType
|
||||
/**
|
||||
* @section Error codes
|
||||
*/
|
||||
#define SP_ERROR_NONE 0 /**< No error occurred */
|
||||
#define SP_ERROR_FILE_FORMAT 1 /**< File format unrecognized */
|
||||
#define SP_ERROR_DECOMPRESSOR 2 /**< A decompressor was not found */
|
||||
#define SP_ERROR_HEAPLOW 3 /**< Not enough space left on the heap */
|
||||
#define SP_ERROR_PARAM 4 /**< Invalid parameter or parameter type */
|
||||
#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 /**< 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 */
|
||||
#define SP_ERROR_STACKMIN 12 /**< Stack went beyond its minimum value */
|
||||
#define SP_ERROR_HEAPMIN 13 /**< Heap went beyond its minimum value */
|
||||
#define SP_ERROR_DIVIDE_BY_ZERO 14 /**< Division by zero */
|
||||
#define SP_ERROR_ARRAY_BOUNDS 15 /**< Array index is out of bounds */
|
||||
#define SP_ERROR_INSTRUCTION_PARAM 16 /**< Instruction had an invalid parameter */
|
||||
#define SP_ERROR_STACKLEAK 17 /**< A native leaked an item on the stack */
|
||||
#define SP_ERROR_HEAPLEAK 18 /**< A native leaked an item on the heap */
|
||||
#define SP_ERROR_ARRAY_TOO_BIG 19 /**< A dynamic array is too big */
|
||||
#define SP_ERROR_TRACKER_BOUNDS 20 /**< Tracker stack is out of bounds */
|
||||
#define SP_ERROR_INVALID_NATIVE 21 /**< Native was pending or invalid */
|
||||
#define SP_ERROR_PARAMS_MAX 22 /**< Maximum number of parameters reached */
|
||||
#define SP_ERROR_NATIVE 23 /**< Error originates from a native */
|
||||
#define SP_ERROR_NOT_RUNNABLE 24 /**< Function or plugin is not runnable */
|
||||
#define SP_ERROR_ABORTED 25 /**< Function call was aborted */
|
||||
#define SP_ERROR_NONE 0 /**< No error occurred */
|
||||
#define SP_ERROR_FILE_FORMAT 1 /**< File format unrecognized */
|
||||
#define SP_ERROR_DECOMPRESSOR 2 /**< A decompressor was not found */
|
||||
#define SP_ERROR_HEAPLOW 3 /**< Not enough space left on the heap */
|
||||
#define SP_ERROR_PARAM 4 /**< Invalid parameter or parameter type */
|
||||
#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 /**< 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 */
|
||||
#define SP_ERROR_STACKMIN 12 /**< Stack went beyond its minimum value */
|
||||
#define SP_ERROR_HEAPMIN 13 /**< Heap went beyond its minimum value */
|
||||
#define SP_ERROR_DIVIDE_BY_ZERO 14 /**< Division by zero */
|
||||
#define SP_ERROR_ARRAY_BOUNDS 15 /**< Array index is out of bounds */
|
||||
#define SP_ERROR_INSTRUCTION_PARAM 16 /**< Instruction had an invalid parameter */
|
||||
#define SP_ERROR_STACKLEAK 17 /**< A native leaked an item on the stack */
|
||||
#define SP_ERROR_HEAPLEAK 18 /**< A native leaked an item on the heap */
|
||||
#define SP_ERROR_ARRAY_TOO_BIG 19 /**< A dynamic array is too big */
|
||||
#define SP_ERROR_TRACKER_BOUNDS 20 /**< Tracker stack is out of bounds */
|
||||
#define SP_ERROR_INVALID_NATIVE 21 /**< Native was pending or invalid */
|
||||
#define SP_ERROR_PARAMS_MAX 22 /**< Maximum number of parameters reached */
|
||||
#define SP_ERROR_NATIVE 23 /**< Error originates from a native */
|
||||
#define SP_ERROR_NOT_RUNNABLE 24 /**< Function or plugin is not runnable */
|
||||
#define SP_ERROR_ABORTED 25 /**< Function call was aborted */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
*/
|
||||
|
||||
/**
|
||||
* Gets a function id from a function name.
|
||||
* Gets a function id from a function name.
|
||||
*
|
||||
* @param plugin Handle of the plugin that contains the function.
|
||||
Pass INVALID_HANDLE to search in the calling plugin.
|
||||
* @param name Name of the function.
|
||||
* @return Function id or INVALID_FUNCTION if not found.
|
||||
* @error Invalid or corrupt plugin handle.
|
||||
* @param plugin Handle of the plugin that contains the function.
|
||||
* Pass INVALID_HANDLE to search in the calling plugin.
|
||||
* @param name Name of the function.
|
||||
* @return Function id or INVALID_FUNCTION if not found.
|
||||
* @error Invalid or corrupt plugin handle.
|
||||
*/
|
||||
native Function GetFunctionByName(Handle plugin, const char[] name);
|
||||
|
||||
@ -130,11 +130,11 @@ native Function GetFunctionByName(Handle plugin, const char[] name);
|
||||
* @note Global forwards cannot be cloned.
|
||||
* @note Use CloseHandle() to destroy these.
|
||||
*
|
||||
* @param name Name of public function to use in forward.
|
||||
* @param type Execution type to be used.
|
||||
* @param ... Variable number of parameter types (up to 32).
|
||||
* @return Handle to new global forward.
|
||||
* @error More than 32 paramater types passed.
|
||||
* @param name Name of public function to use in forward.
|
||||
* @param type Execution type to be used.
|
||||
* @param ... Variable number of parameter types (up to 32).
|
||||
* @return Handle to new global forward.
|
||||
* @error More than 32 paramater types passed.
|
||||
*/
|
||||
native Handle CreateGlobalForward(const char[] name, ExecType type, ParamType ...);
|
||||
|
||||
@ -145,19 +145,19 @@ native Handle CreateGlobalForward(const char[] name, ExecType type, ParamType ..
|
||||
* @note Private forwards can be cloned.
|
||||
* @note Use CloseHandle() to destroy these.
|
||||
*
|
||||
* @param type Execution type to be used.
|
||||
* @param ... Variable number of parameter types (up to 32).
|
||||
* @return Handle to new private forward.
|
||||
* @error More than 32 paramater types passed.
|
||||
* @param type Execution type to be used.
|
||||
* @param ... Variable number of parameter types (up to 32).
|
||||
* @return Handle to new private forward.
|
||||
* @error More than 32 paramater types passed.
|
||||
*/
|
||||
native Handle CreateForward(ExecType type, ParamType ...);
|
||||
|
||||
/**
|
||||
* Returns the number of functions in a global or private forward's call list.
|
||||
*
|
||||
* @param fwd Handle to global or private forward.
|
||||
* @return Number of functions in forward.
|
||||
* @error Invalid or corrupt forward handle.
|
||||
* @param fwd Handle to global or private forward.
|
||||
* @return Number of functions in forward.
|
||||
* @error Invalid or corrupt forward handle.
|
||||
*/
|
||||
native int GetForwardFunctionCount(Handle fwd);
|
||||
|
||||
@ -166,12 +166,12 @@ native int GetForwardFunctionCount(Handle fwd);
|
||||
*
|
||||
* @note Cannot be used during an incomplete call.
|
||||
*
|
||||
* @param fwd Handle to private forward.
|
||||
* @param plugin Handle of the plugin that contains the function.
|
||||
* Pass INVALID_HANDLE to specify the calling plugin.
|
||||
* @param func Function to add to forward.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
|
||||
* @param fwd Handle to private forward.
|
||||
* @param plugin Handle of the plugin that contains the function.
|
||||
* Pass INVALID_HANDLE to specify the calling plugin.
|
||||
* @param func Function to add to forward.
|
||||
* @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);
|
||||
|
||||
@ -181,12 +181,12 @@ native bool AddToForward(Handle fwd, Handle plugin, Function func);
|
||||
* @note Only removes one instance.
|
||||
* @note Functions will be removed automatically if their parent plugin is unloaded.
|
||||
*
|
||||
* @param fwd Handle to private forward.
|
||||
* @param plugin Handle of the plugin that contains the function.
|
||||
* Pass INVALID_HANDLE to specify the calling plugin.
|
||||
* @param func Function to remove from forward.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
|
||||
* @param fwd Handle to private forward.
|
||||
* @param plugin Handle of the plugin that contains the function.
|
||||
* Pass INVALID_HANDLE to specify the calling plugin.
|
||||
* @param func Function to remove from forward.
|
||||
* @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);
|
||||
|
||||
@ -195,11 +195,11 @@ native bool RemoveFromForward(Handle fwd, Handle plugin, Function func);
|
||||
*
|
||||
* @note Functions will be removed automatically if their parent plugin is unloaded.
|
||||
*
|
||||
* @param fwd Handle to private forward.
|
||||
* @param plugin Handle of the plugin to remove instances of.
|
||||
* Pass INVALID_HANDLE to specify the calling plugin.
|
||||
* @return Number of functions removed from forward.
|
||||
* @error Invalid or corrupt private forward handle or invalid or corrupt plugin handle.
|
||||
* @param fwd Handle to private forward.
|
||||
* @param plugin Handle of the plugin to remove instances of.
|
||||
* Pass INVALID_HANDLE to specify the calling plugin.
|
||||
* @return Number of functions removed from forward.
|
||||
* @error Invalid or corrupt private forward handle or invalid or corrupt plugin handle.
|
||||
*/
|
||||
native int RemoveAllFromForward(Handle fwd, Handle plugin);
|
||||
|
||||
@ -208,8 +208,8 @@ native int RemoveAllFromForward(Handle fwd, Handle plugin);
|
||||
*
|
||||
* @note Cannot be used during an incomplete call.
|
||||
*
|
||||
* @param fwd Handle to global or private forward.
|
||||
* @error Invalid or corrupt forward handle or called before another call has completed.
|
||||
* @param fwd Handle to global or private forward.
|
||||
* @error Invalid or corrupt forward handle or called before another call has completed.
|
||||
*/
|
||||
native void Call_StartForward(Handle fwd);
|
||||
|
||||
@ -218,10 +218,10 @@ native void Call_StartForward(Handle fwd);
|
||||
*
|
||||
* @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.
|
||||
* @error Invalid or corrupt plugin handle, invalid function, or called before another call has completed.
|
||||
* @param plugin Handle of the plugin that contains the function.
|
||||
* Pass INVALID_HANDLE to specify the calling plugin.
|
||||
* @param func Function to call.
|
||||
* @error Invalid or corrupt plugin handle, invalid function, or called before another call has completed.
|
||||
*/
|
||||
native void Call_StartFunction(Handle plugin, Function func);
|
||||
|
||||
@ -230,8 +230,8 @@ native void Call_StartFunction(Handle plugin, Function func);
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value Cell value to push.
|
||||
* @error Called before a call has been started.
|
||||
* @param value Cell value to push.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushCell(any value);
|
||||
|
||||
@ -240,8 +240,8 @@ native void Call_PushCell(any value);
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value Cell reference to push.
|
||||
* @error Called before a call has been started.
|
||||
* @param value Cell reference to push.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushCellRef(any &value);
|
||||
|
||||
@ -250,8 +250,8 @@ native void Call_PushCellRef(any &value);
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value Floating point value to push.
|
||||
* @error Called before a call has been started.
|
||||
* @param value Floating point value to push.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushFloat(float value);
|
||||
|
||||
@ -260,8 +260,8 @@ native void Call_PushFloat(float value);
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value Floating point reference to push.
|
||||
* @error Called before a call has been started.
|
||||
* @param value Floating point reference to push.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushFloatRef(float &value);
|
||||
|
||||
@ -271,9 +271,9 @@ native void Call_PushFloatRef(float &value);
|
||||
* @note Changes to array are not copied back to caller. Use PushArrayEx() to do this.
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value Array to push.
|
||||
* @param size Size of array.
|
||||
* @error Called before a call has been started.
|
||||
* @param value Array to push.
|
||||
* @param size Size of array.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushArray(const any[] value, int size);
|
||||
|
||||
@ -282,11 +282,11 @@ native void Call_PushArray(const any[] value, int size);
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value Array to push.
|
||||
* @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.
|
||||
* @error Called before a call has been started.
|
||||
* @param value Array to push.
|
||||
* @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.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushArrayEx(any[] value, int size, int cpflags);
|
||||
|
||||
@ -296,7 +296,7 @@ native void Call_PushArrayEx(any[] value, int size, int cpflags);
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @error Called before a call has been started.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushNullVector();
|
||||
|
||||
@ -306,8 +306,8 @@ native void Call_PushNullVector();
|
||||
* @note Changes to string are not copied back to caller. Use PushStringEx() to do this.
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value String to push.
|
||||
* @error Called before a call has been started.
|
||||
* @param value String to push.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushString(const char[] value);
|
||||
|
||||
@ -316,14 +316,14 @@ native void Call_PushString(const char[] value);
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param value String to push.
|
||||
* @param length Length of string buffer.
|
||||
* @param szflags Flags determining how string should be handled.
|
||||
* 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 SM_PARAM_* constants for details.
|
||||
* @error Called before a call has been started.
|
||||
* @param value String to push.
|
||||
* @param length Length of string buffer.
|
||||
* @param szflags Flags determining how string should be handled.
|
||||
* 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 SM_PARAM_* constants for details.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushStringEx(char[] value, int length, int szflags, int cpflags);
|
||||
|
||||
@ -333,7 +333,7 @@ native void Call_PushStringEx(char[] value, int length, int szflags, int cpflags
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @error Called before a call has been started.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_PushNullString();
|
||||
|
||||
@ -342,9 +342,9 @@ native void Call_PushNullString();
|
||||
*
|
||||
* @note Cannot be used before a call has been started.
|
||||
*
|
||||
* @param result Return value of function or forward's call list.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Called before a call has been started.
|
||||
* @param result Return value of function or forward's call list.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native int Call_Finish(any &result=0);
|
||||
|
||||
@ -352,8 +352,8 @@ 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.
|
||||
*
|
||||
* @error Called before a call has been started.
|
||||
*
|
||||
* @error Called before a call has been started.
|
||||
*/
|
||||
native void Call_Cancel();
|
||||
|
||||
@ -362,91 +362,94 @@ typeset NativeCall
|
||||
/**
|
||||
* Defines a native function.
|
||||
*
|
||||
* It is not necessary to validate the parameter count
|
||||
* It is not necessary to validate the parameter count
|
||||
*
|
||||
* @param plugin Handle of the calling plugin.
|
||||
* @param numParams Number of parameters passed to the native.
|
||||
* @return Value for the native call to return.
|
||||
* @param plugin Handle of the calling plugin.
|
||||
* @param numParams Number of parameters passed to the native.
|
||||
* @return Value for the native call to return.
|
||||
*/
|
||||
function int (Handle plugin, int numParams);
|
||||
|
||||
/**
|
||||
* Defines a native function.
|
||||
*
|
||||
* It is not necessary to validate the parameter count
|
||||
* It is not necessary to validate the parameter count
|
||||
*
|
||||
* @param plugin Handle of the calling plugin.
|
||||
* @param numParams Number of parameters passed to the native.
|
||||
* @return Value for the native call to return.
|
||||
* @param plugin Handle of the calling plugin.
|
||||
* @param numParams Number of parameters passed to the native.
|
||||
* @return Value for the native call to return.
|
||||
*/
|
||||
function any (Handle plugin, int numParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a dynamic native. This should only be called in AskPluginLoad(), or
|
||||
* 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 among
|
||||
* all other registered dynamic natives.
|
||||
* @param func Function to use as the dynamic native.
|
||||
* @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.
|
||||
*/
|
||||
native void CreateNative(const char[] name, NativeCall func);
|
||||
|
||||
/**
|
||||
* Throws an error in the calling plugin of a native, instead of your own plugin.
|
||||
*
|
||||
* @param error Error code to use.
|
||||
* @param fmt Error message format.
|
||||
* @param ... Format arguments.
|
||||
* @param error Error code to use.
|
||||
* @param fmt Error message format.
|
||||
* @param ... Format arguments.
|
||||
*/
|
||||
native int ThrowNativeError(int error, const char[] fmt, any ...);
|
||||
|
||||
/**
|
||||
* Retrieves the string length from a native parameter string. This is useful
|
||||
* Retrieves the string length from a native parameter string. This is useful for
|
||||
* fetching the entire string using dynamic arrays.
|
||||
*
|
||||
* @note If this function succeeds, Get/SetNativeString will also succeed.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param length Stores the length of the string.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param length Stores the length of the string.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
native int GetNativeStringLength(int param, int &length);
|
||||
|
||||
/**
|
||||
* Retrieves a string from a native parameter.
|
||||
*
|
||||
* @note Output conditions are undefined on failure.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param buffer Buffer to store the string in.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @param bytes Optionally store the number of bytes written.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param buffer Buffer to store the string in.
|
||||
* @param maxlength Maximum length of the buffer.
|
||||
* @param bytes Optionally store the number of bytes written.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
native int GetNativeString(int param, char[] buffer, int maxlength, int &bytes=0);
|
||||
|
||||
/**
|
||||
* Sets a string in a native parameter.
|
||||
*
|
||||
* @note Output conditions are undefined on failure.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param source Source string to use.
|
||||
* @param maxlength Maximum number of bytes to write.
|
||||
* @param utf8 If false, string will not be written
|
||||
* with UTF8 safety.
|
||||
* @param bytes Optionally store the number of bytes written.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param source Source string to use.
|
||||
* @param maxlength Maximum number of bytes to write.
|
||||
* @param utf8 If false, string will not be written
|
||||
* with UTF8 safety.
|
||||
* @param bytes Optionally store the number of bytes written.
|
||||
* @return SP_ERROR_NONE on success, any other integer on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
native int SetNativeString(int param, const char[] source, int maxlength, bool utf8=true, int &bytes=0);
|
||||
|
||||
/**
|
||||
* Gets a cell from a native parameter.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return Cell value at the parameter number.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return Cell value at the parameter number.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
native any GetNativeCell(int param);
|
||||
|
||||
@ -462,56 +465,56 @@ native Function GetNativeFunction(int param);
|
||||
/**
|
||||
* Gets a cell from a native parameter, by reference.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return Cell value at the parameter number.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return Cell value at the parameter number.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param value Cell value at the parameter number to set by reference.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
native void SetNativeCellRef(int param, any value);
|
||||
|
||||
/**
|
||||
* Gets an array from a native parameter (always by reference).
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param local Local array to copy into.
|
||||
* @param size Maximum size of local array.
|
||||
* @return SP_ERROR_NONE on success, anything else on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param local Local array to copy into.
|
||||
* @param size Maximum size of local array.
|
||||
* @return SP_ERROR_NONE on success, anything else on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
native int GetNativeArray(int param, any[] local, int size);
|
||||
|
||||
/**
|
||||
* Copies a local array into a native parameter array (always by reference).
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param local Local array to copy from.
|
||||
* @param size Size of the local array to copy.
|
||||
* @return SP_ERROR_NONE on success, anything else on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @param local Local array to copy from.
|
||||
* @param size Size of the local array to copy.
|
||||
* @return SP_ERROR_NONE on success, anything else on failure.
|
||||
* @error Invalid parameter number or calling from a non-native function.
|
||||
*/
|
||||
native int SetNativeArray(int param, const any[] local, int size);
|
||||
|
||||
/**
|
||||
* Check if the native parameter is the NULL_VECTOR.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return True if NULL_VECTOR, false otherwise.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return True if NULL_VECTOR, false otherwise.
|
||||
*/
|
||||
native bool IsNativeParamNullVector(int param);
|
||||
|
||||
/**
|
||||
* Check if the native parameter is the NULL_STRING.
|
||||
*
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return True if NULL_STRING, false otherwise.
|
||||
* @param param Parameter number, starting from 1.
|
||||
* @return True if NULL_STRING, false otherwise.
|
||||
*/
|
||||
native bool IsNativeParamNullString(int param);
|
||||
|
||||
@ -520,20 +523,20 @@ native bool IsNativeParamNullString(int param);
|
||||
*
|
||||
* @note All parameter indexes start at 1.
|
||||
* @note If the input and output buffers overlap, the contents
|
||||
* of the output buffer at the end is undefined.
|
||||
* of the output buffer at the end is undefined.
|
||||
*
|
||||
* @param out_param Output parameter number to write to. If 0, out_string is used.
|
||||
* @param fmt_param Format parameter number. If 0, fmt_string is used.
|
||||
* @param vararg_param First variable parameter number.
|
||||
* @param out_len Output string buffer maximum length (always required).
|
||||
* @param written Optionally stores the number of bytes written.
|
||||
* @param out_string Output string buffer to use if out_param is not used.
|
||||
* @param fmt_string Format string to use if fmt_param is not used.
|
||||
* @return SP_ERROR_NONE on success, anything else on failure.
|
||||
* @param out_param Output parameter number to write to. If 0, out_string is used.
|
||||
* @param fmt_param Format parameter number. If 0, fmt_string is used.
|
||||
* @param vararg_param First variable parameter number.
|
||||
* @param out_len Output string buffer maximum length (always required).
|
||||
* @param written Optionally stores the number of bytes written.
|
||||
* @param out_string Output string buffer to use if out_param is not used.
|
||||
* @param fmt_string Format string to use if fmt_param is not used.
|
||||
* @return SP_ERROR_NONE on success, anything else on failure.
|
||||
*/
|
||||
native int FormatNativeString(int out_param,
|
||||
int fmt_param,
|
||||
int vararg_param,
|
||||
native int FormatNativeString(int out_param,
|
||||
int fmt_param,
|
||||
int vararg_param,
|
||||
int out_len,
|
||||
int &written=0,
|
||||
char[] out_string="",
|
||||
@ -542,14 +545,14 @@ native int FormatNativeString(int out_param,
|
||||
/**
|
||||
* Defines a RequestFrame Callback.
|
||||
*
|
||||
* @param data Data passed to the RequestFrame native.
|
||||
* @param data Data passed to the RequestFrame native.
|
||||
*/
|
||||
typedef RequestFrameCallback = function void (any data);
|
||||
|
||||
/**
|
||||
* Creates a single use Next Frame hook.
|
||||
*
|
||||
* @param Function Function to call on the next frame.
|
||||
* @param data Value to be passed on the invocation of the Function.
|
||||
* @param Function Function to call on the next frame.
|
||||
* @param data Value to be passed on the invocation of the Function.
|
||||
*/
|
||||
native void RequestFrame(RequestFrameCallback Function, any data=0);
|
||||
|
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#if defined _geoip_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _geoip_included
|
||||
|
||||
@ -44,28 +44,28 @@
|
||||
/**
|
||||
* Gets the two character country code from an IP address. (US, CA, etc)
|
||||
*
|
||||
* @param ip Ip to determine the country code.
|
||||
* @param ccode Destination string buffer to store the code.
|
||||
* @return True on success, false if no country found.
|
||||
* @param ip Ip to determine the country code.
|
||||
* @param ccode Destination string buffer to store the code.
|
||||
* @return True on success, false if no country found.
|
||||
*/
|
||||
native bool GeoipCode2(const char[] ip, char ccode[3]);
|
||||
|
||||
/**
|
||||
* Gets the three character country code from an IP address. (USA, CAN, etc)
|
||||
*
|
||||
* @param ip Ip to determine the country code.
|
||||
* @param ccode Destination string buffer to store the code.
|
||||
* @return True on success, false if no country found.
|
||||
* @param ip Ip to determine the country code.
|
||||
* @param ccode Destination string buffer to store the code.
|
||||
* @return True on success, false if no country found.
|
||||
*/
|
||||
native bool GeoipCode3(const char[] ip, char ccode[4]);
|
||||
|
||||
/**
|
||||
* Gets the full country name. (max length of output string is 45)
|
||||
*
|
||||
* @param ip Ip to determine the country code.
|
||||
* @param name Destination string buffer to store the country name.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @return True on success, false if no country found.
|
||||
* @param ip Ip to determine the country code.
|
||||
* @param name Destination string buffer to store the country name.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @return True on success, false if no country found.
|
||||
*/
|
||||
native bool GeoipCountry(const char[] ip, char[] name, int maxlength);
|
||||
|
||||
|
@ -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
|
||||
@ -35,61 +35,61 @@
|
||||
#endif
|
||||
#define _halflife_included
|
||||
|
||||
#define SOURCE_SDK_UNKNOWN 0 /**< Could not determine the engine version */
|
||||
#define SOURCE_SDK_ORIGINAL 10 /**< Original Source engine (still used by "The Ship") */
|
||||
#define SOURCE_SDK_DARKMESSIAH 15 /**< Modified version of original engine used by Dark Messiah (no SDK) */
|
||||
#define SOURCE_SDK_EPISODE1 20 /**< SDK+Engine released after Episode 1 */
|
||||
#define SOURCE_SDK_EPISODE2 30 /**< SDK+Engine released after Episode 2/Orange Box */
|
||||
#define SOURCE_SDK_BLOODYGOODTIME 32 /**< Modified version of ep2 engine used by Bloody Good Time (no SDK) */
|
||||
#define SOURCE_SDK_EYE 33 /**< Modified version of ep2 engine used by E.Y.E Divine Cybermancy (no SDK) */
|
||||
#define SOURCE_SDK_CSS 34 /**< Sometime-older version of Source 2009 SDK+Engine, used for Counter-Strike: Source */
|
||||
#define SOURCE_SDK_EPISODE2VALVE 35 /**< SDK+Engine released after Episode 2/Orange Box, "Source 2009" or "Source MP" */
|
||||
#define SOURCE_SDK_LEFT4DEAD 40 /**< Engine released after Left 4 Dead (no SDK yet) */
|
||||
#define SOURCE_SDK_LEFT4DEAD2 50 /**< Engine released after Left 4 Dead 2 (no SDK yet) */
|
||||
#define SOURCE_SDK_ALIENSWARM 60 /**< SDK+Engine released after Alien Swarm */
|
||||
#define SOURCE_SDK_CSGO 80 /**< Engine released after CS:GO (no SDK yet) */
|
||||
#define SOURCE_SDK_DOTA 90 /**< Engine released after Dota 2 (no SDK) */
|
||||
#define SOURCE_SDK_UNKNOWN 0 /**< Could not determine the engine version */
|
||||
#define SOURCE_SDK_ORIGINAL 10 /**< Original Source engine (still used by "The Ship") */
|
||||
#define SOURCE_SDK_DARKMESSIAH 15 /**< Modified version of original engine used by Dark Messiah (no SDK) */
|
||||
#define SOURCE_SDK_EPISODE1 20 /**< SDK+Engine released after Episode 1 */
|
||||
#define SOURCE_SDK_EPISODE2 30 /**< SDK+Engine released after Episode 2/Orange Box */
|
||||
#define SOURCE_SDK_BLOODYGOODTIME 32 /**< Modified version of ep2 engine used by Bloody Good Time (no SDK) */
|
||||
#define SOURCE_SDK_EYE 33 /**< Modified version of ep2 engine used by E.Y.E Divine Cybermancy (no SDK) */
|
||||
#define SOURCE_SDK_CSS 34 /**< Sometime-older version of Source 2009 SDK+Engine, used for Counter-Strike: Source */
|
||||
#define SOURCE_SDK_EPISODE2VALVE 35 /**< SDK+Engine released after Episode 2/Orange Box, "Source 2009" or "Source MP" */
|
||||
#define SOURCE_SDK_LEFT4DEAD 40 /**< Engine released after Left 4 Dead (no SDK yet) */
|
||||
#define SOURCE_SDK_LEFT4DEAD2 50 /**< Engine released after Left 4 Dead 2 (no SDK yet) */
|
||||
#define SOURCE_SDK_ALIENSWARM 60 /**< SDK+Engine released after Alien Swarm */
|
||||
#define SOURCE_SDK_CSGO 80 /**< Engine released after CS:GO (no SDK yet) */
|
||||
#define SOURCE_SDK_DOTA 90 /**< Engine released after Dota 2 (no SDK) */
|
||||
|
||||
#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 opened */
|
||||
#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 opened */
|
||||
|
||||
enum DialogType
|
||||
{
|
||||
DialogType_Msg = 0, /**< just an on screen message */
|
||||
DialogType_Menu, /**< an options menu */
|
||||
DialogType_Text, /**< a richtext dialog */
|
||||
DialogType_Entry, /**< an entry box */
|
||||
DialogType_AskConnect /**< ask the client to connect to a specified IP */
|
||||
DialogType_Msg = 0, /**< just an on screen message */
|
||||
DialogType_Menu, /**< an options menu */
|
||||
DialogType_Text, /**< a richtext dialog */
|
||||
DialogType_Entry, /**< an entry box */
|
||||
DialogType_AskConnect /**< ask the client to connect to a specified IP */
|
||||
};
|
||||
|
||||
enum EngineVersion
|
||||
{
|
||||
Engine_Unknown, /**< Could not determine the engine version */
|
||||
Engine_Original, /**< Original Source Engine (used by The Ship) */
|
||||
Engine_SourceSDK2006, /**< Episode 1 Source Engine (second major SDK) */
|
||||
Engine_SourceSDK2007, /**< Orange Box Source Engine (third major SDK) */
|
||||
Engine_Left4Dead, /**< Left 4 Dead */
|
||||
Engine_DarkMessiah, /**< Dark Messiah Multiplayer (based on original engine) */
|
||||
Engine_Left4Dead2 = 7, /**< Left 4 Dead 2 */
|
||||
Engine_AlienSwarm, /**< Alien Swarm (and Alien Swarm SDK) */
|
||||
Engine_BloodyGoodTime, /**< Bloody Good Time */
|
||||
Engine_EYE, /**< E.Y.E Divine Cybermancy */
|
||||
Engine_Portal2, /**< Portal 2 */
|
||||
Engine_CSGO, /**< Counter-Strike: Global Offensive */
|
||||
Engine_CSS, /**< Counter-Strike: Source */
|
||||
Engine_DOTA, /**< Dota 2 */
|
||||
Engine_HL2DM, /**< Half-Life 2 Deathmatch */
|
||||
Engine_DODS, /**< Day of Defeat: Source */
|
||||
Engine_TF2, /**< Team Fortress 2 */
|
||||
Engine_NuclearDawn, /**< Nuclear Dawn */
|
||||
Engine_SDK2013, /**< Source SDK 2013 */
|
||||
Engine_Blade, /**< Blade Symphony */
|
||||
Engine_Insurgency, /**< Insurgency (2013 Retail version)*/
|
||||
Engine_Contagion, /**< Contagion */
|
||||
Engine_BlackMesa, /**< Black Mesa Multiplayer */
|
||||
Engine_DOI, /**< Day of Infamy */
|
||||
Engine_Unknown, /**< Could not determine the engine version */
|
||||
Engine_Original, /**< Original Source Engine (used by The Ship) */
|
||||
Engine_SourceSDK2006, /**< Episode 1 Source Engine (second major SDK) */
|
||||
Engine_SourceSDK2007, /**< Orange Box Source Engine (third major SDK) */
|
||||
Engine_Left4Dead, /**< Left 4 Dead */
|
||||
Engine_DarkMessiah, /**< Dark Messiah Multiplayer (based on original engine) */
|
||||
Engine_Left4Dead2 = 7, /**< Left 4 Dead 2 */
|
||||
Engine_AlienSwarm, /**< Alien Swarm (and Alien Swarm SDK) */
|
||||
Engine_BloodyGoodTime, /**< Bloody Good Time */
|
||||
Engine_EYE, /**< E.Y.E Divine Cybermancy */
|
||||
Engine_Portal2, /**< Portal 2 */
|
||||
Engine_CSGO, /**< Counter-Strike: Global Offensive */
|
||||
Engine_CSS, /**< Counter-Strike: Source */
|
||||
Engine_DOTA, /**< Dota 2 */
|
||||
Engine_HL2DM, /**< Half-Life 2 Deathmatch */
|
||||
Engine_DODS, /**< Day of Defeat: Source */
|
||||
Engine_TF2, /**< Team Fortress 2 */
|
||||
Engine_NuclearDawn, /**< Nuclear Dawn */
|
||||
Engine_SDK2013, /**< Source SDK 2013 */
|
||||
Engine_Blade, /**< Blade Symphony */
|
||||
Engine_Insurgency, /**< Insurgency (2013 Retail version)*/
|
||||
Engine_Contagion, /**< Contagion */
|
||||
Engine_BlackMesa, /**< Black Mesa Multiplayer */
|
||||
Engine_DOI /**< Day of Infamy */
|
||||
};
|
||||
|
||||
enum FindMapResult
|
||||
@ -116,233 +116,234 @@ enum FindMapResult
|
||||
/**
|
||||
* Logs a generic message to the HL2 logs.
|
||||
*
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
*/
|
||||
native void LogToGame(const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Sets the seed value for the global Half-Life 2 Random Stream.
|
||||
*
|
||||
* @param seed Seed value.
|
||||
* @param seed Seed value.
|
||||
*/
|
||||
native void SetRandomSeed(int seed);
|
||||
|
||||
/**
|
||||
* Returns a random floating point number from the Half-Life 2 Random Stream.
|
||||
*
|
||||
* @param fMin Minimum random bound.
|
||||
* @param fMax Maximum random bound.
|
||||
* @return A random number between (inclusive) fMin and fMax.
|
||||
* @param fMin Minimum random bound.
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* Returns a random number from the Half-Life 2 Random Stream.
|
||||
*
|
||||
* @param nmin Minimum random bound.
|
||||
* @param nmax Maximum random bound.
|
||||
* @return A random number between (inclusive) nmin and nmax.
|
||||
* @param nmin Minimum random bound.
|
||||
* @param nmax Maximum random bound.
|
||||
* @return A random number between (inclusive) nmin and nmax.
|
||||
*/
|
||||
native int GetRandomInt(int nmin, int nmax);
|
||||
|
||||
/**
|
||||
* Returns whether a map is valid or not.
|
||||
*
|
||||
* @param map Map name, excluding .bsp extension.
|
||||
* @return True if valid, false otherwise.
|
||||
*
|
||||
* @param map Map name, excluding .bsp extension.
|
||||
* @return True if valid, false otherwise.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @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.
|
||||
*
|
||||
* @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.
|
||||
* @return True if dedicated, false otherwise.
|
||||
*/
|
||||
native bool IsDedicatedServer();
|
||||
|
||||
/**
|
||||
* Returns a high-precision time value for profiling the engine.
|
||||
*
|
||||
* @return A floating point time value.
|
||||
* @return A floating point time value.
|
||||
*/
|
||||
native float GetEngineTime();
|
||||
|
||||
/**
|
||||
/**
|
||||
* Returns the game time based on the game tick.
|
||||
*
|
||||
* @return Game tick time.
|
||||
* @return Game tick time.
|
||||
*/
|
||||
native float GetGameTime();
|
||||
|
||||
/**
|
||||
/**
|
||||
* Returns the game's internal tick count.
|
||||
*
|
||||
* @return Game tick count.
|
||||
* @return Game tick count.
|
||||
*/
|
||||
native int GetGameTickCount();
|
||||
|
||||
/**
|
||||
/**
|
||||
* Returns the time the Game took processing the last frame.
|
||||
*
|
||||
* @return Game frame time.
|
||||
* @return Game frame time.
|
||||
*/
|
||||
native float GetGameFrameTime();
|
||||
|
||||
/**
|
||||
* Returns the game description from the mod.
|
||||
*
|
||||
* @param buffer Buffer to store the description.
|
||||
* @param maxlength Maximum size of the buffer.
|
||||
* @param original If true, retrieves the original game description,
|
||||
* ignoring any potential hooks from plugins.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @param buffer Buffer to store the description.
|
||||
* @param maxlength Maximum size of the buffer.
|
||||
* @param original If true, retrieves the original game description,
|
||||
* ignoring any potential hooks from plugins.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
*/
|
||||
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).
|
||||
* @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).
|
||||
*/
|
||||
native int GetGameFolderName(char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Returns the current map name.
|
||||
*
|
||||
* @param buffer Buffer to store map name.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @return Number of bytes written (UTF-8 safe).
|
||||
* @param buffer Buffer to store map name.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @return Number of bytes written (UTF-8 safe).
|
||||
*/
|
||||
native int GetCurrentMap(char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Precaches a given model.
|
||||
*
|
||||
* @param model Name of the model to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns the model index, 0 for error.
|
||||
* @param model Name of the model to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns the model index, 0 for error.
|
||||
*/
|
||||
native int PrecacheModel(const char[] model, bool preload=false);
|
||||
|
||||
/**
|
||||
* Precaches a given sentence file.
|
||||
*
|
||||
* @param file Name of the sentence file to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns a sentence file index.
|
||||
* @param file Name of the sentence file to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns a sentence file index.
|
||||
*/
|
||||
native int PrecacheSentenceFile(const char[] file, bool preload=false);
|
||||
|
||||
/**
|
||||
* Precaches a given decal.
|
||||
*
|
||||
* @param decal Name of the decal to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns a decal index.
|
||||
* @param decal Name of the decal to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns a decal index.
|
||||
*/
|
||||
native int PrecacheDecal(const char[] decal, bool preload=false);
|
||||
|
||||
/**
|
||||
* Precaches a given generic file.
|
||||
*
|
||||
* @param generic Name of the generic file to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns a generic file index.
|
||||
* @param generic Name of the generic file to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return Returns a generic file index.
|
||||
*/
|
||||
native int PrecacheGeneric(const char[] generic, bool preload=false);
|
||||
|
||||
/**
|
||||
* Returns if a given model is precached.
|
||||
*
|
||||
* @param model Name of the model to check.
|
||||
* @return True if precached, false otherwise.
|
||||
* @param model Name of the model to check.
|
||||
* @return True if precached, false otherwise.
|
||||
*/
|
||||
native bool IsModelPrecached(const char[] model);
|
||||
|
||||
/**
|
||||
* Returns if a given decal is precached.
|
||||
*
|
||||
* @param decal Name of the decal to check.
|
||||
* @return True if precached, false otherwise.
|
||||
* @param decal Name of the decal to check.
|
||||
* @return True if precached, false otherwise.
|
||||
*/
|
||||
native bool IsDecalPrecached(const char[] decal);
|
||||
|
||||
/**
|
||||
* Returns if a given generic file is precached.
|
||||
*
|
||||
* @param generic Name of the generic file to check.
|
||||
* @return True if precached, false otherwise.
|
||||
* @param generic Name of the generic file to check.
|
||||
* @return True if precached, false otherwise.
|
||||
*/
|
||||
native bool IsGenericPrecached(const char[] generic);
|
||||
|
||||
/**
|
||||
* Precaches a given sound.
|
||||
*
|
||||
* @param sound Name of the sound to precache.
|
||||
* @param preload If preload is true the file will be precached before level startup.
|
||||
* @return True if successfully precached, false otherwise.
|
||||
* @param sound Name of the sound to precache.
|
||||
* @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 char[] sound, bool preload=false);
|
||||
|
||||
/**
|
||||
* Returns if a given sound is precached.
|
||||
*
|
||||
* @param sound Name of the sound to check.
|
||||
* @return True if precached, false otherwise.
|
||||
* @param sound Name of the sound to check.
|
||||
* @return True if precached, false otherwise.
|
||||
*/
|
||||
native bool IsSoundPrecached(const char[] sound);
|
||||
|
||||
/**
|
||||
* Creates different types of ingame messages.
|
||||
*
|
||||
* @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.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @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.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
native void CreateDialog(int client, Handle kv, DialogType type);
|
||||
|
||||
/**
|
||||
* Guesses the SDK version a mod was compiled against. If nothing
|
||||
* Guesses the SDK version a mod was compiled against. If nothing
|
||||
* specific is known about the game, the engine version is used instead.
|
||||
*
|
||||
* The return values are guaranteed to increase chronologically (that is,
|
||||
* The return values are guaranteed to increase chronologically (that is,
|
||||
* a later release will have a higher value).
|
||||
*
|
||||
* @return SOURCE_SDK version code.
|
||||
* @return SOURCE_SDK version code.
|
||||
* @deprecated See GetEngineVersion()
|
||||
*/
|
||||
#pragma deprecated See GetEngineVersion()
|
||||
native int GuessSDKVersion();
|
||||
@ -353,30 +354,30 @@ native int GuessSDKVersion();
|
||||
* The engine version values are not guaranteed to be in any particular order,
|
||||
* and should only be compared by (in)equality.
|
||||
*
|
||||
* @return An EngineVersion value.
|
||||
* @return An EngineVersion value.
|
||||
*/
|
||||
native EngineVersion GetEngineVersion();
|
||||
|
||||
/**
|
||||
* Prints a message to a specific client in the chat area.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
*/
|
||||
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.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
stock void PrintToChatAll(const char[] format, any ...)
|
||||
{
|
||||
char buffer[254];
|
||||
|
||||
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
if (IsClientInGame(i))
|
||||
@ -391,18 +392,18 @@ stock void PrintToChatAll(const char[] format, any ...)
|
||||
/**
|
||||
* Prints a message to a specific client in the center of the screen.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
*/
|
||||
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.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
stock void PrintCenterTextAll(const char[] format, any ...)
|
||||
{
|
||||
@ -422,23 +423,23 @@ stock void PrintCenterTextAll(const char[] format, any ...)
|
||||
/**
|
||||
* Prints a message to a specific client with a hint box.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
* @param client Client index.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
*/
|
||||
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.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
*/
|
||||
stock void PrintHintTextToAll(const char[] format, any ...)
|
||||
{
|
||||
char buffer[254];
|
||||
|
||||
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
if (IsClientInGame(i))
|
||||
@ -453,130 +454,130 @@ stock void PrintHintTextToAll(const char[] format, any ...)
|
||||
/**
|
||||
* Shows a VGUI panel to a specific client.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param name Panel type name (Check viewport_panel_names.h to see a list of
|
||||
* some panel names).
|
||||
* @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.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
* @param client Client index.
|
||||
* @param name Panel type name (Check viewport_panel_names.h to see a list of
|
||||
* some panel names).
|
||||
* @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.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
*/
|
||||
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
|
||||
* re-use channels for a set of messages.
|
||||
* Creates a HUD synchronization object. This object is used to automatically assign and
|
||||
* re-use channels for a set of messages.
|
||||
*
|
||||
* The HUD has a hardcoded number of channels (usually 6) for displaying
|
||||
* text. You can use any channel for any area of the screen. Text on
|
||||
* different channels can overlap, but text on the same channel will
|
||||
* The HUD has a hardcoded number of channels (usually 6) for displaying
|
||||
* text. You can use any channel for any area of the screen. Text on
|
||||
* different channels can overlap, but text on the same channel will
|
||||
* erase the old text first. This overlapping and overwriting gets problematic.
|
||||
*
|
||||
* A HUD synchronization object automatically selects channels for you based on
|
||||
* A HUD synchronization object automatically selects channels for you based on
|
||||
* the following heuristics:
|
||||
* - If channel X was last used by the object, and hasn't been modified again,
|
||||
* - If channel X was last used by the object, and hasn't been modified again,
|
||||
* channel X gets re-used.
|
||||
* - Otherwise, a new channel is chosen based on the least-recently-used channel.
|
||||
*
|
||||
* This ensures that if you display text on a sync object, that the previous text
|
||||
* displayed on it will always be cleared first. This is because your new text
|
||||
* will either overwrite the old text on the same channel, or because another
|
||||
* This ensures that if you display text on a sync object, that the previous text
|
||||
* displayed on it will always be cleared first. This is because your new text
|
||||
* will either overwrite the old text on the same channel, or because another
|
||||
* channel has already erased your text.
|
||||
*
|
||||
* Note that messages can still overlap if they are on different synchronization
|
||||
* Note that messages can still overlap if they are on different synchronization
|
||||
* objects, or they are displayed to manual channels.
|
||||
*
|
||||
* These are particularly useful for displaying repeating or refreshing HUD text, in
|
||||
* addition to displaying multiple message sets in one area of the screen (for example,
|
||||
* center-say messages that may pop up randomly that you don't want to overlap each
|
||||
* These are particularly useful for displaying repeating or refreshing HUD text, in
|
||||
* addition to displaying multiple message sets in one area of the screen (for example,
|
||||
* center-say messages that may pop up randomly that you don't want to overlap each
|
||||
* other).
|
||||
*
|
||||
* @return New HUD synchronization object.
|
||||
* The Handle can be closed with CloseHandle().
|
||||
* If HUD text is not supported on this mod, then
|
||||
* INVALID_HANDLE is returned.
|
||||
* @return New HUD synchronization object.
|
||||
* The Handle can be closed with CloseHandle().
|
||||
* If HUD text is not supported on this mod, then
|
||||
* INVALID_HANDLE is returned.
|
||||
*/
|
||||
native Handle CreateHudSynchronizer();
|
||||
|
||||
/**
|
||||
* Sets the HUD parameters for drawing text. These parameters are stored
|
||||
* globally, although nothing other than this function and SetHudTextParamsEx
|
||||
* Sets the HUD parameters for drawing text. These parameters are stored
|
||||
* globally, although nothing other than this function and SetHudTextParamsEx
|
||||
* modify them.
|
||||
*
|
||||
* You must call this function before drawing text. If you are drawing
|
||||
* text to multiple clients, you can set the parameters once, since
|
||||
* they won't be modified. However, as soon as you pass control back
|
||||
* You must call this function before drawing text. If you are drawing
|
||||
* text to multiple clients, you can set the parameters once, since
|
||||
* they won't be modified. However, as soon as you pass control back
|
||||
* to other plugins, you must reset the parameters next time you draw.
|
||||
*
|
||||
* @param x x coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param y y coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param holdTime Number of seconds to hold the text.
|
||||
* @param r Red color value.
|
||||
* @param g Green color value.
|
||||
* @param b Blue color value.
|
||||
* @param a Alpha transparency value.
|
||||
* @param effect 0/1 causes the text to fade in and fade out.
|
||||
* 2 causes the text to flash[?].
|
||||
* @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.
|
||||
* @param x x coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param y y coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param holdTime Number of seconds to hold the text.
|
||||
* @param r Red color value.
|
||||
* @param g Green color value.
|
||||
* @param b Blue color value.
|
||||
* @param a Alpha transparency value.
|
||||
* @param effect 0/1 causes the text to fade in and fade out.
|
||||
* 2 causes the text to flash[?].
|
||||
* @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.
|
||||
*/
|
||||
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
|
||||
* Sets the HUD parameters for drawing text. These parameters are stored
|
||||
* globally, although nothing other than this function and SetHudTextParams
|
||||
* modify them.
|
||||
*
|
||||
* This is the same as SetHudTextParams(), except it lets you set the alternate
|
||||
* color for when effects require it.
|
||||
* This is the same as SetHudTextParams(), except it lets you set the alternate
|
||||
* color for when effects require it.
|
||||
*
|
||||
* @param x x coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param y y coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param holdTime Number of seconds to hold the text.
|
||||
* @param color1 First color set, array values being [red, green, blue, alpha]
|
||||
* @param color2 Second color set, array values being [red, green, blue, alpha]
|
||||
* @param effect 0/1 causes the text to fade in and fade out.
|
||||
* 2 causes the text to flash[?].
|
||||
* @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.
|
||||
* @param x x coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param y y coordinate, from 0 to 1. -1.0 is the center.
|
||||
* @param holdTime Number of seconds to hold the text.
|
||||
* @param color1 First color set, array values being [red, green, blue, alpha]
|
||||
* @param color2 Second color set, array values being [red, green, blue, alpha]
|
||||
* @param effect 0/1 causes the text to fade in and fade out.
|
||||
* 2 causes the text to flash[?].
|
||||
* @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.
|
||||
*/
|
||||
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,
|
||||
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.
|
||||
* Shows a synchronized HUD message to a client.
|
||||
*
|
||||
* As of this writing, only TF, HL2MP, and SourceForts support HUD Text.
|
||||
*
|
||||
* @param client Client index to send the message to.
|
||||
* @param sync Synchronization object.
|
||||
* @param message Message text or formatting rules.
|
||||
* @param ... Message formatting parameters.
|
||||
* @return -1 on failure, anything else on success.
|
||||
* This function fails if the mod does not support it.
|
||||
* @error Client not in-game, or sync object not valid.
|
||||
* @param client Client index to send the message to.
|
||||
* @param sync Synchronization object.
|
||||
* @param message Message text or formatting rules.
|
||||
* @param ... Message formatting parameters.
|
||||
* @return -1 on failure, anything else on success.
|
||||
* This function fails if the mod does not support it.
|
||||
* @error Client not in-game, or sync object not valid.
|
||||
*/
|
||||
native int ShowSyncHudText(int client, Handle sync, const char[] message, any ...);
|
||||
|
||||
/**
|
||||
* Clears the text on a synchronized HUD channel.
|
||||
* Clears the text on a synchronized HUD channel.
|
||||
*
|
||||
* This is not the same as sending "" because it guarantees that it won't
|
||||
* overwrite text on another channel. For example, consider the scenario:
|
||||
* This is not the same as sending "" because it guarantees that it won't
|
||||
* overwrite text on another channel. For example, consider the scenario:
|
||||
*
|
||||
* 1. Your synchronized message goes to channel 3.
|
||||
* 2. Someone else's non-synchronized message goes to channel 3.
|
||||
*
|
||||
* If you were to simply send "" on your synchronized message,
|
||||
* If you were to simply send "" on your synchronized message,
|
||||
* then someone else's text could be overwritten.
|
||||
*
|
||||
* @param client Client index to send the message to.
|
||||
* @param sync Synchronization object.
|
||||
* @error Client not in-game, or sync object not valid.
|
||||
* @param client Client index to send the message to.
|
||||
* @param sync Synchronization object.
|
||||
* @error Client not in-game, or sync object not valid.
|
||||
*/
|
||||
native void ClearSyncHud(int client, Handle sync);
|
||||
|
||||
@ -584,30 +585,30 @@ native void ClearSyncHud(int client, Handle sync);
|
||||
* Shows a HUD message to a client on the given channel.
|
||||
*
|
||||
* As of this writing, only TF, HL2MP, and SourceForts support HUD Text.
|
||||
*
|
||||
* @param client Client index to send the message to.
|
||||
* @param channel A channel number.
|
||||
* If -1, then a channel will automatically be selected
|
||||
* based on the least-recently-used channel. If the
|
||||
* channel is any other number, it will be modulo'd with
|
||||
* the channel count to get a final channel number.
|
||||
* @param message Message text or formatting rules.
|
||||
* @param ... Message formatting parameters.
|
||||
* @return -1 on failure (lack of mod support).
|
||||
* Any other return value is the channel number that was
|
||||
* used to render the text.
|
||||
*
|
||||
* @param client Client index to send the message to.
|
||||
* @param channel A channel number.
|
||||
* If -1, then a channel will automatically be selected
|
||||
* based on the least-recently-used channel. If the
|
||||
* channel is any other number, it will be modulo'd with
|
||||
* the channel count to get a final channel number.
|
||||
* @param message Message text or formatting rules.
|
||||
* @param ... Message formatting parameters.
|
||||
* @return -1 on failure (lack of mod support).
|
||||
* Any other return value is the channel number that was
|
||||
* used to render the text.
|
||||
*/
|
||||
native int ShowHudText(int client, int channel, const char[] message, any ...);
|
||||
|
||||
/**
|
||||
* Shows a MOTD panel to a specific client.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param title Title of the panel (printed on the top border of the window).
|
||||
* @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.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
* @param client Client index.
|
||||
* @param title Title of the panel (printed on the top border of the window).
|
||||
* @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.
|
||||
* @error If the client is not connected an error will be thrown.
|
||||
*/
|
||||
stock void ShowMOTDPanel(int client, const char[] title, const char[] msg, int type=MOTDPANEL_TYPE_INDEX)
|
||||
{
|
||||
@ -625,10 +626,10 @@ stock void ShowMOTDPanel(int client, const char[] title, const char[] msg, int t
|
||||
/**
|
||||
* Displays a panel asking the client to connect to a specified IP.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @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.
|
||||
* @param client Client index.
|
||||
* @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.
|
||||
*/
|
||||
stock void DisplayAskConnectBox(int client, float time, const char[] ip, const char[] password = "")
|
||||
{
|
||||
@ -645,42 +646,41 @@ stock void DisplayAskConnectBox(int client, float time, const char[] ip, const c
|
||||
/**
|
||||
* Converts an entity index into a serial encoded entity reference.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return Entity reference.
|
||||
* @param entity Entity index.
|
||||
* @return Entity reference.
|
||||
*/
|
||||
native int EntIndexToEntRef(int entity);
|
||||
|
||||
/**
|
||||
* Retrieves the entity index from a reference.
|
||||
*
|
||||
* @param ref Entity reference.
|
||||
* @return Entity index.
|
||||
* @param ref Entity reference.
|
||||
* @return Entity index.
|
||||
*/
|
||||
native int EntRefToEntIndex(int ref);
|
||||
|
||||
/**
|
||||
* Converts a reference into a backwards compatible version.
|
||||
*
|
||||
* @param ref Entity reference.
|
||||
* @return Bcompat reference.
|
||||
* @param ref Entity reference.
|
||||
* @return Bcompat reference.
|
||||
*/
|
||||
native int MakeCompatEntRef(int ref);
|
||||
|
||||
|
||||
enum ClientRangeType
|
||||
{
|
||||
RangeType_Visibility = 0,
|
||||
RangeType_Audibility,
|
||||
RangeType_Audibility
|
||||
}
|
||||
|
||||
/**
|
||||
* Find clients that are potentially in range of a position.
|
||||
*
|
||||
* @param origin Coordinates from which to test range.
|
||||
* @param rangeType Range type to use for filtering clients.
|
||||
* @param clients Array to which found client indexes will be written.
|
||||
* @param size Maximum size of clients array.
|
||||
* @return Number of client indexes written to clients array.
|
||||
* @param origin Coordinates from which to test range.
|
||||
* @param rangeType Range type to use for filtering clients.
|
||||
* @param clients Array to which found client indexes will be written.
|
||||
* @param size Maximum size of clients array.
|
||||
* @return Number of client indexes written to clients array.
|
||||
*/
|
||||
native int GetClientsInRange(float origin[3], ClientRangeType rangeType, int[] clients, int size);
|
||||
|
||||
@ -690,17 +690,17 @@ native int GetClientsInRange(float origin[3], ClientRangeType rangeType, int[] c
|
||||
* 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.
|
||||
* @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.
|
||||
* @return Steam account ID or 0 if not available.
|
||||
*/
|
||||
native int GetServerSteamAccountId();
|
||||
|
@ -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
|
||||
@ -40,19 +40,19 @@
|
||||
*/
|
||||
enum Handle // Tag disables introducing "Handle" as a symbol.
|
||||
{
|
||||
INVALID_HANDLE = 0,
|
||||
INVALID_HANDLE = 0
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Closes a Handle. If the handle has multiple copies open,
|
||||
* Closes a Handle. If the handle has multiple copies open,
|
||||
* it is not destroyed unless all copies are closed.
|
||||
*
|
||||
*
|
||||
* @note Closing a Handle has a different meaning for each Handle type. Make
|
||||
* sure you read the documentation on whatever provided the Handle.
|
||||
*
|
||||
* @param hndl Handle to close.
|
||||
* @error Invalid handles will cause a run time error.
|
||||
* @param hndl Handle to close.
|
||||
* @error Invalid handles will cause a run time error.
|
||||
*/
|
||||
native void CloseHandle(Handle hndl);
|
||||
|
||||
@ -60,38 +60,39 @@ native void CloseHandle(Handle hndl);
|
||||
* Clones a Handle. When passing handles in between plugins, caching handles
|
||||
* can result in accidental invalidation when one plugin releases the Handle, or is its owner
|
||||
* is unloaded from memory. To prevent this, the Handle may be "cloned" with a new owner.
|
||||
*
|
||||
* @note Usually, you will be cloning Handles for other plugins. This means that if you clone
|
||||
* the Handle without specifying the new owner, it will assume the identity of your original calling
|
||||
* plugin, which is not very useful. You should either specify that the receiving plugin should
|
||||
* clone the handle on its own, or you should explicitly clone the Handle using the receiving plugin's
|
||||
* identity Handle.
|
||||
*
|
||||
* @param hndl Handle to clone/duplicate.
|
||||
* @param plugin Optional Handle to another plugin to mark as the new owner.
|
||||
* If no owner is passed, the owner becomes the calling plugin.
|
||||
* @return Handle on success, INVALID_HANDLE if not cloneable.
|
||||
* @error Invalid handles will cause a run time error.
|
||||
* @note Usually, you will be cloning Handles for other plugins. This means that if you clone
|
||||
* the Handle without specifying the new owner, it will assume the identity of your original
|
||||
* calling plugin, which is not very useful. You should either specify that the receiving
|
||||
* plugin should clone the handle on its own, or you should explicitly clone the Handle
|
||||
* using the receiving plugin's identity Handle.
|
||||
*
|
||||
* @param hndl Handle to clone/duplicate.
|
||||
* @param plugin Optional Handle to another plugin to mark as the new owner.
|
||||
* If no owner is passed, the owner becomes the calling plugin.
|
||||
* @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);
|
||||
|
||||
using __intrinsics__.Handle;
|
||||
|
||||
/**
|
||||
* Do not use this function. Returns if a Handle and its contents
|
||||
* are readable, whereas INVALID_HANDLE only checks for the absence
|
||||
* Do not use this function. Returns if a Handle and its contents
|
||||
* are readable, whereas INVALID_HANDLE only checks for the absence
|
||||
* of a Handle.
|
||||
*
|
||||
* This function is intended only for tests where the validity of a
|
||||
* Handle can absolutely not be known.
|
||||
* This function is intended only for tests where the validity of a
|
||||
* Handle can absolutely not be known.
|
||||
*
|
||||
* Do not use this to check the return values of functions, or to
|
||||
* check if timers should be closed (except in very rare cases).
|
||||
* This function is for very specific usage and using it for general
|
||||
* Do not use this to check the return values of functions, or to
|
||||
* check if timers should be closed (except in very rare cases).
|
||||
* This function is for very specific usage and using it for general
|
||||
* purpose routines can and will hide very subtle bugs.
|
||||
*
|
||||
* @param hndl Handle to test for validity.
|
||||
* @return True if handle is valid, false otherwise.
|
||||
* @param hndl Handle to test for validity.
|
||||
* @return True if handle is valid, false otherwise.
|
||||
* @deprecated Do not use this function.
|
||||
*/
|
||||
#pragma deprecated Do not use this function.
|
||||
native bool IsValidHandle(Handle hndl);
|
||||
|
@ -40,9 +40,10 @@
|
||||
*
|
||||
* Formats a user's info as log text.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param buffer Buffer for text.
|
||||
* @param maxlength Maximum length of text.
|
||||
* @param client Client index.
|
||||
* @param buffer Buffer for text.
|
||||
* @param maxlength Maximum length of text.
|
||||
* @deprecated Use the %L format specifier instead.
|
||||
*/
|
||||
#pragma deprecated Use the %L format specifier instead.
|
||||
stock void FormatUserLogText(int client, char[] buffer, int maxlength)
|
||||
@ -53,8 +54,8 @@ stock void FormatUserLogText(int client, char[] buffer, int maxlength)
|
||||
/**
|
||||
* Returns plugin handle from plugin filename.
|
||||
*
|
||||
* @param filename Filename of the plugin to search for.
|
||||
* @return Handle to plugin if found, INVALID_HANDLE otherwise.
|
||||
* @param filename Filename of the plugin to search for.
|
||||
* @return Handle to plugin if found, INVALID_HANDLE otherwise.
|
||||
*/
|
||||
stock Handle FindPluginByFile(const char[] filename)
|
||||
{
|
||||
@ -81,7 +82,7 @@ stock Handle FindPluginByFile(const char[] filename)
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use FindTarget() or ProcessTargetString().
|
||||
* @deprecated Use FindTarget() or ProcessTargetString().
|
||||
*/
|
||||
#pragma deprecated Use FindTarget() or ProcessTargetString()
|
||||
stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
|
||||
@ -89,24 +90,34 @@ stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
|
||||
int total = 0;
|
||||
|
||||
if (maxClients == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (pattern[0] == '#') {
|
||||
if (pattern[0] == '#')
|
||||
{
|
||||
int input = StringToInt(pattern[1]);
|
||||
if (!input) {
|
||||
char name[MAX_NAME_LENGTH];
|
||||
for (int i=1; i<=MaxClients; i++) {
|
||||
for (int i=1; i<=MaxClients; i++)
|
||||
{
|
||||
if (!IsClientInGame(i))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
GetClientName(i, name, sizeof(name));
|
||||
if (strcmp(name, pattern, false) == 0) {
|
||||
if (strcmp(name, pattern, false) == 0)
|
||||
{
|
||||
clients[0] = i;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
int client = GetClientOfUserId(input);
|
||||
if (client) {
|
||||
if (client)
|
||||
{
|
||||
clients[0] = client;
|
||||
return 1;
|
||||
}
|
||||
@ -117,12 +128,18 @@ stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
|
||||
for (int i=1; i<=MaxClients; i++)
|
||||
{
|
||||
if (!IsClientInGame(i))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
GetClientName(i, name, sizeof(name));
|
||||
if (StrContains(name, pattern, false) != -1) {
|
||||
if (StrContains(name, pattern, false) != -1)
|
||||
{
|
||||
clients[total++] = i;
|
||||
if (total >= maxClients)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -133,11 +150,11 @@ stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
|
||||
* Wraps ProcessTargetString() and handles producing error messages for
|
||||
* bad targets.
|
||||
*
|
||||
* @param client Client who issued command
|
||||
* @param target Client's target argument
|
||||
* @param nobots Optional. Set to true if bots should NOT be targetted
|
||||
* @param immunity Optional. Set to false to ignore target immunity.
|
||||
* @return Index of target client, or -1 on error.
|
||||
* @param client Client who issued command
|
||||
* @param target Client's target argument
|
||||
* @param nobots Optional. Set to true if bots should NOT be targetted
|
||||
* @param immunity Optional. Set to false to ignore target immunity.
|
||||
* @return Index of target client, or -1 on error.
|
||||
*/
|
||||
stock int FindTarget(int client, const char[] target, bool nobots = false, bool immunity = true)
|
||||
{
|
||||
@ -150,6 +167,7 @@ stock int FindTarget(int client, const char[] target, bool nobots = false, bool
|
||||
{
|
||||
flags |= COMMAND_FILTER_NO_BOTS;
|
||||
}
|
||||
|
||||
if (!immunity)
|
||||
{
|
||||
flags |= COMMAND_FILTER_NO_IMMUNITY;
|
||||
@ -167,11 +185,9 @@ stock int FindTarget(int client, const char[] target, bool nobots = false, bool
|
||||
{
|
||||
return target_list[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
ReplyToTargetError(client, target_count);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ReplyToTargetError(client, target_count);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -184,83 +200,84 @@ stock int FindTarget(int client, const char[] target, bool nobots = false, bool
|
||||
* parameter is used to store a timestamp of the file. If specified, the file will only be reloaded if it
|
||||
* has changed.
|
||||
*
|
||||
* @param array Valid array handle, should be created with CreateArray(33) or larger.
|
||||
* @param fileTime Variable containing the "last changed" time of the file. Used to avoid needless reloading.
|
||||
* @param fileCvar CVAR set to the file to be loaded. Optional.
|
||||
* @return Number of maps loaded or 0 if in error.
|
||||
* @param array Valid array handle, should be created with CreateArray(33) or larger.
|
||||
* @param fileTime Variable containing the "last changed" time of the file. Used to avoid needless reloading.
|
||||
* @param fileCvar CVAR set to the file to be loaded. Optional.
|
||||
* @return Number of maps loaded or 0 if in error.
|
||||
* @deprecated Use ReadMapList() instead.
|
||||
*/
|
||||
#pragma deprecated Use ReadMapList() instead.
|
||||
stock int LoadMaps(Handle array, int &fileTime = 0, Handle fileCvar = INVALID_HANDLE)
|
||||
{
|
||||
char mapPath[256], mapFile[64];
|
||||
bool fileFound = false;
|
||||
|
||||
if (fileCvar != INVALID_HANDLE)
|
||||
{
|
||||
GetConVarString(fileCvar, mapFile, 64);
|
||||
BuildPath(Path_SM, mapPath, sizeof(mapPath), mapFile);
|
||||
fileFound = FileExists(mapPath);
|
||||
}
|
||||
stock int LoadMaps(Handle array, int &fileTime = 0, Handle fileCvar = INVALID_HANDLE)
|
||||
{
|
||||
char mapPath[256], mapFile[64];
|
||||
bool fileFound = false;
|
||||
|
||||
if (fileCvar != INVALID_HANDLE)
|
||||
{
|
||||
GetConVarString(fileCvar, mapFile, 64);
|
||||
BuildPath(Path_SM, mapPath, sizeof(mapPath), mapFile);
|
||||
fileFound = FileExists(mapPath);
|
||||
}
|
||||
|
||||
if (!fileFound)
|
||||
{
|
||||
Handle mapCycleFile = FindConVar("mapcyclefile");
|
||||
GetConVarString(mapCycleFile, mapPath, sizeof(mapPath));
|
||||
fileFound = FileExists(mapPath);
|
||||
}
|
||||
|
||||
if (!fileFound)
|
||||
{
|
||||
LogError("Failed to find a file to load maps from. No maps loaded.");
|
||||
ClearArray(array);
|
||||
|
||||
return 0;
|
||||
}
|
||||
if (!fileFound)
|
||||
{
|
||||
Handle mapCycleFile = FindConVar("mapcyclefile");
|
||||
GetConVarString(mapCycleFile, mapPath, sizeof(mapPath));
|
||||
fileFound = FileExists(mapPath);
|
||||
}
|
||||
|
||||
if (!fileFound)
|
||||
{
|
||||
LogError("Failed to find a file to load maps from. No maps loaded.");
|
||||
ClearArray(array);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// If the file hasn't changed, there's no reason to reload
|
||||
// all of the maps.
|
||||
int newTime = GetFileTime(mapPath, FileTime_LastChange);
|
||||
if (fileTime == newTime)
|
||||
{
|
||||
return GetArraySize(array);
|
||||
}
|
||||
|
||||
fileTime = newTime;
|
||||
|
||||
ClearArray(array);
|
||||
// If the file hasn't changed, there's no reason to reload
|
||||
// all of the maps.
|
||||
int newTime = GetFileTime(mapPath, FileTime_LastChange);
|
||||
if (fileTime == newTime)
|
||||
{
|
||||
return GetArraySize(array);
|
||||
}
|
||||
|
||||
fileTime = newTime;
|
||||
|
||||
ClearArray(array);
|
||||
|
||||
File file = OpenFile(mapPath, "rt");
|
||||
if (!file) {
|
||||
LogError("Could not open file: %s", mapPath);
|
||||
return 0;
|
||||
}
|
||||
File file = OpenFile(mapPath, "rt");
|
||||
if (!file) {
|
||||
LogError("Could not open file: %s", mapPath);
|
||||
return 0;
|
||||
}
|
||||
|
||||
LogMessage("Loading maps from file: %s", mapPath);
|
||||
|
||||
int len;
|
||||
char buffer[64];
|
||||
while (!file.EndOfFile() && file.ReadLine(buffer, sizeof(buffer)))
|
||||
{
|
||||
TrimString(buffer);
|
||||
char buffer[64];
|
||||
while (!file.EndOfFile() && file.ReadLine(buffer, sizeof(buffer)))
|
||||
{
|
||||
TrimString(buffer);
|
||||
|
||||
if ((len = StrContains(buffer, ".bsp", false)) != -1)
|
||||
{
|
||||
buffer[len] = '\0';
|
||||
}
|
||||
if ((len = StrContains(buffer, ".bsp", false)) != -1)
|
||||
{
|
||||
buffer[len] = '\0';
|
||||
}
|
||||
|
||||
if (buffer[0] == '\0' || !IsValidConVarChar(buffer[0]) || !IsMapValid(buffer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (FindStringInArray(array, buffer) != -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (buffer[0] == '\0' || !IsValidConVarChar(buffer[0]) || !IsMapValid(buffer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (FindStringInArray(array, buffer) != -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
PushArrayString(array, buffer);
|
||||
}
|
||||
PushArrayString(array, buffer);
|
||||
}
|
||||
|
||||
file.Close();
|
||||
return GetArraySize(array);
|
||||
return GetArraySize(array);
|
||||
}
|
||||
|
@ -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 _keyvalues_included
|
||||
#endinput
|
||||
#endif
|
||||
@ -40,23 +40,23 @@
|
||||
*/
|
||||
enum KvDataTypes
|
||||
{
|
||||
KvData_None = 0, /**< Type could not be identified, or no type */
|
||||
KvData_String, /**< String value */
|
||||
KvData_Int, /**< Integer value */
|
||||
KvData_Float, /**< Floating point value */
|
||||
KvData_Ptr, /**< Pointer value (sometimes called "long") */
|
||||
KvData_WString, /**< Wide string value */
|
||||
KvData_Color, /**< Color value */
|
||||
KvData_UInt64, /**< Large integer value */
|
||||
KvData_None = 0, /**< Type could not be identified, or no type */
|
||||
KvData_String, /**< String value */
|
||||
KvData_Int, /**< Integer value */
|
||||
KvData_Float, /**< Floating point value */
|
||||
KvData_Ptr, /**< Pointer value (sometimes called "long") */
|
||||
KvData_WString, /**< Wide string value */
|
||||
KvData_Color, /**< Color value */
|
||||
KvData_UInt64, /**< Large integer value */
|
||||
/* --- */
|
||||
KvData_NUMTYPES,
|
||||
KvData_NUMTYPES
|
||||
};
|
||||
|
||||
methodmap KeyValues < Handle
|
||||
{
|
||||
// Creates a new KeyValues structure. The Handle must be closed with
|
||||
// CloseHandle() or delete.
|
||||
//
|
||||
//
|
||||
// @param name Name of the root section.
|
||||
// @param firstKey If non-empty, specifies the first key value.
|
||||
// @param firstValue If firstKey is non-empty, specifies the first key's value.
|
||||
@ -71,7 +71,7 @@ methodmap KeyValues < Handle
|
||||
// Exports a KeyValues tree to a string. The string is dumped from the current position.
|
||||
//
|
||||
// @param buffer Buffer to write to.
|
||||
// @param maxlength Max length of buffer.
|
||||
// @param maxlength Max length of buffer.
|
||||
// @return Number of bytes that can be written to buffer.
|
||||
public native int ExportToString(char[] buffer, int maxlength);
|
||||
|
||||
@ -89,7 +89,7 @@ methodmap KeyValues < Handle
|
||||
|
||||
// Converts a given string to a KeyValues tree. The string is read into
|
||||
// the current postion of the tree.
|
||||
//
|
||||
//
|
||||
// @param buffer String buffer to load into the KeyValues.
|
||||
// @param resourceName The resource name of the KeyValues, used for error tracking purposes.
|
||||
// @return True on success, false otherwise.
|
||||
@ -98,7 +98,7 @@ methodmap KeyValues < Handle
|
||||
// Imports subkeys in the given KeyValues, at the current position in that
|
||||
// KeyValues, into the current position in this KeyValues. Note that this
|
||||
// copies keys; it does not embed a reference to them.
|
||||
//
|
||||
//
|
||||
// @param other Origin KeyValues Handle.
|
||||
public native void Import(KeyValues other);
|
||||
|
||||
@ -145,13 +145,13 @@ methodmap KeyValues < Handle
|
||||
}
|
||||
|
||||
// Sets a vector value of a KeyValues key.
|
||||
//
|
||||
//
|
||||
// @param key Name of the key, or NULL_STRING.
|
||||
// @param vec Vector value.
|
||||
public native void SetVector(const char[] key, const float vec[3]);
|
||||
|
||||
// Retrieves a string value from a KeyValues key.
|
||||
//
|
||||
//
|
||||
// @param key Name of the key, or NULL_STRING.
|
||||
// @param value Buffer to store key value in.
|
||||
// @param maxlength Maximum length of the value buffer.
|
||||
@ -159,7 +159,7 @@ methodmap KeyValues < Handle
|
||||
public native void GetString(const char[] key, char[] value, int maxlength, const char[] defvalue="");
|
||||
|
||||
// Retrieves an integer value from a KeyValues key.
|
||||
//
|
||||
//
|
||||
// @param key Name of the key, or NULL_STRING.
|
||||
// @param defvalue Optional default value to use if the key is not found.
|
||||
// @return Integer value of the key.
|
||||
@ -176,9 +176,9 @@ methodmap KeyValues < Handle
|
||||
//
|
||||
// @param key Name of the key, or NULL_STRING.
|
||||
// @param r Red value, set by reference.
|
||||
// @param g Green value, set by reference.
|
||||
// @param b Blue value, set by reference.
|
||||
// @param a Alpha value, set by reference.
|
||||
// @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, int &r, int &g, int &b, int &a);
|
||||
|
||||
// Retrieves a set of color values from a KeyValues key.
|
||||
@ -231,13 +231,13 @@ methodmap KeyValues < Handle
|
||||
// Sets the current position in the KeyValues tree to the next sub key.
|
||||
// This native does NOT add to the internal traversal stack, and thus
|
||||
// GoBack() is not needed for each successive call to this function.
|
||||
//
|
||||
//
|
||||
// @param keyOnly If false, non-keys will be traversed (values).
|
||||
// @return True on success, false if there was no next sub key.
|
||||
public native bool GotoNextKey(bool keyOnly=true);
|
||||
|
||||
// Saves the current position in the traversal stack onto the traversal
|
||||
// stack. This can be useful if you wish to use KvGotoNextKey() and
|
||||
// stack. This can be useful if you wish to use KvGotoNextKey() and
|
||||
// have the previous key saved for backwards traversal.
|
||||
//
|
||||
// @param kv KeyValues Handle.
|
||||
@ -260,9 +260,9 @@ methodmap KeyValues < Handle
|
||||
// Removes the current sub-key and attempts to set the position
|
||||
// to the sub-key after the removed one. If no such sub-key exists,
|
||||
// the position will be the parent key in the traversal stack.
|
||||
// Given the sub-key having position "N" in the traversal stack, the
|
||||
// Given the sub-key having position "N" in the traversal stack, the
|
||||
// removal will always take place from position "N-1."
|
||||
//
|
||||
//
|
||||
// @param kv KeyValues Handle.
|
||||
// @return 1 if removal succeeded and there was another key.
|
||||
// 0 if the current node was not contained in the
|
||||
@ -271,7 +271,7 @@ methodmap KeyValues < Handle
|
||||
// thus the state is as if KvGoBack() was called.
|
||||
public native int DeleteThis();
|
||||
|
||||
// Sets the position back to the top node, emptying the entire node
|
||||
// Sets the position back to the top node, emptying the entire node
|
||||
// traversal history. This can be used instead of looping KvGoBack()
|
||||
// if recursive iteration is not important.
|
||||
//
|
||||
@ -279,14 +279,14 @@ methodmap KeyValues < Handle
|
||||
public native void Rewind();
|
||||
|
||||
// Retrieves the current section name.
|
||||
//
|
||||
//
|
||||
// @param section Buffer to store the section name.
|
||||
// @param maxlength Maximum length of the name buffer.
|
||||
// @return True on success, false on failure.
|
||||
public native bool GetSectionName(char[] section, int maxlength);
|
||||
|
||||
// Sets the current section name.
|
||||
//
|
||||
//
|
||||
// @param section Section name.
|
||||
public native void SetSectionName(const char[] section);
|
||||
|
||||
@ -299,14 +299,14 @@ methodmap KeyValues < Handle
|
||||
// Sets whether or not the KeyValues parser will read escape sequences.
|
||||
// For example, \n would be read as a literal newline. This defaults
|
||||
// to false for new KeyValues structures.
|
||||
//
|
||||
//
|
||||
// @param useEscapes Whether or not to read escape sequences.
|
||||
public native void SetEscapeSequences(bool useEscapes);
|
||||
|
||||
// Returns the position in the jump stack; I.e. the number of calls
|
||||
// required for KvGoBack to return to the root node. If at the root node,
|
||||
// 0 is returned.
|
||||
//
|
||||
//
|
||||
// @return Number of non-root nodes in the jump stack.
|
||||
public native int NodesInStack();
|
||||
|
||||
@ -319,14 +319,14 @@ methodmap KeyValues < Handle
|
||||
public native bool FindKeyById(int id, char[] name, int maxlength);
|
||||
|
||||
// Finds a KeyValues id inside a KeyValues tree.
|
||||
//
|
||||
//
|
||||
// @param key Key name.
|
||||
// @param id Id of the found KeyValue.
|
||||
// @return True on success, false if key not found.
|
||||
public native bool GetNameSymbol(const char[] key, int &id);
|
||||
|
||||
// Retrieves the current section id.
|
||||
//
|
||||
//
|
||||
// @param kv KeyValues Handle.
|
||||
// @param id Id of the current section.
|
||||
// @return True on success, false on failure.
|
||||
@ -336,161 +336,161 @@ methodmap KeyValues < Handle
|
||||
/**
|
||||
* Creates a new KeyValues structure. The Handle must always be closed.
|
||||
*
|
||||
* @param name Name of the root section.
|
||||
* @param firstKey If non-empty, specifies the first key value.
|
||||
* @param firstValue If firstKey is non-empty, specifies the first key's value.
|
||||
* @return A Handle to a new KeyValues structure.
|
||||
* @param name Name of the root section.
|
||||
* @param firstKey If non-empty, specifies the first key value.
|
||||
* @param firstValue If firstKey is non-empty, specifies the first key's value.
|
||||
* @return A Handle to a new KeyValues structure.
|
||||
*/
|
||||
native KeyValues CreateKeyValues(const char[] name, const char[] firstKey="", const char[] firstValue="");
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets a string value of a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value String value.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value String value.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetString(Handle kv, const char[] key, const char[] value);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets an integer value of a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Value number.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Value number.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetNum(Handle kv, const char[] key, int value);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets a large integer value of a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Large integer value (0=High bits, 1=Low bits)
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Large integer value (0=High bits, 1=Low bits)
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetUInt64(Handle kv, const char[] key, const int value[2]);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets a floating point value of a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Floating point value.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Floating point value.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetFloat(Handle kv, const char[] key, float value);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets a set of color values of a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param r Red value.
|
||||
* @param g Green value.
|
||||
* @param b Blue value.
|
||||
* @param a Alpha value.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param r Red value.
|
||||
* @param g Green value.
|
||||
* @param b Blue value.
|
||||
* @param a Alpha value.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetColor(Handle kv, const char[] key, int r, int g, int b, int a=0);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets a vector value of a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param vec Vector value.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param vec Vector value.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetVector(Handle kv, const char[] key, const float vec[3]);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Retrieves a string value from a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Buffer to store key value in.
|
||||
* @param maxlength Maximum length of the value buffer.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Buffer to store key value in.
|
||||
* @param maxlength Maximum length of the value buffer.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvGetString(Handle kv, const char[] key, char[] value, int maxlength, const char[] defvalue="");
|
||||
|
||||
/**
|
||||
/**
|
||||
* Retrieves an integer value from a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @return Integer value of the key.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @return Integer value of the key.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int KvGetNum(Handle kv, const char[] key, int defvalue=0);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Retrieves a floating point value from a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @return Floating point value of the key.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @return Floating point value of the key.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native float KvGetFloat(Handle kv, const char[] key, float defvalue=0.0);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Retrieves a set of color values from a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param r Red value, set by reference.
|
||||
* @param g Green value, set by reference.
|
||||
* @param b Blue value, set by reference.
|
||||
* @param a Alpha value, set by reference.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param r Red value, set by reference.
|
||||
* @param g Green value, set by reference.
|
||||
* @param b Blue value, set by reference.
|
||||
* @param a Alpha value, set by reference.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvGetColor(Handle kv, const char[] key, int &r, int &g, int &b, int &a);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Retrieves a large integer value from a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Array to represent the large integer.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param value Array to represent the large integer.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvGetUInt64(Handle kv, const char[] key, int value[2], int defvalue[2]={0,0});
|
||||
|
||||
/**
|
||||
/**
|
||||
* Retrieves a vector value from a KeyValues key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param vec Destination vector to store the value in.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key, or NULL_STRING.
|
||||
* @param vec Destination vector to store the value in.
|
||||
* @param defvalue Optional default value to use if the key is not found.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvGetVector(Handle kv, const char[] key, float vec[3], const float defvalue[3]={0.0, 0.0, 0.0});
|
||||
|
||||
/**
|
||||
* Sets the current position in the KeyValues tree to the given key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key.
|
||||
* @param create If true, and the key does not exist, it will be created.
|
||||
* @return True if the key exists, false if it does not and was not created.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key.
|
||||
* @param create If true, and the key does not exist, it will be created.
|
||||
* @return True if the key exists, false if it does not and was not created.
|
||||
*/
|
||||
native bool KvJumpToKey(Handle kv, const char[] key, bool create=false);
|
||||
|
||||
/**
|
||||
* Sets the current position in the KeyValues tree to the given key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param id KeyValues id.
|
||||
* @return True if the key exists, false if it does not.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param id KeyValues id.
|
||||
* @return True if the key exists, false if it does not.
|
||||
*/
|
||||
native bool KvJumpToKeySymbol(Handle kv, int id);
|
||||
|
||||
@ -498,10 +498,10 @@ native bool KvJumpToKeySymbol(Handle kv, int id);
|
||||
* Sets the current position in the KeyValues tree to the first sub key.
|
||||
* This native adds to the internal traversal stack.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param keyOnly If false, non-keys will be traversed (values).
|
||||
* @return True on success, false if there was no first sub key.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param keyOnly If false, non-keys will be traversed (values).
|
||||
* @return True on success, false if there was no first sub key.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvGotoFirstSubKey(Handle kv, bool keyOnly=true);
|
||||
|
||||
@ -510,30 +510,30 @@ native bool KvGotoFirstSubKey(Handle kv, bool keyOnly=true);
|
||||
* This native does NOT add to the internal traversal stack, and thus
|
||||
* KvGoBack() is not needed for each successive call to this function.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param keyOnly If false, non-keys will be traversed (values).
|
||||
* @return True on success, false if there was no next sub key.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param keyOnly If false, non-keys will be traversed (values).
|
||||
* @return True on success, false if there was no next sub key.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvGotoNextKey(Handle kv, bool keyOnly=true);
|
||||
|
||||
/**
|
||||
* Saves the current position in the traversal stack onto the traversal
|
||||
* stack. This can be useful if you wish to use KvGotoNextKey() and
|
||||
* stack. This can be useful if you wish to use KvGotoNextKey() and
|
||||
* have the previous key saved for backwards traversal.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSavePosition(Handle kv);
|
||||
|
||||
/**
|
||||
* Removes the given key from the current position.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key.
|
||||
* @return True on success, false if key did not exist.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Name of the key.
|
||||
* @return True on success, false if key did not exist.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvDeleteKey(Handle kv, const char[] key);
|
||||
|
||||
@ -541,16 +541,16 @@ native bool KvDeleteKey(Handle kv, const char[] key);
|
||||
* Removes the current sub-key and attempts to set the position
|
||||
* to the sub-key after the removed one. If no such sub-key exists,
|
||||
* the position will be the parent key in the traversal stack.
|
||||
* Given the sub-key having position "N" in the traversal stack, the
|
||||
* Given the sub-key having position "N" in the traversal stack, the
|
||||
* removal will always take place from position "N-1."
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @return 1 if removal succeeded and there was another key.
|
||||
* 0 if the current node was not contained in the
|
||||
* previous node, or no previous node exists.
|
||||
* -1 if removal succeeded and there were no more keys,
|
||||
* thus the state is as if KvGoBack() was called.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @return 1 if removal succeeded and there was another key.
|
||||
* 0 if the current node was not contained in the
|
||||
* previous node, or no previous node exists.
|
||||
* -1 if removal succeeded and there were no more keys,
|
||||
* thus the state is as if KvGoBack() was called.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int KvDeleteThis(Handle kv);
|
||||
|
||||
@ -560,49 +560,49 @@ native int KvDeleteThis(Handle kv);
|
||||
* once for each successful Jump call, in order to return to the top node.
|
||||
* This function pops one node off the internal traversal stack.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @return True on success, false if there is no higher node.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @return True on success, false if there is no higher node.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvGoBack(Handle kv);
|
||||
|
||||
/**
|
||||
* Sets the position back to the top node, emptying the entire node
|
||||
* Sets the position back to the top node, emptying the entire node
|
||||
* traversal history. This can be used instead of looping KvGoBack()
|
||||
* if recursive iteration is not important.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvRewind(Handle kv);
|
||||
|
||||
/**
|
||||
* Retrieves the current section name.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param section Buffer to store the section name.
|
||||
* @param maxlength Maximum length of the name buffer.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param section Buffer to store the section name.
|
||||
* @param maxlength Maximum length of the name buffer.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvGetSectionName(Handle kv, char[] section, int maxlength);
|
||||
|
||||
/**
|
||||
* Sets the current section name.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param section Section name.
|
||||
* @error Invalid Handle.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param section Section name.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetSectionName(Handle kv, const char[] section);
|
||||
|
||||
/**
|
||||
* Returns the data type at a key.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Key name.
|
||||
* @return KvDataType value of the key.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Key name.
|
||||
* @return KvDataType value of the key.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native KvDataTypes KvGetDataType(Handle kv, const char[] key);
|
||||
|
||||
@ -610,10 +610,10 @@ native KvDataTypes KvGetDataType(Handle kv, const char[] key);
|
||||
* Converts a KeyValues tree to a file. The tree is dumped
|
||||
* from the current position.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param file File to dump write to.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param file File to dump write to.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KeyValuesToFile(Handle kv, const char[] file);
|
||||
|
||||
@ -621,10 +621,10 @@ native bool KeyValuesToFile(Handle kv, const char[] file);
|
||||
* Converts a file to a KeyValues tree. The file is read into
|
||||
* the current position of the tree.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param file File to read from.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param file File to read from.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool FileToKeyValues(Handle kv, const char[] file);
|
||||
|
||||
@ -632,11 +632,11 @@ native bool FileToKeyValues(Handle kv, const char[] file);
|
||||
* Converts a given string to a KeyValues tree. The string is read into
|
||||
* the current postion of the tree.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param buffer String buffer to load into the KeyValues.
|
||||
* @param resourceName The resource name of the KeyValues, used for error tracking purposes.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param buffer String buffer to load into the KeyValues.
|
||||
* @param resourceName The resource name of the KeyValues, used for error tracking purposes.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool StringToKeyValues(Handle kv, const char[] buffer, const char[] resourceName="StringToKeyValues");
|
||||
|
||||
@ -645,9 +645,9 @@ native bool StringToKeyValues(Handle kv, const char[] buffer, const char[] resou
|
||||
* For example, \n would be read as a literal newline. This defaults
|
||||
* to false for new KeyValues structures.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param useEscapes Whether or not to read escape sequences.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param useEscapes Whether or not to read escape sequences.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvSetEscapeSequences(Handle kv, bool useEscapes);
|
||||
|
||||
@ -656,9 +656,9 @@ native void KvSetEscapeSequences(Handle kv, bool useEscapes);
|
||||
* required for KvGoBack to return to the root node. If at the root node,
|
||||
* 0 is returned.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @return Number of non-root nodes in the jump stack.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @return Number of non-root nodes in the jump stack.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int KvNodesInStack(Handle kv);
|
||||
|
||||
@ -667,41 +667,41 @@ native int KvNodesInStack(Handle kv);
|
||||
* the destination KeyValues.
|
||||
* NOTE: All KeyValues are processed from the current location not the root one.
|
||||
*
|
||||
* @param origin Origin KeyValues Handle.
|
||||
* @param dest Destination KeyValues Handle.
|
||||
* @error Invalid Handle.
|
||||
* @param origin Origin KeyValues Handle.
|
||||
* @param dest Destination KeyValues Handle.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void KvCopySubkeys(Handle origin, Handle dest);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Finds a KeyValues name by id.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param id KeyValues id.
|
||||
* @param name Buffer to store the name.
|
||||
* @param maxlength Maximum length of the value buffer.
|
||||
* @return True on success, false if id not found.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param id KeyValues id.
|
||||
* @param name Buffer to store the name.
|
||||
* @param maxlength Maximum length of the value buffer.
|
||||
* @return True on success, false if id not found.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvFindKeyById(Handle kv, int id, char[] name, int maxlength);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Finds a KeyValues id inside a KeyValues tree.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Key name.
|
||||
* @param id Id of the found KeyValue.
|
||||
* @return True on success, false if key not found.
|
||||
* @error Invalid Handle.
|
||||
* @param kv KeyValues Handle.
|
||||
* @param key Key name.
|
||||
* @param id Id of the found KeyValue.
|
||||
* @return True on success, false if key not found.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvGetNameSymbol(Handle kv, const char[] key, int &id);
|
||||
|
||||
/**
|
||||
* Retrieves the current section id.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param id Id of the current section.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
*
|
||||
* @param kv KeyValues Handle.
|
||||
* @param id Id of the current section.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool KvGetSectionSymbol(Handle kv, int &id);
|
||||
|
@ -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
|
||||
@ -35,13 +35,13 @@
|
||||
#endif
|
||||
#define _lang_included
|
||||
|
||||
#define LANG_SERVER 0 /**< Translate using the server's language */
|
||||
#define LANG_SERVER 0 /**< Translate using the server's language */
|
||||
|
||||
/**
|
||||
* Loads a translation file for the plugin calling this native.
|
||||
* If no extension is specified, .txt is assumed.
|
||||
*
|
||||
* @param file Translation file.
|
||||
* @param file Translation file.
|
||||
*/
|
||||
native void LoadTranslations(const char[] file);
|
||||
|
||||
@ -51,67 +51,67 @@ native void LoadTranslations(const char[] file);
|
||||
* indexes can be specified but the error will occur during translation,
|
||||
* not during this function call.
|
||||
*
|
||||
* @param client Client index or LANG_SERVER.
|
||||
* @param client Client index or LANG_SERVER.
|
||||
*/
|
||||
native void SetGlobalTransTarget(int client);
|
||||
|
||||
/**
|
||||
* Retrieves the language number of a client.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @return Language number client is using.
|
||||
* @error Invalid client index or client not connected.
|
||||
* @param client Client index.
|
||||
* @return Language number client is using.
|
||||
* @error Invalid client index or client not connected.
|
||||
*/
|
||||
native int GetClientLanguage(int client);
|
||||
|
||||
/**
|
||||
* Retrieves the server's language.
|
||||
*
|
||||
* @return Language number server is using.
|
||||
* @return Language number server is using.
|
||||
*/
|
||||
native int GetServerLanguage();
|
||||
|
||||
/**
|
||||
* Returns the number of languages known in languages.cfg.
|
||||
*
|
||||
* @return Language count.
|
||||
* @return Language count.
|
||||
*/
|
||||
native int GetLanguageCount();
|
||||
|
||||
/**
|
||||
* Retrieves info about a given language number.
|
||||
*
|
||||
* @param language Language number.
|
||||
* @param code Language code buffer (2-3 characters usually).
|
||||
* @param codeLen Maximum length of the language code buffer.
|
||||
* @param name Language name buffer.
|
||||
* @param nameLen Maximum length of the language name buffer.
|
||||
* @error Invalid language number.
|
||||
* @param language Language number.
|
||||
* @param code Language code buffer (2-3 characters usually).
|
||||
* @param codeLen Maximum length of the language code buffer.
|
||||
* @param name Language name buffer.
|
||||
* @param nameLen Maximum length of the language name buffer.
|
||||
* @error Invalid language number.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index or client not connected.
|
||||
* @param client Client index.
|
||||
* @param language Language number.
|
||||
* @error Invalid client index or client not connected.
|
||||
*/
|
||||
native void SetClientLanguage(int client, int language);
|
||||
|
||||
/**
|
||||
* Retrieves the language number from a language code.
|
||||
*
|
||||
* @param code Language code (2-3 characters usually).
|
||||
* @return Language number. -1 if not found.
|
||||
* @param code Language code (2-3 characters usually).
|
||||
* @return Language number. -1 if not found.
|
||||
*/
|
||||
native int GetLanguageByCode(const char[] code);
|
||||
|
||||
/**
|
||||
* Retrieves the language number from a language name.
|
||||
*
|
||||
* @param name Language name (case insensitive).
|
||||
* @return Language number. -1 if not found.
|
||||
* @param name Language name (case insensitive).
|
||||
* @return Language number. -1 if not found.
|
||||
*/
|
||||
native int GetLanguageByName(const char[] name);
|
||||
|
||||
@ -119,16 +119,16 @@ native int GetLanguageByName(const char[] name);
|
||||
* Determines if the specified phrase exists within the plugin's
|
||||
* translation cache.
|
||||
*
|
||||
* @param phrase Phrase to look for.
|
||||
* @return True if phrase exists.
|
||||
* @param phrase Phrase to look for.
|
||||
* @return True if phrase exists.
|
||||
*/
|
||||
native bool TranslationPhraseExists(const char[] phrase);
|
||||
|
||||
/**
|
||||
* Determines if there is a translation for the specified language.
|
||||
*
|
||||
* @param phrase Phrase to check.
|
||||
* @param language Language number.
|
||||
* @return True if translation exists.
|
||||
* @param phrase Phrase to check.
|
||||
* @param language Language number.
|
||||
* @return True if translation exists.
|
||||
*/
|
||||
native bool IsTranslatedForLanguage(const char[] phrase, int language);
|
||||
|
@ -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,77 +29,77 @@
|
||||
*
|
||||
* Version: $Id$
|
||||
*/
|
||||
|
||||
|
||||
#if defined _sm_logging_included
|
||||
#endinput
|
||||
#endif
|
||||
#define _sm_logging_included
|
||||
|
||||
/**
|
||||
* Logs a plugin message to the SourceMod logs. The log message will be
|
||||
* Logs a plugin message to the SourceMod logs. The log message will be
|
||||
* prefixed by the plugin's logtag (filename).
|
||||
*
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
*/
|
||||
native void LogMessage(const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Logs a message to any file. The log message will be in the normal
|
||||
* Logs a message to any file. The log message will be in the normal
|
||||
* SourceMod format, with the plugin logtag prepended.
|
||||
*
|
||||
* @param file File to write the log message in.
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
* @error File could not be opened/written.
|
||||
* @param file File to write the log message in.
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
* @error File could not be opened/written.
|
||||
*/
|
||||
native void LogToFile(const char[] file, const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Same as LogToFile(), except no plugin logtag is prepended.
|
||||
*
|
||||
* @param file File to write the log message in.
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
* @error File could not be opened/written.
|
||||
* @param file File to write the log message in.
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
* @error File could not be opened/written.
|
||||
*/
|
||||
native void LogToFileEx(const char[] file, const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Logs an action from a command or event whereby interception and routing may
|
||||
* Logs an action from a command or event whereby interception and routing may
|
||||
* be important. This is intended to be a logging version of ShowActivity().
|
||||
*
|
||||
* @param client Client performing the action, 0 for server, or -1 if not
|
||||
* applicable.
|
||||
* @param target Client being targetted, or -1 if not applicable.
|
||||
* @param message Message format.
|
||||
* @param ... Message formatting parameters.
|
||||
* @param client Client performing the action, 0 for server, or -1 if not
|
||||
* applicable.
|
||||
* @param target Client being targetted, or -1 if not applicable.
|
||||
* @param message Message format.
|
||||
* @param ... Message formatting parameters.
|
||||
*/
|
||||
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.
|
||||
* @param format String format.
|
||||
* @param ... Format arguments.
|
||||
*/
|
||||
native void LogError(const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Called when an action is going to be logged.
|
||||
*
|
||||
* @param source Handle to the object logging the action, or INVALID_HANDLE
|
||||
* if Core is logging the action.
|
||||
* @param ident Type of object logging the action (plugin, ext, or core).
|
||||
* @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 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.
|
||||
* @param source Handle to the object logging the action, or INVALID_HANDLE
|
||||
* if Core is logging the action.
|
||||
* @param ident Type of object logging the action (plugin, ext, or core).
|
||||
* @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 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,
|
||||
forward Action OnLogAction(Handle source,
|
||||
Identity ident,
|
||||
int client,
|
||||
int target,
|
||||
@ -108,28 +108,28 @@ forward Action OnLogAction(Handle source,
|
||||
/**
|
||||
* Called when a game log message is received.
|
||||
*
|
||||
* Any Log*() functions called within this callback will not recursively
|
||||
* Any Log*() functions called within this callback will not recursively
|
||||
* pass through. That is, they will log directly, bypassing this callback.
|
||||
*
|
||||
* Note that this does not capture log messages from the engine. It only
|
||||
* Note that this does not capture log messages from the engine. It only
|
||||
* captures log messages being sent from the game/mod itself.
|
||||
*
|
||||
* @param message Message contents.
|
||||
* @return Plugin_Handled or Plugin_Stop will prevent the message
|
||||
* from being written to the log file.
|
||||
* @param message Message contents.
|
||||
* @return Plugin_Handled or Plugin_Stop will prevent the message
|
||||
* from being written to the log file.
|
||||
*/
|
||||
typedef GameLogHook = function Action (const char[] message);
|
||||
|
||||
/**
|
||||
* Adds a game log hook.
|
||||
*
|
||||
* @param hook Hook function.
|
||||
* @param hook Hook function.
|
||||
*/
|
||||
native void AddGameLogHook(GameLogHook hook);
|
||||
|
||||
/**
|
||||
* Removes a game log hook.
|
||||
*
|
||||
* @param hook Hook function.
|
||||
* @param hook Hook function.
|
||||
*/
|
||||
native void RemoveGameLogHook(GameLogHook hook);
|
||||
|
@ -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,71 +30,72 @@
|
||||
* Version: $Id$
|
||||
*/
|
||||
#if defined _mapchooser_included_
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _mapchooser_included_
|
||||
|
||||
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 specified wasn't a valid map */
|
||||
Nominate_VoteFull, /** This will only occur if force was set to false */
|
||||
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 specified wasn't a valid map */
|
||||
Nominate_VoteFull /** This will only occur if force was set to false */
|
||||
};
|
||||
|
||||
enum MapChange
|
||||
{
|
||||
MapChange_Instant, /** Change map as soon as the voting results have come in */
|
||||
MapChange_RoundEnd, /** Change map at the end of the round */
|
||||
MapChange_MapEnd, /** Change the sm_nextmap cvar */
|
||||
MapChange_Instant, /** Change map as soon as the voting results have come in */
|
||||
MapChange_RoundEnd, /** Change map at the end of the round */
|
||||
MapChange_MapEnd /** Change the sm_nextmap cvar */
|
||||
};
|
||||
|
||||
/**
|
||||
* Attempt to add a map to the mapchooser map list.
|
||||
*
|
||||
* @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 nominator. If the client disconnects the nomination will be removed. Use 0 for constant nominations
|
||||
* @return Nominate Result of the outcome
|
||||
* @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 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 char[] map, bool force, int owner);
|
||||
|
||||
/**
|
||||
* Attempt to remove a map from the mapchooser map list.
|
||||
*
|
||||
* @param map Map to remove.
|
||||
* @return True if the nomination was found and removed, or false if the nomination was not found.
|
||||
* @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 char[] map);
|
||||
|
||||
/**
|
||||
* Attempt to remove a map from the mapchooser map list.
|
||||
*
|
||||
* @param owner Client index of the nominator.
|
||||
* @return True if the nomination was found and removed, or false if the nomination was not found.
|
||||
* @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(int owner);
|
||||
|
||||
/**
|
||||
* Gets the current list of excluded maps.
|
||||
*
|
||||
* @param array An ADT array handle to add the map strings to.
|
||||
* @param array An ADT array handle to add the map strings to.
|
||||
*/
|
||||
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.
|
||||
* @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.
|
||||
*/
|
||||
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.
|
||||
* @return True if a vote can be held, or false if mapchooser is already holding a vote.
|
||||
*/
|
||||
native bool CanMapChooserStartVote();
|
||||
|
||||
@ -104,22 +105,22 @@ native bool CanMapChooserStartVote();
|
||||
* Note: If no input array is specified mapchooser will use its internal list. This includes
|
||||
* any nominations and excluded maps (as per mapchoosers convars).
|
||||
*
|
||||
* @param when MapChange consant of when the resulting mapchange should occur.
|
||||
* @param inputarray ADT array list of maps to add to the vote.
|
||||
* @param when MapChange consant of when the resulting mapchange should occur.
|
||||
* @param inputarray ADT array list of maps to add to the vote.
|
||||
*/
|
||||
native void InitiateMapChooserVote(MapChange when, ArrayList inputarray=null);
|
||||
|
||||
/**
|
||||
* Checks if MapChooser's end of map vote has completed.
|
||||
*
|
||||
* @return True if complete, false otherwise.
|
||||
* @return True if complete, false otherwise.
|
||||
*/
|
||||
native bool HasEndOfMapVoteFinished();
|
||||
|
||||
/**
|
||||
* Checks if MapChooser is set to run an end of map vote.
|
||||
*
|
||||
* @return True if enabled, false otherwise.
|
||||
* @return True if enabled, false otherwise.
|
||||
*/
|
||||
native bool EndOfMapVoteEnabled();
|
||||
|
||||
@ -134,7 +135,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",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
@ -31,52 +31,52 @@
|
||||
*/
|
||||
|
||||
#if defined _nextmap_included_
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _nextmap_included_
|
||||
|
||||
/**
|
||||
* Sets SourceMod's internal nextmap.
|
||||
* Sets SourceMod's internal nextmap.
|
||||
* Equivalent to changing sm_nextmap but with an added validity check.
|
||||
*
|
||||
* @param map Next map to set.
|
||||
* @return True if the nextmap was set, false if map was invalid.
|
||||
* @param map Next map to set.
|
||||
* @return True if the nextmap was set, false if map was invalid.
|
||||
*/
|
||||
native bool SetNextMap(const char[] map);
|
||||
|
||||
/**
|
||||
* Returns SourceMod's internal nextmap.
|
||||
*
|
||||
* @param map Buffer to store the nextmap name.
|
||||
* @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).
|
||||
* @param map Buffer to store the nextmap name.
|
||||
* @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(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.
|
||||
* @param map Map to change to.
|
||||
* @param reason Reason for change.
|
||||
*/
|
||||
native void ForceChangeLevel(const char[] map, const char[] reason);
|
||||
|
||||
/**
|
||||
* Gets the current number of maps in the map history
|
||||
*
|
||||
* @return Number of maps.
|
||||
* @return Number of maps.
|
||||
*/
|
||||
native int GetMapHistorySize();
|
||||
|
||||
/**
|
||||
* Retrieves a map from the map history list.
|
||||
*
|
||||
* @param item Item number. Must be 0 or greater and less than GetMapHistorySize().
|
||||
* @param map Buffer to store the map name.
|
||||
* @param mapLen Length of map buffer.
|
||||
* @param reason Buffer to store the change reason.
|
||||
* @param reasonLen Length of the reason buffer.
|
||||
* @param startTime Time the map started.
|
||||
* @error Invalid item number.
|
||||
*
|
||||
* @param item Item number. Must be 0 or greater and less than GetMapHistorySize().
|
||||
* @param map Buffer to store the map name.
|
||||
* @param mapLen Length of map buffer.
|
||||
* @param reason Buffer to store the change reason.
|
||||
* @param reasonLen Length of the reason buffer.
|
||||
* @param startTime Time the map started.
|
||||
* @error Invalid item number.
|
||||
*/
|
||||
native void GetMapHistory(int item, char[] map, int mapLen, char[] reason, int reasonLen, int &startTime);
|
||||
|
@ -44,7 +44,7 @@ methodmap Profiler < Handle
|
||||
// Creates a new profile object. The Handle must be freed
|
||||
// using delete or CloseHandle().
|
||||
//
|
||||
// @return A new Profiler Handle.
|
||||
// @return A new Profiler Handle.
|
||||
public native Profiler();
|
||||
|
||||
// Starts a cycle for profiling.
|
||||
@ -52,14 +52,14 @@ methodmap Profiler < Handle
|
||||
|
||||
// Stops a cycle for profiling.
|
||||
//
|
||||
// @error Profiler was never started.
|
||||
// @error Profiler was never started.
|
||||
public native void Stop();
|
||||
|
||||
// Returns the amount of high-precision time in seconds
|
||||
// that passed during the profiler's last start/stop
|
||||
// cycle.
|
||||
//
|
||||
// @return Time elapsed in seconds.
|
||||
// @return Time elapsed in seconds.
|
||||
property float Time {
|
||||
public native get();
|
||||
}
|
||||
@ -69,23 +69,23 @@ methodmap Profiler < Handle
|
||||
* Creates a new profile object. The Handle must be freed
|
||||
* using delete or CloseHandle().
|
||||
*
|
||||
* @return Handle to the profiler object.
|
||||
* @return Handle to the profiler object.
|
||||
*/
|
||||
native Profiler CreateProfiler();
|
||||
|
||||
/**
|
||||
* Starts profiling.
|
||||
*
|
||||
* @param prof Profiling object.
|
||||
* @error Invalid Handle.
|
||||
* @param prof Profiling object.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void StartProfiling(Handle prof);
|
||||
|
||||
/**
|
||||
* Stops profiling.
|
||||
*
|
||||
* @param prof Profiling object.
|
||||
* @error Invalid Handle or profiling was never started.
|
||||
* @param prof Profiling object.
|
||||
* @error Invalid Handle or profiling was never started.
|
||||
*/
|
||||
native void StopProfiling(Handle prof);
|
||||
|
||||
@ -94,9 +94,9 @@ native void StopProfiling(Handle prof);
|
||||
* that passed during the profiler's last start/stop
|
||||
* cycle.
|
||||
*
|
||||
* @param prof Profiling object.
|
||||
* @return Time elapsed in seconds.
|
||||
* @error Invalid Handle.
|
||||
* @param prof Profiling object.
|
||||
* @return Time elapsed in seconds.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native float GetProfilerTime(Handle prof);
|
||||
|
||||
|
@ -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,9 +29,9 @@
|
||||
*
|
||||
* Version: $Id$
|
||||
*/
|
||||
|
||||
|
||||
#if defined _protobuf_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _protobuf_included
|
||||
|
||||
@ -40,15 +40,15 @@
|
||||
methodmap Protobuf < Handle
|
||||
{
|
||||
// Reads an int32, uint32, sint32, fixed32, sfixed32, or enum value from a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param index Index into repeated field.
|
||||
// @return Integer value read.
|
||||
// @error Non-existent field, or incorrect field type.
|
||||
public native int ReadInt(const char[] field, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
|
||||
// Reads an int64, uint64, sint64, fixed64, sfixed64 from a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param value Array to represent the large integer (0=High bits, 1=Low bits).
|
||||
// @param index Index into repeated field.
|
||||
@ -64,7 +64,7 @@ methodmap Protobuf < Handle
|
||||
public native float ReadFloat(const char[] field, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Reads a bool from a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param index Index into repeated field.
|
||||
// @return Boolean value read.
|
||||
@ -72,7 +72,7 @@ methodmap Protobuf < Handle
|
||||
public native bool ReadBool(const char[] field, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Reads a string from a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param buffer Destination string buffer.
|
||||
// @param maxlength Maximum length of output string buffer.
|
||||
@ -81,7 +81,7 @@ methodmap Protobuf < Handle
|
||||
public native void ReadString(const char[] field, char[] buffer, int maxlength, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Reads an RGBA color value from a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param buffer Destination color buffer.
|
||||
// @param index Index into repeated field.
|
||||
@ -97,7 +97,7 @@ methodmap Protobuf < Handle
|
||||
public native void ReadAngle(const char[] field, float buffer[3], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Reads an XYZ vector value from a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param pb protobuf handle.
|
||||
// @param field Field name.
|
||||
// @param buffer Destination vector buffer.
|
||||
@ -119,7 +119,7 @@ methodmap Protobuf < Handle
|
||||
// @return Number of elements in the field.
|
||||
// @error Non-existent field, or non-repeated field.
|
||||
public native int GetRepeatedFieldCount(const char[] field);
|
||||
|
||||
|
||||
// Returns whether or not the named, non-repeated field has a value set.
|
||||
//
|
||||
// @param field Field name.
|
||||
@ -134,9 +134,9 @@ methodmap Protobuf < Handle
|
||||
// @param index Index into repeated field.
|
||||
// @error Non-existent field, or incorrect field type.
|
||||
public native void SetInt(const char[] field, int value, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
|
||||
// Sets an int64, uint64, sint64, fixed64, sfixed64 on a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param value Large integer value to set (0=High bits, 1=Low bits).
|
||||
// @param index Index into repeated field.
|
||||
@ -152,7 +152,7 @@ methodmap Protobuf < Handle
|
||||
public native void SetFloat(const char[] field, float value, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Sets a bool on a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param value Boolean value to set.
|
||||
// @param index Index into repeated field.
|
||||
@ -168,7 +168,7 @@ methodmap Protobuf < Handle
|
||||
public native void SetString(const char[] field, const char[] value, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Sets an RGBA color on a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param color Color value to set.
|
||||
// @param index Index into repeated field.
|
||||
@ -176,7 +176,7 @@ methodmap Protobuf < Handle
|
||||
public native void SetColor(const char[] field, const int color[4], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Sets an XYZ angle on a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param angle Angle value to set.
|
||||
// @param index Index into repeated field.
|
||||
@ -184,7 +184,7 @@ methodmap Protobuf < Handle
|
||||
public native void SetAngle(const char[] field, const float angle[3], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
// Sets an XYZ vector on a protobuf message.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param vec Vector value to set.
|
||||
// @param index Index into repeated field.
|
||||
@ -205,16 +205,16 @@ methodmap Protobuf < Handle
|
||||
// @param value Integer value to add.
|
||||
// @error Non-existent field, or incorrect field type.
|
||||
public native void AddInt(const char[] field, int value);
|
||||
|
||||
|
||||
// Add an int64, uint64, sint64, fixed64, sfixed64 to a protobuf message repeated field.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param value Large integer value to add (0=High bits, 1=Low bits).
|
||||
// @error Non-existent field, or incorrect field type.
|
||||
public native void AddInt64(const char[] field, int value[2]);
|
||||
|
||||
// Add a float or double to a protobuf message repeated field.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param value Float value to add.
|
||||
// @error Non-existent field, or incorrect field type.
|
||||
@ -235,14 +235,14 @@ methodmap Protobuf < Handle
|
||||
public native void AddString(const char[] field, const char[] value);
|
||||
|
||||
// Add an RGBA color to a protobuf message repeated field.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param color Color value to add.
|
||||
// @error Non-existent field, or incorrect field type.
|
||||
public native void AddColor(const char[] field, const int color[4]);
|
||||
|
||||
// Add an XYZ angle to a protobuf message repeated field.
|
||||
//
|
||||
//
|
||||
// @param field Field name.
|
||||
// @param angle Angle value to add.
|
||||
// @error Non-existent field, or incorrect field type.
|
||||
@ -296,307 +296,307 @@ methodmap Protobuf < Handle
|
||||
/**
|
||||
* Reads an int32, uint32, sint32, fixed32, sfixed32, or enum value from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @return Integer value read.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @return Integer value read.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native int PbReadInt(Handle pb, const char[] field, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Reads a float or downcasted double from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @return Float value read.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @return Float value read.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native float PbReadFloat(Handle pb, const char[] field, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Reads a bool from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @return Boolean value read.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @return Boolean value read.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native bool PbReadBool(Handle pb, const char[] field, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Reads a string from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @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, char[] buffer, int maxlength, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Reads an RGBA color value from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination color buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination color buffer.
|
||||
* @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, int buffer[4], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Reads an XYZ angle value from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination angle buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination angle buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbReadAngle(Handle pb, const char[] field, float buffer[3], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Reads an XYZ vector value from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination vector buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination vector buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbReadVector(Handle pb, const char[] field, float buffer[3], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Reads an XY vector value from a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination vector buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param buffer Destination vector buffer.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbReadVector2D(Handle pb, const char[] field, float buffer[2], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Gets the number of elements in a repeated field of a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @return Number of elements in the field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @return Number of elements in the field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native int PbGetRepeatedFieldCount(Handle pb, const char[] field);
|
||||
|
||||
/**
|
||||
* Sets an int32, uint32, sint32, fixed32, sfixed32, or enum value on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Integer value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Integer value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetInt(Handle pb, const char[] field, int value, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Sets a float or double on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Float value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Float value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetFloat(Handle pb, const char[] field, float value, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Sets a bool on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Boolean value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Boolean value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetBool(Handle pb, const char[] field, bool value, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Sets a string on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value String value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value String value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetString(Handle pb, const char[] field, const char[] value, int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Sets an RGBA color on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param color Color value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param color Color value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetColor(Handle pb, const char[] field, const int color[4], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Sets an XYZ angle on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param angle Angle value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param angle Angle value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetAngle(Handle pb, const char[] field, const float angle[3], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Sets an XYZ vector on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetVector(Handle pb, const char[] field, const float vec[3], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Sets an XY vector on a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to set.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbSetVector2D(Handle pb, const char[] field, const float vec[2], int index = PB_FIELD_NOT_REPEATED);
|
||||
|
||||
/**
|
||||
* Add an int32, uint32, sint32, fixed32, sfixed32, or enum value to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Integer value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Integer value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddInt(Handle pb, const char[] field, int value);
|
||||
|
||||
/**
|
||||
* Add a float or double to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Float value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Float value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddFloat(Handle pb, const char[] field, float value);
|
||||
|
||||
/**
|
||||
* Add a bool to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Boolean value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value Boolean value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddBool(Handle pb, const char[] field, bool value);
|
||||
|
||||
/**
|
||||
* Add a string to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value String value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param value String value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddString(Handle pb, const char[] field, const char[] value);
|
||||
|
||||
/**
|
||||
* Add an RGBA color to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param color Color value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param color Color value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddColor(Handle pb, const char[] field, const int color[4]);
|
||||
|
||||
/**
|
||||
* Add an XYZ angle to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param angle Angle value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param angle Angle value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddAngle(Handle pb, const char[] field, const float angle[3]);
|
||||
|
||||
/**
|
||||
* Add an XYZ vector to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddVector(Handle pb, const char[] field, const float vec[3]);
|
||||
|
||||
/**
|
||||
* Add an XY vector to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param vec Vector value to add.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbAddVector2D(Handle pb, const char[] field, const float vec[2]);
|
||||
|
||||
/**
|
||||
* Removes a value by index from a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index into repeated field.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native void PbRemoveRepeatedFieldValue(Handle pb, const char[] field, int index);
|
||||
|
||||
/**
|
||||
* Retrieve a handle to an embedded protobuf message in a protobuf message.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @return protobuf handle to embedded message.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @return protobuf handle to embedded message.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native Handle PbReadMessage(Handle pb, const char[] field);
|
||||
|
||||
/**
|
||||
* Retrieve a handle to an embedded protobuf message in a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index in the repeated field.
|
||||
* @return protobuf handle to embedded message.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @param index Index in the repeated field.
|
||||
* @return protobuf handle to embedded message.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native Handle PbReadRepeatedMessage(Handle pb, const char[] field, int index);
|
||||
|
||||
/**
|
||||
* Adds an embedded protobuf message to a protobuf message repeated field.
|
||||
*
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @return protobuf handle to added, embedded message.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
* @param pb protobuf handle.
|
||||
* @param field Field name.
|
||||
* @return protobuf handle to added, embedded message.
|
||||
* @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
|
||||
*/
|
||||
native Handle PbAddMessage(Handle pb, const char[] field);
|
||||
|
@ -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
|
||||
@ -31,12 +31,12 @@
|
||||
*/
|
||||
|
||||
#if defined _regex_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _regex_included
|
||||
|
||||
/**
|
||||
* @section Flags for compiling regex expressions. These come directly from the
|
||||
* @section Flags for compiling regex expressions. These come directly from the
|
||||
* pcre library and can be used in MatchRegex and CompileRegex.
|
||||
*/
|
||||
#define PCRE_CASELESS 0x00000001 /* Ignore Case */
|
||||
@ -44,12 +44,12 @@
|
||||
#define PCRE_DOTALL 0x00000004 /* Single line (affects . so that it matches any character, even new line characters). */
|
||||
#define PCRE_EXTENDED 0x00000008 /* Pattern extension (ignore whitespace and # comments). */
|
||||
#define PCRE_ANCHORED 0x00000010 /* Force pattern anchoring. */
|
||||
#define PCRE_DOLLAR_ENDONLY 0x00000020 /* $ not to match newline at end. */
|
||||
#define PCRE_DOLLAR_ENDONLY 0x00000020 /* $ not to match newline at end. */
|
||||
#define PCRE_UNGREEDY 0x00000200 /* Invert greediness of quantifiers */
|
||||
#define PCRE_NOTEMPTY 0x00000400 /* An empty string is not a valid match. */
|
||||
#define PCRE_NOTEMPTY 0x00000400 /* An empty string is not a valid match. */
|
||||
#define PCRE_UTF8 0x00000800 /* Use UTF-8 Chars */
|
||||
#define PCRE_NO_UTF8_CHECK 0x00002000 /* Do not check the pattern for UTF-8 validity (only relevant if PCRE_UTF8 is set) */
|
||||
#define PCRE_UCP 0x20000000 /* Use Unicode properties for \ed, \ew, etc. */
|
||||
#define PCRE_UCP 0x20000000 /* Use Unicode properties for \ed, \ew, etc. */
|
||||
|
||||
|
||||
/**
|
||||
@ -57,26 +57,26 @@
|
||||
*/
|
||||
enum RegexError
|
||||
{
|
||||
REGEX_ERROR_NONE = 0, /* No error */
|
||||
|
||||
REGEX_ERROR_ASSERT = 1, /* internal error ? */
|
||||
REGEX_ERROR_BADBR, /* invalid repeat counts in {} */
|
||||
REGEX_ERROR_BADPAT, /* pattern error */
|
||||
REGEX_ERROR_BADRPT, /* ? * + invalid */
|
||||
REGEX_ERROR_EBRACE, /* unbalanced {} */
|
||||
REGEX_ERROR_EBRACK, /* unbalanced [] */
|
||||
REGEX_ERROR_ECOLLATE, /* collation error - not relevant */
|
||||
REGEX_ERROR_ECTYPE, /* bad class */
|
||||
REGEX_ERROR_EESCAPE, /* bad escape sequence */
|
||||
REGEX_ERROR_EMPTY, /* empty expression */
|
||||
REGEX_ERROR_EPAREN, /* unbalanced () */
|
||||
REGEX_ERROR_ERANGE, /* bad range inside [] */
|
||||
REGEX_ERROR_ESIZE, /* expression too big */
|
||||
REGEX_ERROR_ESPACE, /* failed to get memory */
|
||||
REGEX_ERROR_ESUBREG, /* bad back reference */
|
||||
REGEX_ERROR_INVARG, /* bad argument */
|
||||
|
||||
REGEX_ERROR_NOMATCH = -1, /* No match was found */
|
||||
REGEX_ERROR_NONE = 0, /* No error */
|
||||
|
||||
REGEX_ERROR_ASSERT = 1, /* internal error ? */
|
||||
REGEX_ERROR_BADBR, /* invalid repeat counts in {} */
|
||||
REGEX_ERROR_BADPAT, /* pattern error */
|
||||
REGEX_ERROR_BADRPT, /* ? * + invalid */
|
||||
REGEX_ERROR_EBRACE, /* unbalanced {} */
|
||||
REGEX_ERROR_EBRACK, /* unbalanced [] */
|
||||
REGEX_ERROR_ECOLLATE, /* collation error - not relevant */
|
||||
REGEX_ERROR_ECTYPE, /* bad class */
|
||||
REGEX_ERROR_EESCAPE, /* bad escape sequence */
|
||||
REGEX_ERROR_EMPTY, /* empty expression */
|
||||
REGEX_ERROR_EPAREN, /* unbalanced () */
|
||||
REGEX_ERROR_ERANGE, /* bad range inside [] */
|
||||
REGEX_ERROR_ESIZE, /* expression too big */
|
||||
REGEX_ERROR_ESPACE, /* failed to get memory */
|
||||
REGEX_ERROR_ESUBREG, /* bad back reference */
|
||||
REGEX_ERROR_INVARG, /* bad argument */
|
||||
|
||||
REGEX_ERROR_NOMATCH = -1, /* No match was found */
|
||||
REGEX_ERROR_NULL = -2,
|
||||
REGEX_ERROR_BADOPTION = -3,
|
||||
REGEX_ERROR_BADMAGIC = -4,
|
||||
@ -84,7 +84,7 @@ enum RegexError
|
||||
REGEX_ERROR_NOMEMORY = -6,
|
||||
REGEX_ERROR_NOSUBSTRING = -7,
|
||||
REGEX_ERROR_MATCHLIMIT = -8,
|
||||
REGEX_ERROR_CALLOUT = -9, /* Never used by PCRE itself */
|
||||
REGEX_ERROR_CALLOUT = -9, /* Never used by PCRE itself */
|
||||
REGEX_ERROR_BADUTF8 = -10,
|
||||
REGEX_ERROR_BADUTF8_OFFSET = -11,
|
||||
REGEX_ERROR_PARTIAL = -12,
|
||||
@ -97,7 +97,7 @@ enum RegexError
|
||||
REGEX_ERROR_DFA_WSSIZE = -19,
|
||||
REGEX_ERROR_DFA_RECURSE = -20,
|
||||
REGEX_ERROR_RECURSIONLIMIT = -21,
|
||||
REGEX_ERROR_NULLWSLIMIT = -22, /* No longer actually used */
|
||||
REGEX_ERROR_NULLWSLIMIT = -22, /* No longer actually used */
|
||||
REGEX_ERROR_BADNEWLINE = -23,
|
||||
REGEX_ERROR_BADOFFSET = -24,
|
||||
REGEX_ERROR_SHORTUTF8 = -25,
|
||||
@ -107,7 +107,7 @@ enum RegexError
|
||||
REGEX_ERROR_BADENDIANNESS = -29,
|
||||
REGEX_ERROR_DFA_BADRESTART = -30,
|
||||
REGEX_ERROR_JIT_BADOPTION = -31,
|
||||
REGEX_ERROR_BADLENGTH = -32,
|
||||
REGEX_ERROR_BADLENGTH = -32
|
||||
};
|
||||
|
||||
// Regular expression objects are used to match or decompose strings based on
|
||||
@ -115,34 +115,34 @@ enum RegexError
|
||||
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.
|
||||
//
|
||||
// @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.
|
||||
// @param offset Offset in the string to start searching from. MatchOffset returns the offset of the match.
|
||||
// @return Number of captures found or -1 on failure.
|
||||
//
|
||||
// @note Use the regex handle passed to this function to extract
|
||||
// matches with GetSubString().
|
||||
//
|
||||
// @param str The string to check.
|
||||
// @param regex Regex Handle from CompileRegex()
|
||||
// @param ret Error code, if applicable.
|
||||
// @param offset Offset in the string to start searching from. MatchOffset returns the offset of the match.
|
||||
// @return Number of captures found or -1 on failure.
|
||||
//
|
||||
// @note Use the regex handle passed to this function to extract
|
||||
// matches with GetSubString().
|
||||
public native int Match(const char[] str, RegexError &ret = REGEX_ERROR_NONE, int offset = 0);
|
||||
|
||||
|
||||
// Gets all matches from 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 matches found or -1 on failure.
|
||||
//
|
||||
// @note Use GetSubString() and loop from 0 -> totalmatches - 1.
|
||||
//
|
||||
// @param str The string to check.
|
||||
// @param regex Regex Handle from CompileRegex()
|
||||
// @param ret Error code, if applicable.
|
||||
// @return Number of matches found or -1 on failure.
|
||||
//
|
||||
// @note Use GetSubString() and loop from 0 -> totalmatches - 1.
|
||||
public native int MatchAll(const char[] str, RegexError &ret = REGEX_ERROR_NONE);
|
||||
|
||||
// Returns a matched substring from a regex handle.
|
||||
@ -150,77 +150,77 @@ methodmap Regex < Handle
|
||||
// Substring ids start at 0 and end at captures-1, where captures is the
|
||||
// number returned by Regex.Match or Regex.CaptureCount.
|
||||
//
|
||||
// @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 captures - 1.
|
||||
// @param buffer The buffer to set to the matching substring.
|
||||
// @param maxlen The maximum string length of the buffer.
|
||||
// @param match Match to get the captures for - starts at 0, and ends at MatchCount() -1
|
||||
// @return True if a substring was found, False on fail/error
|
||||
// @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 captures - 1.
|
||||
// @param buffer The buffer to set to the matching substring.
|
||||
// @param maxlen The maximum string length of the buffer.
|
||||
// @param match Match to get the captures for - starts at 0, and ends at MatchCount() -1
|
||||
// @return True if a substring was found, False on fail/error
|
||||
//
|
||||
// @note str_id = 0 is the full captured string, anything else is the capture group index.
|
||||
// if Regex.Match is used match can only be 0
|
||||
// @note str_id = 0 is the full captured string, anything else is the capture group index.
|
||||
// if Regex.Match is used match can only be 0
|
||||
public native bool GetSubString(int str_id, char[] buffer, int maxlen, int match = 0);
|
||||
|
||||
|
||||
// Returns number of matches
|
||||
//
|
||||
// When using Match this is always 1 or 0 (unless an error occured)
|
||||
// @return Total number of matches found.
|
||||
// @return Total number of matches found.
|
||||
public native int MatchCount();
|
||||
|
||||
|
||||
// Returns number of captures for a match
|
||||
//
|
||||
// @param match Match to get the number of captures for. Match starts at 0, and ends at MatchCount() -1
|
||||
// @return Number of captures in the match.
|
||||
// @param match Match to get the number of captures for. Match starts at 0, and ends at MatchCount() -1
|
||||
// @return Number of captures in the match.
|
||||
//
|
||||
// @note Use GetSubString() and loop from 1 -> captures -1 for str_id to get all captures
|
||||
// @note Use GetSubString() and loop from 1 -> captures -1 for str_id to get all captures
|
||||
public native int CaptureCount(int match = 0);
|
||||
|
||||
|
||||
// Returns the string offset of a match.
|
||||
//
|
||||
// @param match Match to get the offset of. Match starts at 0, and ends at MatchCount() -1
|
||||
// @return Offset of the match in the string.
|
||||
// @param match Match to get the offset of. Match starts at 0, and ends at MatchCount() -1
|
||||
// @return Offset of the match in the string.
|
||||
public native int MatchOffset(int match = 0);
|
||||
};
|
||||
|
||||
/**
|
||||
* Precompile a regular expression. Use this if you intend on using the
|
||||
* Precompile a regular expression. Use this if you intend on using the
|
||||
* same expression multiple times. Pass the regex handle returned here to
|
||||
* MatchRegex to check for matches.
|
||||
*
|
||||
* @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.
|
||||
* @return Valid regex handle on success, INVALID_HANDLE on failure.
|
||||
* @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.
|
||||
* @return Valid regex handle on success, INVALID_HANDLE on failure.
|
||||
*/
|
||||
native Regex CompileRegex(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 captures found or -1 on failure.
|
||||
* @param str The string to check.
|
||||
* @param regex Regex Handle from CompileRegex()
|
||||
* @param ret Error code, if applicable.
|
||||
* @return Number of captures found or -1 on failure.
|
||||
*
|
||||
* @note Use the regex handle passed to this function to extract
|
||||
* matches with GetRegexSubString().
|
||||
* @note Use the regex handle passed to this function to extract
|
||||
* matches with GetRegexSubString().
|
||||
*/
|
||||
native int MatchRegex(Handle regex, const char[] str, RegexError &ret = REGEX_ERROR_NONE);
|
||||
|
||||
/**
|
||||
* Returns a matched substring from a regex handle.
|
||||
* Substring ids start at 0 and end at captures-1, where captures is the number returned
|
||||
* Substring ids start at 0 and end at captures-1, where captures is the number returned
|
||||
* by MatchRegex.
|
||||
*
|
||||
* @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 captures - 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
|
||||
* @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 captures - 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
|
||||
*
|
||||
* @note str_id = 0 is the full captured string, anything else is the capture group index.
|
||||
* @note str_id = 0 is the full captured string, anything else is the capture group index.
|
||||
*
|
||||
*/
|
||||
native bool GetRegexSubString(Handle regex, int str_id, char[] buffer, int maxlen);
|
||||
@ -228,27 +228,29 @@ native bool GetRegexSubString(Handle regex, int str_id, char[] buffer, int maxle
|
||||
/**
|
||||
* Matches a string against a regular expression pattern.
|
||||
*
|
||||
* @note If you intend on using the same regular expression pattern
|
||||
* multiple times, consider using CompileRegex and MatchRegex
|
||||
* instead of making this function reparse the expression each time.
|
||||
* @note If you intend on using the same regular expression pattern
|
||||
* multiple times, consider using CompileRegex and MatchRegex
|
||||
* instead of making this function reparse the expression each time.
|
||||
*
|
||||
* @param str The string to check.
|
||||
* @param pattern The regular expression pattern.
|
||||
* @param flags General flags for the regular expression.
|
||||
* @param error Error message, if applicable.
|
||||
* @param maxLen Maximum length of the error buffer.
|
||||
* @return Number of substrings found or -1 on failure.
|
||||
* @param str The string to check.
|
||||
* @param pattern The regular expression pattern.
|
||||
* @param flags General flags for the regular expression.
|
||||
* @param error Error message, if applicable.
|
||||
* @param maxLen Maximum length of the error buffer.
|
||||
* @return Number of substrings found or -1 on failure.
|
||||
*/
|
||||
stock int SimpleRegexMatch(const char[] str, const char[] pattern, int flags = 0, char[] error="", int maxLen = 0)
|
||||
{
|
||||
Regex regex = new Regex(pattern, flags, error, maxLen);
|
||||
if (!regex)
|
||||
return -1;
|
||||
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int substrings = regex.Match(str);
|
||||
delete regex;
|
||||
|
||||
return substrings;
|
||||
return substrings;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -258,7 +260,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",
|
||||
|
@ -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
|
||||
@ -35,68 +35,70 @@
|
||||
|
||||
// this is obviously _not_ a robust check, but it will solve most conflict and is clean
|
||||
#if !defined DMG_GENERIC
|
||||
#define DMG_GENERIC 0 /**< generic damage was done */
|
||||
#define DMG_CRUSH (1 << 0) /**< crushed by falling or moving object.
|
||||
NOTE: It's assumed crush damage is occurring as a result of physics collision, so no extra physics force is generated by crush damage.
|
||||
DON'T use DMG_CRUSH when damaging entities unless it's the result of a physics collision. You probably want DMG_CLUB instead. */
|
||||
#define DMG_BULLET (1 << 1) /**< shot */
|
||||
#define DMG_SLASH (1 << 2) /**< cut, clawed, stabbed */
|
||||
#define DMG_BURN (1 << 3) /**< heat burned */
|
||||
#define DMG_VEHICLE (1 << 4) /**< hit by a vehicle */
|
||||
#define DMG_FALL (1 << 5) /**< fell too far */
|
||||
#define DMG_BLAST (1 << 6) /**< explosive blast damage */
|
||||
#define DMG_CLUB (1 << 7) /**< crowbar, punch, headbutt */
|
||||
#define DMG_SHOCK (1 << 8) /**< electric shock */
|
||||
#define DMG_SONIC (1 << 9) /**< sound pulse shockwave */
|
||||
#define DMG_ENERGYBEAM (1 << 10) /**< laser or other high energy beam */
|
||||
#define DMG_PREVENT_PHYSICS_FORCE (1 << 11) /**< Prevent a physics force */
|
||||
#define DMG_NEVERGIB (1 << 12) /**< with this bit OR'd in, no damage type will be able to gib victims upon death */
|
||||
#define DMG_ALWAYSGIB (1 << 13) /**< with this bit OR'd in, any damage type can be made to gib victims upon death. */
|
||||
#define DMG_DROWN (1 << 14) /**< Drowning */
|
||||
#define DMG_PARALYZE (1 << 15) /**< slows affected creature down */
|
||||
#define DMG_NERVEGAS (1 << 16) /**< nerve toxins, very bad */
|
||||
#define DMG_POISON (1 << 17) /**< blood poisoning - heals over time like drowning damage */
|
||||
#define DMG_RADIATION (1 << 18) /**< radiation exposure */
|
||||
#define DMG_DROWNRECOVER (1 << 19) /**< drowning recovery */
|
||||
#define DMG_ACID (1 << 20) /**< toxic chemicals or acid burns */
|
||||
#define DMG_SLOWBURN (1 << 21) /**< in an oven */
|
||||
#define DMG_REMOVENORAGDOLL (1 << 22) /**< with this bit OR'd in, no ragdoll will be created, and the target will be quietly removed.
|
||||
use this to kill an entity that you've already got a server-side ragdoll for */
|
||||
#define DMG_PHYSGUN (1 << 23) /**< Hit by manipulator. Usually doesn't do any damage. */
|
||||
#define DMG_PLASMA (1 << 24) /**< Shot by Cremator */
|
||||
#define DMG_AIRBOAT (1 << 25) /**< Hit by the airboat's gun */
|
||||
#define DMG_DISSOLVE (1 << 26) /**< Dissolving! */
|
||||
#define DMG_BLAST_SURFACE (1 << 27) /**< A blast on the surface of water that cannot harm things underwater */
|
||||
#define DMG_DIRECT (1 << 28)
|
||||
#define DMG_BUCKSHOT (1 << 29) /**< not quite a bullet. Little, rounder, different. */
|
||||
#define DMG_GENERIC 0 /**< generic damage was done */
|
||||
#define DMG_CRUSH (1 << 0) /**< crushed by falling or moving object.
|
||||
NOTE: It's assumed crush damage is occurring as a result of physics collision,
|
||||
so no extra physics force is generated by crush damage.
|
||||
DON'T use DMG_CRUSH when damaging entities unless it's the result of a physics
|
||||
collision. You probably want DMG_CLUB instead. */
|
||||
#define DMG_BULLET (1 << 1) /**< shot */
|
||||
#define DMG_SLASH (1 << 2) /**< cut, clawed, stabbed */
|
||||
#define DMG_BURN (1 << 3) /**< heat burned */
|
||||
#define DMG_VEHICLE (1 << 4) /**< hit by a vehicle */
|
||||
#define DMG_FALL (1 << 5) /**< fell too far */
|
||||
#define DMG_BLAST (1 << 6) /**< explosive blast damage */
|
||||
#define DMG_CLUB (1 << 7) /**< crowbar, punch, headbutt */
|
||||
#define DMG_SHOCK (1 << 8) /**< electric shock */
|
||||
#define DMG_SONIC (1 << 9) /**< sound pulse shockwave */
|
||||
#define DMG_ENERGYBEAM (1 << 10) /**< laser or other high energy beam */
|
||||
#define DMG_PREVENT_PHYSICS_FORCE (1 << 11) /**< Prevent a physics force */
|
||||
#define DMG_NEVERGIB (1 << 12) /**< with this bit OR'd in, no damage type will be able to gib victims upon death */
|
||||
#define DMG_ALWAYSGIB (1 << 13) /**< with this bit OR'd in, any damage type can be made to gib victims upon death. */
|
||||
#define DMG_DROWN (1 << 14) /**< Drowning */
|
||||
#define DMG_PARALYZE (1 << 15) /**< slows affected creature down */
|
||||
#define DMG_NERVEGAS (1 << 16) /**< nerve toxins, very bad */
|
||||
#define DMG_POISON (1 << 17) /**< blood poisoning - heals over time like drowning damage */
|
||||
#define DMG_RADIATION (1 << 18) /**< radiation exposure */
|
||||
#define DMG_DROWNRECOVER (1 << 19) /**< drowning recovery */
|
||||
#define DMG_ACID (1 << 20) /**< toxic chemicals or acid burns */
|
||||
#define DMG_SLOWBURN (1 << 21) /**< in an oven */
|
||||
#define DMG_REMOVENORAGDOLL (1 << 22) /**< with this bit OR'd in, no ragdoll will be created, and the target will be quietly removed.
|
||||
use this to kill an entity that you've already got a server-side ragdoll for */
|
||||
#define DMG_PHYSGUN (1 << 23) /**< Hit by manipulator. Usually doesn't do any damage. */
|
||||
#define DMG_PLASMA (1 << 24) /**< Shot by Cremator */
|
||||
#define DMG_AIRBOAT (1 << 25) /**< Hit by the airboat's gun */
|
||||
#define DMG_DISSOLVE (1 << 26) /**< Dissolving! */
|
||||
#define DMG_BLAST_SURFACE (1 << 27) /**< A blast on the surface of water that cannot harm things underwater */
|
||||
#define DMG_DIRECT (1 << 28)
|
||||
#define DMG_BUCKSHOT (1 << 29) /**< not quite a bullet. Little, rounder, different. */
|
||||
#endif
|
||||
|
||||
#if !defined DMG_CRIT
|
||||
#define DMG_CRIT DMG_ACID /**< TF2 crits and minicrits */
|
||||
#define DMG_CRIT DMG_ACID /**< TF2 crits and minicrits */
|
||||
#endif
|
||||
|
||||
#if !defined DMG_RADIUS_MAX
|
||||
#define DMG_RADIUS_MAX DMG_ENERGYBEAM /**< No damage falloff */
|
||||
#define DMG_RADIUS_MAX DMG_ENERGYBEAM /**< No damage falloff */
|
||||
#endif
|
||||
|
||||
#if !defined DMG_NOCLOSEDISTANCEMOD
|
||||
#define DMG_NOCLOSEDISTANCEMOD DMG_POISON /**< Don't do damage falloff too close */
|
||||
#if !defined DMG_NOCLOSEDISTANCEMOD
|
||||
#define DMG_NOCLOSEDISTANCEMOD DMG_POISON /**< Don't do damage falloff too close */
|
||||
#endif
|
||||
|
||||
#if !defined DMG_HALF_FALLOFF
|
||||
#define DMG_HALF_FALLOFF DMG_RADIATION /**< 50% damage falloff */
|
||||
#if !defined DMG_HALF_FALLOFF
|
||||
#define DMG_HALF_FALLOFF DMG_RADIATION /**< 50% damage falloff */
|
||||
#endif
|
||||
|
||||
#if !defined DMG_USEDISTANCEMOD
|
||||
#define DMG_USEDISTANCEMOD DMG_SLOWBURN /**< Do damage falloff */
|
||||
#if !defined DMG_USEDISTANCEMOD
|
||||
#define DMG_USEDISTANCEMOD DMG_SLOWBURN /**< Do damage falloff */
|
||||
#endif
|
||||
|
||||
#if !defined DMG_IGNITE
|
||||
#define DMG_IGNITE DMG_PLASMA /**< Ignite victim */
|
||||
#if !defined DMG_IGNITE
|
||||
#define DMG_IGNITE DMG_PLASMA /**< Ignite victim */
|
||||
#endif
|
||||
|
||||
#if !defined DMG_USE_HITLOCATIONS
|
||||
#define DMG_USE_HITLOCATIONS DMG_AIRBOAT /**< Do hit location damage (Like the sniperrifle and ambassador) */
|
||||
#if !defined DMG_USE_HITLOCATIONS
|
||||
#define DMG_USE_HITLOCATIONS DMG_AIRBOAT /**< Do hit location damage (Like the sniperrifle and ambassador) */
|
||||
#endif
|
||||
|
||||
enum SDKHookType
|
||||
@ -144,7 +146,7 @@ enum SDKHookType
|
||||
SDKHook_BlockedPost,
|
||||
SDKHook_OnTakeDamageAlive,
|
||||
SDKHook_OnTakeDamageAlivePost,
|
||||
SDKHook_CanBeAutobalanced,
|
||||
SDKHook_CanBeAutobalanced
|
||||
};
|
||||
|
||||
/*
|
||||
@ -152,70 +154,70 @@ enum SDKHookType
|
||||
|
||||
SDKHook_Blocked,
|
||||
SDKHook_BlockedPost,
|
||||
|
||||
|
||||
SDKHook_CanBeAutobalanced,
|
||||
|
||||
|
||||
SDKHook_EndTouch,
|
||||
SDKHook_EndTouchPost,
|
||||
|
||||
|
||||
SDKHook_FireBulletsPost,
|
||||
|
||||
|
||||
SDKHook_GetMaxHealth, (ep2v and later)
|
||||
|
||||
|
||||
SDKHook_GroundEntChangedPost,
|
||||
|
||||
|
||||
SDKHook_OnTakeDamage,
|
||||
SDKHook_OnTakeDamagePost,
|
||||
|
||||
|
||||
SDKHook_OnTakeDamageAlive,
|
||||
SDKHook_OnTakeDamageAlivePost,
|
||||
|
||||
|
||||
SDKHook_PreThink,
|
||||
SDKHook_PreThinkPost,
|
||||
|
||||
|
||||
SDKHook_PostThink,
|
||||
SDKHook_PostThinkPost,
|
||||
|
||||
|
||||
SDKHook_Reload,
|
||||
SDKHook_ReloadPost,
|
||||
|
||||
|
||||
SDKHook_SetTransmit,
|
||||
|
||||
|
||||
SDKHook_ShouldCollide,
|
||||
|
||||
|
||||
SDKHook_Spawn,
|
||||
SDKHook_SpawnPost,
|
||||
|
||||
|
||||
SDKHook_StartTouch,
|
||||
SDKHook_StartTouchPost,
|
||||
|
||||
|
||||
SDKHook_Think,
|
||||
SDKHook_ThinkPost,
|
||||
|
||||
|
||||
SDKHook_Touch,
|
||||
SDKHook_TouchPost,
|
||||
|
||||
|
||||
SDKHook_TraceAttack,
|
||||
SDKHook_TraceAttackPost,
|
||||
|
||||
|
||||
SDKHook_Use,
|
||||
SDKHook_UsePost,
|
||||
|
||||
|
||||
SDKHook_VPhysicsUpdate,
|
||||
SDKHook_VPhysicsUpdatePost,
|
||||
|
||||
|
||||
SDKHook_WeaponCanSwitchTo,
|
||||
SDKHook_WeaponCanSwitchToPost,
|
||||
|
||||
|
||||
SDKHook_WeaponCanUse,
|
||||
SDKHook_WeaponCanUsePost,
|
||||
|
||||
|
||||
SDKHook_WeaponDrop,
|
||||
SDKHook_WeaponDropPost,
|
||||
|
||||
|
||||
SDKHook_WeaponEquip,
|
||||
SDKHook_WeaponEquipPost,
|
||||
|
||||
|
||||
SDKHook_WeaponSwitch,
|
||||
SDKHook_WeaponSwitchPost
|
||||
*/
|
||||
@ -233,47 +235,47 @@ typeset SDKHookCB
|
||||
// PreThink/Post
|
||||
// PostThink/Post
|
||||
function void (int client);
|
||||
|
||||
|
||||
// Spawn
|
||||
function Action (int entity);
|
||||
|
||||
|
||||
// GroundEntChanged
|
||||
// SpawnPost
|
||||
// Think/Post
|
||||
// VPhysicsUpdate/Post
|
||||
function void (int entity);
|
||||
|
||||
|
||||
// EndTouch
|
||||
// StartTouch
|
||||
// Touch
|
||||
// Blocked
|
||||
function Action (int entity, int other);
|
||||
|
||||
|
||||
// EndTouchPost
|
||||
// StartTouchPost
|
||||
// TouchPost
|
||||
function void (int entity, int other);
|
||||
|
||||
|
||||
// SetTransmit
|
||||
function Action (int entity, int client);
|
||||
|
||||
|
||||
// WeaponCanSwitchTo
|
||||
// WeaponCanUse
|
||||
// WeaponDrop
|
||||
// WeaponEquip
|
||||
// WeaponSwitch
|
||||
function Action (int client, int weapon);
|
||||
|
||||
|
||||
// WeaponCanSwitchToPost
|
||||
// WeaponCanUsePost
|
||||
// WeaponDropPost
|
||||
// WeaponEquipPost
|
||||
// WeaponSwitchPost
|
||||
function void (int client, int weapon);
|
||||
|
||||
|
||||
// GetMaxHealth (ep2v and later)
|
||||
function Action (int entity, int &maxhealth);
|
||||
|
||||
|
||||
// OnTakeDamage
|
||||
// OnTakeDamageAlive
|
||||
// Note: The weapon parameter is not used by all games and damage sources.
|
||||
@ -286,131 +288,131 @@ typeset SDKHookCB
|
||||
// DON'T attempt to access 'damagecustom' var if feature status != available
|
||||
function Action (int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon,
|
||||
float damageForce[3], float damagePosition[3], int damagecustom);
|
||||
|
||||
|
||||
// OnTakeDamagePost
|
||||
// OnTakeDamageAlivePost
|
||||
function void (int victim, int attacker, int inflictor, float damage, int damagetype);
|
||||
function void (int victim, int attacker, int inflictor, float damage, int damagetype, int weapon, const float damageForce[3], const float damagePosition[3]);
|
||||
function void (int victim, int attacker, int inflictor, float damage, int damagetype, int weapon,
|
||||
function void (int victim, int attacker, int inflictor, float damage, int damagetype, int weapon,
|
||||
const float damageForce[3], const float damagePosition[3], int damagecustom);
|
||||
|
||||
|
||||
// FireBulletsPost
|
||||
function void (int client, int shots, const char[] weaponname);
|
||||
|
||||
|
||||
// TraceAttack
|
||||
function Action (int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &ammotype, int hitbox, int hitgroup);
|
||||
|
||||
|
||||
// TraceAttackPost
|
||||
function void (int victim, int attacker, int inflictor, float damage, int damagetype, int ammotype, int hitbox, int hitgroup);
|
||||
|
||||
|
||||
// ShouldCollide
|
||||
function bool (int entity, int collisiongroup, int contentsmask, bool originalResult);
|
||||
|
||||
|
||||
// Use
|
||||
function Action (int entity, int activator, int caller, UseType type, float value);
|
||||
|
||||
|
||||
// UsePost
|
||||
function void (int entity, int activator, int caller, UseType type, float value);
|
||||
|
||||
|
||||
// Reload
|
||||
function Action (int weapon);
|
||||
|
||||
|
||||
// Reload post
|
||||
function void (int weapon, bool bSuccessful);
|
||||
|
||||
|
||||
// CanBeAutobalanced
|
||||
function bool (int client, bool origRet);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief When an entity is created
|
||||
* When an entity is created
|
||||
*
|
||||
* @param entity Entity index
|
||||
* @param classname Class name
|
||||
* @param entity Entity index
|
||||
* @param classname Class name
|
||||
*/
|
||||
forward void OnEntityCreated(int entity, const char[] classname);
|
||||
|
||||
/**
|
||||
* @brief When an entity is destroyed
|
||||
* When an entity is destroyed
|
||||
*
|
||||
* @param entity Entity index
|
||||
* @param entity Entity index
|
||||
*/
|
||||
forward void OnEntityDestroyed(int entity);
|
||||
|
||||
/**
|
||||
* @brief When the game description is retrieved
|
||||
* When the game description is retrieved
|
||||
*
|
||||
* @note Not supported on ep2v.
|
||||
* @note Not supported on ep2v.
|
||||
*
|
||||
* @param gameDesc Game description
|
||||
* @return Plugin_Changed if gameDesc has been edited, else no change.
|
||||
* @param gameDesc Game description
|
||||
* @return Plugin_Changed if gameDesc has been edited, else no change.
|
||||
*/
|
||||
forward Action OnGetGameDescription(char gameDesc[64]);
|
||||
|
||||
/**
|
||||
* @brief When the level is initialized
|
||||
* When the level is initialized
|
||||
*
|
||||
* @param mapName Name of the map
|
||||
* @param mapEntities Entities of the map
|
||||
* @return Plugin_Changed if mapEntities has been edited, else no change.
|
||||
* @param mapName Name of the map
|
||||
* @param mapEntities Entities of the map
|
||||
* @return Plugin_Changed if mapEntities has been edited, else no change.
|
||||
*/
|
||||
forward Action OnLevelInit(const char[] mapName, char mapEntities[2097152]);
|
||||
|
||||
/**
|
||||
* @brief Hooks an entity
|
||||
* Hooks an entity
|
||||
*
|
||||
* @param entity Entity index
|
||||
* @param type Type of function to hook
|
||||
* @param callback Function to call when hook is called
|
||||
* @param entity Entity index
|
||||
* @param type Type of function to hook
|
||||
* @param callback Function to call when hook is called
|
||||
*/
|
||||
native void SDKHook(int entity, SDKHookType type, SDKHookCB callback);
|
||||
|
||||
/**
|
||||
* @brief Hooks an entity
|
||||
* Hooks an entity
|
||||
*
|
||||
* @param entity Entity index
|
||||
* @param type Type of function to hook
|
||||
* @param callback Function to call when hook is called
|
||||
* @return bool Hook Successful
|
||||
* @param entity Entity index
|
||||
* @param type Type of function to hook
|
||||
* @param callback Function to call when hook is called
|
||||
* @return Hook Successful
|
||||
*/
|
||||
native bool SDKHookEx(int entity, SDKHookType type, SDKHookCB callback);
|
||||
|
||||
/**
|
||||
* @brief Unhooks an entity
|
||||
* Unhooks an entity
|
||||
*
|
||||
* @param entity Entity index
|
||||
* @param type Type of function to unhook
|
||||
* @param callback Callback function to unhook
|
||||
* @param entity Entity index
|
||||
* @param type Type of function to unhook
|
||||
* @param callback Callback function to unhook
|
||||
*/
|
||||
native void SDKUnhook(int entity, SDKHookType type, SDKHookCB callback);
|
||||
|
||||
/**
|
||||
* @brief Applies damage to an entity
|
||||
* Applies damage to an entity
|
||||
*
|
||||
* @note Force application is dependent on game and damage type(s)
|
||||
*
|
||||
* @param entity Entity index taking damage
|
||||
* @param inflictor Inflictor entity index
|
||||
* @param attacker Attacker entity index
|
||||
* @param damage Amount of damage
|
||||
* @param damageType Bitfield of damage types
|
||||
* @param weapon Weapon index (orangebox and later) or -1 for unspecified
|
||||
* @param damageForce Velocity of damage force
|
||||
* @param damagePosition Origin of damage
|
||||
* @param entity Entity index taking damage
|
||||
* @param inflictor Inflictor entity index
|
||||
* @param attacker Attacker entity index
|
||||
* @param damage Amount of damage
|
||||
* @param damageType Bitfield of damage types
|
||||
* @param weapon Weapon index (orangebox and later) or -1 for unspecified
|
||||
* @param damageForce Velocity of damage force
|
||||
* @param damagePosition Origin of damage
|
||||
*/
|
||||
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
|
||||
* Forces a client to drop the specified weapon
|
||||
*
|
||||
* @param client Client index.
|
||||
* @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.
|
||||
* @error Invalid client or weapon entity, weapon not owned by client.
|
||||
* @param client Client index.
|
||||
* @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.
|
||||
* @error Invalid client or weapon entity, weapon not owned by client.
|
||||
*/
|
||||
native void SDKHooks_DropWeapon(int client, int weapon, const float vecTarget[3]=NULL_VECTOR,
|
||||
const float vecVelocity[3]=NULL_VECTOR);
|
||||
@ -418,7 +420,7 @@ native void SDKHooks_DropWeapon(int client, int weapon, const float vecTarget[3]
|
||||
/**
|
||||
* Do not edit below this line!
|
||||
*/
|
||||
public Extension __ext_sdkhooks =
|
||||
public Extension __ext_sdkhooks =
|
||||
{
|
||||
name = "SDKHooks",
|
||||
file = "sdkhooks.ext",
|
||||
|
@ -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
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_included
|
||||
|
||||
@ -55,86 +55,86 @@
|
||||
|
||||
enum SDKCallType
|
||||
{
|
||||
SDKCall_Static, /**< Static call */
|
||||
SDKCall_Entity, /**< CBaseEntity call */
|
||||
SDKCall_Player, /**< CBasePlayer call */
|
||||
SDKCall_GameRules, /**< CGameRules call */
|
||||
SDKCall_EntityList, /**< CGlobalEntityList call */
|
||||
SDKCall_Raw, /**< |this| pointer with an arbitrary address */
|
||||
SDKCall_Static, /**< Static call */
|
||||
SDKCall_Entity, /**< CBaseEntity call */
|
||||
SDKCall_Player, /**< CBasePlayer call */
|
||||
SDKCall_GameRules, /**< CGameRules call */
|
||||
SDKCall_EntityList, /**< CGlobalEntityList call */
|
||||
SDKCall_Raw /**< |this| pointer with an arbitrary address */
|
||||
};
|
||||
|
||||
enum SDKLibrary
|
||||
{
|
||||
SDKLibrary_Server, /**< server.dll/server_i486.so */
|
||||
SDKLibrary_Engine, /**< engine.dll/engine_*.so */
|
||||
SDKLibrary_Server, /**< server.dll/server_i486.so */
|
||||
SDKLibrary_Engine /**< engine.dll/engine_*.so */
|
||||
};
|
||||
|
||||
enum SDKFuncConfSource
|
||||
{
|
||||
SDKConf_Virtual = 0, /**< Read a virtual index from the Offsets section */
|
||||
SDKConf_Signature = 1, /**< Read a signature from the Signatures section */
|
||||
SDKConf_Address = 2, /**< Read an address from the Addresses section */
|
||||
SDKConf_Virtual = 0, /**< Read a virtual index from the Offsets section */
|
||||
SDKConf_Signature = 1, /**< Read a signature from the Signatures section */
|
||||
SDKConf_Address = 2 /**< Read an address from the Addresses section */
|
||||
};
|
||||
|
||||
enum SDKType
|
||||
{
|
||||
SDKType_CBaseEntity, /**< CBaseEntity (always as pointer) */
|
||||
SDKType_CBasePlayer, /**< CBasePlayer (always as pointer) */
|
||||
SDKType_Vector, /**< Vector (pointer, byval, or byref) */
|
||||
SDKType_QAngle, /**< QAngles (pointer, byval, or byref) */
|
||||
SDKType_PlainOldData, /**< Integer/generic data <=32bit (any) */
|
||||
SDKType_Float, /**< Float (any) */
|
||||
SDKType_Edict, /**< edict_t (always as pointer) */
|
||||
SDKType_String, /**< NULL-terminated string (always as pointer) */
|
||||
SDKType_Bool, /**< Boolean (any) */
|
||||
SDKType_CBaseEntity, /**< CBaseEntity (always as pointer) */
|
||||
SDKType_CBasePlayer, /**< CBasePlayer (always as pointer) */
|
||||
SDKType_Vector, /**< Vector (pointer, byval, or byref) */
|
||||
SDKType_QAngle, /**< QAngles (pointer, byval, or byref) */
|
||||
SDKType_PlainOldData, /**< Integer/generic data <=32bit (any) */
|
||||
SDKType_Float, /**< Float (any) */
|
||||
SDKType_Edict, /**< edict_t (always as pointer) */
|
||||
SDKType_String, /**< NULL-terminated string (always as pointer) */
|
||||
SDKType_Bool /**< Boolean (any) */
|
||||
};
|
||||
|
||||
enum SDKPassMethod
|
||||
{
|
||||
SDKPass_Pointer, /**< Pass as a pointer */
|
||||
SDKPass_Plain, /**< Pass as plain data */
|
||||
SDKPass_ByValue, /**< Pass an object by value */
|
||||
SDKPass_ByRef, /**< Pass an object by reference */
|
||||
SDKPass_Pointer, /**< Pass as a pointer */
|
||||
SDKPass_Plain, /**< Pass as plain data */
|
||||
SDKPass_ByValue, /**< Pass an object by value */
|
||||
SDKPass_ByRef /**< Pass an object by reference */
|
||||
};
|
||||
|
||||
#define VDECODE_FLAG_ALLOWNULL (1<<0) /**< Allow NULL for pointers */
|
||||
#define VDECODE_FLAG_ALLOWNOTINGAME (1<<1) /**< Allow players not in game */
|
||||
#define VDECODE_FLAG_ALLOWWORLD (1<<2) /**< Allow World entity */
|
||||
#define VDECODE_FLAG_BYREF (1<<3) /**< Floats/ints by reference */
|
||||
#define VDECODE_FLAG_ALLOWNULL (1<<0) /**< Allow NULL for pointers */
|
||||
#define VDECODE_FLAG_ALLOWNOTINGAME (1<<1) /**< Allow players not in game */
|
||||
#define VDECODE_FLAG_ALLOWWORLD (1<<2) /**< Allow World entity */
|
||||
#define VDECODE_FLAG_BYREF (1<<3) /**< Floats/ints by reference */
|
||||
|
||||
#define VENCODE_FLAG_COPYBACK (1<<0) /**< Copy back data once done */
|
||||
#define VENCODE_FLAG_COPYBACK (1<<0) /**< Copy back data once done */
|
||||
|
||||
/**
|
||||
* Starts the preparation of an SDK call.
|
||||
*
|
||||
* @param type Type of function call this will be.
|
||||
* @param type Type of function call this will be.
|
||||
*/
|
||||
native void StartPrepSDKCall(SDKCallType type);
|
||||
|
||||
/**
|
||||
* Sets the virtual index of the SDK call if it is virtual.
|
||||
*
|
||||
* @param vtblidx Virtual table index.
|
||||
* @param vtblidx Virtual table index.
|
||||
*/
|
||||
native void PrepSDKCall_SetVirtual(int vtblidx);
|
||||
|
||||
/**
|
||||
* Finds an address in a library and sets it as the address to use for the SDK call.
|
||||
*
|
||||
* @param lib Library to use.
|
||||
* @param signature Binary data to search for in the library. If it starts with '@',
|
||||
* the bytes parameter is ignored and the signature is interpreted
|
||||
* as a symbol lookup in the library.
|
||||
* @param bytes Number of bytes in the binary search string.
|
||||
* @return True on success, false if nothing was found.
|
||||
* @param lib Library to use.
|
||||
* @param signature Binary data to search for in the library. If it starts with '@',
|
||||
* the bytes parameter is ignored and the signature is interpreted
|
||||
* as a symbol lookup in the library.
|
||||
* @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 char[] signature, int bytes);
|
||||
|
||||
/**
|
||||
* Uses the given function address for the SDK call.
|
||||
*
|
||||
* @param addr Address of function to use.
|
||||
* @return True on success, false on failure.
|
||||
* @param addr Address of function to use.
|
||||
* @return True on success, false on failure.
|
||||
*/
|
||||
native bool PrepSDKCall_SetAddress(Address addr);
|
||||
|
||||
@ -142,39 +142,39 @@ native bool PrepSDKCall_SetAddress(Address addr);
|
||||
* Finds an address or virtual function index in a GameConfig file and sets it as
|
||||
* the calling information for the SDK call.
|
||||
*
|
||||
* @param gameconf GameConfig Handle, or INVALID_HANDLE to use sdktools.games.txt.
|
||||
* @param source Whether to look in Offsets or Signatures.
|
||||
* @param name Name of the property to find.
|
||||
* @return True on success, false if nothing was found.
|
||||
* @param gameconf GameConfig Handle, or INVALID_HANDLE to use sdktools.games.txt.
|
||||
* @param source Whether to look in Offsets or Signatures.
|
||||
* @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 char[] name);
|
||||
|
||||
/**
|
||||
* Sets the return information of an SDK call. Do not call this if there is no return data.
|
||||
* This must be called if there is a return value (i.e. it is not necessarily safe to ignore
|
||||
* This must be called if there is a return value (i.e. it is not necessarily safe to ignore
|
||||
* the data).
|
||||
*
|
||||
* @param type Data type to convert to/from.
|
||||
* @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.
|
||||
* @param type Data type to convert to/from.
|
||||
* @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.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param type Data type to convert to/from.
|
||||
* @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.
|
||||
* @param type Data type to convert to/from.
|
||||
* @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.
|
||||
*/
|
||||
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.
|
||||
* @return A new SDKCall Handle on success, or INVALID_HANDLE on failure.
|
||||
*/
|
||||
native Handle EndPrepSDKCall();
|
||||
|
||||
@ -186,24 +186,24 @@ native Handle EndPrepSDKCall();
|
||||
* If the return value is a Vector or QAngles, the SECOND parameter must be a Float[3].
|
||||
* If the return value is a string, the THIRD parameter must be a String buffer, and the
|
||||
* FOURTH parameter must be the maximum length.
|
||||
* All parameters must be passed after the above is followed. Failure to follow these
|
||||
* All parameters must be passed after the above is followed. Failure to follow these
|
||||
* rules will result in crashes or wildly unexpected behavior!
|
||||
*
|
||||
* If the return value is a float or integer, the return value will be this value.
|
||||
* If the return value is a CBaseEntity, CBasePlayer, or edict, the return value will
|
||||
* always be the entity index, or -1 for NULL.
|
||||
* always be the entity index, or -1 for NULL.
|
||||
*
|
||||
* @param call SDKCall Handle.
|
||||
* @param ... Call Parameters.
|
||||
* @return Simple return value, if any.
|
||||
* @error Invalid Handle or internal decoding error.
|
||||
* @param call SDKCall Handle.
|
||||
* @param ... Call Parameters.
|
||||
* @return Simple return value, if any.
|
||||
* @error Invalid Handle or internal decoding error.
|
||||
*/
|
||||
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.
|
||||
* @return Index of resource entity or -1 if not found.
|
||||
*/
|
||||
native int GetPlayerResourceEntity();
|
||||
|
||||
@ -212,7 +212,7 @@ native int GetPlayerResourceEntity();
|
||||
/**
|
||||
* Do not edit below this line!
|
||||
*/
|
||||
public Extension __ext_sdktools =
|
||||
public Extension __ext_sdktools =
|
||||
{
|
||||
name = "SDKTools",
|
||||
file = "sdktools.ext",
|
||||
|
@ -31,20 +31,20 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_client_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_client_included
|
||||
|
||||
/**
|
||||
* Sets the client to an inactive state waiting for a new map
|
||||
*
|
||||
* @param client The client index
|
||||
* @param client The client index
|
||||
*/
|
||||
native void InactivateClient(int client);
|
||||
|
||||
/**
|
||||
* Reconnect a client without dropping the netchannel
|
||||
*
|
||||
* @param client The client index
|
||||
* @param client The client index
|
||||
*/
|
||||
native void ReconnectClient(int client);
|
||||
|
@ -31,36 +31,36 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_engine_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_engine_included
|
||||
|
||||
#define MAX_LIGHTSTYLES 64
|
||||
#define MAX_LIGHTSTYLES 64
|
||||
|
||||
/**
|
||||
* Sets a client's "viewing entity."
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param entity Entity index.
|
||||
* @error Invalid client or entity, lack of mod support, or client not in
|
||||
* game.
|
||||
* @param client Client index.
|
||||
* @param entity Entity index.
|
||||
* @error Invalid client or entity, lack of mod support, or client not in
|
||||
* game.
|
||||
*/
|
||||
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)
|
||||
* @error Light style index is out of range.
|
||||
* @param style Light style (from 0 to MAX_LIGHTSTYLES-1)
|
||||
* @param value Light value string (see world.cpp/light.cpp in dlls)
|
||||
* @error Light style index is out of range.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param pos Destination vector to store the client's eye position.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void GetClientEyePosition(int client, float pos[3]);
|
||||
|
@ -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
|
||||
@ -31,21 +31,21 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_entinput_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_entinput_included
|
||||
|
||||
/**
|
||||
* Invokes a named input method on an entity.
|
||||
* Invokes a named input method on an entity.
|
||||
*
|
||||
* After completion (successful or not), the current global variant is re-initialized.
|
||||
*
|
||||
* @param dest Destination entity index.
|
||||
* @param input Input action.
|
||||
* @param activator Entity index which initiated the sequence of actions (-1 for a NULL entity).
|
||||
* @param caller Entity index from which this event is sent (-1 for a NULL entity).
|
||||
* @param outputid Unknown.
|
||||
* @return True if successful otherwise false.
|
||||
* @error Invalid entity index or no mod support.
|
||||
* @param dest Destination entity index.
|
||||
* @param input Input action.
|
||||
* @param activator Entity index which initiated the sequence of actions (-1 for a NULL entity).
|
||||
* @param caller Entity index from which this event is sent (-1 for a NULL entity).
|
||||
* @param outputid Unknown.
|
||||
* @return True if successful otherwise false.
|
||||
* @error Invalid entity index or no mod support.
|
||||
*/
|
||||
native bool AcceptEntityInput(int dest, const char[] input, int activator=-1, int caller=-1, int outputid=0);
|
||||
native bool AcceptEntityInput(int dest, const char[] input, int activator=-1, int caller=-1, int outputid=0);
|
||||
|
@ -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
|
||||
@ -31,20 +31,20 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_entoutput_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_entoutput_included
|
||||
|
||||
/**
|
||||
* Called when an entity output is fired.
|
||||
*
|
||||
* @param output Name of the output that fired.
|
||||
* @param caller Entity index of the caller.
|
||||
* @param activator Entity index of the activator.
|
||||
* @param delay Delay in seconds? before the event gets fired.
|
||||
* @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.
|
||||
* @param output Name of the output that fired.
|
||||
* @param caller Entity index of the caller.
|
||||
* @param activator Entity index of the activator.
|
||||
* @param delay Delay in seconds? before the event gets fired.
|
||||
* @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.
|
||||
*/
|
||||
typeset EntityOutput
|
||||
{
|
||||
@ -55,54 +55,54 @@ typeset EntityOutput
|
||||
/**
|
||||
* Add an entity output hook on a entity classname
|
||||
*
|
||||
* @param classname The classname to hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @error Entity Outputs disabled.
|
||||
* @param classname The classname to hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @error Entity Outputs disabled.
|
||||
*/
|
||||
native void HookEntityOutput(const char[] classname, const char[] output, EntityOutput callback);
|
||||
|
||||
/**
|
||||
* Remove an entity output hook.
|
||||
* @param classname The classname to hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @return True on success, false if no valid hook was found.
|
||||
* @error Entity Outputs disabled.
|
||||
* @param classname The classname to hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @return True on success, false if no valid hook was found.
|
||||
* @error Entity Outputs disabled.
|
||||
*/
|
||||
native bool UnhookEntityOutput(const char[] classname, const char[] output, EntityOutput callback);
|
||||
|
||||
/**
|
||||
* Add an entity output hook on a single entity instance
|
||||
* Add an entity output hook on a single entity instance
|
||||
*
|
||||
* @param entity The entity on which to add a hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @param once Only fire this hook once and then remove itself.
|
||||
* @error Entity Outputs disabled or Invalid Entity index.
|
||||
* @param entity The entity on which to add a hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @param once Only fire this hook once and then remove itself.
|
||||
* @error Entity Outputs disabled or Invalid Entity index.
|
||||
*/
|
||||
native void HookSingleEntityOutput(int entity, const char[] output, EntityOutput callback, bool once=false);
|
||||
|
||||
/**
|
||||
* Remove a single entity output hook.
|
||||
* Remove a single entity output hook.
|
||||
*
|
||||
* @param entity The entity on which to remove the hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @return True on success, false if no valid hook was found.
|
||||
* @error Entity Outputs disabled or Invalid Entity index.
|
||||
* @param entity The entity on which to remove the hook.
|
||||
* @param output The output name to hook.
|
||||
* @param callback An EntityOutput function pointer.
|
||||
* @return True on success, false if no valid hook was found.
|
||||
* @error Entity Outputs disabled or Invalid Entity index.
|
||||
*/
|
||||
native bool UnhookSingleEntityOutput(int entity, const char[] output, EntityOutput callback);
|
||||
|
||||
/**
|
||||
* Fire a named output on an entity.
|
||||
* Fire a named output on an entity.
|
||||
*
|
||||
* After completion (successful or not), the current global variant is re-initialized.
|
||||
*
|
||||
* @param caller Entity index from where the output is fired.
|
||||
* @param output Output name.
|
||||
* @param activator Entity index which initiated the sequence of actions (-1 for a NULL entity).
|
||||
* @param delay Delay before firing the output.
|
||||
* @error Invalid entity index or no mod support.
|
||||
* @param caller Entity index from where the output is fired.
|
||||
* @param output Output name.
|
||||
* @param activator Entity index which initiated the sequence of actions (-1 for a NULL entity).
|
||||
* @param delay Delay before firing the output.
|
||||
* @error Invalid entity index or no mod support.
|
||||
*/
|
||||
native void FireEntityOutput(int caller, const char[] output, int activator=-1, float delay=0.0);
|
||||
native void FireEntityOutput(int caller, const char[] output, int activator=-1, float delay=0.0);
|
||||
|
@ -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
|
||||
@ -31,175 +31,175 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_functions_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_functions_included
|
||||
|
||||
/**
|
||||
* Removes a player's item.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param item CBaseCombatWeapon entity index.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid client or entity, lack of mod support, or client not in
|
||||
* game.
|
||||
* @param client Client index.
|
||||
* @param item CBaseCombatWeapon entity index.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid client or entity, lack of mod support, or client not in
|
||||
* game.
|
||||
*/
|
||||
native bool RemovePlayerItem(int client, int item);
|
||||
|
||||
/**
|
||||
* Gives a named item to a player.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param item Item classname (such as weapon_ak47).
|
||||
* @param iSubType Unknown.
|
||||
* @return Entity index on success, or -1 on failure.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
* @param client Client index.
|
||||
* @param item Item classname (such as weapon_ak47).
|
||||
* @param iSubType Unknown.
|
||||
* @return Entity index on success, or -1 on failure.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
*/
|
||||
native int GivePlayerItem(int client, const char[] item, int iSubType=0);
|
||||
|
||||
/**
|
||||
* Returns the weapon in a player's slot.
|
||||
* Returns the weapon in a player's slot.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param slot Slot index (mod specific).
|
||||
* @return Entity index on success, -1 if no weapon existed.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
* @param client Client index.
|
||||
* @param slot Slot index (mod specific).
|
||||
* @return Entity index on success, -1 if no weapon existed.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
*/
|
||||
native int GetPlayerWeaponSlot(int client, int slot);
|
||||
|
||||
/**
|
||||
* Ignites an entity on fire.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param time Number of seconds to set on fire.
|
||||
* @param npc True to only affect NPCs.
|
||||
* @param size Unknown.
|
||||
* @param level Unknown.
|
||||
* @error Invalid entity or client not in game, or lack of mod support.
|
||||
* @param entity Entity index.
|
||||
* @param time Number of seconds to set on fire.
|
||||
* @param npc True to only affect NPCs.
|
||||
* @param size Unknown.
|
||||
* @param level Unknown.
|
||||
* @error Invalid entity or client not in game, or lack of mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid entity or client not in game, or lack of mod support.
|
||||
* @param entity Entity index.
|
||||
* @error Invalid entity or client not in game, or lack of mod support.
|
||||
*/
|
||||
native void ExtinguishEntity(int entity);
|
||||
|
||||
/**
|
||||
* Teleports an entity.
|
||||
*
|
||||
* @param entity Client index.
|
||||
* @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.
|
||||
* @error Invalid entity or client not in game, or lack of mod support.
|
||||
* @param entity Client index.
|
||||
* @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.
|
||||
* @error Invalid entity or client not in game, or lack of mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
* @param client Client index.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
*/
|
||||
native void ForcePlayerSuicide(int client);
|
||||
|
||||
/**
|
||||
* Slaps a player in a random direction.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param health Health to subtract.
|
||||
* @param sound False to disable the sound effects.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
* @param client Client index.
|
||||
* @param health Health to subtract.
|
||||
* @param sound False to disable the sound effects.
|
||||
* @error Invalid client or client not in game, or lack of mod support.
|
||||
*/
|
||||
native void SlapPlayer(int client, int health=5, bool sound=true);
|
||||
|
||||
/**
|
||||
* Searches for an entity by classname.
|
||||
*
|
||||
* @param startEnt The entity index after which to begin searching from.
|
||||
* Use -1 to start from the first entity.
|
||||
* @param classname Classname of the entity to find.
|
||||
* @return Entity index >= 0 if found, -1 otherwise.
|
||||
* @error Lack of mod support.
|
||||
* @param startEnt The entity index after which to begin searching from.
|
||||
* Use -1 to start from the first entity.
|
||||
* @param classname Classname of the entity to find.
|
||||
* @return Entity index >= 0 if found, -1 otherwise.
|
||||
* @error Lack of mod support.
|
||||
*/
|
||||
native int FindEntityByClassname(int startEnt, const char[] classname);
|
||||
|
||||
/**
|
||||
* Returns the client's eye angles.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param ang Destination vector to store the client's eye angles.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param ang Destination vector to store the client's eye angles.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native bool GetClientEyeAngles(int client, float ang[3]);
|
||||
|
||||
/**
|
||||
* Creates an entity by string name, but does not spawn it (see DispatchSpawn).
|
||||
* If ForceEdictIndex is not -1, then it will use the edict by that index. If the index is
|
||||
* If ForceEdictIndex is not -1, then it will use the edict by that index. If the index is
|
||||
* invalid or there is already an edict using that index, it will error out.
|
||||
*
|
||||
* @param classname Entity classname.
|
||||
* @param ForceEdictIndex Edict index used by the created entity (ignored on Orangebox and above).
|
||||
* @return Entity index on success, or -1 on failure.
|
||||
* @error Invalid edict index, or no mod support.
|
||||
* @param classname Entity classname.
|
||||
* @param ForceEdictIndex Edict index used by the created entity (ignored on Orangebox and above).
|
||||
* @return Entity index on success, or -1 on failure.
|
||||
* @error Invalid edict index, or no mod support.
|
||||
*/
|
||||
native int CreateEntityByName(const char[] classname, int ForceEdictIndex=-1);
|
||||
|
||||
/**
|
||||
* Spawns an entity into the game.
|
||||
*
|
||||
* @param entity Entity index of the created entity.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
* @param entity Entity index of the created entity.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
*/
|
||||
native bool DispatchSpawn(int entity);
|
||||
|
||||
/**
|
||||
* Dispatches a KeyValue into given entity using a string value.
|
||||
*
|
||||
* @param entity Destination entity index.
|
||||
* @param keyName Name of the key.
|
||||
* @param value String value.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
* @param entity Destination entity index.
|
||||
* @param keyName Name of the key.
|
||||
* @param value String value.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
*/
|
||||
native bool DispatchKeyValue(int entity, const char[] keyName, const char[] value);
|
||||
|
||||
/**
|
||||
* Dispatches a KeyValue into given entity using a floating point value.
|
||||
*
|
||||
* @param entity Destination entity index.
|
||||
* @param keyName Name of the key.
|
||||
* @param value Floating point value.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
* @param entity Destination entity index.
|
||||
* @param keyName Name of the key.
|
||||
* @param value Floating point value.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
*/
|
||||
native bool DispatchKeyValueFloat(int entity, const char[] keyName, float value);
|
||||
|
||||
/**
|
||||
* Dispatches a KeyValue into given entity using a vector value.
|
||||
*
|
||||
* @param entity Destination entity index.
|
||||
* @param keyName Name of the key.
|
||||
* @param vec Vector value.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
* @param entity Destination entity index.
|
||||
* @param keyName Name of the key.
|
||||
* @param vec Vector value.
|
||||
* @return True on success, false otherwise.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
*/
|
||||
native bool DispatchKeyValueVector(int entity, const char[] keyName, const float vec[3]);
|
||||
|
||||
/**
|
||||
* Returns the entity a client is aiming at.
|
||||
*
|
||||
* @param client Client performing the aiming.
|
||||
* @param only_clients True to exclude all entities but clients.
|
||||
* @return Entity index being aimed at.
|
||||
* -1 if no entity is being aimed at.
|
||||
* -2 if the function is not supported.
|
||||
* @error Invalid client index or client not in game.
|
||||
* @param client Client performing the aiming.
|
||||
* @param only_clients True to exclude all entities but clients.
|
||||
* @return Entity index being aimed at.
|
||||
* -1 if no entity is being aimed at.
|
||||
* -2 if the function is not supported.
|
||||
* @error Invalid client index or client not in game.
|
||||
*/
|
||||
native int GetClientAimTarget(int client, bool only_clients=true);
|
||||
|
||||
@ -207,7 +207,7 @@ native int GetClientAimTarget(int client, bool only_clients=true);
|
||||
* Returns the total number of teams in a game.
|
||||
* Note: This native should not be called before OnMapStart.
|
||||
*
|
||||
* @return Total number of teams.
|
||||
* @return Total number of teams.
|
||||
*/
|
||||
native int GetTeamCount();
|
||||
|
||||
@ -215,10 +215,10 @@ native int GetTeamCount();
|
||||
* Retrieves the team name based on a team index.
|
||||
* Note: This native should not be called before OnMapStart.
|
||||
*
|
||||
* @param index Team index.
|
||||
* @param name Buffer to store string in.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid team index.
|
||||
* @param index Team index.
|
||||
* @param name Buffer to store string in.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @error Invalid team index.
|
||||
*/
|
||||
native void GetTeamName(int index, char[] name, int maxlength);
|
||||
|
||||
@ -226,9 +226,9 @@ native void GetTeamName(int index, char[] name, int maxlength);
|
||||
* Returns the score of a team based on a team index.
|
||||
* Note: This native should not be called before OnMapStart.
|
||||
*
|
||||
* @param index Team index.
|
||||
* @return Score.
|
||||
* @error Invalid team index.
|
||||
* @param index Team index.
|
||||
* @return Score.
|
||||
* @error Invalid team index.
|
||||
*/
|
||||
native int GetTeamScore(int index);
|
||||
|
||||
@ -236,9 +236,9 @@ native int GetTeamScore(int index);
|
||||
* Sets the score of a team based on a team index.
|
||||
* Note: This native should not be called before OnMapStart.
|
||||
*
|
||||
* @param index Team index.
|
||||
* @param value New score value.
|
||||
* @error Invalid team index.
|
||||
* @param index Team index.
|
||||
* @param value New score value.
|
||||
* @error Invalid team index.
|
||||
*/
|
||||
native void SetTeamScore(int index, int value);
|
||||
|
||||
@ -246,75 +246,75 @@ native void SetTeamScore(int index, int value);
|
||||
* Retrieves the number of players in a certain team.
|
||||
* Note: This native should not be called before OnMapStart.
|
||||
*
|
||||
* @param index Team index.
|
||||
* @return Number of players in the team.
|
||||
* @error Invalid team index.
|
||||
* @param index Team index.
|
||||
* @return Number of players in the team.
|
||||
* @error Invalid team 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.
|
||||
* @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.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
* @param entity Entity index.
|
||||
* @param model Model name.
|
||||
* @error Invalid entity index, or no mod support.
|
||||
*/
|
||||
native void SetEntityModel(int entity, const char[] model);
|
||||
|
||||
/**
|
||||
* Retrieves the decal file name associated with a given client.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param hex Buffer to store the logo filename.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return True on success, otherwise false.
|
||||
* @error Invalid client or client not in game.
|
||||
* @param client Player's index.
|
||||
* @param hex Buffer to store the logo filename.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return True on success, otherwise false.
|
||||
* @error Invalid client or client not in game.
|
||||
*/
|
||||
native bool GetPlayerDecalFile(int client, char[] hex, int maxlength);
|
||||
|
||||
/**
|
||||
* Retrieves the jingle file name associated with a given client.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param hex Buffer to store the jingle filename.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return True on success, otherwise false.
|
||||
* @error Invalid client or client not in game.
|
||||
* @param client Player's index.
|
||||
* @param hex Buffer to store the jingle filename.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return True on success, otherwise false.
|
||||
* @error Invalid client or client not in game.
|
||||
*/
|
||||
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.
|
||||
* @param in Buffer to store the input traffic velocity.
|
||||
* @param out Buffer to store the output traffic velocity.
|
||||
*/
|
||||
native void GetServerNetStats(float &inAmount, float &outAmout);
|
||||
|
||||
/**
|
||||
* Equip's a player's weapon.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param weapon CBaseCombatWeapon entity index.
|
||||
* @error Invalid client or entity, lack of mod support, or client not in
|
||||
* game.
|
||||
* @param client Client index.
|
||||
* @param weapon CBaseCombatWeapon entity index.
|
||||
* @error Invalid client or entity, lack of mod support, or client not in
|
||||
* game.
|
||||
*/
|
||||
native void EquipPlayerWeapon(int client, int weapon);
|
||||
|
||||
/**
|
||||
* Activates an entity (CBaseAnimating::Activate)
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @error Invalid entity or lack of mod support.
|
||||
* @param entity Entity index.
|
||||
* @error Invalid entity or lack of mod support.
|
||||
*/
|
||||
native void ActivateEntity(int entity);
|
||||
|
||||
@ -322,18 +322,18 @@ native void ActivateEntity(int entity);
|
||||
* Sets values to client info buffer keys and notifies the engine of the change.
|
||||
* 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.
|
||||
* @error Invalid client index, or client not connected.
|
||||
* @param client Player's index.
|
||||
* @param key Key string.
|
||||
* @param value Value string.
|
||||
* @error Invalid client index, or client not connected.
|
||||
*/
|
||||
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.
|
||||
* @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);
|
||||
@ -346,7 +346,6 @@ native void SetClientName(int client, const char[] name);
|
||||
* @param amount Amount of ammo to give. Is capped at ammotype's limit.
|
||||
* @param ammotype Type of ammo to give to player.
|
||||
* @param suppressSound If true, don't play the ammo pickup sound.
|
||||
*
|
||||
* @return Amount of ammo actually given.
|
||||
* @return Amount of ammo actually given.
|
||||
*/
|
||||
native int GivePlayerAmmo(int client, int amount, int ammotype, bool suppressSound=false);
|
||||
|
@ -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
|
||||
@ -31,165 +31,165 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_gamerules_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_gamerules_included
|
||||
|
||||
enum RoundState {
|
||||
// initialize the game, create teams
|
||||
RoundState_Init,
|
||||
|
||||
|
||||
//Before players have joined the game. Periodically checks to see if enough players are ready
|
||||
//to start a game. Also reverts to this when there are no active players
|
||||
RoundState_Pregame,
|
||||
|
||||
|
||||
//The game is about to start, wait a bit and spawn everyone
|
||||
RoundState_StartGame,
|
||||
|
||||
|
||||
//All players are respawned, frozen in place
|
||||
RoundState_Preround,
|
||||
|
||||
|
||||
//Round is on, playing normally
|
||||
RoundState_RoundRunning,
|
||||
|
||||
|
||||
//Someone has won the round
|
||||
RoundState_TeamWin,
|
||||
|
||||
|
||||
//Noone has won, manually restart the game, reset scores
|
||||
RoundState_Restart,
|
||||
|
||||
|
||||
//Noone has won, restart the game
|
||||
RoundState_Stalemate,
|
||||
|
||||
|
||||
//Game is over, showing the scoreboard etc
|
||||
RoundState_GameOver,
|
||||
|
||||
|
||||
//Game is over, doing bonus round stuff
|
||||
RoundState_Bonus,
|
||||
|
||||
|
||||
//Between rounds
|
||||
RoundState_BetweenRounds,
|
||||
RoundState_BetweenRounds
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves an integer value from a property of the gamerules entity.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param size Number of bytes to read (valid values are 1, 2, or 4).
|
||||
* 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 Not supported.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param size Number of bytes to read (valid values are 1, 2, or 4).
|
||||
* 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 Not supported.
|
||||
*/
|
||||
native int GameRules_GetProp(const char[] prop, int size=4, int element=0);
|
||||
|
||||
/**
|
||||
* Sets an integer value for a property of the gamerules entity.
|
||||
*
|
||||
* @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
|
||||
* only used as a fallback in case detection fails.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @param changeState This parameter is ignored.
|
||||
* @error Not supported.
|
||||
* @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
|
||||
* only used as a fallback in case detection fails.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @param changeState This parameter is ignored.
|
||||
* @error Not supported.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @return Value at the given property offset.
|
||||
* @error Not supported.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @return Value at the given property offset.
|
||||
* @error Not supported.
|
||||
*/
|
||||
native float GameRules_GetPropFloat(const char[] prop, int element=0);
|
||||
|
||||
/**
|
||||
* Sets a float value for a property of the gamerules entity.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param value Value to set.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @param changeState This parameter is ignored.
|
||||
* @error Not supported.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param value Value to set.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @param changeState This parameter is ignored.
|
||||
* @error Not supported.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @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,
|
||||
* then -1 is returned.
|
||||
* @error Not supported.
|
||||
*
|
||||
* @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,
|
||||
* then -1 is returned.
|
||||
* @error Not supported.
|
||||
*/
|
||||
native int GameRules_GetPropEnt(const char[] prop, int element=0);
|
||||
|
||||
/**
|
||||
* Sets an entity index for a property of the gamerules entity.
|
||||
*
|
||||
* @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 This parameter is ignored.
|
||||
* @error Not supported.
|
||||
*
|
||||
* @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 This parameter is ignored.
|
||||
* @error Not supported.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param vec Vector buffer to store data in.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @error Not supported.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param vec Vector buffer to store data in.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @error Not supported.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param prop Property name.
|
||||
* @param vec Vector to set.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @param changeState This parameter is ignored.
|
||||
* @error Not supported.
|
||||
* @param prop Property name.
|
||||
* @param vec Vector to set.
|
||||
* @param element Element # (starting from 0) if property is an array.
|
||||
* @param changeState This parameter is ignored.
|
||||
* @error Not supported.
|
||||
*/
|
||||
native void GameRules_SetPropVector(const char[] prop, const float vec[3], int element=0, bool changeState=false);
|
||||
|
||||
/**
|
||||
* Gets a gamerules property as a string.
|
||||
*
|
||||
* @param prop Property to use.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Not supported.
|
||||
*
|
||||
* @param prop Property to use.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Not supported.
|
||||
*/
|
||||
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 This parameter is ignored.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Not supported.
|
||||
* @param prop Property to use.
|
||||
* @param buffer String to set.
|
||||
* @param changeState This parameter is ignored.
|
||||
* @return Number of non-null bytes written.
|
||||
* @error Not supported.
|
||||
*/
|
||||
native int GameRules_SetPropString(const char[] prop, const char[] buffer, bool changeState=false);
|
||||
|
||||
/**
|
||||
* Gets the current round state.
|
||||
*
|
||||
* @return Round state.
|
||||
* @error Game doesn't support round state.
|
||||
* @return Round state.
|
||||
* @error Game doesn't support round state.
|
||||
*/
|
||||
stock RoundState GameRules_GetRoundState()
|
||||
{
|
||||
|
@ -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
|
||||
@ -31,66 +31,65 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_hooks_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_hooks_included
|
||||
|
||||
#define FEATURECAP_PLAYERRUNCMD_11PARAMS "SDKTools PlayerRunCmd 11Params"
|
||||
#define FEATURECAP_PLAYERRUNCMD_11PARAMS "SDKTools PlayerRunCmd 11Params"
|
||||
|
||||
/**
|
||||
* Called when a clients movement buttons are being processed
|
||||
*
|
||||
* @param client Index of the client.
|
||||
* @param buttons Copyback buffer containing the current commands (as bitflags - see entity_prop_stocks.inc).
|
||||
* @param impulse Copyback buffer containing the current impulse command.
|
||||
* @param vel Players desired velocity.
|
||||
* @param angles Players desired view angles.
|
||||
* @param weapon Entity index of the new weapon if player switches weapon, 0 otherwise.
|
||||
* @param subtype Weapon subtype when selected from a menu.
|
||||
* @param cmdnum Command number. Increments from the first command sent.
|
||||
* @param tickcount Tick count. A client's prediction based on the server's GetGameTickCount value.
|
||||
* @param seed Random seed. Used to determine weapon recoil, spread, and other predicted elements.
|
||||
* @param mouse Mouse direction (x, y).
|
||||
* @return Plugin_Handled to block the commands from being processed, Plugin_Continue otherwise.
|
||||
* @param client Index of the client.
|
||||
* @param buttons Copyback buffer containing the current commands (as bitflags - see entity_prop_stocks.inc).
|
||||
* @param impulse Copyback buffer containing the current impulse command.
|
||||
* @param vel Players desired velocity.
|
||||
* @param angles Players desired view angles.
|
||||
* @param weapon Entity index of the new weapon if player switches weapon, 0 otherwise.
|
||||
* @param subtype Weapon subtype when selected from a menu.
|
||||
* @param cmdnum Command number. Increments from the first command sent.
|
||||
* @param tickcount Tick count. A client's prediction based on the server's GetGameTickCount value.
|
||||
* @param seed Random seed. Used to determine weapon recoil, spread, and other predicted elements.
|
||||
* @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 available, use FeatureType_Capability and
|
||||
* FEATURECAP_PLAYERRUNCMD_11PARAMS.
|
||||
* @note To see if all 11 params are available, use FeatureType_Capability and FEATURECAP_PLAYERRUNCMD_11PARAMS.
|
||||
*/
|
||||
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]);
|
||||
|
||||
/**
|
||||
* Called after a clients movement buttons were processed.
|
||||
*
|
||||
* @param client Index of the client.
|
||||
* @param buttons The current commands (as bitflags - see entity_prop_stocks.inc).
|
||||
* @param impulse The current impulse command.
|
||||
* @param vel Players desired velocity.
|
||||
* @param angles Players desired view angles.
|
||||
* @param weapon Entity index of the new weapon if player switches weapon, 0 otherwise.
|
||||
* @param subtype Weapon subtype when selected from a menu.
|
||||
* @param cmdnum Command number. Increments from the first command sent.
|
||||
* @param tickcount Tick count. A client's prediction based on the server's GetGameTickCount value.
|
||||
* @param seed Random seed. Used to determine weapon recoil, spread, and other predicted elements.
|
||||
* @param mouse Mouse direction (x, y).
|
||||
* @param client Index of the client.
|
||||
* @param buttons The current commands (as bitflags - see entity_prop_stocks.inc).
|
||||
* @param impulse The current impulse command.
|
||||
* @param vel Players desired velocity.
|
||||
* @param angles Players desired view angles.
|
||||
* @param weapon Entity index of the new weapon if player switches weapon, 0 otherwise.
|
||||
* @param subtype Weapon subtype when selected from a menu.
|
||||
* @param cmdnum Command number. Increments from the first command sent.
|
||||
* @param tickcount Tick count. A client's prediction based on the server's GetGameTickCount value.
|
||||
* @param seed Random seed. Used to determine weapon recoil, spread, and other predicted elements.
|
||||
* @param mouse Mouse direction (x, y).
|
||||
*/
|
||||
forward void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float vel[3], const float angles[3], int weapon, int subtype, int cmdnum, int tickcount, int seed, const int mouse[2]);
|
||||
|
||||
/**
|
||||
* Called when a client requests a file from the server.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param sFile Requested file path.
|
||||
* @param client Client index.
|
||||
* @param sFile Requested file path.
|
||||
*
|
||||
* @return Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
|
||||
* @return Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
|
||||
*/
|
||||
forward Action OnFileSend(int client, const char[] sFile);
|
||||
|
||||
/**
|
||||
* Called when a client sends a file to the server.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param sFile Requested file path.
|
||||
* @param client Client index.
|
||||
* @param sFile Requested file path.
|
||||
*
|
||||
* @return Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
|
||||
* @return Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
|
||||
*/
|
||||
forward Action OnFileReceive(int client, const char[] sFile);
|
||||
|
@ -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
|
||||
@ -31,40 +31,40 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_sound_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_sound_included
|
||||
|
||||
/**
|
||||
* Sound should be from the target client.
|
||||
*/
|
||||
#define SOUND_FROM_PLAYER -2
|
||||
#define SOUND_FROM_PLAYER -2
|
||||
|
||||
/**
|
||||
* Sound should be from the listen server player.
|
||||
*/
|
||||
#define SOUND_FROM_LOCAL_PLAYER -1
|
||||
#define SOUND_FROM_LOCAL_PLAYER -1
|
||||
|
||||
/**
|
||||
* Sound is from the world.
|
||||
*/
|
||||
#define SOUND_FROM_WORLD 0
|
||||
#define SOUND_FROM_WORLD 0
|
||||
|
||||
/**
|
||||
* Sound channels.
|
||||
*/
|
||||
enum
|
||||
{
|
||||
SNDCHAN_REPLACE = -1, /**< Unknown */
|
||||
SNDCHAN_AUTO = 0, /**< Auto */
|
||||
SNDCHAN_WEAPON = 1, /**< Weapons */
|
||||
SNDCHAN_VOICE = 2, /**< Voices */
|
||||
SNDCHAN_ITEM = 3, /**< Items */
|
||||
SNDCHAN_BODY = 4, /**< Player? */
|
||||
SNDCHAN_STREAM = 5, /**< "Stream channel from the static or dynamic area" */
|
||||
SNDCHAN_STATIC = 6, /**< "Stream channel from the static area" */
|
||||
SNDCHAN_VOICE_BASE = 7, /**< "Channel for network voice data" */
|
||||
SNDCHAN_USER_BASE = 135 /**< Anything >= this is allocated to game code */
|
||||
SNDCHAN_REPLACE = -1, /**< Unknown */
|
||||
SNDCHAN_AUTO = 0, /**< Auto */
|
||||
SNDCHAN_WEAPON = 1, /**< Weapons */
|
||||
SNDCHAN_VOICE = 2, /**< Voices */
|
||||
SNDCHAN_ITEM = 3, /**< Items */
|
||||
SNDCHAN_BODY = 4, /**< Player? */
|
||||
SNDCHAN_STREAM = 5, /**< "Stream channel from the static or dynamic area" */
|
||||
SNDCHAN_STATIC = 6, /**< "Stream channel from the static area" */
|
||||
SNDCHAN_VOICE_BASE = 7, /**< "Channel for network voice data" */
|
||||
SNDCHAN_USER_BASE = 135 /**< Anything >= this is allocated to game code */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -72,15 +72,15 @@ enum
|
||||
*/
|
||||
enum
|
||||
{
|
||||
SND_NOFLAGS= 0, /**< Nothing */
|
||||
SND_CHANGEVOL = 1, /**< Change sound volume */
|
||||
SND_CHANGEPITCH = 2, /**< Change sound pitch */
|
||||
SND_STOP = 3, /**< Stop the sound */
|
||||
SND_SPAWNING = 4, /**< Used in some cases for ambients */
|
||||
SND_DELAY = 5, /**< Sound has an initial delay */
|
||||
SND_STOPLOOPING = 6, /**< Stop looping all sounds on the entity */
|
||||
SND_SPEAKER = 7, /**< Being played by a mic through a speaker */
|
||||
SND_SHOULDPAUSE = 8, /**< Pause if game is paused */
|
||||
SND_NOFLAGS= 0, /**< Nothing */
|
||||
SND_CHANGEVOL = 1, /**< Change sound volume */
|
||||
SND_CHANGEPITCH = 2, /**< Change sound pitch */
|
||||
SND_STOP = 3, /**< Stop the sound */
|
||||
SND_SPAWNING = 4, /**< Used in some cases for ambients */
|
||||
SND_DELAY = 5, /**< Sound has an initial delay */
|
||||
SND_STOPLOOPING = 6, /**< Stop looping all sounds on the entity */
|
||||
SND_SPEAKER = 7, /**< Being played by a mic through a speaker */
|
||||
SND_SHOULDPAUSE = 8 /**< Pause if game is paused */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -88,52 +88,53 @@ enum
|
||||
*/
|
||||
enum
|
||||
{
|
||||
SNDLEVEL_NONE = 0, /**< None */
|
||||
SNDLEVEL_RUSTLE = 20, /**< Rustling leaves */
|
||||
SNDLEVEL_WHISPER = 25, /**< Whispering */
|
||||
SNDLEVEL_LIBRARY = 30, /**< In a library */
|
||||
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 */
|
||||
SNDLEVEL_DISHWASHER = 65, /**< Dishwasher/washing machine (1.5 attn) */
|
||||
SNDLEVEL_CAR = 70, /**< Car or vacuum cleaner (1.0 attn) */
|
||||
SNDLEVEL_NORMAL = 75, /**< Normal sound level */
|
||||
SNDLEVEL_TRAFFIC = 75, /**< Busy traffic (0.8 attn) */
|
||||
SNDLEVEL_MINIBIKE = 80, /**< Mini-bike, alarm clock (0.7 attn) */
|
||||
SNDLEVEL_SCREAMING = 90, /**< Screaming child (0.5 attn) */
|
||||
SNDLEVEL_TRAIN = 100, /**< Subway train, pneumatic drill (0.4 attn) */
|
||||
SNDLEVEL_HELICOPTER = 105, /**< Helicopter */
|
||||
SNDLEVEL_SNOWMOBILE = 110, /**< Snow mobile */
|
||||
SNDLEVEL_AIRCRAFT = 120, /**< Auto horn, aircraft */
|
||||
SNDLEVEL_RAIDSIREN = 130, /**< Air raid siren */
|
||||
SNDLEVEL_GUNFIRE = 140, /**< Gunshot, jet engine (0.27 attn) */
|
||||
SNDLEVEL_ROCKET = 180, /**< Rocket launching (0.2 attn) */
|
||||
SNDLEVEL_NONE = 0, /**< None */
|
||||
SNDLEVEL_RUSTLE = 20, /**< Rustling leaves */
|
||||
SNDLEVEL_WHISPER = 25, /**< Whispering */
|
||||
SNDLEVEL_LIBRARY = 30, /**< In a library */
|
||||
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 */
|
||||
SNDLEVEL_DISHWASHER = 65, /**< Dishwasher/washing machine (1.5 attn) */
|
||||
SNDLEVEL_CAR = 70, /**< Car or vacuum cleaner (1.0 attn) */
|
||||
SNDLEVEL_NORMAL = 75, /**< Normal sound level */
|
||||
SNDLEVEL_TRAFFIC = 75, /**< Busy traffic (0.8 attn) */
|
||||
SNDLEVEL_MINIBIKE = 80, /**< Mini-bike, alarm clock (0.7 attn) */
|
||||
SNDLEVEL_SCREAMING = 90, /**< Screaming child (0.5 attn) */
|
||||
SNDLEVEL_TRAIN = 100, /**< Subway train, pneumatic drill (0.4 attn) */
|
||||
SNDLEVEL_HELICOPTER = 105, /**< Helicopter */
|
||||
SNDLEVEL_SNOWMOBILE = 110, /**< Snow mobile */
|
||||
SNDLEVEL_AIRCRAFT = 120, /**< Auto horn, aircraft */
|
||||
SNDLEVEL_RAIDSIREN = 130, /**< Air raid siren */
|
||||
SNDLEVEL_GUNFIRE = 140, /**< Gunshot, jet engine (0.27 attn) */
|
||||
SNDLEVEL_ROCKET = 180 /**< Rocket launching (0.2 attn) */
|
||||
};
|
||||
|
||||
#define SNDVOL_NORMAL 1.0 /**< Normal volume */
|
||||
#define SNDPITCH_NORMAL 100 /**< Normal pitch */
|
||||
#define SNDPITCH_LOW 95 /**< A low pitch */
|
||||
#define SNDPITCH_HIGH 120 /**< A high pitch */
|
||||
#define SNDATTN_NONE 0.0 /**< No attenuation */
|
||||
#define SNDATTN_NORMAL 0.8 /**< Normal attenuation */
|
||||
#define SNDATTN_STATIC 1.25 /**< Static attenuation? */
|
||||
#define SNDATTN_RICOCHET 1.5 /**< Ricochet effect */
|
||||
#define SNDATTN_IDLE 2.0 /**< Idle attenuation? */
|
||||
|
||||
#define SNDVOL_NORMAL 1.0 /**< Normal volume */
|
||||
#define SNDPITCH_NORMAL 100 /**< Normal pitch */
|
||||
#define SNDPITCH_LOW 95 /**< A low pitch */
|
||||
#define SNDPITCH_HIGH 120 /**< A high pitch */
|
||||
#define SNDATTN_NONE 0.0 /**< No attenuation */
|
||||
#define SNDATTN_NORMAL 0.8 /**< Normal attenuation */
|
||||
#define SNDATTN_STATIC 1.25 /**< Static attenuation? */
|
||||
#define SNDATTN_RICOCHET 1.5 /**< Ricochet effect */
|
||||
#define SNDATTN_IDLE 2.0 /**< Idle attenuation? */
|
||||
|
||||
/**
|
||||
* Prefetches a sound.
|
||||
*
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
*/
|
||||
native void PrefetchSound(const char[] name);
|
||||
|
||||
/**
|
||||
* This function is not known to work, and may crash. You should
|
||||
* This function is not known to work, and may crash. You should
|
||||
* not use it. It is provided for backwards compatibility only.
|
||||
*
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
* @return Duration in seconds.
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
* @return Duration in seconds.
|
||||
* @deprecated Does not work, may crash.
|
||||
*/
|
||||
#pragma deprecated Does not work, may crash.
|
||||
native float GetSoundDuration(const char[] name);
|
||||
@ -141,14 +142,14 @@ native float GetSoundDuration(const char[] name);
|
||||
/**
|
||||
* Emits an ambient sound.
|
||||
*
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
* @param pos Origin of sound.
|
||||
* @param entity Entity index to associate sound with.
|
||||
* @param level Sound level (from 0 to 255).
|
||||
* @param flags Sound flags.
|
||||
* @param vol Volume (from 0.0 to 1.0).
|
||||
* @param pitch Pitch (from 0 to 255).
|
||||
* @param delay Play delay.
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
* @param pos Origin of sound.
|
||||
* @param entity Entity index to associate sound with.
|
||||
* @param level Sound level (from 0 to 255).
|
||||
* @param flags Sound flags.
|
||||
* @param vol Volume (from 0.0 to 1.0).
|
||||
* @param pitch Pitch (from 0 to 255).
|
||||
* @param delay Play delay.
|
||||
*/
|
||||
native void EmitAmbientSound(const char[] name,
|
||||
const float pos[3],
|
||||
@ -162,43 +163,43 @@ native void EmitAmbientSound(const char[] name,
|
||||
/**
|
||||
* Fades a client's volume level toward silence or a given percentage.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param percent Fade percentage.
|
||||
* @param outtime Fade out time, in seconds.
|
||||
* @param holdtime Hold time, in seconds.
|
||||
* @param intime Fade in time, in seconds.
|
||||
* @error Invalid client index or client not in game.
|
||||
* @param client Client index.
|
||||
* @param percent Fade percentage.
|
||||
* @param outtime Fade out time, in seconds.
|
||||
* @param holdtime Hold time, in seconds.
|
||||
* @param intime Fade in time, in seconds.
|
||||
* @error Invalid client index or client not in game.
|
||||
*/
|
||||
native void FadeClientVolume(int client, float percent, float outtime, float holdtime, float intime);
|
||||
|
||||
/**
|
||||
* Stops a sound.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param channel Channel number.
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity index.
|
||||
* @param channel Channel number.
|
||||
* @param name Sound file name relative to the "sound" folder.
|
||||
*/
|
||||
native void StopSound(int entity, int channel, const char[] name);
|
||||
|
||||
/**
|
||||
* Emits a sound to a list of clients.
|
||||
*
|
||||
* @param clients Array of client indexes.
|
||||
* @param numClients Number of clients in the array.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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.
|
||||
* @param clients Array of client indexes.
|
||||
* @param numClients Number of clients in the array.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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 EmitSound(const int[] clients,
|
||||
int numClients,
|
||||
@ -220,24 +221,24 @@ native void EmitSound(const int[] clients,
|
||||
* 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 "sound" 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.
|
||||
* @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 "sound" 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,
|
||||
@ -260,22 +261,22 @@ native void EmitSoundEntry(const int[] clients,
|
||||
/**
|
||||
* 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 PrecacheSentenceFile).
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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.
|
||||
* @param clients Array of client indexes.
|
||||
* @param numClients Number of clients in the array.
|
||||
* @param sentence Sentence index (from PrecacheSentenceFile).
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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 EmitSentence(const int[] clients,
|
||||
int numClients,
|
||||
@ -292,13 +293,13 @@ native void EmitSentence(const int[] clients,
|
||||
bool updatePos = true,
|
||||
float soundtime = 0.0,
|
||||
any ...);
|
||||
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @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(int soundlevel, float distance);
|
||||
|
||||
@ -307,16 +308,16 @@ native float GetDistGainFromSoundLevel(int soundlevel, float distance);
|
||||
*
|
||||
* NOTICE: all parameters can be overwritten to modify the default behavior.
|
||||
*
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity index associated to the sound.
|
||||
* @param volume Volume (from 0.0 to 1.0).
|
||||
* @param level Sound level (from 0 to 255).
|
||||
* @param pitch Pitch (from 0 to 255).
|
||||
* @param pos Origin of sound.
|
||||
* @param flags Sound flags.
|
||||
* @param delay Play delay.
|
||||
* @return Plugin_Continue to allow the sound to be played, Plugin_Stop to block it,
|
||||
* Plugin_Changed when any parameter has been modified.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity index associated to the sound.
|
||||
* @param volume Volume (from 0.0 to 1.0).
|
||||
* @param level Sound level (from 0 to 255).
|
||||
* @param pitch Pitch (from 0 to 255).
|
||||
* @param pos Origin of sound.
|
||||
* @param flags Sound flags.
|
||||
* @param delay Play delay.
|
||||
* @return Plugin_Continue to allow the sound to be played, Plugin_Stop to block it,
|
||||
* Plugin_Changed when any parameter has been modified.
|
||||
*/
|
||||
typedef AmbientSHook = function Action (
|
||||
char sample[PLATFORM_MAX_PATH],
|
||||
@ -345,17 +346,17 @@ typeset NormalSHook
|
||||
// @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,
|
||||
// @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);
|
||||
@ -364,52 +365,52 @@ typeset NormalSHook
|
||||
/**
|
||||
* Hooks all played ambient sounds.
|
||||
*
|
||||
* @param hook Function to use as a hook.
|
||||
* @error Invalid function hook.
|
||||
* @param hook Function to use as a hook.
|
||||
* @error Invalid function hook.
|
||||
*/
|
||||
native void AddAmbientSoundHook(AmbientSHook hook);
|
||||
|
||||
/**
|
||||
* Hooks all played normal sounds.
|
||||
*
|
||||
* @param hook Function to use as a hook.
|
||||
* @error Invalid function hook.
|
||||
* @param hook Function to use as a hook.
|
||||
* @error Invalid function hook.
|
||||
*/
|
||||
native void AddNormalSoundHook(NormalSHook hook);
|
||||
|
||||
/**
|
||||
* Unhooks all played ambient sounds.
|
||||
*
|
||||
* @param hook Function used for the hook.
|
||||
* @error Invalid function hook.
|
||||
* @param hook Function used for the hook.
|
||||
* @error Invalid function hook.
|
||||
*/
|
||||
native void RemoveAmbientSoundHook(AmbientSHook hook);
|
||||
|
||||
/**
|
||||
* Unhooks all played normal sounds.
|
||||
*
|
||||
* @param hook Function used for the hook.
|
||||
* @error Invalid function hook.
|
||||
* @param hook Function used for the hook.
|
||||
* @error Invalid function hook.
|
||||
*/
|
||||
native void RemoveNormalSoundHook(NormalSHook hook);
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper to emit sound to one client.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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.
|
||||
* @error Invalid client index.
|
||||
* @param client Client index.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock void EmitSoundToClient(int client,
|
||||
const char[] sample,
|
||||
@ -429,7 +430,7 @@ stock void EmitSoundToClient(int client,
|
||||
clients[0] = client;
|
||||
/* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */
|
||||
entity = (entity == SOUND_FROM_PLAYER) ? client : entity;
|
||||
EmitSound(clients, 1, sample, entity, channel,
|
||||
EmitSound(clients, 1, sample, entity, channel,
|
||||
level, flags, volume, pitch, speakerentity,
|
||||
origin, dir, updatePos, soundtime);
|
||||
}
|
||||
@ -437,19 +438,19 @@ stock void EmitSoundToClient(int client,
|
||||
/**
|
||||
* Wrapper to emit sound to all clients.
|
||||
*
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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.
|
||||
* @error Invalid client index.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param entity Entity to emit from.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @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.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock void EmitSoundToAll(const char[] sample,
|
||||
int entity = SOUND_FROM_PLAYER,
|
||||
@ -466,7 +467,7 @@ stock void EmitSoundToAll(const char[] sample,
|
||||
{
|
||||
int[] clients = new int[MaxClients];
|
||||
int total = 0;
|
||||
|
||||
|
||||
for (int i=1; i<=MaxClients; i++)
|
||||
{
|
||||
if (IsClientInGame(i))
|
||||
@ -474,23 +475,21 @@ stock void EmitSoundToAll(const char[] sample,
|
||||
clients[total++] = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (!total)
|
||||
|
||||
if (total)
|
||||
{
|
||||
return;
|
||||
EmitSound(clients, total, sample, entity, channel,
|
||||
level, flags, volume, pitch, speakerentity,
|
||||
origin, dir, updatePos, soundtime);
|
||||
}
|
||||
|
||||
EmitSound(clients, total, sample, entity, channel,
|
||||
level, flags, volume, pitch, speakerentity,
|
||||
origin, dir, updatePos, soundtime);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an attenuation value to a sound level.
|
||||
* Converts an attenuation value to a sound level.
|
||||
* This function is from the HL2SDK.
|
||||
*
|
||||
* @param attn Attenuation value.
|
||||
* @return Integer sound level.
|
||||
* @param attn Attenuation value.
|
||||
* @return Integer sound level.
|
||||
*/
|
||||
stock int ATTN_TO_SNDLEVEL(float attn)
|
||||
{
|
||||
@ -510,16 +509,16 @@ stock int ATTN_TO_SNDLEVEL(float attn)
|
||||
* Note that if a game sound has a rndwave section, one of them will be returned
|
||||
* at random.
|
||||
*
|
||||
* @param gameSound Name of game sound.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @param volume Sound volume.
|
||||
* @param pitch Sound pitch.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param maxlength Maximum length of sample string buffer.
|
||||
* @param entity Entity the sound is being emitted from.
|
||||
* @return True if the sound was successfully retrieved, false if it
|
||||
* was not found
|
||||
* @param gameSound Name of game sound.
|
||||
* @param channel Channel to emit with.
|
||||
* @param level Sound level.
|
||||
* @param volume Sound volume.
|
||||
* @param pitch Sound pitch.
|
||||
* @param sample Sound file name relative to the "sound" folder.
|
||||
* @param maxlength Maximum length of sample string buffer.
|
||||
* @param entity Entity the sound is being emitted from.
|
||||
* @return True if the sound was successfully retrieved, false if it
|
||||
* was not found
|
||||
*/
|
||||
native bool GetGameSoundParams(const char[] gameSound,
|
||||
int &channel,
|
||||
@ -539,18 +538,18 @@ native bool GetGameSoundParams(const char[] gameSound,
|
||||
* Note that if a game sound has a rndwave section, one of them will be returned
|
||||
* at random.
|
||||
*
|
||||
* @param clients Array of client indexes.
|
||||
* @param numClients Number of clients in the array.
|
||||
* @param gameSound Name of game sound.
|
||||
* @param entity Entity to emit from.
|
||||
* @param flags Sound flags.
|
||||
* @param speakerentity Unknown.
|
||||
* @param origin Sound origin.
|
||||
* @param dir Sound direction.
|
||||
* @param updatePos Unknown (updates positions?)
|
||||
* @param soundtime Alternate time to play sound for.
|
||||
* @return True if the sound was played successfully, false if it failed
|
||||
* @error Invalid client index.
|
||||
* @param clients Array of client indexes.
|
||||
* @param numClients Number of clients in the array.
|
||||
* @param gameSound Name of game sound.
|
||||
* @param entity Entity to emit from.
|
||||
* @param flags Sound flags.
|
||||
* @param speakerentity Unknown.
|
||||
* @param origin Sound origin.
|
||||
* @param dir Sound direction.
|
||||
* @param updatePos Unknown (updates positions?)
|
||||
* @param soundtime Alternate time to play sound for.
|
||||
* @return True if the sound was played successfully, false if it failed
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock bool EmitGameSound(const int[] clients,
|
||||
int numClients,
|
||||
@ -568,16 +567,14 @@ stock bool EmitGameSound(const int[] clients,
|
||||
float volume;
|
||||
int pitch;
|
||||
char sample[PLATFORM_MAX_PATH];
|
||||
|
||||
|
||||
if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
|
||||
{
|
||||
EmitSound(clients, numClients, sample, entity, channel, level, flags, volume, pitch, speakerentity, origin, dir, updatePos, soundtime);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -589,11 +586,11 @@ stock bool EmitGameSound(const int[] clients,
|
||||
* Note that if a game sound has a rndwave section, one of them will be returned
|
||||
* at random.
|
||||
*
|
||||
* @param gameSound Name of game sound.
|
||||
* @param pos Origin of sound.
|
||||
* @param entity Entity index to associate sound with.
|
||||
* @param flags Sound flags.
|
||||
* @param delay Play delay.
|
||||
* @param gameSound Name of game sound.
|
||||
* @param pos Origin of sound.
|
||||
* @param entity Entity index to associate sound with.
|
||||
* @param flags Sound flags.
|
||||
* @param delay Play delay.
|
||||
*/
|
||||
stock bool EmitAmbientGameSound(const char[] gameSound,
|
||||
const float pos[3],
|
||||
@ -606,16 +603,14 @@ stock bool EmitAmbientGameSound(const char[] gameSound,
|
||||
float volume;
|
||||
int pitch;
|
||||
char sample[PLATFORM_MAX_PATH];
|
||||
|
||||
|
||||
if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
|
||||
{
|
||||
EmitAmbientSound(sample, pos, entity, level, flags, volume, pitch, delay);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -627,16 +622,16 @@ stock bool EmitAmbientGameSound(const char[] gameSound,
|
||||
* Note that if a game sound has a rndwave section, one of them will be returned
|
||||
* at random.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param gameSound Name of game sound.
|
||||
* @param entity Entity to emit from.
|
||||
* @param flags Sound flags.
|
||||
* @param speakerentity Unknown.
|
||||
* @param origin Sound origin.
|
||||
* @param dir Sound direction.
|
||||
* @param updatePos Unknown (updates positions?)
|
||||
* @param soundtime Alternate time to play sound for.
|
||||
* @error Invalid client index.
|
||||
* @param client Client index.
|
||||
* @param gameSound Name of game sound.
|
||||
* @param entity Entity to emit from.
|
||||
* @param flags Sound flags.
|
||||
* @param speakerentity Unknown.
|
||||
* @param origin Sound origin.
|
||||
* @param dir Sound direction.
|
||||
* @param updatePos Unknown (updates positions?)
|
||||
* @param soundtime Alternate time to play sound for.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock bool EmitGameSoundToClient(int client,
|
||||
const char[] gameSound,
|
||||
@ -665,15 +660,15 @@ stock bool EmitGameSoundToClient(int client,
|
||||
* Note that if a game sound has a rndwave section, one of them will be returned
|
||||
* at random.
|
||||
*
|
||||
* @param gameSound Name of game sound.
|
||||
* @param entity Entity to emit from.
|
||||
* @param flags Sound flags.
|
||||
* @param speakerentity Unknown.
|
||||
* @param origin Sound origin.
|
||||
* @param dir Sound direction.
|
||||
* @param updatePos Unknown (updates positions?)
|
||||
* @param soundtime Alternate time to play sound for.
|
||||
* @error Invalid client index.
|
||||
* @param gameSound Name of game sound.
|
||||
* @param entity Entity to emit from.
|
||||
* @param flags Sound flags.
|
||||
* @param speakerentity Unknown.
|
||||
* @param origin Sound origin.
|
||||
* @param dir Sound direction.
|
||||
* @param updatePos Unknown (updates positions?)
|
||||
* @param soundtime Alternate time to play sound for.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock bool EmitGameSoundToAll(const char[] gameSound,
|
||||
int entity = SOUND_FROM_PLAYER,
|
||||
@ -686,7 +681,7 @@ stock bool EmitGameSoundToAll(const char[] gameSound,
|
||||
{
|
||||
int[] clients = new int[MaxClients];
|
||||
int total = 0;
|
||||
|
||||
|
||||
for (int i=1; i<=MaxClients; i++)
|
||||
{
|
||||
if (IsClientInGame(i))
|
||||
@ -694,12 +689,12 @@ stock bool EmitGameSoundToAll(const char[] gameSound,
|
||||
clients[total++] = i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!total)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return EmitGameSound(clients, total, gameSound, entity, flags,
|
||||
speakerentity, origin, dir, updatePos, soundtime);
|
||||
}
|
||||
@ -710,16 +705,15 @@ stock bool EmitGameSoundToAll(const char[] gameSound,
|
||||
* Most games will precache all game sounds on map start, but this is not guaranteed...
|
||||
* Team Fortress 2 is known to not pre-cache MvM game mode sounds on non-MvM maps.
|
||||
*
|
||||
* Due to the above, this native should be called before any calls to GetGameSoundParams,
|
||||
* Due to the above, this native should be called before any calls to GetGameSoundParams,
|
||||
* EmitGameSound*, or EmitAmbientGameSound.
|
||||
*
|
||||
* It should be safe to pass already precached game sounds to this function.
|
||||
*
|
||||
*
|
||||
* Note: It precaches all files for a game sound.
|
||||
*
|
||||
* @param soundname Game sound to precache
|
||||
*
|
||||
* @return True if the game sound was found, false if sound did not exist
|
||||
* or had no files
|
||||
*
|
||||
* @param soundname Game sound to precache
|
||||
* @return True if the game sound was found, false if sound did not exist
|
||||
* or had no files
|
||||
*/
|
||||
native bool PrecacheScriptSound(const char[] soundname);
|
||||
|
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_stocks_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_stocks_included
|
||||
|
||||
@ -42,10 +42,10 @@
|
||||
* first N characters of the team names, where N is the number of
|
||||
* characters in the search pattern.
|
||||
*
|
||||
* @param name Partial or full team name.
|
||||
* @return A valid team index on success.
|
||||
* -1 if no team matched.
|
||||
* -2 if more than one team matched.
|
||||
* @param name Partial or full team name.
|
||||
* @return A valid team index on success.
|
||||
* -1 if no team matched.
|
||||
* -2 if more than one team matched.
|
||||
*/
|
||||
stock int FindTeamByName(const char[] name)
|
||||
{
|
||||
|
@ -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
|
||||
@ -31,131 +31,131 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_stringtables_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_stringtables_included
|
||||
|
||||
#define INVALID_STRING_TABLE -1 /**< An invalid string table index */
|
||||
#define INVALID_STRING_INDEX -1 /**< An invalid string index in a table */
|
||||
#define INVALID_STRING_TABLE -1 /**< An invalid string table index */
|
||||
#define INVALID_STRING_INDEX -1 /**< An invalid string index in a table */
|
||||
|
||||
/**
|
||||
* Searches for a string table.
|
||||
*
|
||||
* @param name Name of string table to find.
|
||||
* @return A string table index number if found, INVALID_STRING_TABLE otherwise.
|
||||
* @param name Name of string table to find.
|
||||
* @return A string table index number if found, INVALID_STRING_TABLE otherwise.
|
||||
*/
|
||||
native int FindStringTable(const char[] name);
|
||||
|
||||
/**
|
||||
* Returns the number of string tables that currently exist.
|
||||
*
|
||||
* @return Number of string tables that currently exist.
|
||||
* @return Number of string tables that currently exist.
|
||||
*/
|
||||
native int GetNumStringTables();
|
||||
|
||||
/**
|
||||
* Returns the number of strings that currently exist in a given string table.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @return Number of strings that currently exist.
|
||||
* @error Invalid string table index.
|
||||
* @param tableidx A string table index.
|
||||
* @return Number of strings that currently exist.
|
||||
* @error Invalid string table index.
|
||||
*/
|
||||
native int GetStringTableNumStrings(int tableidx);
|
||||
|
||||
/**
|
||||
* Returns the maximum number of strings that are allowed in a given string table.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @return Maximum number of strings allowed.
|
||||
* @error Invalid string table index.
|
||||
* @param tableidx A string table index.
|
||||
* @return Maximum number of strings allowed.
|
||||
* @error Invalid string table index.
|
||||
*/
|
||||
native int GetStringTableMaxStrings(int tableidx);
|
||||
|
||||
/**
|
||||
* Retrieves the name of a string table.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @param name Buffer to store the name of the string table.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index.
|
||||
* @param tableidx A string table index.
|
||||
* @param name Buffer to store the name of the string table.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index.
|
||||
*/
|
||||
native int GetStringTableName(int tableidx, char[] name, int maxlength);
|
||||
|
||||
/**
|
||||
* Searches for the index of a given string in a string table.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @param str String to find.
|
||||
* @return String index if found, INVALID_STRING_INDEX otherwise.
|
||||
* @error Invalid string table index.
|
||||
* @param tableidx A string table index.
|
||||
* @param str String to find.
|
||||
* @return String index if found, INVALID_STRING_INDEX otherwise.
|
||||
* @error Invalid string table index.
|
||||
*/
|
||||
native int FindStringIndex(int tableidx, const char[] str);
|
||||
|
||||
/**
|
||||
* Retrieves the string at a given index of a string table.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @param str Buffer to store the string value.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index or string index.
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @param str Buffer to store the string value.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index or string index.
|
||||
*/
|
||||
native int ReadStringTable(int tableidx, int stringidx, char[] str, int maxlength);
|
||||
|
||||
/**
|
||||
* Returns the length of the user data associated with a given string index.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @return Length of user data. This will be 0 if there is no user data.
|
||||
* @error Invalid string table index or string index.
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @return Length of user data. This will be 0 if there is no user data.
|
||||
* @error Invalid string table index or string index.
|
||||
*/
|
||||
native int GetStringTableDataLength(int tableidx, int stringidx);
|
||||
|
||||
/**
|
||||
* Retrieves the user data associated with a given string index.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @param userdata Buffer to store the user data. This will be set to "" if there is no user data.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index or string index.
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @param userdata Buffer to store the user data. This will be set to "" if there is no user data.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index or string index.
|
||||
*/
|
||||
native int GetStringTableData(int tableidx, int stringidx, char[] userdata, int maxlength);
|
||||
|
||||
/**
|
||||
* Sets the user data associated with a given string index.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @param userdata User data string that will be set.
|
||||
* @param length Length of user data string. This should include the null terminator.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index or string index.
|
||||
* @param tableidx A string table index.
|
||||
* @param stringidx A string index.
|
||||
* @param userdata User data string that will be set.
|
||||
* @param length Length of user data string. This should include the null terminator.
|
||||
* @return Number of bytes written to the buffer (UTF-8 safe).
|
||||
* @error Invalid string table index or string index.
|
||||
*/
|
||||
native int SetStringTableData(int tableidx, int stringidx, const char[] userdata, int length);
|
||||
|
||||
/**
|
||||
* Adds a string to a given string table.
|
||||
*
|
||||
* @param tableidx A string table index.
|
||||
* @param str String to add.
|
||||
* @param userdata An optional user data string.
|
||||
* @param length Length of user data string. This should include the null terminator.
|
||||
* If set to -1, then user data will be not be altered if the specified string
|
||||
* already exists in the string table.
|
||||
* @param tableidx A string table index.
|
||||
* @param str String to add.
|
||||
* @param userdata An optional user data string.
|
||||
* @param length Length of user data string. This should include the null terminator.
|
||||
* If set to -1, then user data will be not be altered if the specified string
|
||||
* already exists in the string table.
|
||||
*/
|
||||
native void AddToStringTable(int tableidx, const char[] str, const char[] userdata="", int length=-1);
|
||||
|
||||
/**
|
||||
* Locks or unlocks the network string tables.
|
||||
*
|
||||
* @param lock Determines whether network string tables should be locked.
|
||||
* True means the tables should be locked for writing; false means unlocked.
|
||||
* @return Previous lock state.
|
||||
* @param lock Determines whether network string tables should be locked.
|
||||
* True means the tables should be locked for writing; false means unlocked.
|
||||
* @return Previous lock state.
|
||||
*/
|
||||
native bool LockStringTables(bool lock);
|
||||
|
||||
@ -163,17 +163,17 @@ native bool LockStringTables(bool lock);
|
||||
* Adds a file to the downloadables network string table.
|
||||
* This forces a client to download the file if they do not already have it.
|
||||
*
|
||||
* @param filename File that will be added to downloadables table.
|
||||
* @param filename File that will be added to downloadables table.
|
||||
*/
|
||||
stock void AddFileToDownloadsTable(const char[] filename)
|
||||
{
|
||||
static int table = INVALID_STRING_TABLE;
|
||||
|
||||
|
||||
if (table == INVALID_STRING_TABLE)
|
||||
{
|
||||
table = FindStringTable("downloadables");
|
||||
}
|
||||
|
||||
|
||||
bool save = LockStringTables(false);
|
||||
AddToStringTable(table, filename);
|
||||
LockStringTables(save);
|
||||
|
@ -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
|
||||
@ -38,128 +38,128 @@
|
||||
/**
|
||||
* Called when a temp entity is going to be sent.
|
||||
*
|
||||
* @param te_name TE name.
|
||||
* @param Players Array containing target player indexes.
|
||||
* @param numClients Number of players in the array.
|
||||
* @param delay Delay in seconds to send the TE.
|
||||
* @return Plugin_Continue to allow the transmission of the TE, Plugin_Stop to block it.
|
||||
* @param te_name TE name.
|
||||
* @param Players Array containing target player indexes.
|
||||
* @param numClients Number of players in the array.
|
||||
* @param delay Delay in seconds to send the TE.
|
||||
* @return Plugin_Continue to allow the transmission of the TE, Plugin_Stop to block it.
|
||||
*/
|
||||
typedef TEHook = function Action (const char[] te_name, const int[] Players, int numClients, float delay);
|
||||
|
||||
/**
|
||||
* Hooks a temp entity.
|
||||
*
|
||||
* @param te_name TE name to hook.
|
||||
* @param hook Function to use as a hook.
|
||||
* @error Temp Entity name not available or invalid function hook.
|
||||
* @param te_name TE name to hook.
|
||||
* @param hook Function to use as a hook.
|
||||
* @error Temp Entity name not available or invalid function 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.
|
||||
* @error Temp Entity name not available or invalid function hook.
|
||||
* @param te_name TE name to unhook.
|
||||
* @param hook Function used for the hook.
|
||||
* @error Temp Entity name not available or invalid function hook.
|
||||
*/
|
||||
native void RemoveTempEntHook(const char[] te_name, TEHook hook);
|
||||
|
||||
/**
|
||||
* Starts a temp entity transmission.
|
||||
*
|
||||
* @param te_name TE name.
|
||||
* @error Temp Entity name not available.
|
||||
* @param te_name TE name.
|
||||
* @error Temp Entity name not available.
|
||||
*/
|
||||
native void TE_Start(const char[] te_name);
|
||||
|
||||
/**
|
||||
* Checks if a certain TE property exists.
|
||||
*
|
||||
* @param prop Property to use.
|
||||
* @return True if the property exists, otherwise false.
|
||||
* @param prop Property to use.
|
||||
* @return True if the property exists, otherwise false.
|
||||
*/
|
||||
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.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @param value Integer value to set.
|
||||
* @error Property not found.
|
||||
*/
|
||||
native void TE_WriteNum(const char[] prop, int value);
|
||||
|
||||
/**
|
||||
* Reads an integer value in the current temp entity.
|
||||
*
|
||||
* @param prop Property to use.
|
||||
* @return Property value.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @return Property value.
|
||||
* @error Property not found.
|
||||
*/
|
||||
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.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @param value Floating point number to set.
|
||||
* @error Property not found.
|
||||
*/
|
||||
native void TE_WriteFloat(const char[] prop, float value);
|
||||
|
||||
/**
|
||||
* Reads a floating point number in the current temp entity.
|
||||
*
|
||||
* @param prop Property to use.
|
||||
* @return Property value.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @return Property value.
|
||||
* @error Property not found.
|
||||
*/
|
||||
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.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @param vector Vector to set.
|
||||
* @error Property not found.
|
||||
*/
|
||||
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.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @param vector Vector to read.
|
||||
* @error Property not found.
|
||||
*/
|
||||
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.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @param angles Angles to set.
|
||||
* @error Property not found.
|
||||
*/
|
||||
native void TE_WriteAngles(const char[] prop, const float angles[3]);
|
||||
|
||||
/**
|
||||
* Sets an array of floats in the current temp entity.
|
||||
*
|
||||
* @param prop Property to use.
|
||||
* @param array Array of values to copy.
|
||||
* @param arraySize Number of values to copy.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @param array Array of values to copy.
|
||||
* @param arraySize Number of values to copy.
|
||||
* @error Property not found.
|
||||
*/
|
||||
native void TE_WriteFloatArray(const char[] prop, const float[] array, int arraySize);
|
||||
|
||||
/**
|
||||
* Sends the current temp entity to one or more clients.
|
||||
*
|
||||
* @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.
|
||||
* @error Invalid client index or client not in game.
|
||||
* @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.
|
||||
* @error Invalid client index or client not in game.
|
||||
*/
|
||||
native void TE_Send(const int[] clients, int numClients, float delay=0.0);
|
||||
|
||||
@ -167,9 +167,9 @@ native void TE_Send(const int[] clients, int numClients, float delay=0.0);
|
||||
* Sets an encoded entity index in the current temp entity.
|
||||
* (This is usually used for m_nStartEntity and m_nEndEntity).
|
||||
*
|
||||
* @param prop Property to use.
|
||||
* @param value Value to set.
|
||||
* @error Property not found.
|
||||
* @param prop Property to use.
|
||||
* @param value Value to set.
|
||||
* @error Property not found.
|
||||
*/
|
||||
stock void TE_WriteEncodedEnt(const char[] prop, int value)
|
||||
{
|
||||
@ -181,7 +181,7 @@ stock void TE_WriteEncodedEnt(const char[] prop, int value)
|
||||
* Broadcasts the current temp entity to all clients.
|
||||
* @note See TE_Start().
|
||||
*
|
||||
* @param delay Delay in seconds to send the TE.
|
||||
* @param delay Delay in seconds to send the TE.
|
||||
*/
|
||||
stock void TE_SendToAll(float delay=0.0)
|
||||
{
|
||||
@ -201,9 +201,9 @@ stock void TE_SendToAll(float delay=0.0)
|
||||
* Sends the current TE to only a client.
|
||||
* @note See TE_Start().
|
||||
*
|
||||
* @param client Client to send to.
|
||||
* @param delay Delay in seconds to send the TE.
|
||||
* @error Invalid client index or client not in game.
|
||||
* @param client Client to send to.
|
||||
* @param delay Delay in seconds to send the TE.
|
||||
* @error Invalid client index or client not in game.
|
||||
*/
|
||||
stock void TE_SendToClient(int client, float delay=0.0)
|
||||
{
|
||||
@ -215,14 +215,14 @@ stock void TE_SendToClient(int client, float delay=0.0)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the current TE to all clients that are in
|
||||
* 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.
|
||||
* @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)
|
||||
{
|
||||
|
@ -38,15 +38,15 @@
|
||||
/**
|
||||
* @section TE Explosion flags.
|
||||
*/
|
||||
#define TE_EXPLFLAG_NONE 0x0 /**< all flags clear makes default Half-Life explosion */
|
||||
#define TE_EXPLFLAG_NOADDITIVE 0x1 /**< sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite) */
|
||||
#define TE_EXPLFLAG_NODLIGHTS 0x2 /**< do not render dynamic lights */
|
||||
#define TE_EXPLFLAG_NOSOUND 0x4 /**< do not play client explosion sound */
|
||||
#define TE_EXPLFLAG_NOPARTICLES 0x8 /**< do not draw particles */
|
||||
#define TE_EXPLFLAG_DRAWALPHA 0x10 /**< sprite will be drawn alpha */
|
||||
#define TE_EXPLFLAG_ROTATE 0x20 /**< rotate the sprite randomly */
|
||||
#define TE_EXPLFLAG_NOFIREBALL 0x40 /**< do not draw a fireball */
|
||||
#define TE_EXPLFLAG_NOFIREBALLSMOKE 0x80 /**< do not draw smoke with the fireball */
|
||||
#define TE_EXPLFLAG_NONE 0x0 /**< all flags clear makes default Half-Life explosion */
|
||||
#define TE_EXPLFLAG_NOADDITIVE 0x1 /**< sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite) */
|
||||
#define TE_EXPLFLAG_NODLIGHTS 0x2 /**< do not render dynamic lights */
|
||||
#define TE_EXPLFLAG_NOSOUND 0x4 /**< do not play client explosion sound */
|
||||
#define TE_EXPLFLAG_NOPARTICLES 0x8 /**< do not draw particles */
|
||||
#define TE_EXPLFLAG_DRAWALPHA 0x10 /**< sprite will be drawn alpha */
|
||||
#define TE_EXPLFLAG_ROTATE 0x20 /**< rotate the sprite randomly */
|
||||
#define TE_EXPLFLAG_NOFIREBALL 0x40 /**< do not draw a fireball */
|
||||
#define TE_EXPLFLAG_NOFIREBALLSMOKE 0x80 /**< do not draw smoke with the fireball */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
@ -55,22 +55,22 @@
|
||||
/**
|
||||
* @section TE Beam flags.
|
||||
*/
|
||||
#define FBEAM_STARTENTITY 0x00000001
|
||||
#define FBEAM_ENDENTITY 0x00000002
|
||||
#define FBEAM_FADEIN 0x00000004
|
||||
#define FBEAM_FADEOUT 0x00000008
|
||||
#define FBEAM_SINENOISE 0x00000010
|
||||
#define FBEAM_SOLID 0x00000020
|
||||
#define FBEAM_SHADEIN 0x00000040
|
||||
#define FBEAM_SHADEOUT 0x00000080
|
||||
#define FBEAM_ONLYNOISEONCE 0x00000100 /**< Only calculate our noise once */
|
||||
#define FBEAM_NOTILE 0x00000200
|
||||
#define FBEAM_USE_HITBOXES 0x00000400 /**< Attachment indices represent hitbox indices instead when this is set. */
|
||||
#define FBEAM_STARTVISIBLE 0x00000800 /**< Has this client actually seen this beam's start entity yet? */
|
||||
#define FBEAM_ENDVISIBLE 0x00001000 /**< Has this client actually seen this beam's end entity yet? */
|
||||
#define FBEAM_ISACTIVE 0x00002000
|
||||
#define FBEAM_FOREVER 0x00004000
|
||||
#define FBEAM_HALOBEAM 0x00008000 /**< When drawing a beam with a halo, don't ignore the segments and endwidth */
|
||||
#define FBEAM_STARTENTITY 0x00000001
|
||||
#define FBEAM_ENDENTITY 0x00000002
|
||||
#define FBEAM_FADEIN 0x00000004
|
||||
#define FBEAM_FADEOUT 0x00000008
|
||||
#define FBEAM_SINENOISE 0x00000010
|
||||
#define FBEAM_SOLID 0x00000020
|
||||
#define FBEAM_SHADEIN 0x00000040
|
||||
#define FBEAM_SHADEOUT 0x00000080
|
||||
#define FBEAM_ONLYNOISEONCE 0x00000100 /**< Only calculate our noise once */
|
||||
#define FBEAM_NOTILE 0x00000200
|
||||
#define FBEAM_USE_HITBOXES 0x00000400 /**< Attachment indices represent hitbox indices instead when this is set. */
|
||||
#define FBEAM_STARTVISIBLE 0x00000800 /**< Has this client actually seen this beam's start entity yet? */
|
||||
#define FBEAM_ENDVISIBLE 0x00001000 /**< Has this client actually seen this beam's end entity yet? */
|
||||
#define FBEAM_ISACTIVE 0x00002000
|
||||
#define FBEAM_FOREVER 0x00004000
|
||||
#define FBEAM_HALOBEAM 0x00008000 /**< When drawing a beam with a halo, don't ignore the segments and endwidth */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
@ -79,10 +79,10 @@
|
||||
/**
|
||||
* Sets up a sparks effect.
|
||||
*
|
||||
* @param pos Position of the sparks.
|
||||
* @param dir Direction of the sparks.
|
||||
* @param Magnitude Sparks size.
|
||||
* @param TrailLength Trail lenght of the sparks.
|
||||
* @param pos Position of the sparks.
|
||||
* @param dir Direction of the sparks.
|
||||
* @param Magnitude Sparks size.
|
||||
* @param TrailLength Trail lenght of the sparks.
|
||||
*/
|
||||
stock void TE_SetupSparks(const float pos[3], const float dir[3], int Magnitude, int TrailLength)
|
||||
{
|
||||
@ -96,10 +96,10 @@ stock void TE_SetupSparks(const float pos[3], const float dir[3], int Magnitude,
|
||||
/**
|
||||
* Sets up a smoke effect.
|
||||
*
|
||||
* @param pos Position of the smoke.
|
||||
* @param Model Precached model index.
|
||||
* @param Scale Scale of the smoke.
|
||||
* @param FrameRate Frame rate of the smoke.
|
||||
* @param pos Position of the smoke.
|
||||
* @param Model Precached model index.
|
||||
* @param Scale Scale of the smoke.
|
||||
* @param FrameRate Frame rate of the smoke.
|
||||
*/
|
||||
stock void TE_SetupSmoke(const float pos[3], int Model, float Scale, int FrameRate)
|
||||
{
|
||||
@ -113,10 +113,10 @@ stock void TE_SetupSmoke(const float pos[3], int Model, float Scale, int FrameRa
|
||||
/**
|
||||
* Sets up a dust cloud effect.
|
||||
*
|
||||
* @param pos Position of the dust.
|
||||
* @param dir Direction of the dust.
|
||||
* @param Size Dust cloud size.
|
||||
* @param Speed Dust cloud speed.
|
||||
* @param pos Position of the dust.
|
||||
* @param dir Direction of the dust.
|
||||
* @param Size Dust cloud size.
|
||||
* @param Speed Dust cloud speed.
|
||||
*/
|
||||
stock void TE_SetupDust(const float pos[3], const float dir[3], float Size, float Speed)
|
||||
{
|
||||
@ -130,10 +130,10 @@ stock void TE_SetupDust(const float pos[3], const float dir[3], float Size, floa
|
||||
/**
|
||||
* Sets up a muzzle flash effect.
|
||||
*
|
||||
* @param pos Position of the muzzle flash.
|
||||
* @param angles Rotation angles of the muzzle flash.
|
||||
* @param Scale Scale of the muzzle flash.
|
||||
* @param Type Muzzle flash type to render (Mod specific).
|
||||
* @param pos Position of the muzzle flash.
|
||||
* @param angles Rotation angles of the muzzle flash.
|
||||
* @param Scale Scale of the muzzle flash.
|
||||
* @param Type Muzzle flash type to render (Mod specific).
|
||||
*/
|
||||
stock void TE_SetupMuzzleFlash(const float pos[3], const float angles[3], float Scale, int Type)
|
||||
{
|
||||
@ -147,8 +147,8 @@ stock void TE_SetupMuzzleFlash(const float pos[3], const float angles[3], float
|
||||
/**
|
||||
* Sets up a metal sparks effect.
|
||||
*
|
||||
* @param pos Position of the metal sparks.
|
||||
* @param dir Direction of the metal sparks.
|
||||
* @param pos Position of the metal sparks.
|
||||
* @param dir Direction of the metal sparks.
|
||||
*/
|
||||
stock void TE_SetupMetalSparks(const float pos[3], const float dir[3])
|
||||
{
|
||||
@ -160,9 +160,9 @@ stock void TE_SetupMetalSparks(const float pos[3], const float dir[3])
|
||||
/**
|
||||
* Sets up an energy splash effect.
|
||||
*
|
||||
* @param pos Position of the energy splash.
|
||||
* @param dir Direction of the energy splash.
|
||||
* @param Explosive Makes the effect explosive.
|
||||
* @param pos Position of the energy splash.
|
||||
* @param dir Direction of the energy splash.
|
||||
* @param Explosive Makes the effect explosive.
|
||||
*/
|
||||
stock void TE_SetupEnergySplash(const float pos[3], const float dir[3], bool Explosive)
|
||||
{
|
||||
@ -175,8 +175,8 @@ stock void TE_SetupEnergySplash(const float pos[3], const float dir[3], bool Exp
|
||||
/**
|
||||
* Sets up an armor ricochet effect.
|
||||
*
|
||||
* @param pos Position of the armor ricochet.
|
||||
* @param dir Direction of the armor ricochet.
|
||||
* @param pos Position of the armor ricochet.
|
||||
* @param dir Direction of the armor ricochet.
|
||||
*/
|
||||
stock void TE_SetupArmorRicochet(const float pos[3], const float dir[3])
|
||||
{
|
||||
@ -188,11 +188,11 @@ stock void TE_SetupArmorRicochet(const float pos[3], const float dir[3])
|
||||
/**
|
||||
* Sets up a glowing sprite effect.
|
||||
*
|
||||
* @param pos Position of the sprite.
|
||||
* @param Model Precached model index.
|
||||
* @param Life Time duration of the sprite.
|
||||
* @param Size Sprite size.
|
||||
* @param Brightness Sprite brightness.
|
||||
* @param pos Position of the sprite.
|
||||
* @param Model Precached model index.
|
||||
* @param Life Time duration of the sprite.
|
||||
* @param Size Sprite size.
|
||||
* @param Brightness Sprite brightness.
|
||||
*/
|
||||
stock void TE_SetupGlowSprite(const float pos[3], int Model, float Life, float Size, int Brightness)
|
||||
{
|
||||
@ -207,15 +207,15 @@ stock void TE_SetupGlowSprite(const float pos[3], int Model, float Life, float S
|
||||
/**
|
||||
* Sets up a explosion effect.
|
||||
*
|
||||
* @param pos Explosion position.
|
||||
* @param Model Precached model index.
|
||||
* @param Scale Explosion scale.
|
||||
* @param Framerate Explosion frame rate.
|
||||
* @param Flags Explosion flags.
|
||||
* @param Radius Explosion radius.
|
||||
* @param Magnitude Explosion size.
|
||||
* @param normal Normal vector to the explosion.
|
||||
* @param MaterialType Exploded material type.
|
||||
* @param pos Explosion position.
|
||||
* @param Model Precached model index.
|
||||
* @param Scale Explosion scale.
|
||||
* @param Framerate Explosion frame rate.
|
||||
* @param Flags Explosion flags.
|
||||
* @param Radius Explosion radius.
|
||||
* @param Magnitude Explosion size.
|
||||
* @param normal Normal vector to the explosion.
|
||||
* @param MaterialType Exploded material type.
|
||||
*/
|
||||
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')
|
||||
{
|
||||
@ -234,12 +234,12 @@ stock void TE_SetupExplosion(const float pos[3], int Model, float Scale, int Fra
|
||||
/**
|
||||
* Sets up a blood sprite effect.
|
||||
*
|
||||
* @param pos Position of the sprite.
|
||||
* @param dir Sprite direction.
|
||||
* @param color Color array (r, g, b, a).
|
||||
* @param Size Sprite size.
|
||||
* @param SprayModel Precached model index.
|
||||
* @param BloodDropModel Precached model index.
|
||||
* @param pos Position of the sprite.
|
||||
* @param dir Sprite direction.
|
||||
* @param color Color array (r, g, b, a).
|
||||
* @param Size Sprite size.
|
||||
* @param SprayModel Precached model index.
|
||||
* @param BloodDropModel Precached model index.
|
||||
*/
|
||||
stock void TE_SetupBloodSprite(const float pos[3], const float dir[3], const int color[4], int Size, int SprayModel, int BloodDropModel)
|
||||
{
|
||||
@ -258,19 +258,19 @@ stock void TE_SetupBloodSprite(const float pos[3], const float dir[3], const int
|
||||
/**
|
||||
* Sets up a beam ring point effect.
|
||||
*
|
||||
* @param center Center position of the ring.
|
||||
* @param Start_Radius Initial ring radius.
|
||||
* @param End_Radius Final ring radius.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Ring frame rate.
|
||||
* @param Life Time duration of the ring.
|
||||
* @param Width Beam width.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
* @param Flags Beam flags.
|
||||
* @param center Center position of the ring.
|
||||
* @param Start_Radius Initial ring radius.
|
||||
* @param End_Radius Final ring radius.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Ring frame rate.
|
||||
* @param Life Time duration of the ring.
|
||||
* @param Width Beam width.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
* @param Flags Beam 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)
|
||||
@ -299,19 +299,19 @@ stock void TE_SetupBeamRingPoint(const float center[3], float Start_Radius, floa
|
||||
/**
|
||||
* Sets up a point to point beam effect.
|
||||
*
|
||||
* @param start Start position of the beam.
|
||||
* @param end End position of the beam.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Beam frame rate.
|
||||
* @param Life Time duration of the beam.
|
||||
* @param Width Initial beam width.
|
||||
* @param EndWidth Final beam width.
|
||||
* @param FadeLength Beam fade time duration.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
* @param start Start position of the beam.
|
||||
* @param end End position of the beam.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Beam frame rate.
|
||||
* @param Life Time duration of the beam.
|
||||
* @param Width Initial beam width.
|
||||
* @param EndWidth Final beam width.
|
||||
* @param FadeLength Beam fade time duration.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
*/
|
||||
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)
|
||||
@ -338,19 +338,19 @@ stock void TE_SetupBeamPoints(const float start[3], const float end[3], int Mode
|
||||
/**
|
||||
* Sets up an entity to entity laser effect.
|
||||
*
|
||||
* @param StartEntity Entity index from where the beam starts.
|
||||
* @param EndEntity Entity index from where the beam ends.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Beam frame rate.
|
||||
* @param Life Time duration of the beam.
|
||||
* @param Width Initial beam width.
|
||||
* @param EndWidth Final beam width.
|
||||
* @param FadeLength Beam fade time duration.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
* @param StartEntity Entity index from where the beam starts.
|
||||
* @param EndEntity Entity index from where the beam ends.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Beam frame rate.
|
||||
* @param Life Time duration of the beam.
|
||||
* @param Width Initial beam width.
|
||||
* @param EndWidth Final beam width.
|
||||
* @param FadeLength Beam fade time duration.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
*/
|
||||
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)
|
||||
@ -377,18 +377,18 @@ stock void TE_SetupBeamLaser(int StartEntity, int EndEntity, int ModelIndex, int
|
||||
/**
|
||||
* Sets up a beam ring effect.
|
||||
*
|
||||
* @param StartEntity Entity index from where the ring starts.
|
||||
* @param EndEntity Entity index from where the ring ends.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Ring frame rate.
|
||||
* @param Life Time duration of the ring.
|
||||
* @param Width Beam width.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
* @param Flags Beam flags.
|
||||
* @param StartEntity Entity index from where the ring starts.
|
||||
* @param EndEntity Entity index from where the ring ends.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param StartFrame Initial frame to render.
|
||||
* @param FrameRate Ring frame rate.
|
||||
* @param Life Time duration of the ring.
|
||||
* @param Width Beam width.
|
||||
* @param Amplitude Beam amplitude.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param Speed Speed of the beam.
|
||||
* @param Flags Beam 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)
|
||||
{
|
||||
@ -415,14 +415,14 @@ stock void TE_SetupBeamRing(int StartEntity, int EndEntity, int ModelIndex, int
|
||||
/**
|
||||
* Sets up a follow beam effect.
|
||||
*
|
||||
* @param EntIndex Entity index from where the beam starts.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param Life Time duration of the beam.
|
||||
* @param Width Initial beam width.
|
||||
* @param EndWidth Final beam width.
|
||||
* @param FadeLength Beam fade time duration.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
* @param EntIndex Entity index from where the beam starts.
|
||||
* @param ModelIndex Precached model index.
|
||||
* @param HaloIndex Precached model index.
|
||||
* @param Life Time duration of the beam.
|
||||
* @param Width Initial beam width.
|
||||
* @param EndWidth Final beam width.
|
||||
* @param FadeLength Beam fade time duration.
|
||||
* @param Color Color array (r, g, b, a).
|
||||
*/
|
||||
stock void TE_SetupBeamFollow(int EntIndex, int ModelIndex, int HaloIndex, float Life, float Width, float EndWidth, int FadeLength, const int Color[4])
|
||||
{
|
||||
|
@ -103,11 +103,11 @@
|
||||
/**
|
||||
* @endsection
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @section Surface flags.
|
||||
*/
|
||||
|
||||
|
||||
#define SURF_LIGHT 0x0001 /**< value will hold the light strength */
|
||||
#define SURF_SKY2D 0x0002 /**< don't draw, indicates we should skylight + draw 2d sky but not draw the 3D skybox */
|
||||
#define SURF_SKY 0x0004 /**< don't draw, but add to skybox */
|
||||
@ -130,11 +130,11 @@
|
||||
/**
|
||||
* @endsection
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @section Partition masks.
|
||||
*/
|
||||
|
||||
|
||||
#define PARTITION_SOLID_EDICTS (1 << 1) /**< every edict_t that isn't SOLID_TRIGGER or SOLID_NOT (and static props) */
|
||||
#define PARTITION_TRIGGER_EDICTS (1 << 2) /**< every edict_t that IS SOLID_TRIGGER */
|
||||
#define PARTITION_NON_STATIC_EDICTS (1 << 5) /**< everything in solid & trigger except the static props, includes SOLID_NOTs */
|
||||
@ -143,11 +143,11 @@
|
||||
/**
|
||||
* @endsection
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @section Displacement flags.
|
||||
*/
|
||||
|
||||
|
||||
#define DISPSURF_FLAG_SURFACE (1<<0)
|
||||
#define DISPSURF_FLAG_WALKABLE (1<<1)
|
||||
#define DISPSURF_FLAG_BUILDABLE (1<<2)
|
||||
@ -157,7 +157,7 @@
|
||||
/**
|
||||
* @endsection
|
||||
*/
|
||||
|
||||
|
||||
enum RayType
|
||||
{
|
||||
RayType_EndPoint, /**< The trace ray will go from the start position to the end position. */
|
||||
@ -169,19 +169,19 @@ typeset TraceEntityFilter
|
||||
/**
|
||||
* Called on entity filtering.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param contentsMask Contents Mask.
|
||||
* @return True to allow the current entity to be hit, otherwise false.
|
||||
* @param entity Entity index.
|
||||
* @param contentsMask Contents Mask.
|
||||
* @return True to allow the current entity to be hit, otherwise false.
|
||||
*/
|
||||
function bool (int entity, int contentsMask);
|
||||
|
||||
/**
|
||||
* Called on entity filtering.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param contentsMask Contents Mask.
|
||||
* @param data Data value, if used.
|
||||
* @return True to allow the current entity to be hit, otherwise false.
|
||||
* @param entity Entity index.
|
||||
* @param contentsMask Contents Mask.
|
||||
* @param data Data value, if used.
|
||||
* @return True to allow the current entity to be hit, otherwise false.
|
||||
*/
|
||||
function bool (int entity, int contentsMask, any data);
|
||||
};
|
||||
@ -191,109 +191,109 @@ typeset TraceEntityEnumerator
|
||||
/**
|
||||
* Called for each entity enumerated with EnumerateEntities*.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return True to continue enumerating, otherwise false.
|
||||
* @param entity Entity index.
|
||||
* @return True to continue enumerating, otherwise false.
|
||||
*/
|
||||
function bool (int entity);
|
||||
|
||||
/**
|
||||
* Called for each entity enumerated with EnumerateEntities*.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @param data Data value, if used.
|
||||
* @return True to continue enumerating, otherwise false. */
|
||||
* @param entity Entity index.
|
||||
* @param data Data value, if used.
|
||||
* @return True to continue enumerating, otherwise false. */
|
||||
function bool (int entity, any data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the contents mask and the entity index at the given position.
|
||||
*
|
||||
* @param pos World position to test.
|
||||
* @param entindex Entity index found at the given position (by reference).
|
||||
* @return Contents mask.
|
||||
* @param pos World position to test.
|
||||
* @param entindex Entity index found at the given position (by reference).
|
||||
* @return Contents mask.
|
||||
*/
|
||||
native int TR_GetPointContents(const float pos[3], int &entindex=-1);
|
||||
|
||||
/**
|
||||
* Get the point contents testing only the given entity index.
|
||||
*
|
||||
* @param entindex Entity index to test.
|
||||
* @param pos World position.
|
||||
* @return Contents mask.
|
||||
* @param entindex Entity index to test.
|
||||
* @param pos World position.
|
||||
* @return Contents mask.
|
||||
*/
|
||||
native int TR_GetPointContentsEnt(int entindex, const float pos[3]);
|
||||
|
||||
/**
|
||||
* Starts up a new trace ray using a global trace result.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the
|
||||
* ending point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the
|
||||
* ending point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
*/
|
||||
native void TR_TraceRay(const float pos[3],
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype);
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype);
|
||||
|
||||
/**
|
||||
* Starts up a new trace hull using a global trace result.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
*/
|
||||
native void TR_TraceHull(const float pos[3],
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags);
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags);
|
||||
|
||||
/**
|
||||
* Enumerates over entities along a ray. This may find entities that are
|
||||
* close to the ray but do not actually intersect it. Use TR_Clip*RayToEntity
|
||||
* with TR_DidHit to check if the ray actually intersects the entity.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param mask Mask to use for the trace. See PARTITION_* flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param enumerator Function to use as enumerator. For each entity found
|
||||
* along the ray, this function is called.
|
||||
* @param data Arbitrary data value to pass through to the enumerator.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param mask Mask to use for the trace. See PARTITION_* flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param enumerator Function to use as enumerator. For each entity found
|
||||
* along the ray, this function is called.
|
||||
* @param data Arbitrary data value to pass through to the enumerator.
|
||||
*/
|
||||
native void TR_EnumerateEntities(const float pos[3],
|
||||
const float vec[3],
|
||||
int mask,
|
||||
RayType rtype,
|
||||
TraceEntityEnumerator enumerator,
|
||||
any data=0);
|
||||
const float vec[3],
|
||||
int mask,
|
||||
RayType rtype,
|
||||
TraceEntityEnumerator enumerator,
|
||||
any data=0);
|
||||
|
||||
/**
|
||||
* Enumerates over entities along a ray hull. This may find entities that are
|
||||
* close to the ray but do not actually intersect it. Use TR_Clip*RayToEntity
|
||||
* with TR_DidHit to check if the ray actually intersects the entity.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param mask Mask to use for the trace. See PARTITION_* flags.
|
||||
* @param enumerator Function to use as enumerator. For each entity found
|
||||
* along the ray, this function is called.
|
||||
* @param data Arbitrary data value to pass through to the enumerator.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param mask Mask to use for the trace. See PARTITION_* flags.
|
||||
* @param enumerator Function to use as enumerator. For each entity found
|
||||
* along the ray, this function is called.
|
||||
* @param data Arbitrary data value to pass through to the enumerator.
|
||||
*/
|
||||
native void TR_EnumerateEntitiesHull(const float pos[3],
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int mask,
|
||||
TraceEntityEnumerator enumerator,
|
||||
any data=0);
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int mask,
|
||||
TraceEntityEnumerator enumerator,
|
||||
any data=0);
|
||||
|
||||
/**
|
||||
* Starts up a new trace ray using a global trace result and a customized
|
||||
@ -302,21 +302,21 @@ native void TR_EnumerateEntitiesHull(const float pos[3],
|
||||
* Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter
|
||||
* function is currently not allowed and may not work.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param filter Function to use as a filter.
|
||||
* @param data Arbitrary data value to pass through to the filter
|
||||
* function.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param filter Function to use as a filter.
|
||||
* @param data Arbitrary data value to pass through to the filter
|
||||
* function.
|
||||
*/
|
||||
native void TR_TraceRayFilter(const float pos[3],
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype,
|
||||
TraceEntityFilter filter,
|
||||
any data=0);
|
||||
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
|
||||
@ -325,94 +325,94 @@ native void TR_TraceRayFilter(const float pos[3],
|
||||
* Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter
|
||||
* function is currently not allowed and may not work.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param filter Function to use as a filter.
|
||||
* @param data Arbitrary data value to pass through to the filter
|
||||
* function.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param filter Function to use as a filter.
|
||||
* @param data Arbitrary data value to pass through to the filter
|
||||
* function.
|
||||
*/
|
||||
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);
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags,
|
||||
TraceEntityFilter filter,
|
||||
any data=0);
|
||||
|
||||
/**
|
||||
* Clips a ray to a particular entity.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param entity Entity to clip to.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param entity Entity to clip to.
|
||||
*/
|
||||
native void TR_ClipRayToEntity(const float pos[3],
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype,
|
||||
int entity);
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype,
|
||||
int entity);
|
||||
|
||||
/**
|
||||
* Clips a ray hull to a particular entity.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
*/
|
||||
native void TR_ClipRayHullToEntity(const float pos[3],
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags,
|
||||
int entity);
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags,
|
||||
int entity);
|
||||
|
||||
/**
|
||||
* Clips the current global ray (or hull) to a particular entity.
|
||||
*
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
*/
|
||||
native void TR_ClipCurrentRayToEntity(int flags, int entity);
|
||||
|
||||
/**
|
||||
* Starts up a new trace ray using a new trace result.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @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],
|
||||
int flags,
|
||||
RayType rtype);
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype);
|
||||
|
||||
/**
|
||||
* Starts up a new trace hull using a new trace result.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @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],
|
||||
int flags);
|
||||
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
|
||||
@ -421,21 +421,21 @@ native Handle TR_TraceHullEx(const float pos[3],
|
||||
* Calling TR_Trace*Filter or TR_TraceRay*Ex from inside a filter
|
||||
* function is currently not allowed and may not work.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param filter Function to use as a filter.
|
||||
* @param data Arbitrary data value to pass through to the filter function.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param filter Function to use as a filter.
|
||||
* @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],
|
||||
int flags,
|
||||
RayType rtype,
|
||||
TraceEntityFilter filter,
|
||||
any data=0);
|
||||
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
|
||||
@ -444,73 +444,73 @@ native Handle TR_TraceRayFilterEx(const float pos[3],
|
||||
* Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter
|
||||
* function is currently not allowed and may not work.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param filter Function to use as a filter.
|
||||
* @param data Arbitrary data value to pass through to the filter function.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param filter Function to use as a filter.
|
||||
* @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],
|
||||
int flags,
|
||||
TraceEntityFilter filter,
|
||||
any data=0);
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags,
|
||||
TraceEntityFilter filter,
|
||||
any data=0);
|
||||
|
||||
/**
|
||||
* Clips a ray to a particular entity.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param entity Entity to clip to.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Depending on RayType, it will be used as the ending
|
||||
* point, or the direction angle.
|
||||
* @param flags Trace flags.
|
||||
* @param rtype Method to calculate the ray direction.
|
||||
* @param entity Entity to clip to.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
*/
|
||||
native Handle TR_ClipRayToEntityEx(const float pos[3],
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype,
|
||||
int entity);
|
||||
const float vec[3],
|
||||
int flags,
|
||||
RayType rtype,
|
||||
int entity);
|
||||
|
||||
/**
|
||||
* Clips a ray hull to a particular entity.
|
||||
*
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
* @param pos Starting position of the ray.
|
||||
* @param vec Ending position of the ray.
|
||||
* @param mins Hull minimum size.
|
||||
* @param maxs Hull maximum size.
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
*/
|
||||
native Handle TR_ClipRayHullToEntityEx(const float pos[3],
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags,
|
||||
int entity);
|
||||
const float vec[3],
|
||||
const float mins[3],
|
||||
const float maxs[3],
|
||||
int flags,
|
||||
int entity);
|
||||
|
||||
/**
|
||||
* Clips the current global ray (or hull) to a particular entity.
|
||||
*
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
* @param flags Trace flags.
|
||||
* @param entity Entity to clip to.
|
||||
* @return Ray trace handle, which must be closed via CloseHandle().
|
||||
*/
|
||||
native Handle TR_ClipCurrentRayToEntityEx(int flags, int entity);
|
||||
|
||||
/**
|
||||
* Returns the time fraction from a trace result (1.0 means no collision).
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Time fraction value of the trace.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Time fraction value of the trace.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native float TR_GetFraction(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
@ -518,135 +518,134 @@ native float TR_GetFraction(Handle hndl=INVALID_HANDLE);
|
||||
* Returns the time fraction from a trace result when it left a solid.
|
||||
* Only valid if trace started in solid
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Time fraction left solid value of the trace.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Time fraction left solid value of the trace.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native float TR_GetFractionLeftSolid(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns the starting position of a trace.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @param pos Vector buffer to store data in.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @param pos Vector buffer to store data in.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void TR_GetStartPosition(Handle hndl, float pos[3]);
|
||||
|
||||
/**
|
||||
* 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.
|
||||
* @error Invalid Handle.
|
||||
* @param pos Vector buffer to store data in.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void TR_GetEndPosition(float pos[3], Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns the entity index that collided with the trace.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Entity index or -1 for no collision.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Entity index or -1 for no collision.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int TR_GetEntityIndex(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns the displacement flags for the surface that was hit. See DISPSURF_FLAG_*.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Displacement flags.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Displacement flags.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int TR_GetDisplacementFlags(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns the name of the surface that was hit.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @param buffer Buffer to store surface name in
|
||||
* @param maxlen Maximum length of output buffer
|
||||
* @noreturn
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @param buffer Buffer to store surface name in
|
||||
* @param maxlen Maximum length of output buffer
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void TR_GetSurfaceName(Handle hndl, char[] buffer, int maxlen);
|
||||
|
||||
/**
|
||||
* Returns the surface properties index of the surface that was hit.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Surface props.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Surface props.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int TR_GetSurfaceProps(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns the surface flags. See SURF_*.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Surface flags.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Surface flags.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int TR_GetSurfaceFlags(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns the index of the physics bone that was hit.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Physics bone index.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Physics bone index.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int TR_GetPhysicsBone(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns whether the entire trace was in a solid area.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return True if entire trace was in a solid area, otherwise false.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return True if entire trace was in a solid area, otherwise false.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool TR_AllSolid(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns whether the initial point was in a solid area.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return True if initial point was in a solid area, otherwise false.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return True if initial point was in a solid area, otherwise false.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool TR_StartSolid(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns if there was any kind of collision along the trace ray.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return True if any collision found, otherwise false.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return True if any collision found, otherwise false.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool TR_DidHit(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* Returns in which body hit group the trace collided if any.
|
||||
*
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Body hit group.
|
||||
* @error Invalid Handle.
|
||||
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
|
||||
* @return Body hit group.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native int TR_GetHitGroup(Handle hndl=INVALID_HANDLE);
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @error Invalid Handle
|
||||
* @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
|
||||
* @error Invalid Handle
|
||||
*/
|
||||
native void TR_GetPlaneNormal(Handle hndl, float normal[3]);
|
||||
|
||||
/**
|
||||
* Tests a point to see if it's outside any playable area
|
||||
*
|
||||
* @param pos Vector buffer to store data in.
|
||||
* @return True if outside world, otherwise false.
|
||||
* @param pos Vector buffer to store data in.
|
||||
* @return True if outside world, otherwise false.
|
||||
*/
|
||||
native bool TR_PointOutsideWorld(float pos[3]);
|
||||
|
@ -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
|
||||
@ -31,63 +31,63 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_variant_t_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_variant_t_included
|
||||
|
||||
/**
|
||||
* Sets a bool value in the global variant object.
|
||||
*
|
||||
* @param val Input value.
|
||||
* @param val Input value.
|
||||
*/
|
||||
native void SetVariantBool(bool val);
|
||||
|
||||
/**
|
||||
* Sets a string in the global variant object.
|
||||
*
|
||||
* @param str Input string.
|
||||
* @param str Input string.
|
||||
*/
|
||||
native void SetVariantString(const char[] str);
|
||||
|
||||
/**
|
||||
* Sets an integer value in the global variant object.
|
||||
*
|
||||
* @param val Input value.
|
||||
* @param val Input value.
|
||||
*/
|
||||
native void SetVariantInt(int val);
|
||||
|
||||
/**
|
||||
* Sets a floating point value in the global variant object.
|
||||
*
|
||||
* @param val Input value.
|
||||
* @param val Input value.
|
||||
*/
|
||||
native void SetVariantFloat(float val);
|
||||
|
||||
/**
|
||||
* Sets a 3D vector in the global variant object.
|
||||
*
|
||||
* @param vec Input vector.
|
||||
* @param vec Input vector.
|
||||
*/
|
||||
native void SetVariantVector3D(const float vec[3]);
|
||||
|
||||
/**
|
||||
* Sets a 3D position vector in the global variant object.
|
||||
*
|
||||
* @param vec Input position vector.
|
||||
* @param vec Input position vector.
|
||||
*/
|
||||
native void SetVariantPosVector3D(const float vec[3]);
|
||||
|
||||
/**
|
||||
* Sets a color in the global variant object.
|
||||
*
|
||||
* @param color Input color.
|
||||
* @param color Input color.
|
||||
*/
|
||||
native void SetVariantColor(const int color[4]);
|
||||
|
||||
/**
|
||||
* Sets an entity in the global variant object.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @error Invalid entity index.
|
||||
* @param entity Entity index.
|
||||
* @error Invalid entity index.
|
||||
*/
|
||||
native void SetVariantEntity(int entity);
|
||||
native void SetVariantEntity(int entity);
|
||||
|
@ -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
|
||||
@ -31,54 +31,55 @@
|
||||
*/
|
||||
|
||||
#if defined _sdktools_voice_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sdktools_voice_included
|
||||
|
||||
/**
|
||||
* @section voice flags.
|
||||
*/
|
||||
#define VOICE_NORMAL 0 /**< Allow the client to listen and speak normally. */
|
||||
#define VOICE_MUTED 1 /**< Mutes the client from speaking to everyone. */
|
||||
#define VOICE_SPEAKALL 2 /**< Allow the client to speak to everyone. */
|
||||
#define VOICE_LISTENALL 4 /**< Allow the client to listen to everyone. */
|
||||
#define VOICE_TEAM 8 /**< Allow the client to always speak to team, even when dead. */
|
||||
#define VOICE_LISTENTEAM 16 /**< Allow the client to always hear teammates, including dead ones. */
|
||||
|
||||
#define VOICE_NORMAL 0 /**< Allow the client to listen and speak normally. */
|
||||
#define VOICE_MUTED 1 /**< Mutes the client from speaking to everyone. */
|
||||
#define VOICE_SPEAKALL 2 /**< Allow the client to speak to everyone. */
|
||||
#define VOICE_LISTENALL 4 /**< Allow the client to listen to everyone. */
|
||||
#define VOICE_TEAM 8 /**< Allow the client to always speak to team, even when dead. */
|
||||
#define VOICE_LISTENTEAM 16 /**< Allow the client to always hear teammates, including dead ones. */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
*/
|
||||
|
||||
enum ListenOverride
|
||||
{
|
||||
Listen_Default = 0, /**< Leave it up to the game */
|
||||
Listen_No, /**< Can't hear */
|
||||
Listen_Yes, /**< Can hear */
|
||||
Listen_Default = 0, /**< Leave it up to the game */
|
||||
Listen_No, /**< Can't hear */
|
||||
Listen_Yes /**< Can hear */
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the client listening flags.
|
||||
*
|
||||
* @param client The client index
|
||||
* @param flags The voice flags
|
||||
* @param client The client index
|
||||
* @param flags The voice flags
|
||||
*/
|
||||
native void SetClientListeningFlags(int client, int flags);
|
||||
|
||||
/**
|
||||
* Retrieve the client current listening flags.
|
||||
*
|
||||
* @param client The client index
|
||||
* @return The current voice flags
|
||||
* @param client The client index
|
||||
* @return The current voice flags
|
||||
*/
|
||||
native int GetClientListeningFlags(int client);
|
||||
|
||||
/**
|
||||
* Set the receiver ability to listen to the sender.
|
||||
*
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @param bListen True if the receiver can listen to the sender, false otherwise.
|
||||
* @return True if successful otherwise false.
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @param bListen True if the receiver can listen to the sender, false otherwise.
|
||||
* @return True if successful otherwise false.
|
||||
* @deprecated Use SetListenOverride() instead.
|
||||
*/
|
||||
#pragma deprecated Use SetListenOverride() instead
|
||||
native bool SetClientListening(int iReceiver, int iSender, bool bListen);
|
||||
@ -86,9 +87,10 @@ native bool SetClientListening(int iReceiver, int iSender, bool bListen);
|
||||
/**
|
||||
* Retrieves if the receiver can listen to the sender.
|
||||
*
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @return True if successful otherwise false.
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @return True if successful otherwise false.
|
||||
* @deprecated GetListenOverride() instead.
|
||||
*/
|
||||
#pragma deprecated GetListenOverride() instead
|
||||
native bool GetClientListening(int iReceiver, int iSender);
|
||||
@ -96,27 +98,27 @@ native bool GetClientListening(int iReceiver, int iSender);
|
||||
/**
|
||||
* Override the receiver's ability to listen to the sender.
|
||||
*
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @param override The override of the receiver's ability to listen to the sender.
|
||||
* @return True if successful otherwise false.
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @param override The override of the receiver's ability to listen to the sender.
|
||||
* @return True if successful otherwise false.
|
||||
*/
|
||||
native bool SetListenOverride(int iReceiver, int iSender, ListenOverride override);
|
||||
|
||||
/**
|
||||
* Retrieves the override of the receiver's ability to listen to the sender.
|
||||
*
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @return The override value.
|
||||
* @param iReceiver The listener index.
|
||||
* @param iSender The sender index.
|
||||
* @return The override value.
|
||||
*/
|
||||
native ListenOverride GetListenOverride(int iReceiver, int iSender);
|
||||
|
||||
/**
|
||||
* Retrieves if the muter has muted the mutee.
|
||||
*
|
||||
* @param iMuter The muter index.
|
||||
* @param iMutee The mutee index.
|
||||
* @return True if muter has muted mutee, false otherwise.
|
||||
* @param iMuter The muter index.
|
||||
* @param iMutee The mutee index.
|
||||
* @return True if muter has muted mutee, false otherwise.
|
||||
*/
|
||||
native bool IsClientMuted(int iMuter, int iMutee);
|
||||
|
@ -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
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
|
||||
#if defined _sorting_included
|
||||
#endinput
|
||||
#endinput
|
||||
#endif
|
||||
#define _sorting_included
|
||||
|
||||
@ -41,9 +41,9 @@
|
||||
*/
|
||||
enum SortOrder
|
||||
{
|
||||
Sort_Ascending = 0, /**< Ascending order */
|
||||
Sort_Descending = 1, /**< Descending order */
|
||||
Sort_Random = 2 /**< Random order */
|
||||
Sort_Ascending = 0, /**< Ascending order */
|
||||
Sort_Descending = 1, /**< Descending order */
|
||||
Sort_Random = 2 /**< Random order */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -51,35 +51,35 @@ enum SortOrder
|
||||
*/
|
||||
enum SortType
|
||||
{
|
||||
Sort_Integer = 0,
|
||||
Sort_Float,
|
||||
Sort_String,
|
||||
Sort_Integer = 0,
|
||||
Sort_Float,
|
||||
Sort_String
|
||||
};
|
||||
|
||||
/**
|
||||
* Sorts an array of integers.
|
||||
*
|
||||
* @param array Array of integers to sort in-place.
|
||||
* @param array_size Size of the array.
|
||||
* @param order Sorting order to use.
|
||||
* @param array Array of integers to sort in-place.
|
||||
* @param array_size Size of the array.
|
||||
* @param order Sorting order to use.
|
||||
*/
|
||||
native void SortIntegers(int[] array, int array_size, SortOrder order = Sort_Ascending);
|
||||
|
||||
/**
|
||||
* Sorts an array of float point numbers.
|
||||
*
|
||||
* @param array Array of floating point numbers to sort in-place.
|
||||
* @param array_size Size of the array.
|
||||
* @param order Sorting order to use.
|
||||
* @param array Array of floating point numbers to sort in-place.
|
||||
* @param array_size Size of the array.
|
||||
* @param order Sorting order to use.
|
||||
*/
|
||||
native void SortFloats(float[] array, int array_size, SortOrder order = Sort_Ascending);
|
||||
|
||||
/**
|
||||
* Sorts an array of strings.
|
||||
*
|
||||
* @param array Array of strings to sort in-place.
|
||||
* @param array_size Size of the array.
|
||||
* @param order Sorting order to use.
|
||||
* @param array Array of strings to sort in-place.
|
||||
* @param array_size Size of the array.
|
||||
* @param order Sorting order to use.
|
||||
*/
|
||||
native void SortStrings(char[][] array, int array_size, SortOrder order = Sort_Ascending);
|
||||
|
||||
@ -87,23 +87,23 @@ native void SortStrings(char[][] array, int array_size, SortOrder order = Sort_A
|
||||
* Sort comparison function for 1D array elements.
|
||||
* @note You may need to use explicit tags in order to use data properly.
|
||||
*
|
||||
* @param elem1 First element to compare.
|
||||
* @param elem2 Second element to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
* @param elem1 First element to compare.
|
||||
* @param elem2 Second element to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
*/
|
||||
typedef SortFunc1D = function int (int elem1, int elem2, const int[] array, Handle hndl);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sorts a custom 1D array. You must pass in a comparison function.
|
||||
*
|
||||
* @param array Array to sort.
|
||||
* @param array_size Size of the array to sort.
|
||||
* @param sortfunc Sort function.
|
||||
* @param hndl Optional Handle to pass through the comparison calls.
|
||||
* @param array Array to sort.
|
||||
* @param array_size Size of the array to sort.
|
||||
* @param sortfunc Sort function.
|
||||
* @param hndl Optional Handle to pass through the comparison calls.
|
||||
*/
|
||||
native void SortCustom1D(int[] array, int array_size, SortFunc1D sortfunc, Handle hndl=INVALID_HANDLE);
|
||||
|
||||
@ -111,13 +111,13 @@ native void SortCustom1D(int[] array, int array_size, SortFunc1D sortfunc, Handl
|
||||
* Sort comparison function for 2D array elements (sub-arrays).
|
||||
* @note You may need to use explicit tags in order to use data properly.
|
||||
*
|
||||
* @param elem1 First array to compare.
|
||||
* @param elem2 Second array to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
* @param elem1 First array to compare.
|
||||
* @param elem2 Second array to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
*/
|
||||
typeset SortFunc2D
|
||||
{
|
||||
@ -125,22 +125,22 @@ typeset SortFunc2D
|
||||
function int (char[] elem1, char[] elem2, const char[][] array, Handle hndl);
|
||||
};
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sorts a custom 2D array. You must pass in a comparison function.
|
||||
*
|
||||
* @param array Array to sort.
|
||||
* @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.
|
||||
* @param array Array to sort.
|
||||
* @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.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @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
|
||||
* @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
|
||||
*/
|
||||
native void SortADTArray(Handle array, SortOrder order, SortType type);
|
||||
|
||||
@ -149,21 +149,21 @@ native void SortADTArray(Handle array, SortOrder order, SortType type);
|
||||
* indexes currently being sorted, use ADT Array functions to retrieve the
|
||||
* index values and compare.
|
||||
*
|
||||
* @param index1 First index to compare.
|
||||
* @param index2 Second index to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
* @param index1 First index to compare.
|
||||
* @param index2 Second index to compare.
|
||||
* @param array Array that is being sorted (order is undefined).
|
||||
* @param hndl Handle optionally passed in while sorting.
|
||||
* @return -1 if first should go before second
|
||||
* 0 if first is equal to second
|
||||
* 1 if first should go after second
|
||||
*/
|
||||
typedef SortFuncADTArray = function int (int index1, int index2, Handle array, Handle hndl);
|
||||
|
||||
/**
|
||||
* Custom sorts an ADT Array. You must pass in a comparison function.
|
||||
*
|
||||
* @param array Array Handle to sort
|
||||
* @param sortfunc Sort comparison function to use
|
||||
* @param hndl Optional Handle to pass through the comparison calls.
|
||||
* @param array Array Handle to sort
|
||||
* @param sortfunc Sort comparison function to use
|
||||
* @param hndl Optional Handle to pass through the comparison calls.
|
||||
*/
|
||||
native void SortADTArrayCustom(Handle array, SortFuncADTArray sortfunc, Handle hndl=INVALID_HANDLE);
|
||||
native void SortADTArrayCustom(Handle array, SortFuncADTArray sortfunc, Handle hndl=INVALID_HANDLE);
|
||||
|
@ -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
|
||||
@ -40,11 +40,11 @@
|
||||
*/
|
||||
struct Plugin
|
||||
{
|
||||
public const char[] name; /**< Plugin Name */
|
||||
public const char[] description; /**< Plugin Description */
|
||||
public const char[] author; /**< Plugin Author */
|
||||
public const char[] version; /**< Plugin Version */
|
||||
public const char[] url; /**< Plugin URL */
|
||||
public const char[] name; /**< Plugin Name */
|
||||
public const char[] description; /**< Plugin Description */
|
||||
public const char[] author; /**< Plugin Author */
|
||||
public const char[] version; /**< Plugin Version */
|
||||
public const char[] url; /**< Plugin URL */
|
||||
};
|
||||
|
||||
#include <core>
|
||||
@ -79,48 +79,48 @@ struct Plugin
|
||||
|
||||
enum APLRes
|
||||
{
|
||||
APLRes_Success = 0, /**< Plugin should load */
|
||||
APLRes_Failure, /**< Plugin shouldn't load and should display an error */
|
||||
APLRes_SilentFailure /**< Plugin shouldn't load but do so silently */
|
||||
APLRes_Success = 0, /**< Plugin should load */
|
||||
APLRes_Failure, /**< Plugin shouldn't load and should display an error */
|
||||
APLRes_SilentFailure /**< Plugin shouldn't load but do so silently */
|
||||
};
|
||||
|
||||
methodmap GameData < Handle
|
||||
{
|
||||
// Loads a game config file.
|
||||
//
|
||||
// @param file File to load. The path must be relative to the 'gamedata' folder under the config folder
|
||||
// and the extension should be omitted.
|
||||
// @return A handle to the game config file or null on failure.
|
||||
// @param file File to load. The path must be relative to the 'gamedata' folder under the config folder
|
||||
// and the extension should be omitted.
|
||||
// @return A handle to the game config file or null on failure.
|
||||
public native GameData(const char[] file);
|
||||
|
||||
// Returns an offset value.
|
||||
//
|
||||
// @param key Key to retrieve from the offset section.
|
||||
// @return An offset, or -1 on failure.
|
||||
// @param key Key to retrieve from the offset section.
|
||||
// @return An offset, or -1 on failure.
|
||||
public native int GetOffset(const char[] key);
|
||||
|
||||
// Gets the value of a key from the "Keys" section.
|
||||
//
|
||||
// @param key Key to retrieve from the Keys section.
|
||||
// @param buffer Destination string buffer.
|
||||
// @param maxlen Maximum length of output string buffer.
|
||||
// @return True if key existed, false otherwise.
|
||||
// @param key Key to retrieve from the Keys section.
|
||||
// @param buffer Destination string buffer.
|
||||
// @param maxlen Maximum length of output string buffer.
|
||||
// @return True if key existed, false otherwise.
|
||||
public native bool GetKeyValue(const char[] key, char[] buffer, int maxlen);
|
||||
|
||||
// Finds an address calculation in a GameConfig file,
|
||||
// performs LoadFromAddress on it as appropriate, then returns the final address.
|
||||
//
|
||||
// @param name Name of the property to find.
|
||||
// @return An address calculated on success, or 0 on failure.
|
||||
// @param name Name of the property to find.
|
||||
// @return An address calculated on success, or 0 on failure.
|
||||
public native Address GetAddress(const char[] name);
|
||||
};
|
||||
|
||||
/**
|
||||
* Called when the plugin is fully initialized and all known external references
|
||||
* are resolved. This is only called once in the lifetime of the plugin, and is
|
||||
* Called when the plugin is fully initialized and all known external references
|
||||
* are resolved. This is only called once in the lifetime of the plugin, and is
|
||||
* paired with OnPluginEnd().
|
||||
*
|
||||
* If any run-time error is thrown during this callback, the plugin will be marked
|
||||
* If any run-time error is thrown during this callback, the plugin will be marked
|
||||
* as failed.
|
||||
*/
|
||||
forward void OnPluginStart();
|
||||
@ -135,30 +135,29 @@ forward bool AskPluginLoad(Handle myself, bool late, char[] error, int err_max);
|
||||
|
||||
/**
|
||||
* Called before OnPluginStart, in case the plugin wants to check for load failure.
|
||||
* This is called even if the plugin type is "private." Any natives from modules are
|
||||
* not available at this point. Thus, this forward should only be used for explicit
|
||||
* pre-emptive things, such as adding dynamic natives, setting certain types of load
|
||||
* This is called even if the plugin type is "private." Any natives from modules are
|
||||
* not available at this point. Thus, this forward should only be used for explicit
|
||||
* pre-emptive things, such as adding dynamic natives, setting certain types of load
|
||||
* filters (such as not loading the plugin for certain games).
|
||||
*
|
||||
*
|
||||
* @note It is not safe to call externally resolved natives until OnPluginStart().
|
||||
* @note Any sort of RTE in this function will cause the plugin to fail loading.
|
||||
* @note If you do not return anything, it is treated like returning success.
|
||||
* @note If you do not return anything, it is treated like returning success.
|
||||
* @note If a plugin has an AskPluginLoad2(), AskPluginLoad() will not be called.
|
||||
*
|
||||
*
|
||||
* @param myself Handle to the plugin.
|
||||
* @param late Whether or not the plugin was loaded "late" (after map load).
|
||||
* @param error Error message buffer in case load failed.
|
||||
* @param err_max Maximum number of characters for error message buffer.
|
||||
* @return APLRes_Success for load success, APLRes_Failure or APLRes_SilentFailure otherwise
|
||||
* @param myself Handle to the plugin.
|
||||
* @param late Whether or not the plugin was loaded "late" (after map load).
|
||||
* @param error Error message buffer in case load failed.
|
||||
* @param err_max Maximum number of characters for error message buffer.
|
||||
* @return APLRes_Success for load success, APLRes_Failure or APLRes_SilentFailure otherwise
|
||||
*/
|
||||
forward APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max);
|
||||
|
||||
/**
|
||||
* Called when the plugin is about to be unloaded.
|
||||
*
|
||||
* It is not necessary to close any handles or remove hooks in this function.
|
||||
* SourceMod guarantees that plugin shutdown automatically and correctly releases
|
||||
* It is not necessary to close any handles or remove hooks in this function.
|
||||
* SourceMod guarantees that plugin shutdown automatically and correctly releases
|
||||
* all resources.
|
||||
*/
|
||||
forward void OnPluginEnd();
|
||||
@ -166,7 +165,7 @@ forward void OnPluginEnd();
|
||||
/**
|
||||
* Called when the plugin's pause status is changing.
|
||||
*
|
||||
* @param pause True if the plugin is being paused, false otherwise.
|
||||
* @param pause True if the plugin is being paused, false otherwise.
|
||||
*/
|
||||
forward void OnPluginPauseChange(bool pause);
|
||||
|
||||
@ -180,7 +179,7 @@ forward void OnGameFrame();
|
||||
* Called when the map is loaded.
|
||||
*
|
||||
* @note This used to be OnServerLoad(), which is now deprecated.
|
||||
* Plugins still using the old forward will work.
|
||||
* Plugins still using the old forward will work.
|
||||
*/
|
||||
forward void OnMapStart();
|
||||
|
||||
@ -190,39 +189,39 @@ forward void OnMapStart();
|
||||
forward void OnMapEnd();
|
||||
|
||||
/**
|
||||
* Called when the map has loaded, servercfgfile (server.cfg) has been
|
||||
* Called when the map has loaded, servercfgfile (server.cfg) has been
|
||||
* executed, and all plugin configs are done executing. This is the best
|
||||
* place to initialize plugin functions which are based on cvar data.
|
||||
* place to initialize plugin functions which are based on cvar data.
|
||||
*
|
||||
* @note This will always be called once and only once per map. It will be
|
||||
* called after OnMapStart().
|
||||
* @note This will always be called once and only once per map. It will be
|
||||
* called after OnMapStart().
|
||||
*/
|
||||
forward void OnConfigsExecuted();
|
||||
|
||||
/**
|
||||
* This is called once, right after OnMapStart() but any time before
|
||||
* OnConfigsExecuted(). It is called after the "exec sourcemod.cfg"
|
||||
* command and all AutoExecConfig() exec commands have been added to
|
||||
* This is called once, right after OnMapStart() but any time before
|
||||
* OnConfigsExecuted(). It is called after the "exec sourcemod.cfg"
|
||||
* command and all AutoExecConfig() exec commands have been added to
|
||||
* the ServerCommand() buffer.
|
||||
*
|
||||
* If you need to load per-map settings that override default values,
|
||||
* adding commands to the ServerCommand() buffer here will guarantee
|
||||
* If you need to load per-map settings that override default values,
|
||||
* adding commands to the ServerCommand() buffer here will guarantee
|
||||
* that they're set before OnConfigsExecuted().
|
||||
*
|
||||
* Unlike OnMapStart() and OnConfigsExecuted(), this is not called on
|
||||
* Unlike OnMapStart() and OnConfigsExecuted(), this is not called on
|
||||
* late loads that occur after OnMapStart().
|
||||
*/
|
||||
forward void OnAutoConfigsBuffered();
|
||||
|
||||
/**
|
||||
* @deprecated Use OnConfigsExecuted() instead.
|
||||
* @deprecated Use OnConfigsExecuted() instead.
|
||||
*/
|
||||
#pragma deprecated Use OnConfigsExecuted() instead
|
||||
forward void OnServerCfg();
|
||||
|
||||
/**
|
||||
* Called after all plugins have been loaded. This is called once for
|
||||
* every plugin. If a plugin late loads, it will be called immediately
|
||||
* Called after all plugins have been loaded. This is called once for
|
||||
* every plugin. If a plugin late loads, it will be called immediately
|
||||
* after OnPluginStart().
|
||||
*/
|
||||
forward void OnAllPluginsLoaded();
|
||||
@ -230,87 +229,87 @@ forward void OnAllPluginsLoaded();
|
||||
/**
|
||||
* Returns the calling plugin's Handle.
|
||||
*
|
||||
* @return Handle of the calling plugin.
|
||||
* @return Handle of the calling plugin.
|
||||
*/
|
||||
native Handle GetMyHandle();
|
||||
|
||||
/**
|
||||
* Returns an iterator that can be used to search through plugins.
|
||||
*
|
||||
* @return Handle to iterate with. Must be closed via
|
||||
* CloseHandle().
|
||||
* @error Invalid Handle.
|
||||
* @return Handle to iterate with. Must be closed via
|
||||
* CloseHandle().
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native Handle GetPluginIterator();
|
||||
|
||||
/**
|
||||
* Returns whether there are more plugins available in the iterator.
|
||||
*
|
||||
* @param iter Handle to the plugin iterator.
|
||||
* @return True on more plugins, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param iter Handle to the plugin iterator.
|
||||
* @return True on more plugins, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool MorePlugins(Handle iter);
|
||||
|
||||
/**
|
||||
* Returns the current plugin in the iterator and advances the iterator.
|
||||
*
|
||||
* @param iter Handle to the plugin iterator.
|
||||
* @return Current plugin the iterator is at, before
|
||||
* the iterator is advanced.
|
||||
* @error Invalid Handle.
|
||||
* @param iter Handle to the plugin iterator.
|
||||
* @return Current plugin the iterator is at, before
|
||||
* the iterator is advanced.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native Handle ReadPlugin(Handle iter);
|
||||
|
||||
/**
|
||||
* Returns a plugin's status.
|
||||
*
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @return Status code for the plugin.
|
||||
* @error Invalid Handle.
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @return Status code for the plugin.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native PluginStatus GetPluginStatus(Handle plugin);
|
||||
|
||||
/**
|
||||
* Retrieves a plugin's file name relative to the plugins folder.
|
||||
*
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @param buffer Buffer to the store the file name.
|
||||
* @param maxlength Maximum length of the name buffer.
|
||||
* @error Invalid Handle.
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @param buffer Buffer to the store the file name.
|
||||
* @param maxlength Maximum length of the name buffer.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native void GetPluginFilename(Handle plugin, char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Retrieves whether or not a plugin is being debugged.
|
||||
*
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @return True if being debugged, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @return True if being debugged, false otherwise.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool IsPluginDebugging(Handle plugin);
|
||||
|
||||
/**
|
||||
* Retrieves a plugin's public info.
|
||||
*
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @param info Plugin info property to retrieve.
|
||||
* @param buffer Buffer to store info in.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @return True on success, false if property is not available.
|
||||
* @error Invalid Handle.
|
||||
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
|
||||
* @param info Plugin info property to retrieve.
|
||||
* @param buffer Buffer to store info in.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @return True on success, false if property is not available.
|
||||
* @error Invalid Handle.
|
||||
*/
|
||||
native bool GetPluginInfo(Handle plugin, PluginInfo info, char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Finds a plugin by its order in the list from the "plugins list" server
|
||||
* "sm" command. You should not use this function to loop through all plugins,
|
||||
* use the iterator instead. Looping through all plugins using this native
|
||||
* Finds a plugin by its order in the list from the "plugins list" server
|
||||
* "sm" command. You should not use this function to loop through all plugins,
|
||||
* use the iterator instead. Looping through all plugins using this native
|
||||
* is O(n^2), whereas using the iterator is O(n).
|
||||
*
|
||||
* @param order_num Number of the plugin as it appears in "sm plugins list".
|
||||
* @return Plugin Handle on success, INVALID_HANDLE if no plugin
|
||||
* matches the given number.
|
||||
* @param order_num Number of the plugin as it appears in "sm plugins list".
|
||||
* @return Plugin Handle on success, INVALID_HANDLE if no plugin
|
||||
* matches the given number.
|
||||
*/
|
||||
native Handle FindPluginByNumber(int order_num);
|
||||
|
||||
@ -318,18 +317,18 @@ native Handle FindPluginByNumber(int order_num);
|
||||
* Causes the plugin to enter a failed state. An error will be thrown and
|
||||
* the plugin will be paused until it is unloaded or reloaded.
|
||||
*
|
||||
* For backwards compatibility, if no extra arguments are passed, no
|
||||
* formatting is applied. If one or more additional arguments is passed,
|
||||
* the string is formatted using Format(). If any errors are encountered
|
||||
* during formatting, both the format specifier string and an additional
|
||||
* For backwards compatibility, if no extra arguments are passed, no
|
||||
* formatting is applied. If one or more additional arguments is passed,
|
||||
* the string is formatted using Format(). If any errors are encountered
|
||||
* during formatting, both the format specifier string and an additional
|
||||
* error message are written.
|
||||
*
|
||||
* This function does not return, and no further code in the plugin is
|
||||
* This function does not return, and no further code in the plugin is
|
||||
* executed.
|
||||
*
|
||||
* @param string Format specifier string.
|
||||
* @param ... Formatting arguments.
|
||||
* @error Always throws SP_ERROR_ABORT.
|
||||
* @param string Format specifier string.
|
||||
* @param ... Formatting arguments.
|
||||
* @error Always throws SP_ERROR_ABORT.
|
||||
*/
|
||||
native void SetFailState(const char[] string, any ...);
|
||||
|
||||
@ -337,74 +336,74 @@ native void SetFailState(const char[] string, any ...);
|
||||
* Aborts the current callback and throws an error. This function
|
||||
* does not return in that no code is executed following it.
|
||||
*
|
||||
* @param fmt String format.
|
||||
* @param ... Format arguments.
|
||||
* @error Always!
|
||||
* @param fmt String format.
|
||||
* @param ... Format arguments.
|
||||
* @error Always!
|
||||
*/
|
||||
native void ThrowError(const char[] fmt, any ...);
|
||||
|
||||
/**
|
||||
* Logs a stack trace from the current function call. Code
|
||||
* Logs a stack trace from the current function call. Code
|
||||
* execution continues after the call
|
||||
*
|
||||
* @param fmt Format string to send with the stack trace.
|
||||
* @param ... Format arguments.
|
||||
* @error Always logs a stack trace.
|
||||
* @param fmt Format string to send with the stack trace.
|
||||
* @param ... Format arguments.
|
||||
* @error Always logs a stack trace.
|
||||
*/
|
||||
native void LogStackTrace(const char[] fmt, any ...);
|
||||
|
||||
/**
|
||||
* Gets the system time as a unix timestamp.
|
||||
*
|
||||
* @param bigStamp Optional array to store the 64bit timestamp in.
|
||||
* @return 32bit timestamp (number of seconds since unix epoch).
|
||||
* @param bigStamp Optional array to store the 64bit timestamp in.
|
||||
* @return 32bit timestamp (number of seconds since unix epoch).
|
||||
*/
|
||||
native int GetTime(int bigStamp[2]={0,0});
|
||||
|
||||
/**
|
||||
* Produces a date and/or time string value for a timestamp.
|
||||
*
|
||||
* See this URL for valid parameters:
|
||||
* See this URL for valid parameters:
|
||||
* http://cplusplus.com/reference/clibrary/ctime/strftime.html
|
||||
*
|
||||
*
|
||||
* Note that available parameters depends on support from your operating system.
|
||||
* In particular, ones highlighted in yellow on that page are not currently
|
||||
* available on Windows and should be avoided for portable plugins.
|
||||
*
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules (passing NULL_STRING will use the rules defined in sm_datetime_format).
|
||||
* @param stamp Optional time stamp.
|
||||
* @error Buffer too small or invalid time format.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules (passing NULL_STRING will use the rules defined in sm_datetime_format).
|
||||
* @param stamp Optional time stamp.
|
||||
* @error Buffer too small or invalid time format.
|
||||
*/
|
||||
native void FormatTime(char[] buffer, int maxlength, const char[] format, int stamp=-1);
|
||||
|
||||
/**
|
||||
* Loads a game config file.
|
||||
*
|
||||
* @param file File to load. The path must be relative to the 'gamedata' folder under the config folder
|
||||
* and the extension should be omitted.
|
||||
* @return A handle to the game config file or INVALID_HANDLE on failure.
|
||||
* @param file File to load. The path must be relative to the 'gamedata' folder under the config folder
|
||||
* and the extension should be omitted.
|
||||
* @return A handle to the game config file or INVALID_HANDLE on failure.
|
||||
*/
|
||||
native GameData LoadGameConfigFile(const char[] file);
|
||||
|
||||
/**
|
||||
* Returns an offset value.
|
||||
*
|
||||
* @param gc Game config handle.
|
||||
* @param key Key to retrieve from the offset section.
|
||||
* @return An offset, or -1 on failure.
|
||||
* @param gc Game config handle.
|
||||
* @param key Key to retrieve from the offset section.
|
||||
* @return An offset, or -1 on failure.
|
||||
*/
|
||||
native int GameConfGetOffset(Handle gc, const char[] key);
|
||||
|
||||
/**
|
||||
* Gets the value of a key from the "Keys" section.
|
||||
*
|
||||
* @param gc Game config handle.
|
||||
* @param key Key to retrieve from the Keys section.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @return True if key existed, false otherwise.
|
||||
* @param gc Game config handle.
|
||||
* @param key Key to retrieve from the Keys section.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlen Maximum length of output string buffer.
|
||||
* @return True if key existed, false otherwise.
|
||||
*/
|
||||
native bool GameConfGetKeyValue(Handle gc, const char[] key, char[] buffer, int maxlen);
|
||||
|
||||
@ -419,167 +418,167 @@ native bool GameConfGetKeyValue(Handle gc, const char[] key, char[] buffer, int
|
||||
native Address GameConfGetAddress(Handle gameconf, const char[] name);
|
||||
|
||||
/**
|
||||
* Returns the operating system's "tick count," which is a number of
|
||||
* Returns the operating system's "tick count," which is a number of
|
||||
* milliseconds since the operating system loaded. This can be used
|
||||
* for basic benchmarks.
|
||||
*
|
||||
* @return Tick count in milliseconds.
|
||||
* @return Tick count in milliseconds.
|
||||
*/
|
||||
native int GetSysTickCount();
|
||||
|
||||
/**
|
||||
* Specifies that the given config file should be executed after plugin load.
|
||||
* OnConfigsExecuted() will not be called until the config file has executed,
|
||||
* OnConfigsExecuted() will not be called until the config file has executed,
|
||||
* but it will be called if the execution fails.
|
||||
*
|
||||
* @param autoCreate If true, and the config file does not exist, such a config
|
||||
* file will be automatically created and populated with
|
||||
* information from the plugin's registered cvars.
|
||||
* @param name Name of the config file, excluding the .cfg extension.
|
||||
* If empty, <plugin.filename.cfg> is assumed.
|
||||
* @param folder Folder under cfg/ to use. By default this is "sourcemod."
|
||||
* @param autoCreate If true, and the config file does not exist, such a config
|
||||
* file will be automatically created and populated with
|
||||
* information from the plugin's registered cvars.
|
||||
* @param name Name of the config file, excluding the .cfg extension.
|
||||
* If empty, <plugin.filename.cfg> is assumed.
|
||||
* @param folder Folder under cfg/ to use. By default this is "sourcemod."
|
||||
*/
|
||||
native void AutoExecConfig(bool autoCreate=true, const char[] name="", const char[] folder="sourcemod");
|
||||
|
||||
/**
|
||||
* Registers a library name for identifying as a dependency to
|
||||
* Registers a library name for identifying as a dependency to
|
||||
* other plugins.
|
||||
*
|
||||
* @param name Library name.
|
||||
* @param name Library name.
|
||||
*/
|
||||
native void RegPluginLibrary(const char[] name);
|
||||
|
||||
/**
|
||||
* Returns whether a library exists. This function should be considered
|
||||
* expensive; it should only be called on plugin to determine availability
|
||||
* of resources. Use OnLibraryAdded()/OnLibraryRemoved() to detect changes
|
||||
* Returns whether a library exists. This function should be considered
|
||||
* expensive; it should only be called on plugin to determine availability
|
||||
* of resources. Use OnLibraryAdded()/OnLibraryRemoved() to detect changes
|
||||
* in optional resources.
|
||||
*
|
||||
* @param name Library name of a plugin or extension.
|
||||
* @return True if exists, false otherwise.
|
||||
* @param name Library name of a plugin or extension.
|
||||
* @return True if exists, false otherwise.
|
||||
*/
|
||||
native bool LibraryExists(const char[] name);
|
||||
|
||||
/**
|
||||
* Returns the status of an extension, by filename.
|
||||
*
|
||||
* @param name Extension name (like "sdktools.ext").
|
||||
* @param error Optional error message buffer.
|
||||
* @param maxlength Length of optional error message buffer.
|
||||
* @return -2 if the extension was not found.
|
||||
* -1 if the extension was found but failed to load.
|
||||
* 0 if the extension loaded but reported an error.
|
||||
* 1 if the extension is running without error.
|
||||
* @param name Extension name (like "sdktools.ext").
|
||||
* @param error Optional error message buffer.
|
||||
* @param maxlength Length of optional error message buffer.
|
||||
* @return -2 if the extension was not found.
|
||||
* -1 if the extension was found but failed to load.
|
||||
* 0 if the extension loaded but reported an error.
|
||||
* 1 if the extension is running without error.
|
||||
*/
|
||||
native int GetExtensionFileStatus(const char[] name, char[] error="", int maxlength=0);
|
||||
|
||||
/**
|
||||
* Called after a library is added that the current plugin references
|
||||
* optionally. A library is either a plugin name or extension name, as
|
||||
* Called after a library is added that the current plugin references
|
||||
* optionally. A library is either a plugin name or extension name, as
|
||||
* exposed via its include file.
|
||||
*
|
||||
* @param name Library name.
|
||||
* @param name Library name.
|
||||
*/
|
||||
forward void OnLibraryAdded(const char[] name);
|
||||
|
||||
/**
|
||||
* Called right before a library is removed that the current plugin references
|
||||
* optionally. A library is either a plugin name or extension name, as
|
||||
* Called right before a library is removed that the current plugin references
|
||||
* optionally. A library is either a plugin name or extension name, as
|
||||
* exposed via its include file.
|
||||
*
|
||||
* @param name Library name.
|
||||
* @param name Library name.
|
||||
*/
|
||||
forward void OnLibraryRemoved(const char[] name);
|
||||
|
||||
#define MAPLIST_FLAG_MAPSFOLDER (1<<0) /**< On failure, use all maps in the maps folder. */
|
||||
#define MAPLIST_FLAG_CLEARARRAY (1<<1) /**< If an input array is specified, clear it before adding. */
|
||||
#define MAPLIST_FLAG_NO_DEFAULT (1<<2) /**< Do not read "default" or "mapcyclefile" on failure. */
|
||||
#define MAPLIST_FLAG_MAPSFOLDER (1<<0) /**< On failure, use all maps in the maps folder. */
|
||||
#define MAPLIST_FLAG_CLEARARRAY (1<<1) /**< If an input array is specified, clear it before adding. */
|
||||
#define MAPLIST_FLAG_NO_DEFAULT (1<<2) /**< Do not read "default" or "mapcyclefile" on failure. */
|
||||
|
||||
/**
|
||||
* Loads a map list to an ADT Array.
|
||||
*
|
||||
* A map list is a list of maps from a file. SourceMod allows easy configuration of
|
||||
* maplists through addons/sourcemod/configs/maplists.cfg. Each entry is given a
|
||||
* name and a file (for example, "rtv" => "rtv.cfg"), or a name and a redirection
|
||||
* (for example, "rtv" => "default"). This native will read a map list entry,
|
||||
* cache the file, and return the list of maps it holds.
|
||||
* A map list is a list of maps from a file. SourceMod allows easy configuration of
|
||||
* maplists through addons/sourcemod/configs/maplists.cfg. Each entry is given a
|
||||
* name and a file (for example, "rtv" => "rtv.cfg"), or a name and a redirection
|
||||
* (for example, "rtv" => "default"). This native will read a map list entry,
|
||||
* cache the file, and return the list of maps it holds.
|
||||
*
|
||||
* Serial change numbers are used to identify if a map list has changed. Thus, if
|
||||
* you pass a serial change number and it's equal to what SourceMod currently knows
|
||||
* Serial change numbers are used to identify if a map list has changed. Thus, if
|
||||
* you pass a serial change number and it's equal to what SourceMod currently knows
|
||||
* about the map list, then SourceMod won't re-parse the file.
|
||||
*
|
||||
* If the maps end up being read from the maps folder (MAPLIST_FLAG_MAPSFOLDER), they
|
||||
* If the maps end up being read from the maps folder (MAPLIST_FLAG_MAPSFOLDER), they
|
||||
* are automatically sorted in alphabetical, ascending order.
|
||||
*
|
||||
* Arrays created by this function are temporary and must be freed via CloseHandle().
|
||||
* Modifying arrays created by this function will not affect future return values or
|
||||
* Modifying arrays created by this function will not affect future return values or
|
||||
* or the contents of arrays returned to other plugins.
|
||||
*
|
||||
* @param array Array to store the map list. If INVALID_HANDLE, a new blank
|
||||
* array will be created. The blocksize should be at least 16;
|
||||
* otherwise results may be truncated. Items are added to the array
|
||||
* as strings. The array is never checked for duplicates, and it is
|
||||
* not read beforehand. Only the serial number is used to detect
|
||||
* changes.
|
||||
* @param serial Serial number to identify last known map list change. If -1, the
|
||||
* the value will not be checked. If the map list has since changed,
|
||||
* the serial is updated (even if -1 was passed). If there is an error
|
||||
* finding a valid maplist, then the serial is set to -1.
|
||||
* @param str Config name, or "default" for the default map list. Config names
|
||||
* should be somewhat descriptive. For example, the admin menu uses
|
||||
* a config name of "admin menu". The list names can be configured
|
||||
* by users in addons/sourcemod/configs/maplists.cfg.
|
||||
* @param flags MAPLIST_FLAG flags.
|
||||
* @return On failure:
|
||||
* INVALID_HANDLE is returned, the serial is set to -1, and the input
|
||||
* array (if any) is left unchanged.
|
||||
* On no change:
|
||||
INVALID_HANDLE is returned, the serial is unchanged, and the input
|
||||
array (if any) is left unchanged.
|
||||
* On success:
|
||||
* A valid array Handle is returned, containing at least one map string.
|
||||
* If an array was passed, the return value is equal to the passed Array
|
||||
* Handle. If the passed array was not cleared, it will have grown by at
|
||||
* least one item. The serial number is updated to a positive number.
|
||||
* @error Invalid array Handle that is not INVALID_HANDLE.
|
||||
* @param array Array to store the map list. If INVALID_HANDLE, a new blank
|
||||
* array will be created. The blocksize should be at least 16;
|
||||
* otherwise results may be truncated. Items are added to the array
|
||||
* as strings. The array is never checked for duplicates, and it is
|
||||
* not read beforehand. Only the serial number is used to detect
|
||||
* changes.
|
||||
* @param serial Serial number to identify last known map list change. If -1, the
|
||||
* the value will not be checked. If the map list has since changed,
|
||||
* the serial is updated (even if -1 was passed). If there is an error
|
||||
* finding a valid maplist, then the serial is set to -1.
|
||||
* @param str Config name, or "default" for the default map list. Config names
|
||||
* should be somewhat descriptive. For example, the admin menu uses
|
||||
* a config name of "admin menu". The list names can be configured
|
||||
* by users in addons/sourcemod/configs/maplists.cfg.
|
||||
* @param flags MAPLIST_FLAG flags.
|
||||
* @return On failure:
|
||||
* INVALID_HANDLE is returned, the serial is set to -1, and the input
|
||||
* array (if any) is left unchanged.
|
||||
* On no change:
|
||||
* INVALID_HANDLE is returned, the serial is unchanged, and the input
|
||||
* array (if any) is left unchanged.
|
||||
* On success:
|
||||
* A valid array Handle is returned, containing at least one map string.
|
||||
* If an array was passed, the return value is equal to the passed Array
|
||||
* Handle. If the passed array was not cleared, it will have grown by at
|
||||
* least one item. The serial number is updated to a positive number.
|
||||
* @error Invalid array Handle that is not INVALID_HANDLE.
|
||||
*/
|
||||
native Handle ReadMapList(Handle array=INVALID_HANDLE,
|
||||
int &serial=-1,
|
||||
const char[] str="default",
|
||||
int flags=MAPLIST_FLAG_CLEARARRAY);
|
||||
|
||||
int &serial=-1,
|
||||
const char[] str="default",
|
||||
int flags=MAPLIST_FLAG_CLEARARRAY);
|
||||
|
||||
/**
|
||||
* Makes a compatibility binding for map lists. For example, if a function previously used
|
||||
* "clam.cfg" for map lists, this function will insert a "fake" binding to "clam.cfg" that
|
||||
* Makes a compatibility binding for map lists. For example, if a function previously used
|
||||
* "clam.cfg" for map lists, this function will insert a "fake" binding to "clam.cfg" that
|
||||
* will be overridden if it's in the maplists.cfg file.
|
||||
*
|
||||
* @param name Configuration name that would be used with ReadMapList().
|
||||
* @param file Default file to use.
|
||||
* @param name Configuration name that would be used with ReadMapList().
|
||||
* @param file Default file to use.
|
||||
*/
|
||||
native void SetMapListCompatBind(const char[] name, const char[] file);
|
||||
|
||||
/**
|
||||
* Called when a client has sent chat text. This must return either true or
|
||||
* Called when a client has sent chat text. This must return either true or
|
||||
* false to indicate that a client is or is not spamming the server.
|
||||
*
|
||||
* The return value is a hint only. Core or another plugin may decide
|
||||
* The return value is a hint only. Core or another plugin may decide
|
||||
* otherwise.
|
||||
*
|
||||
* @param client Client index. The server (0) will never be passed.
|
||||
* @return True if client is spamming the server, false otherwise.
|
||||
* @param client Client index. The server (0) will never be passed.
|
||||
* @return True if client is spamming the server, false otherwise.
|
||||
*/
|
||||
forward bool OnClientFloodCheck(int client);
|
||||
|
||||
/**
|
||||
* Called after a client's flood check has been computed. This can be used
|
||||
* Called after a client's flood check has been computed. This can be used
|
||||
* by antiflood algorithms to decay/increase flooding weights.
|
||||
*
|
||||
* Since the result from "OnClientFloodCheck" isn't guaranteed to be the
|
||||
* final result, it is generally a good idea to use this to play with other
|
||||
* Since the result from "OnClientFloodCheck" isn't guaranteed to be the
|
||||
* final result, it is generally a good idea to use this to play with other
|
||||
* algorithms nicely.
|
||||
*
|
||||
* @param client Client index. The server (0) will never be passed.
|
||||
* @param blocked True if client flooded last "say", false otherwise.
|
||||
* @param client Client index. The server (0) will never be passed.
|
||||
* @param blocked True if client flooded last "say", false otherwise.
|
||||
*/
|
||||
forward void OnClientFloodResult(int client, bool blocked);
|
||||
|
||||
@ -592,7 +591,7 @@ enum FeatureType
|
||||
* A native function call.
|
||||
*/
|
||||
FeatureType_Native,
|
||||
|
||||
|
||||
/**
|
||||
* A named capability. This is distinctly different from checking for a
|
||||
* native, because the underlying functionality could be enabled on-demand
|
||||
@ -612,12 +611,12 @@ enum FeatureStatus
|
||||
* Feature is available for use.
|
||||
*/
|
||||
FeatureStatus_Available,
|
||||
|
||||
|
||||
/**
|
||||
* Feature is not available.
|
||||
*/
|
||||
FeatureStatus_Unavailable,
|
||||
|
||||
|
||||
/**
|
||||
* Feature is not known at all.
|
||||
*/
|
||||
@ -669,7 +668,7 @@ enum NumberType
|
||||
|
||||
enum Address
|
||||
{
|
||||
Address_Null = 0, // a typical invalid result when an address lookup fails
|
||||
Address_Null = 0 // a typical invalid result when an address lookup fails
|
||||
};
|
||||
|
||||
/**
|
||||
@ -688,32 +687,32 @@ native int LoadFromAddress(Address addr, NumberType size);
|
||||
* @param data Value to store at the address.
|
||||
* @param size How many bytes should be written.
|
||||
*/
|
||||
native void StoreToAddress(Address addr, int data, NumberType size);
|
||||
native void StoreToAddress(Address addr, int data, NumberType size);
|
||||
|
||||
methodmap FrameIterator < Handle {
|
||||
// Creates a stack frame iterator to build your own stack traces.
|
||||
// @return New handle to a FrameIterator.
|
||||
// @return New handle to a FrameIterator.
|
||||
public native FrameIterator();
|
||||
|
||||
|
||||
// Advances the iterator to the next stack frame.
|
||||
// @return True if another frame was fetched and data can be successfully read.
|
||||
// @error No next element exception.
|
||||
// @return True if another frame was fetched and data can be successfully read.
|
||||
// @error No next element exception.
|
||||
public native bool Next();
|
||||
|
||||
|
||||
// Resets the iterator back to it's starting position.
|
||||
public native void Reset();
|
||||
|
||||
|
||||
// Returns the line number of the current function call.
|
||||
property bool LineNumber {
|
||||
public native get();
|
||||
}
|
||||
|
||||
|
||||
// Gets the name of the current function in the call stack.
|
||||
//
|
||||
// @param buffer Buffer to copy to.
|
||||
// @param maxlen Max size of the buffer.
|
||||
public native void GetFunctionName(char[] buffer, int maxlen);
|
||||
|
||||
|
||||
// Gets the file path to the current call in the call stack.
|
||||
//
|
||||
// @param buffer Buffer to copy to.
|
||||
|
@ -45,53 +45,53 @@
|
||||
/**
|
||||
* Calculates the length of a string.
|
||||
*
|
||||
* @param str String to check.
|
||||
* @return Number of valid character bytes in the string.
|
||||
* @param str String to check.
|
||||
* @return Number of valid character bytes in the string.
|
||||
*/
|
||||
native int strlen(const char[] str);
|
||||
|
||||
/**
|
||||
* Tests whether a string is found inside another string.
|
||||
*
|
||||
* @param str String to search in.
|
||||
* @param substr Substring to find inside the original string.
|
||||
* @param caseSensitive If true (default), search is case sensitive.
|
||||
* If false, search is case insensitive.
|
||||
* @return -1 on failure (no match found). Any other value
|
||||
* indicates a position in the string where the match starts.
|
||||
* @param str String to search in.
|
||||
* @param substr Substring to find inside the original string.
|
||||
* @param caseSensitive If true (default), search is case sensitive.
|
||||
* If false, search is case insensitive.
|
||||
* @return -1 on failure (no match found). Any other value
|
||||
* indicates a position in the string where the match starts.
|
||||
*/
|
||||
native int StrContains(const char[] str, const char[] substr, bool caseSensitive=true);
|
||||
|
||||
/**
|
||||
* Compares two strings lexographically.
|
||||
*
|
||||
* @param str1 First string (left).
|
||||
* @param str2 Second string (right).
|
||||
* @param caseSensitive If true (default), comparison is case sensitive.
|
||||
* If false, comparison is case insensitive.
|
||||
* @return -1 if str1 < str2
|
||||
* 0 if str1 == str2
|
||||
* 1 if str1 > str2
|
||||
* @param str1 First string (left).
|
||||
* @param str2 Second string (right).
|
||||
* @param caseSensitive If true (default), comparison is case sensitive.
|
||||
* If false, comparison is case insensitive.
|
||||
* @return -1 if str1 < str2
|
||||
* 0 if str1 == str2
|
||||
* 1 if str1 > str2
|
||||
*/
|
||||
native int strcmp(const char[] str1, const char[] str2, bool caseSensitive=true);
|
||||
|
||||
/**
|
||||
* Compares two strings parts lexographically.
|
||||
*
|
||||
* @param str1 First string (left).
|
||||
* @param str2 Second string (right).
|
||||
* @param num Number of characters to compare.
|
||||
* @param caseSensitive If true (default), comparison is case sensitive.
|
||||
* If false, comparison is case insensitive.
|
||||
* @return -1 if str1 < str2
|
||||
* 0 if str1 == str2
|
||||
* 1 if str1 > str2
|
||||
* @param str1 First string (left).
|
||||
* @param str2 Second string (right).
|
||||
* @param num Number of characters to compare.
|
||||
* @param caseSensitive If true (default), comparison is case sensitive.
|
||||
* If false, comparison is case insensitive.
|
||||
* @return -1 if str1 < str2
|
||||
* 0 if str1 == str2
|
||||
* 1 if str1 > str2
|
||||
*/
|
||||
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
|
||||
* @deprecated Renamed to strcmp
|
||||
*/
|
||||
#pragma deprecated Use strcmp() instead
|
||||
stock int StrCompare(const char[] str1, const char[] str2, bool caseSensitive=true)
|
||||
@ -102,11 +102,11 @@ stock int StrCompare(const char[] str1, const char[] str2, bool caseSensitive=tr
|
||||
/**
|
||||
* Returns whether two strings are equal.
|
||||
*
|
||||
* @param str1 First string (left).
|
||||
* @param str2 Second string (right).
|
||||
* @param caseSensitive If true (default), comparison is case sensitive.
|
||||
* If false, comparison is case insensitive.
|
||||
* @return True if equal, false otherwise.
|
||||
* @param str1 First string (left).
|
||||
* @param str2 Second string (right).
|
||||
* @param caseSensitive If true (default), comparison is case sensitive.
|
||||
* If false, comparison is case insensitive.
|
||||
* @return True if equal, false otherwise.
|
||||
*/
|
||||
stock bool StrEqual(const char[] str1, const char[] str2, bool caseSensitive=true)
|
||||
{
|
||||
@ -118,16 +118,16 @@ stock bool StrEqual(const char[] str1, const char[] str2, bool caseSensitive=tru
|
||||
* @note If the destination buffer is too small to hold the source string, the
|
||||
* destination will be truncated.
|
||||
*
|
||||
* @param dest Destination string buffer to copy to.
|
||||
* @param destLen Destination buffer length (includes null terminator).
|
||||
* @param source Source string buffer to copy from.
|
||||
* @return Number of cells written.
|
||||
* @param dest Destination string buffer to copy to.
|
||||
* @param destLen Destination buffer length (includes null terminator).
|
||||
* @param source Source string buffer to copy from.
|
||||
* @return Number of cells written.
|
||||
*/
|
||||
native int strcopy(char[] dest, int destLen, const char[] source);
|
||||
|
||||
/**
|
||||
* Backwards compatibility stock - use strcopy
|
||||
* @deprecated Renamed to strcopy
|
||||
* @deprecated Renamed to strcopy
|
||||
*/
|
||||
#pragma deprecated Use strcopy() instead
|
||||
stock int StrCopy(char[] dest, int destLen, const char[] source)
|
||||
@ -138,11 +138,11 @@ stock int StrCopy(char[] dest, int destLen, const char[] source)
|
||||
/**
|
||||
* Formats a string according to the SourceMod format rules (see documentation).
|
||||
*
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return Number of cells written.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return Number of cells written.
|
||||
*/
|
||||
native int Format(char[] buffer, int maxlength, const char[] format, any ...);
|
||||
|
||||
@ -152,11 +152,11 @@ native int Format(char[] buffer, int maxlength, const char[] format, any ...);
|
||||
* overlap the same memory as the output buffer. Since this security
|
||||
* check is removed, it is slightly faster.
|
||||
*
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return Number of cells written.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param ... Variable number of format parameters.
|
||||
* @return Number of cells written.
|
||||
*/
|
||||
native int FormatEx(char[] buffer, int maxlength, const char[] format, any ...);
|
||||
|
||||
@ -166,68 +166,68 @@ native int FormatEx(char[] buffer, int maxlength, const char[] format, any ...);
|
||||
* parent parameter stack, rather than a local. This is useful for
|
||||
* implementing your own variable argument functions.
|
||||
*
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param varpos Argument number which contains the '...' symbol.
|
||||
* Note: Arguments start at 1.
|
||||
* @return Number of bytes written.
|
||||
* @param buffer Destination string buffer.
|
||||
* @param maxlength Maximum length of output string buffer.
|
||||
* @param format Formatting rules.
|
||||
* @param varpos Argument number which contains the '...' symbol.
|
||||
* Note: Arguments start at 1.
|
||||
* @return Number of bytes written.
|
||||
*/
|
||||
native int VFormat(char[] buffer, int maxlength, const char[] format, int varpos);
|
||||
|
||||
/**
|
||||
* Converts a string to an integer.
|
||||
*
|
||||
* @param str String to convert.
|
||||
* @param nBase Numerical base to use. 10 is default.
|
||||
* @return Integer conversion of string, or 0 on failure.
|
||||
* @param str String to convert.
|
||||
* @param nBase Numerical base to use. 10 is default.
|
||||
* @return Integer conversion of string, or 0 on failure.
|
||||
*/
|
||||
native int StringToInt(const char[] str, int nBase=10);
|
||||
|
||||
/**
|
||||
* Converts a string to an integer with some more options.
|
||||
*
|
||||
* @param str String to convert.
|
||||
* @param result Variable to store the result in.
|
||||
* @param nBase Numerical base to use. 10 is default.
|
||||
* @return Number of characters consumed.
|
||||
* @param str String to convert.
|
||||
* @param result Variable to store the result in.
|
||||
* @param nBase Numerical base to use. 10 is default.
|
||||
* @return Number of characters consumed.
|
||||
*/
|
||||
native int StringToIntEx(const char[] str, int &result, int nBase=10);
|
||||
|
||||
/**
|
||||
* Converts an integer to a string.
|
||||
*
|
||||
* @param num Integer to convert.
|
||||
* @param str Buffer to store string in.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of cells written to buffer.
|
||||
* @param num Integer to convert.
|
||||
* @param str Buffer to store string in.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of cells written to buffer.
|
||||
*/
|
||||
native int IntToString(int num, char[] str, int maxlength);
|
||||
|
||||
/**
|
||||
* Converts a string to a floating point number.
|
||||
*
|
||||
* @param str String to convert to a float.
|
||||
* @return Floating point result, or 0.0 on error.
|
||||
* @param str String to convert to a float.
|
||||
* @return Floating point result, or 0.0 on error.
|
||||
*/
|
||||
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 float.
|
||||
* @param result Variable to store result in.
|
||||
* @return Number of characters consumed.
|
||||
* @param str String to convert to a float.
|
||||
* @param result Variable to store result in.
|
||||
* @return Number of characters consumed.
|
||||
*/
|
||||
native int StringToFloatEx(const char[] str, float &result);
|
||||
|
||||
/**
|
||||
* Converts a floating point number to a string.
|
||||
*
|
||||
* @param num Floating point number to convert.
|
||||
* @param str Buffer to store string in.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of cells written to buffer.
|
||||
* @param num Floating point number to convert.
|
||||
* @param str Buffer to store string in.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return Number of cells written to buffer.
|
||||
*/
|
||||
native int FloatToString(float num, char[] str, int maxlength);
|
||||
|
||||
@ -238,16 +238,16 @@ native int FloatToString(float num, char[] str, int maxlength);
|
||||
* of the string is reached. If nothing remains, -1 is returned.
|
||||
* Otherwise, the index to the first character is returned.
|
||||
*
|
||||
* @param source Source input string.
|
||||
* @param arg Stores argument read from string.
|
||||
* @param argLen Maximum length of argument buffer.
|
||||
* @return Index to next piece of string, or -1 if none.
|
||||
* @param source Source input string.
|
||||
* @param arg Stores argument read from string.
|
||||
* @param argLen Maximum length of argument buffer.
|
||||
* @return Index to next piece of string, or -1 if none.
|
||||
*/
|
||||
native int BreakString(const char[] source, char[] arg, int argLen);
|
||||
|
||||
/**
|
||||
* Backwards compatibility stock - use BreakString
|
||||
* @deprecated Renamed to BreakString.
|
||||
* @deprecated Renamed to BreakString.
|
||||
*/
|
||||
#pragma deprecated Use BreakString() instead
|
||||
stock int StrBreak(const char[] source, char[] arg, int argLen)
|
||||
@ -258,21 +258,21 @@ stock int StrBreak(const char[] source, char[] arg, int argLen)
|
||||
/**
|
||||
* Removes whitespace characters from the beginning and end of a string.
|
||||
*
|
||||
* @param str The string to trim.
|
||||
* @return Number of bytes written (UTF-8 safe).
|
||||
* @param str The string to trim.
|
||||
* @return Number of bytes written (UTF-8 safe).
|
||||
*/
|
||||
native int TrimString(char[] str);
|
||||
|
||||
/**
|
||||
* Returns text in a string up until a certain character sequence is reached.
|
||||
*
|
||||
* @param source Source input string.
|
||||
* @param split A string which specifies a search point to break at.
|
||||
* @param part Buffer to store string part.
|
||||
* @param partLen Maximum length of the string part buffer.
|
||||
* @return -1 if no match was found; otherwise, an index into source
|
||||
* marking the first index after the searched text. The
|
||||
* index is always relative to the start of the input string.
|
||||
* @param source Source input string.
|
||||
* @param split A string which specifies a search point to break at.
|
||||
* @param part Buffer to store string part.
|
||||
* @param partLen Maximum length of the string part buffer.
|
||||
* @return -1 if no match was found; otherwise, an index into source
|
||||
* marking the first index after the searched text. The
|
||||
* index is always relative to the start of the input string.
|
||||
*/
|
||||
native int SplitString(const char[] source, const char[] split, char[] part, int partLen);
|
||||
|
||||
@ -280,12 +280,12 @@ native int SplitString(const char[] source, const char[] split, char[] part, int
|
||||
* Given a string, replaces all occurrences of a search string with a
|
||||
* replacement string.
|
||||
*
|
||||
* @param text String to perform search and replacements on.
|
||||
* @param maxlength Maximum length of the string buffer.
|
||||
* @param search String to search for.
|
||||
* @param replace String to replace the search string with.
|
||||
* @param caseSensitive If true (default), search is case sensitive.
|
||||
* @return Number of replacements that were performed.
|
||||
* @param text String to perform search and replacements on.
|
||||
* @param maxlength Maximum length of the string buffer.
|
||||
* @param search String to search for.
|
||||
* @param replace String to replace the search string with.
|
||||
* @param caseSensitive If true (default), search is case sensitive.
|
||||
* @return Number of replacements that were performed.
|
||||
*/
|
||||
native int ReplaceString(char[] text, int maxlength, const char[] search, const char[] replace, bool caseSensitive=true);
|
||||
|
||||
@ -293,18 +293,18 @@ native int ReplaceString(char[] text, int maxlength, const char[] search, const
|
||||
* Given a string, replaces the first occurrence of a search string with a
|
||||
* replacement string.
|
||||
*
|
||||
* @param text String to perform search and replacements on.
|
||||
* @param maxlength Maximum length of the string buffer.
|
||||
* @param search String to search for.
|
||||
* @param replace String to replace the search string with.
|
||||
* @param searchLen If higher than -1, its value will be used instead of
|
||||
* a strlen() call on the search parameter.
|
||||
* @param replaceLen If higher than -1, its value will be used instead of
|
||||
* a strlen() call on the replace parameter.
|
||||
* @param caseSensitive If true (default), search is case sensitive.
|
||||
* @return Index into the buffer (relative to the start) from where
|
||||
* the last replacement ended, or -1 if no replacements were
|
||||
* made.
|
||||
* @param text String to perform search and replacements on.
|
||||
* @param maxlength Maximum length of the string buffer.
|
||||
* @param search String to search for.
|
||||
* @param replace String to replace the search string with.
|
||||
* @param searchLen If higher than -1, its value will be used instead of
|
||||
* a strlen() call on the search parameter.
|
||||
* @param replaceLen If higher than -1, its value will be used instead of
|
||||
* a strlen() call on the replace parameter.
|
||||
* @param caseSensitive If true (default), search is case sensitive.
|
||||
* @return Index into the buffer (relative to the start) from where
|
||||
* the last replacement ended, or -1 if no replacements were
|
||||
* made.
|
||||
*/
|
||||
native int ReplaceStringEx(char[] text, int maxlength, const char[] search, const char[] replace, int searchLen=-1, int replaceLen=-1, bool caseSensitive=true);
|
||||
|
||||
@ -313,8 +313,8 @@ native int ReplaceStringEx(char[] text, int maxlength, const char[] search, cons
|
||||
* for multi-byte characters (UTF-8). For normal ASCII characters,
|
||||
* this will return 1.
|
||||
*
|
||||
* @param source Source input string.
|
||||
* @return Number of bytes the current character uses.
|
||||
* @param source Source input string.
|
||||
* @return Number of bytes the current character uses.
|
||||
*/
|
||||
native int GetCharBytes(const char[] source);
|
||||
|
||||
@ -323,8 +323,8 @@ native int GetCharBytes(const char[] source);
|
||||
*
|
||||
* @note Multi-byte characters will always return false.
|
||||
*
|
||||
* @param chr Character to test.
|
||||
* @return True if character is alphabetical, otherwise false.
|
||||
* @param chr Character to test.
|
||||
* @return True if character is alphabetical, otherwise false.
|
||||
*/
|
||||
native bool IsCharAlpha(int chr);
|
||||
|
||||
@ -333,8 +333,8 @@ native bool IsCharAlpha(int chr);
|
||||
*
|
||||
* @note Multi-byte characters will always return false.
|
||||
*
|
||||
* @param chr Character to test.
|
||||
* @return True if character is numeric, otherwise false.
|
||||
* @param chr Character to test.
|
||||
* @return True if character is numeric, otherwise false.
|
||||
*/
|
||||
native bool IsCharNumeric(int chr);
|
||||
|
||||
@ -343,17 +343,17 @@ native bool IsCharNumeric(int chr);
|
||||
*
|
||||
* @note Multi-byte characters will always return false.
|
||||
*
|
||||
* @param chr Character to test.
|
||||
* @return True if character is whitespace, otherwise false.
|
||||
* @param chr Character to test.
|
||||
* @return True if character is whitespace, otherwise false.
|
||||
*/
|
||||
native bool IsCharSpace(int chr);
|
||||
|
||||
/**
|
||||
* Returns if a character is multi-byte or not.
|
||||
*
|
||||
* @param chr Character to test.
|
||||
* @return 0 for a normal 7-bit ASCII character,
|
||||
* otherwise number of bytes in multi-byte character.
|
||||
* @param chr Character to test.
|
||||
* @return 0 for a normal 7-bit ASCII character,
|
||||
* otherwise number of bytes in multi-byte character.
|
||||
*/
|
||||
native int IsCharMB(int chr);
|
||||
|
||||
@ -362,8 +362,8 @@ native int IsCharMB(int chr);
|
||||
*
|
||||
* @note Multi-byte characters will always return false.
|
||||
*
|
||||
* @param chr Character to test.
|
||||
* @return True if character is uppercase, otherwise false.
|
||||
* @param chr Character to test.
|
||||
* @return True if character is uppercase, otherwise false.
|
||||
*/
|
||||
native bool IsCharUpper(int chr);
|
||||
|
||||
@ -372,8 +372,8 @@ native bool IsCharUpper(int chr);
|
||||
*
|
||||
* @note Multi-byte characters will always return false.
|
||||
*
|
||||
* @param chr Character to test.
|
||||
* @return True if character is lowercase, otherwise false.
|
||||
* @param chr Character to test.
|
||||
* @return True if character is lowercase, otherwise false.
|
||||
*/
|
||||
native bool IsCharLower(int chr);
|
||||
|
||||
@ -385,18 +385,18 @@ native bool IsCharLower(int chr);
|
||||
* exist. Otherwise, the string is left unmodified. This function should
|
||||
* be considered O(k) (all characters get shifted down).
|
||||
*
|
||||
* @param text String to modify (in place).
|
||||
* @return True if string was modified, false if there was no
|
||||
* set of quotes.
|
||||
* @param text String to modify (in place).
|
||||
* @return True if string was modified, false if there was no
|
||||
* set of quotes.
|
||||
*/
|
||||
native bool StripQuotes(char[] text);
|
||||
|
||||
/**
|
||||
* Converts a lowercase character to its uppercase counterpart.
|
||||
*
|
||||
* @param chr Character to convert.
|
||||
* @return Uppercase character on success,
|
||||
* no change on failure.
|
||||
* @param chr Character to convert.
|
||||
* @return Uppercase character on success,
|
||||
* no change on failure.
|
||||
*/
|
||||
stock int CharToUpper(int chr)
|
||||
{
|
||||
@ -404,15 +404,16 @@ stock int CharToUpper(int chr)
|
||||
{
|
||||
return (chr & ~(1<<5));
|
||||
}
|
||||
|
||||
return chr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an uppercase character to its lowercase counterpart.
|
||||
*
|
||||
* @param chr Character to convert.
|
||||
* @return Lowercase character on success,
|
||||
* no change on failure.
|
||||
* @param chr Character to convert.
|
||||
* @return Lowercase character on success,
|
||||
* no change on failure.
|
||||
*/
|
||||
stock int CharToLower(int chr)
|
||||
{
|
||||
@ -420,32 +421,42 @@ stock int CharToLower(int chr)
|
||||
{
|
||||
return (chr | (1<<5));
|
||||
}
|
||||
|
||||
return chr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the first occurrence of a character in a string.
|
||||
*
|
||||
* @param str String.
|
||||
* @param c Character to search for.
|
||||
* @param reverse False (default) to search forward, true to search
|
||||
* backward.
|
||||
* @return The index of the first occurrence of the character
|
||||
* in the string, or -1 if the character was not found.
|
||||
* @param str String.
|
||||
* @param c Character to search for.
|
||||
* @param reverse False (default) to search forward, true to search
|
||||
* backward.
|
||||
* @return The index of the first occurrence of the character
|
||||
* in the string, or -1 if the character was not found.
|
||||
*/
|
||||
stock int FindCharInString(const char[] str, char c, bool reverse = false)
|
||||
{
|
||||
int len = strlen(str);
|
||||
|
||||
if (!reverse) {
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (!reverse)
|
||||
{
|
||||
for (int i = 0; i < len; i++)
|
||||
{
|
||||
if (str[i] == c)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = len - 1; i >= 0; i--) {
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = len - 1; i >= 0; i--)
|
||||
{
|
||||
if (str[i] == c)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -455,10 +466,10 @@ stock int FindCharInString(const char[] str, char c, bool reverse = false)
|
||||
/**
|
||||
* Concatenates one string onto another.
|
||||
*
|
||||
* @param buffer String to append to.
|
||||
* @param maxlength Maximum length of entire buffer.
|
||||
* @param source Source string to concatenate.
|
||||
* @return Number of bytes written.
|
||||
* @param buffer String to append to.
|
||||
* @param maxlength Maximum length of entire buffer.
|
||||
* @param source Source string to concatenate.
|
||||
* @return Number of bytes written.
|
||||
*/
|
||||
stock int StrCat(char[] buffer, int maxlength, const char[] source)
|
||||
{
|
||||
@ -474,14 +485,14 @@ stock int StrCat(char[] buffer, int maxlength, const char[] source)
|
||||
/**
|
||||
* Breaks a string into pieces and stores each piece into an array of buffers.
|
||||
*
|
||||
* @param text The string to split.
|
||||
* @param split The string to use as a split delimiter.
|
||||
* @param buffers An array of string buffers (2D array).
|
||||
* @param maxStrings Number of string buffers (first dimension size).
|
||||
* @param maxStringLength Maximum length of each string buffer.
|
||||
* @param copyRemainder False (default) discard excess pieces, true to ignore
|
||||
* delimiters after last piece.
|
||||
* @return Number of strings retrieved.
|
||||
* @param text The string to split.
|
||||
* @param split The string to use as a split delimiter.
|
||||
* @param buffers An array of string buffers (2D array).
|
||||
* @param maxStrings Number of string buffers (first dimension size).
|
||||
* @param maxStringLength Maximum length of each string buffer.
|
||||
* @param copyRemainder False (default) discard excess pieces, true to ignore
|
||||
* delimiters after last piece.
|
||||
* @return Number of strings retrieved.
|
||||
*/
|
||||
stock int ExplodeString(const char[] text, const char[] split, char[][] buffers, int maxStrings,
|
||||
int maxStringLength, bool copyRemainder = false)
|
||||
@ -515,12 +526,12 @@ stock int ExplodeString(const char[] text, const char[] split, char[][] buffers,
|
||||
* Joins an array of strings into one string, with a "join" string inserted in
|
||||
* between each given string. This function complements ExplodeString.
|
||||
*
|
||||
* @param strings An array of strings.
|
||||
* @param numStrings Number of strings in the array.
|
||||
* @param join The join string to insert between each string.
|
||||
* @param buffer Output buffer to write the joined string to.
|
||||
* @param maxLength Maximum length of the output buffer.
|
||||
* @return Number of bytes written to the output buffer.
|
||||
* @param strings An array of strings.
|
||||
* @param numStrings Number of strings in the array.
|
||||
* @param join The join string to insert between each string.
|
||||
* @param buffer Output buffer to write the joined string to.
|
||||
* @param maxLength Maximum length of the output buffer.
|
||||
* @return Number of bytes written to the output buffer.
|
||||
*/
|
||||
stock int ImplodeStrings(const char[][] strings, int numStrings, const char[] join, char[] buffer, int maxLength)
|
||||
{
|
||||
|
@ -41,9 +41,12 @@ stock void SetTestContext(const char[] context)
|
||||
stock void AssertEq(const char[] text, int cell1, int cell2)
|
||||
{
|
||||
TestNumber++;
|
||||
if (cell1 == cell2) {
|
||||
if (cell1 == cell2)
|
||||
{
|
||||
PrintToServer("[%d] %s: %s == %d OK", TestNumber, TestContext, text, cell2);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToServer("[%d] %s FAIL: %s should be %d, got %d", TestNumber, TestContext, text, cell2, cell1);
|
||||
ThrowError("test %d (%s in %s) failed", TestNumber, text, TestContext);
|
||||
}
|
||||
@ -52,9 +55,12 @@ stock void AssertEq(const char[] text, int cell1, int cell2)
|
||||
stock void AssertFalse(const char[] text, bool value)
|
||||
{
|
||||
TestNumber++;
|
||||
if (!value) {
|
||||
if (!value)
|
||||
{
|
||||
PrintToServer("[%d] %s: %s == false OK", TestNumber, TestContext, text, value);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToServer("[%d] %s FAIL: %s should be false, got true", TestNumber, TestContext, text);
|
||||
ThrowError("test %d (%s in %s) failed", TestNumber, text, TestContext);
|
||||
}
|
||||
@ -63,9 +69,12 @@ stock void AssertFalse(const char[] text, bool value)
|
||||
stock void AssertTrue(const char[] text, bool value)
|
||||
{
|
||||
TestNumber++;
|
||||
if (value) {
|
||||
if (value)
|
||||
{
|
||||
PrintToServer("[%d] %s: %s == true OK", TestNumber, TestContext, text, value);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToServer("[%d] %s FAIL: %s should be true, got false", TestNumber, TestContext, text);
|
||||
ThrowError("test %d (%s in %s) failed", TestNumber, text, TestContext);
|
||||
}
|
||||
|
@ -47,9 +47,9 @@
|
||||
*/
|
||||
enum SMCResult
|
||||
{
|
||||
SMCParse_Continue, /**< Continue parsing */
|
||||
SMCParse_Halt, /**< Stop parsing here */
|
||||
SMCParse_HaltFail /**< Stop parsing and return failure */
|
||||
SMCParse_Continue, /**< Continue parsing */
|
||||
SMCParse_Halt, /**< Stop parsing here */
|
||||
SMCParse_HaltFail /**< Stop parsing and return failure */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -57,66 +57,77 @@ enum SMCResult
|
||||
*/
|
||||
enum SMCError
|
||||
{
|
||||
SMCError_Okay = 0, /**< No error */
|
||||
SMCError_StreamOpen, /**< Stream failed to open */
|
||||
SMCError_StreamError, /**< The stream died... somehow */
|
||||
SMCError_Custom, /**< A custom handler threw an error */
|
||||
SMCError_InvalidSection1, /**< A section was declared without quotes, and had extra tokens */
|
||||
SMCError_InvalidSection2, /**< A section was declared without any header */
|
||||
SMCError_InvalidSection3, /**< A section ending was declared with too many unknown tokens */
|
||||
SMCError_InvalidSection4, /**< A section ending has no matching beginning */
|
||||
SMCError_InvalidSection5, /**< A section beginning has no matching ending */
|
||||
SMCError_InvalidTokens, /**< There were too many unidentifiable strings on one line */
|
||||
SMCError_TokenOverflow, /**< The token buffer overflowed */
|
||||
SMCError_InvalidProperty1, /**< A property was declared outside of any section */
|
||||
SMCError_Okay = 0, /**< No error */
|
||||
SMCError_StreamOpen, /**< Stream failed to open */
|
||||
SMCError_StreamError, /**< The stream died... somehow */
|
||||
SMCError_Custom, /**< A custom handler threw an error */
|
||||
SMCError_InvalidSection1, /**< A section was declared without quotes, and had extra tokens */
|
||||
SMCError_InvalidSection2, /**< A section was declared without any header */
|
||||
SMCError_InvalidSection3, /**< A section ending was declared with too many unknown tokens */
|
||||
SMCError_InvalidSection4, /**< A section ending has no matching beginning */
|
||||
SMCError_InvalidSection5, /**< A section beginning has no matching ending */
|
||||
SMCError_InvalidTokens, /**< There were too many unidentifiable strings on one line */
|
||||
SMCError_TokenOverflow, /**< The token buffer overflowed */
|
||||
SMCError_InvalidProperty1 /**< A property was declared outside of any section */
|
||||
};
|
||||
|
||||
// Called when parsing is started.
|
||||
//
|
||||
// @param smc The SMC Parse Handle.
|
||||
/**
|
||||
* Called when parsing is started.
|
||||
*
|
||||
* @param smc The SMC Parse Handle.
|
||||
*/
|
||||
typedef SMC_ParseStart = function void (SMCParser smc);
|
||||
|
||||
// Called when the parser is entering a new section or sub-section.
|
||||
//
|
||||
// Note: Enclosing quotes are always stripped.
|
||||
//
|
||||
// @param smc The SMC Parser.
|
||||
// @param name String containing section name.
|
||||
// @param opt_quotes True if the section name was quote-enclosed in the file.
|
||||
// @return An SMCResult action to take.
|
||||
/**
|
||||
* Called when the parser is entering a new section or sub-section.
|
||||
*
|
||||
* Note: Enclosing quotes are always stripped.
|
||||
*
|
||||
* @param smc The SMC Parser.
|
||||
* @param name String containing section name.
|
||||
* @param opt_quotes True if the section name was quote-enclosed in the file.
|
||||
* @return An SMCResult action to take.
|
||||
*/
|
||||
typedef SMC_NewSection = function SMCResult (SMCParser smc, const char[] name, bool opt_quotes);
|
||||
|
||||
// Called when the parser finds a new key/value pair.
|
||||
//
|
||||
// Note: Enclosing quotes are always stripped.
|
||||
//
|
||||
// @param smc The SMCParser.
|
||||
// @param key String containing key name.
|
||||
// @param value String containing value name.
|
||||
// @param key_quotes Whether or not the key was enclosed in quotes.
|
||||
// @param value_quotes Whether or not the value was enclosed in quotes.
|
||||
// @return An SMCResult action to take.
|
||||
/**
|
||||
* Called when the parser finds a new key/value pair.
|
||||
*
|
||||
* Note: Enclosing quotes are always stripped.
|
||||
*
|
||||
* @param smc The SMCParser.
|
||||
* @param key String containing key name.
|
||||
* @param value String containing value name.
|
||||
* @param key_quotes Whether or not the key was enclosed in quotes.
|
||||
* @param value_quotes Whether or not the value was enclosed in quotes.
|
||||
* @return An SMCResult action to take.
|
||||
*/
|
||||
typedef SMC_KeyValue = function SMCResult (SMCParser smc, const char[] key, const char[] value, bool key_quotes, bool value_quotes);
|
||||
|
||||
// Called when the parser finds the end of the current section.
|
||||
//
|
||||
// @param smc The SMCParser.
|
||||
// @return An SMCResult action to take.
|
||||
/** Called when the parser finds the end of the current section.
|
||||
*
|
||||
* @param smc The SMCParser.
|
||||
* @return An SMCResult action to take.
|
||||
*/
|
||||
typedef SMC_EndSection = function SMCResult (SMCParser smc);
|
||||
|
||||
// Called when parsing is halted.
|
||||
//
|
||||
// @param smc The SMCParser.
|
||||
// @param halted True if abnormally halted, false otherwise.
|
||||
// @param failed True if parsing failed, false otherwise.
|
||||
/**
|
||||
* Called when parsing is halted.
|
||||
*
|
||||
* @param smc The SMCParser.
|
||||
* @param halted True if abnormally halted, false otherwise.
|
||||
* @param failed True if parsing failed, false otherwise.
|
||||
*/
|
||||
typedef SMC_ParseEnd = function void (SMCParser smc, bool halted, bool failed);
|
||||
|
||||
// Callback for whenever a new line of text is about to be parsed.
|
||||
//
|
||||
// @param smc The SMCParser.
|
||||
// @param line A string containing the raw line from the file.
|
||||
// @param lineno The line number it occurs on.
|
||||
// @return An SMCResult action to take.
|
||||
/**
|
||||
* Callback for whenever a new line of text is about to be parsed.
|
||||
*
|
||||
* @param smc The SMCParser.
|
||||
* @param line A string containing the raw line from the file.
|
||||
* @param lineno The line number it occurs on.
|
||||
* @return An SMCResult action to take.
|
||||
*/
|
||||
typedef SMC_RawLine = function SMCResult (SMCParser smc, const char[] line, int lineno);
|
||||
|
||||
// An SMCParser is a callback-driven parser for SourceMod configuration files.
|
||||
@ -130,10 +141,10 @@ methodmap SMCParser < Handle
|
||||
|
||||
// Parses an SMC file.
|
||||
//
|
||||
// @param file A string containing the file path.
|
||||
// @param line An optional variable to store the last line number read.
|
||||
// @param col An optional variable to store the last column number read.
|
||||
// @return An SMCParseError result.
|
||||
// @param file A string containing the file path.
|
||||
// @param line An optional variable to store the last line number read.
|
||||
// @param col An optional variable to store the last column number read.
|
||||
// @return An SMCParseError result.
|
||||
public native SMCError ParseFile(const char[] file, int &line = 0, int &col = 0);
|
||||
|
||||
// Sets the callback for receiving SMC_ParseStart events.
|
||||
@ -168,76 +179,77 @@ methodmap SMCParser < Handle
|
||||
|
||||
// Gets an error string for an SMCError code.
|
||||
//
|
||||
// @param error The SMCParseError code.
|
||||
// @param buffer A string buffer for the error (contents undefined on failure).
|
||||
// @param buf_max The maximum size of the buffer.
|
||||
// @return The number of characters written to buffer.
|
||||
// @param error The SMCParseError code.
|
||||
// @param buffer A string buffer for the error (contents undefined on failure).
|
||||
// @param buf_max The maximum size of the buffer.
|
||||
// @return The number of characters written to buffer.
|
||||
public native void GetErrorString(SMCError error, char[] buffer, int buf_max);
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a new SMC file format parser. This is used to set parse hooks.
|
||||
*
|
||||
* @return A new Handle to an SMC Parse structure.
|
||||
* @return A new Handle to an SMC Parse structure.
|
||||
*/
|
||||
native SMCParser SMC_CreateParser();
|
||||
|
||||
/**
|
||||
* Parses an SMC file.
|
||||
*
|
||||
* @param smc A Handle to an SMC Parse structure.
|
||||
* @param file A string containing the file path.
|
||||
* @param line An optional by reference cell to store the last line number read.
|
||||
* @param col An optional by reference cell to store the last column number read.
|
||||
* @return An SMCParseError result.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param smc A Handle to an SMC Parse structure.
|
||||
* @param file A string containing the file path.
|
||||
* @param line An optional by reference cell to store the last line number read.
|
||||
* @param col An optional by reference cell to store the last column number read.
|
||||
* @return An SMCParseError result.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native SMCError SMC_ParseFile(Handle smc, const char[] file, int &line=0, int &col=0);
|
||||
|
||||
/**
|
||||
* Gets an error string for an SMCError code.
|
||||
*
|
||||
* @note SMCError_Okay returns false.
|
||||
* @note SMCError_Custom (which is thrown on SMCParse_HaltFail) returns false.
|
||||
*
|
||||
* @param error The SMCParseError code.
|
||||
* @param buffer A string buffer for the error (contents undefined on failure).
|
||||
* @param buf_max The maximum size of the buffer.
|
||||
* @return True on success, false otherwise.
|
||||
* @param error The SMCParseError code.
|
||||
* @param buffer A string buffer for the error (contents undefined on failure).
|
||||
* @param buf_max The maximum size of the buffer.
|
||||
* @return True on success, false otherwise.
|
||||
*/
|
||||
native bool SMC_GetErrorString(SMCError error, char[] buffer, int buf_max);
|
||||
|
||||
/**
|
||||
* Sets the SMC_ParseStart function of a parse Handle.
|
||||
*
|
||||
* @param smc Handle to an SMC Parse.
|
||||
* @param func SMC_ParseStart function.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param smc Handle to an SMC Parse.
|
||||
* @param func SMC_ParseStart function.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid or corrupt Handle.
|
||||
* @param smc Handle to an SMC Parse.
|
||||
* @param func SMC_ParseEnd function.
|
||||
* @error Invalid or corrupt Handle.
|
||||
*/
|
||||
native void SMC_SetParseEnd(Handle smc, SMC_ParseEnd func);
|
||||
|
||||
/**
|
||||
* Sets the three main reader functions.
|
||||
*
|
||||
* @param smc An SMC parse Handle.
|
||||
* @param ns An SMC_NewSection function pointer.
|
||||
* @param kv An SMC_KeyValue function pointer.
|
||||
* @param es An SMC_EndSection function pointer.
|
||||
* @param smc An SMC parse Handle.
|
||||
* @param ns An SMC_NewSection function pointer.
|
||||
* @param kv An SMC_KeyValue function pointer.
|
||||
* @param es An SMC_EndSection function pointer.
|
||||
*/
|
||||
native void SMC_SetReaders(Handle smc, SMC_NewSection ns, SMC_KeyValue kv, SMC_EndSection es);
|
||||
|
||||
/**
|
||||
* Sets a raw line reader on an SMC parser Handle.
|
||||
*
|
||||
* @param smc Handle to an SMC Parse.
|
||||
* @param func SMC_RawLine function.
|
||||
* @param smc Handle to an SMC Parse.
|
||||
* @param func SMC_RawLine function.
|
||||
*/
|
||||
native void SMC_SetRawLine(Handle smc, SMC_RawLine func);
|
||||
|
@ -35,14 +35,14 @@
|
||||
#endif
|
||||
#define _tf2_included
|
||||
|
||||
#define TF_STUNFLAG_SLOWDOWN (1 << 0) /**< activates slowdown modifier */
|
||||
#define TF_STUNFLAG_BONKSTUCK (1 << 1) /**< bonk sound, stuck */
|
||||
#define TF_STUNFLAG_LIMITMOVEMENT (1 << 2) /**< disable forward/backward movement */
|
||||
#define TF_STUNFLAG_CHEERSOUND (1 << 3) /**< cheering sound */
|
||||
#define TF_STUNFLAG_NOSOUNDOREFFECT (1 << 5) /**< no sound or particle */
|
||||
#define TF_STUNFLAG_THIRDPERSON (1 << 6) /**< panic animation */
|
||||
#define TF_STUNFLAG_GHOSTEFFECT (1 << 7) /**< ghost particles */
|
||||
#define TF_STUNFLAG_SOUND (1 << 8) /**< sound */
|
||||
#define TF_STUNFLAG_SLOWDOWN (1 << 0) /**< activates slowdown modifier */
|
||||
#define TF_STUNFLAG_BONKSTUCK (1 << 1) /**< bonk sound, stuck */
|
||||
#define TF_STUNFLAG_LIMITMOVEMENT (1 << 2) /**< disable forward/backward movement */
|
||||
#define TF_STUNFLAG_CHEERSOUND (1 << 3) /**< cheering sound */
|
||||
#define TF_STUNFLAG_NOSOUNDOREFFECT (1 << 5) /**< no sound or particle */
|
||||
#define TF_STUNFLAG_THIRDPERSON (1 << 6) /**< panic animation */
|
||||
#define TF_STUNFLAG_GHOSTEFFECT (1 << 7) /**< ghost particles */
|
||||
#define TF_STUNFLAG_SOUND (1 << 8) /**< sound */
|
||||
|
||||
#define TF_STUNFLAGS_LOSERSTATE TF_STUNFLAG_SLOWDOWN|TF_STUNFLAG_NOSOUNDOREFFECT|TF_STUNFLAG_THIRDPERSON
|
||||
#define TF_STUNFLAGS_GHOSTSCARE TF_STUNFLAG_GHOSTEFFECT|TF_STUNFLAG_THIRDPERSON
|
||||
@ -69,7 +69,7 @@ enum TFTeam
|
||||
TFTeam_Unassigned = 0,
|
||||
TFTeam_Spectator = 1,
|
||||
TFTeam_Red = 2,
|
||||
TFTeam_Blue = 3
|
||||
TFTeam_Blue = 3
|
||||
};
|
||||
|
||||
enum TFCond
|
||||
@ -206,7 +206,7 @@ enum TFCond
|
||||
TFCond_BurningPyro,
|
||||
TFCond_RocketPack,
|
||||
TFCond_LostFooting,
|
||||
TFCond_AirCurrent,
|
||||
TFCond_AirCurrent
|
||||
};
|
||||
|
||||
const float TFCondDuration_Infinite = -1.0;
|
||||
@ -247,55 +247,55 @@ enum TFObjectMode
|
||||
/**
|
||||
* Sets a client on fire for 10 seconds.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param attacker Attacker's index.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param attacker Attacker's index.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void TF2_IgnitePlayer(int client, int attacker);
|
||||
|
||||
/**
|
||||
* Respawns a client
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void TF2_RespawnPlayer(int client);
|
||||
|
||||
/**
|
||||
* Regenerates a client's health and ammunition
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void TF2_RegeneratePlayer(int client);
|
||||
|
||||
/**
|
||||
* Adds a condition to a player
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param condition Integer identifier of condition to apply.
|
||||
* @param duration Duration of condition (does not apply to all conditions).
|
||||
* @param client Player's index.
|
||||
* @param condition Integer identifier of condition to apply.
|
||||
* @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).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param inflictor Condition inflictor's index (0 for no inflictor).
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param condition Integer identifier of condition to remove.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @param enabled Whether to enable or disable PowerPlay on player.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void TF2_SetPlayerPowerPlay(int client, bool enabled);
|
||||
|
||||
@ -304,47 +304,48 @@ native void TF2_SetPlayerPowerPlay(int client, bool enabled);
|
||||
*
|
||||
* Note: This only starts the disguise process and a delay occurs before the spy is fully disguised
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @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)
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @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)
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
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.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
* @param client Player's index.
|
||||
* @error Invalid client index, client not in game, or no mod support.
|
||||
*/
|
||||
native void TF2_RemovePlayerDisguise(int client);
|
||||
|
||||
/**
|
||||
* Stuns a client
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param duration Duration of stun.
|
||||
* @param slowdown Slowdown percent (as decimal, 0.00-1.00)
|
||||
* Ignored if TF_STUNFLAG_SLOWDOWN is not set.
|
||||
* @param stunflags Stun flags.
|
||||
* @param attacker Attacker's index (0 is allowed for world).
|
||||
* @param client Player's index.
|
||||
* @param duration Duration of stun.
|
||||
* @param slowdown Slowdown percent (as decimal, 0.00-1.00)
|
||||
* Ignored if TF_STUNFLAG_SLOWDOWN is not set.
|
||||
* @param stunflags Stun flags.
|
||||
* @param attacker Attacker's index (0 is allowed for world).
|
||||
*/
|
||||
native void TF2_StunPlayer(int client, float duration, float slowdown=0.0, int stunflags, int attacker=0);
|
||||
|
||||
/**
|
||||
* Induces the bleed effect on a client
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param attacker Attacker's index.
|
||||
* @param duration Duration of bleeding (in seconds).
|
||||
* @param client Player's index.
|
||||
* @param attacker Attacker's index.
|
||||
* @param duration Duration of bleeding (in seconds).
|
||||
*/
|
||||
native void TF2_MakeBleed(int client, int attacker, float duration);
|
||||
|
||||
/**
|
||||
* Retrieves the entity index of the CPlayerResource entity
|
||||
*
|
||||
* @return The current resource entity index.
|
||||
* @return The current resource entity index.
|
||||
* @deprecated Use GetPlayerResourceEntity instead
|
||||
*/
|
||||
#pragma deprecated Use GetPlayerResourceEntity instead
|
||||
native int TF2_GetResourceEntity();
|
||||
@ -352,8 +353,8 @@ native int TF2_GetResourceEntity();
|
||||
/**
|
||||
* Finds the TFClassType for a given class name.
|
||||
*
|
||||
* @param classname A classname string such as "sniper" or "demoman"
|
||||
* @return A TFClassType constant.
|
||||
* @param classname A classname string such as "sniper" or "demoman"
|
||||
* @return A TFClassType constant.
|
||||
*/
|
||||
native TFClassType TF2_GetClass(const char[] classname);
|
||||
|
||||
@ -363,19 +364,19 @@ native TFClassType TF2_GetClass(const char[] classname);
|
||||
* action to override the decision with the value of 'result'
|
||||
*
|
||||
* @note Since critical shots are also calculated client side any changes made with
|
||||
* this will not show for the shooter. Projectile weapons such as the rocketlauncher
|
||||
* and demoman weapons will show a critical bullet but no critical sound effect.
|
||||
* Bullet hits should appear as expected.
|
||||
* this will not show for the shooter. Projectile weapons such as the rocketlauncher
|
||||
* and demoman weapons will show a critical bullet but no critical sound effect.
|
||||
* Bullet hits should appear as expected.
|
||||
*
|
||||
* @param client Client Index.
|
||||
* @param weapon Weapon entity Index.
|
||||
* @param weaponname Classname of the weapon.
|
||||
* @param result Buffer param for the result of the decision.
|
||||
* @param client Client Index.
|
||||
* @param weapon Weapon entity Index.
|
||||
* @param weaponname Classname of the weapon.
|
||||
* @param result Buffer param for the result of the decision.
|
||||
*/
|
||||
forward Action TF2_CalcIsAttackCritical(int client, int weapon, char[] weaponname, bool &result);
|
||||
|
||||
/**
|
||||
* @deprecated No longer called. Use TF2_OnIsHolidayActive.
|
||||
* @deprecated No longer called. Use TF2_OnIsHolidayActive.
|
||||
*/
|
||||
#pragma deprecated No longer called. Use TF2_OnIsHolidayActive.
|
||||
forward Action TF2_OnGetHoliday(TFHoliday &holiday);
|
||||
@ -385,17 +386,17 @@ forward Action TF2_OnGetHoliday(TFHoliday &holiday);
|
||||
* Return Plugin_Continue to let the original calculation or return a higher
|
||||
* action to override the decision with the value of 'result'
|
||||
*
|
||||
* @param holiday Holiday being checked.
|
||||
* @param result Buffer param for the result of the decision.
|
||||
* @return Plugin_Continue for original calculation, higher value to use 'result'.
|
||||
* @param holiday Holiday being checked.
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* Returns whether or not a holiday is active
|
||||
*
|
||||
* @param holiday Holiday being checked.
|
||||
* @return Boolean of whether or not the holiday is active.
|
||||
* @param holiday Holiday being checked.
|
||||
* @return Boolean of whether or not the holiday is active.
|
||||
*/
|
||||
native bool TF2_IsHolidayActive(TFHoliday holiday);
|
||||
|
||||
@ -403,7 +404,7 @@ native bool TF2_IsHolidayActive(TFHoliday holiday);
|
||||
* Returns whether or not a client (Player) is in a duel.
|
||||
*
|
||||
* @param client Client Index.
|
||||
* @return Boolean of whether or not the client/player is dueling.
|
||||
* @return Boolean of whether or not the client/player is dueling.
|
||||
*/
|
||||
native bool TF2_IsPlayerInDuel(int client);
|
||||
|
||||
@ -411,16 +412,16 @@ native bool TF2_IsPlayerInDuel(int client);
|
||||
* Removes an econ wearable (hat, misc, etc) from a player.
|
||||
* This also deletes the wearable entity.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param wearable Index of the wearable entity.
|
||||
* @error Invalid client index, client not in game, invalid wearable entity, or no mod support.
|
||||
* @param client Client index.
|
||||
* @param wearable Index of the wearable entity.
|
||||
* @error Invalid client index, client not in game, invalid wearable entity, or no mod support.
|
||||
*/
|
||||
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 condition is being added.
|
||||
* @param client Index of the client to which the condition is being added.
|
||||
* @param condition Condition that is being added.
|
||||
*/
|
||||
forward void TF2_OnConditionAdded(int client, TFCond condition);
|
||||
@ -428,8 +429,8 @@ 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.
|
||||
* @param client Index of the client to which the condition is being removed.
|
||||
* @param condition Condition that is being removed.
|
||||
*/
|
||||
forward void TF2_OnConditionRemoved(int client, TFCond condition);
|
||||
|
||||
@ -448,11 +449,11 @@ forward void TF2_OnWaitingForPlayersEnd();
|
||||
* Return Plugin_Continue to let the original calculation or return a higher
|
||||
* action to override the decision with the value of 'result'
|
||||
*
|
||||
* @param client Client index.
|
||||
* @param teleporter Teleporter entity index.
|
||||
* @param result Buffer param for the result of the decision.
|
||||
* 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'.
|
||||
* @param client Client index.
|
||||
* @param teleporter Teleporter entity index.
|
||||
* @param result Buffer param for the result of the decision.
|
||||
* 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(int client, int teleporter, bool &result);
|
||||
|
||||
|
@ -166,7 +166,7 @@ enum {
|
||||
TF_CUSTOM_SLAP_KILL,
|
||||
TF_CUSTOM_CROC,
|
||||
TF_CUSTOM_TAUNTATK_GASBLAST,
|
||||
TF_CUSTOM_AXTINGUISHER_BOOSTED,
|
||||
TF_CUSTOM_AXTINGUISHER_BOOSTED
|
||||
};
|
||||
|
||||
// Weapon codes as used in some events, such as player_death
|
||||
@ -281,7 +281,7 @@ enum {
|
||||
TF_WEAPON_SLAP,
|
||||
TF_WEAPON_JAR_GAS,
|
||||
TF_WEAPON_GRENADE_JAR_GAS,
|
||||
TF_WEAPON_FLAME_BALL,
|
||||
TF_WEAPON_FLAME_BALL
|
||||
};
|
||||
|
||||
// TF2 Weapon Loadout Slots
|
||||
@ -353,9 +353,9 @@ static const char TFResourceNames[TFResourceType][] =
|
||||
/**
|
||||
* Gets a client's current team.
|
||||
*
|
||||
* @param client Client index.
|
||||
* @return Current TFTeam of client.
|
||||
* @error Invalid client index.
|
||||
* @param client Client index.
|
||||
* @return Current TFTeam of client.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock TFTeam TF2_GetClientTeam(int client)
|
||||
{
|
||||
@ -377,9 +377,9 @@ stock void TF2_ChangeClientTeam(int client, TFTeam team)
|
||||
/**
|
||||
* Gets a client's current class.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Current TFClassType of player.
|
||||
* @error Invalid client index.
|
||||
* @param client Player's index.
|
||||
* @return Current TFClassType of player.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock TFClassType TF2_GetPlayerClass(int client)
|
||||
{
|
||||
@ -391,11 +391,11 @@ stock TFClassType TF2_GetPlayerClass(int client)
|
||||
*
|
||||
* Note: If setting player class in a player spawn hook weapons should be set to false.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @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.
|
||||
* @error Invalid client index.
|
||||
* @param client Player's index.
|
||||
* @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.
|
||||
* @error Invalid client index.
|
||||
*/
|
||||
stock void TF2_SetPlayerClass(int client, TFClassType classType, bool weapons=true, bool persistent=true)
|
||||
{
|
||||
@ -414,6 +414,7 @@ stock void TF2_SetPlayerClass(int client, TFClassType classType, bool weapons=tr
|
||||
* @param type ResourceType constant
|
||||
* @return Value or -1 on failure.
|
||||
* @error Invalid client index, client not in game or failed to find resource entity.
|
||||
* @deprecated Use GetPlayerResourceEntity and GetEntProp instead.
|
||||
*/
|
||||
#pragma deprecated Use GetPlayerResourceEntity and GetEntProp instead
|
||||
stock int TF2_GetPlayerResourceData(int client, TFResourceType type)
|
||||
@ -445,11 +446,12 @@ stock int TF2_GetPlayerResourceData(int client, TFResourceType type)
|
||||
*
|
||||
* Note: The game overwrites these values every frame, so changing them will have very little effect.
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param type ResourceType constant
|
||||
* @param value Value to set.
|
||||
* @return Value or -1 on failure.
|
||||
* @error Invalid client index, client not in game or failed to find resource entity.
|
||||
* @param client Player's index.
|
||||
* @param type ResourceType constant
|
||||
* @param value Value to set.
|
||||
* @return Value or -1 on failure.
|
||||
* @error Invalid client index, client not in game or failed to find resource entity.
|
||||
* @deprecated Use GetPlayerResourceEntity and SetEntProp instead.
|
||||
*/
|
||||
#pragma deprecated Use GetPlayerResourceEntity and SetEntProp instead
|
||||
stock bool TF2_SetPlayerResourceData(int client, TFResourceType type, any value)
|
||||
@ -481,9 +483,9 @@ stock bool TF2_SetPlayerResourceData(int client, TFResourceType type, any value)
|
||||
/**
|
||||
* Removes all weapons from a client's weapon slot
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param slot Slot index (0-5)
|
||||
* @error Invalid client, invalid slot or lack of mod support
|
||||
* @param client Player's index.
|
||||
* @param slot Slot index (0-5)
|
||||
* @error Invalid client, invalid slot or lack of mod support
|
||||
*/
|
||||
stock void TF2_RemoveWeaponSlot(int client, int slot)
|
||||
{
|
||||
@ -512,7 +514,7 @@ stock void TF2_RemoveWeaponSlot(int client, int slot)
|
||||
/**
|
||||
* Removes all weapons from a client
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param client Player's index.
|
||||
*/
|
||||
stock void TF2_RemoveAllWeapons(int client)
|
||||
{
|
||||
@ -525,8 +527,9 @@ stock void TF2_RemoveAllWeapons(int client)
|
||||
/**
|
||||
* Gets a player's condition bits
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @return Player's condition bits
|
||||
* @param client Player's index.
|
||||
* @return Player's condition bits
|
||||
* @deprecated Use TF2_IsPlayerInCondition instead.
|
||||
*/
|
||||
#pragma deprecated Use TF2_IsPlayerInCondition instead.
|
||||
stock int TF2_GetPlayerConditionFlags(int client)
|
||||
@ -537,9 +540,9 @@ stock int TF2_GetPlayerConditionFlags(int client)
|
||||
/**
|
||||
* Check whether or not a condition is set on a player
|
||||
*
|
||||
* @param client Player's index.
|
||||
* @param cond TFCond constant
|
||||
* @return True if set, false otherwise
|
||||
* @param client Player's index.
|
||||
* @param cond TFCond constant
|
||||
* @return True if set, false otherwise
|
||||
*/
|
||||
stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
|
||||
{
|
||||
@ -547,7 +550,7 @@ stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
|
||||
int iCond = view_as<int>(cond);
|
||||
switch (iCond / 32)
|
||||
{
|
||||
case 0:
|
||||
case 0:
|
||||
{
|
||||
int bit = 1 << iCond;
|
||||
if ((GetEntProp(client, Prop_Send, "m_nPlayerCond") & bit) == bit)
|
||||
@ -560,7 +563,7 @@ stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
case 1:
|
||||
case 1:
|
||||
{
|
||||
int bit = (1 << (iCond - 32));
|
||||
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx") & bit) == bit)
|
||||
@ -568,7 +571,7 @@ stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
case 2:
|
||||
case 2:
|
||||
{
|
||||
int bit = (1 << (iCond - 64));
|
||||
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx2") & bit) == bit)
|
||||
@ -576,7 +579,7 @@ stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
case 3:
|
||||
case 3:
|
||||
{
|
||||
int bit = (1 << (iCond - 96));
|
||||
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx3") & bit) == bit)
|
||||
@ -584,16 +587,18 @@ stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
int bit = (1 << (iCond - 128));
|
||||
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx4") & bit) == bit)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
default:
|
||||
ThrowError("Invalid TFCond value %d", iCond);
|
||||
case 4:
|
||||
{
|
||||
int bit = (1 << (iCond - 128));
|
||||
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx4") & bit) == bit)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
ThrowError("Invalid TFCond value %d", iCond);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -602,9 +607,9 @@ stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
|
||||
/**
|
||||
* Gets an entity's object type.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return Current TFObjectType of entity.
|
||||
* @error Invalid entity index.
|
||||
* @param entity Entity index.
|
||||
* @return Current TFObjectType of entity.
|
||||
* @error Invalid entity index.
|
||||
*/
|
||||
stock TFObjectType TF2_GetObjectType(int entity)
|
||||
{
|
||||
@ -621,9 +626,9 @@ stock TFObjectType TF2_GetObjectType(int entity)
|
||||
/**
|
||||
* Gets an entity's object mode.
|
||||
*
|
||||
* @param entity Entity index.
|
||||
* @return Current TFObjectMode of entity.
|
||||
* @error Invalid entity index.
|
||||
* @param entity Entity index.
|
||||
* @return Current TFObjectMode of entity.
|
||||
* @error Invalid entity index.
|
||||
*/
|
||||
stock TFObjectMode TF2_GetObjectMode(int entity)
|
||||
{
|
||||
|
@ -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
|
||||
@ -37,10 +37,10 @@
|
||||
|
||||
#include <datapack>
|
||||
|
||||
#define TIMER_REPEAT (1<<0) /**< Timer will repeat until it returns Plugin_Stop */
|
||||
#define TIMER_FLAG_NO_MAPCHANGE (1<<1) /**< Timer will not carry over mapchanges */
|
||||
#define TIMER_HNDL_CLOSE (1<<9) /**< Deprecated define, replaced by below */
|
||||
#define TIMER_DATA_HNDL_CLOSE (1<<9) /**< Timer will automatically call CloseHandle() on its data when finished */
|
||||
#define TIMER_REPEAT (1<<0) /**< Timer will repeat until it returns Plugin_Stop */
|
||||
#define TIMER_FLAG_NO_MAPCHANGE (1<<1) /**< Timer will not carry over mapchanges */
|
||||
#define TIMER_HNDL_CLOSE (1<<9) /**< Deprecated define, replaced by below */
|
||||
#define TIMER_DATA_HNDL_CLOSE (1<<9) /**< Timer will automatically call CloseHandle() on its data when finished */
|
||||
|
||||
/**
|
||||
* Any of the following prototypes will work for a timed function.
|
||||
@ -48,108 +48,108 @@
|
||||
typeset Timer
|
||||
{
|
||||
/**
|
||||
* Called when the timer interval has elapsed.
|
||||
*
|
||||
* @param timer Handle to the timer object.
|
||||
* @param hndl Handle passed to CreateTimer() when timer was created.
|
||||
* @return Plugin_Stop to stop a repeating timer, any other value for
|
||||
* default behavior.
|
||||
*/
|
||||
* Called when the timer interval has elapsed.
|
||||
*
|
||||
* @param timer Handle to the timer object.
|
||||
* @param hndl Handle passed to CreateTimer() when timer was created.
|
||||
* @return Plugin_Stop to stop a repeating timer, any other value for
|
||||
* default behavior.
|
||||
*/
|
||||
function Action(Handle timer, Handle hndl);
|
||||
|
||||
|
||||
/**
|
||||
* Called when the timer interval has elapsed.
|
||||
*
|
||||
* @param timer Handle to the timer object.
|
||||
* @param data Data passed to CreateTimer() when timer was created.
|
||||
* @return Plugin_Stop to stop a repeating timer, any other value for
|
||||
* default behavior.
|
||||
*/
|
||||
* Called when the timer interval has elapsed.
|
||||
*
|
||||
* @param timer Handle to the timer object.
|
||||
* @param data Data passed to CreateTimer() when timer was created.
|
||||
* @return Plugin_Stop to stop a repeating timer, any other value for
|
||||
* default behavior.
|
||||
*/
|
||||
function Action(Handle timer, any data);
|
||||
|
||||
|
||||
/**
|
||||
* Called when the timer interval has elapsed.
|
||||
*
|
||||
* @param timer Handle to the timer object.
|
||||
* @return Plugin_Stop to stop a repeating timer, any other value for
|
||||
* default behavior.
|
||||
*/
|
||||
* Called when the timer interval has elapsed.
|
||||
*
|
||||
* @param timer Handle to the timer object.
|
||||
* @return Plugin_Stop to stop a repeating timer, any other value for
|
||||
* default behavior.
|
||||
*/
|
||||
function Action(Handle timer);
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a basic timer. Calling CloseHandle() on a timer will end the timer.
|
||||
*
|
||||
* @param interval Interval from the current game time to execute the given function.
|
||||
* @param func Function to execute once the given interval has elapsed.
|
||||
* @param data Handle or value to pass through to the timer callback function.
|
||||
* @param flags Flags to set (such as repeatability or auto-Handle closing).
|
||||
* @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.
|
||||
* @param interval Interval from the current game time to execute the given function.
|
||||
* @param func Function to execute once the given interval has elapsed.
|
||||
* @param data Handle or value to pass through to the timer callback function.
|
||||
* @param flags Flags to set (such as repeatability or auto-Handle closing).
|
||||
* @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, int flags=0);
|
||||
|
||||
/**
|
||||
* Kills a timer. Use this instead of CloseHandle() if you need more options.
|
||||
*
|
||||
* @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.
|
||||
* @error Invalid handles will cause a run time error.
|
||||
* @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.
|
||||
* @error Invalid handles will cause a run time error.
|
||||
*/
|
||||
native void KillTimer(Handle timer, bool autoClose=false);
|
||||
|
||||
/**
|
||||
* Manually triggers a timer so its function will be called.
|
||||
*
|
||||
* @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.
|
||||
* @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.
|
||||
*/
|
||||
native void TriggerTimer(Handle timer, bool reset=false);
|
||||
|
||||
/**
|
||||
* Returns the simulated game time.
|
||||
* Returns the simulated game time.
|
||||
*
|
||||
* This time is internally maintained by SourceMod and is based on the game
|
||||
* tick count and tick rate. Unlike GetGameTime(), it will increment past
|
||||
* map changes and while no players are connected. Unlike GetEngineTime(),
|
||||
* it will not increment based on the system clock (i.e. it is still bound
|
||||
* This time is internally maintained by SourceMod and is based on the game
|
||||
* tick count and tick rate. Unlike GetGameTime(), it will increment past
|
||||
* map changes and while no players are connected. Unlike GetEngineTime(),
|
||||
* it will not increment based on the system clock (i.e. it is still bound
|
||||
* to the ticking process).
|
||||
*
|
||||
* @return Time based on the game tick count.
|
||||
* @return Time based on the game tick count.
|
||||
*/
|
||||
native float GetTickedTime();
|
||||
|
||||
/**
|
||||
* Returns an estimate of the time left before the map ends. If the server
|
||||
* has not processed any frames yet (i.e. no players have joined the map yet),
|
||||
* Returns an estimate of the time left before the map ends. If the server
|
||||
* has not processed any frames yet (i.e. no players have joined the map yet),
|
||||
* then the time left returned will always be infinite.
|
||||
*
|
||||
* @param timeleft Variable to store the time, in seconds. If the
|
||||
* value is less than 0, the time limit is infinite.
|
||||
* @return True if the operation is supported, false otherwise.
|
||||
* @param timeleft Variable to store the time, in seconds. If the
|
||||
* value is less than 0, the time limit is infinite.
|
||||
* @return True if the operation is supported, false otherwise.
|
||||
*/
|
||||
native bool GetMapTimeLeft(int &timeleft);
|
||||
|
||||
/**
|
||||
* Retrieves the current map time limit. If the server has not processed any
|
||||
* frames yet (i.e. no players have joined the map yet), then the time limit
|
||||
* Retrieves the current map time limit. If the server has not processed any
|
||||
* frames yet (i.e. no players have joined the map yet), then the time limit
|
||||
* returned will always be 0.
|
||||
*
|
||||
* @param time Set to the number of total seconds in the map time
|
||||
* limit, or 0 if there is no time limit set.
|
||||
* @return True on success, false if operation is not supported.
|
||||
* @param time Set to the number of total seconds in the map time
|
||||
* limit, or 0 if there is no time limit set.
|
||||
* @return True on success, false if operation is not supported.
|
||||
*/
|
||||
native bool GetMapTimeLimit(int &time);
|
||||
|
||||
/**
|
||||
* Extends the map time limit in a way that will notify all plugins.
|
||||
*
|
||||
* @param time Number of seconds to extend map time limit by.
|
||||
* The number can be negative to decrease the time limit.
|
||||
* If 0, the map will be set to have no time limit.
|
||||
* @return True on success, false if operation is not supported.
|
||||
* @param time Number of seconds to extend map time limit by.
|
||||
* The number can be negative to decrease the time limit.
|
||||
* 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(int time);
|
||||
|
||||
@ -158,34 +158,34 @@ native bool ExtendMapTimeLimit(int time);
|
||||
*
|
||||
* Note: A tick, in this context, is a frame.
|
||||
*
|
||||
* @return Number of seconds in between ticks.
|
||||
* @return Number of seconds in between ticks.
|
||||
*/
|
||||
native float GetTickInterval();
|
||||
|
||||
/**
|
||||
* Notification that the map's time left has changed via a change in the time
|
||||
* limit or a change in the game rules (such as mp_restartgame). This is useful
|
||||
* Notification that the map's time left has changed via a change in the time
|
||||
* limit or a change in the game rules (such as mp_restartgame). This is useful
|
||||
* for plugins trying to create timers based on the time left in the map.
|
||||
*
|
||||
* Calling ExtendMapTimeLimit() from here, without proper precaution, will
|
||||
* Calling ExtendMapTimeLimit() from here, without proper precaution, will
|
||||
* cause infinite recursion.
|
||||
*
|
||||
* If the operation is not supported, this will never be called.
|
||||
|
||||
* If the server has not yet processed any frames (i.e. no players have joined
|
||||
* the map yet), then this will be called once the server begins ticking, even
|
||||
* If the server has not yet processed any frames (i.e. no players have joined
|
||||
* the map yet), then this will be called once the server begins ticking, even
|
||||
* if there is no time limit set.
|
||||
*/
|
||||
forward void OnMapTimeLeftChanged();
|
||||
|
||||
/**
|
||||
* Returns whether or not the server is processing frames or not.
|
||||
* Returns whether or not the server is processing frames or not.
|
||||
*
|
||||
* The server does not process frames until at least one client joins the game.
|
||||
* Once the first player has in, even if that player, leaves, the server's
|
||||
* The server does not process frames until at least one client joins the game.
|
||||
* Once the first player has in, even if that player, leaves, the server's
|
||||
* timers and entities will work.
|
||||
*
|
||||
* @return True if the server is ticking, false otherwise.
|
||||
* @return True if the server is ticking, false otherwise.
|
||||
*/
|
||||
native bool IsServerProcessing();
|
||||
|
||||
@ -194,12 +194,12 @@ native bool IsServerProcessing();
|
||||
* @note The datapack is automatically freed when the timer ends.
|
||||
* @note The position of the datapack is not reset or changed for the timer function.
|
||||
*
|
||||
* @param interval Interval from the current game time to execute the given function.
|
||||
* @param func Function to execute once the given interval has elapsed.
|
||||
* @param datapack The newly created datapack is passed though this by-reference
|
||||
* parameter to the timer callback function.
|
||||
* @param flags Timer flags.
|
||||
* @return Handle to the timer object. You do not need to call CloseHandle().
|
||||
* @param interval Interval from the current game time to execute the given function.
|
||||
* @param func Function to execute once the given interval has elapsed.
|
||||
* @param datapack The newly created datapack is passed though this by-reference
|
||||
* parameter to the timer callback function.
|
||||
* @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, int flags=0)
|
||||
{
|
||||
|
@ -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 _topmenus_included
|
||||
#endinput
|
||||
#endif
|
||||
@ -49,18 +49,18 @@ enum TopMenuAction
|
||||
* OUTPUT: Buffer for rendering, maxlength of buffer.
|
||||
*/
|
||||
TopMenuAction_DisplayOption = 0,
|
||||
|
||||
|
||||
/**
|
||||
* The title of a menu is being drawn for a given topobj.
|
||||
*
|
||||
* Note: The Object ID will be INVALID_TOPMENUOBJECT if drawing the
|
||||
* Note: The Object ID will be INVALID_TOPMENUOBJECT if drawing the
|
||||
* root title. Otherwise, the Object ID is a category.
|
||||
*
|
||||
* INPUT : TopMenu Handle, topobj ID, client index.
|
||||
* OUTPUT: Buffer for rendering, maxlength of buffer.
|
||||
*/
|
||||
TopMenuAction_DisplayTitle = 1,
|
||||
|
||||
|
||||
/**
|
||||
* A menu option has been selected.
|
||||
*
|
||||
@ -74,19 +74,19 @@ enum TopMenuAction
|
||||
* A menu option is being drawn and its flags can be overridden.
|
||||
*
|
||||
* INPUT : TopMenu Handle, topobj ID, client index.
|
||||
* OUTPUT: The first byte of the 'buffer' string should be set
|
||||
* to the desired flags. By default, it will contain
|
||||
* ITEMDRAW_DEFAULT.
|
||||
* OUTPUT: The first byte of the 'buffer' string should be set
|
||||
* to the desired flags. By default, it will contain
|
||||
* ITEMDRAW_DEFAULT.
|
||||
*/
|
||||
TopMenuAction_DrawOption = 3,
|
||||
|
||||
|
||||
/**
|
||||
* Called when an topobj is being removed from the menu.
|
||||
* This can be used to clean up data stored in the info string.
|
||||
*
|
||||
* INPUT : TopMenu Handle, topobj ID.
|
||||
*/
|
||||
TopMenuAction_RemoveObject = 4,
|
||||
TopMenuAction_RemoveObject = 4
|
||||
};
|
||||
|
||||
/**
|
||||
@ -94,8 +94,8 @@ enum TopMenuAction
|
||||
*/
|
||||
enum TopMenuObjectType
|
||||
{
|
||||
TopMenuObject_Category = 0, /**< Category (sub-menu branching from root) */
|
||||
TopMenuObject_Item = 1 /**< Item on a sub-menu */
|
||||
TopMenuObject_Category = 0, /**< Category (sub-menu branching from root) */
|
||||
TopMenuObject_Item = 1 /**< Item on a sub-menu */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -103,9 +103,9 @@ enum TopMenuObjectType
|
||||
*/
|
||||
enum TopMenuPosition
|
||||
{
|
||||
TopMenuPosition_Start = 0, /**< Start/root of the menu */
|
||||
TopMenuPosition_LastRoot = 1, /**< Last position in the root menu */
|
||||
TopMenuPosition_LastCategory = 3, /**< Last position in their last category */
|
||||
TopMenuPosition_Start = 0, /**< Start/root of the menu */
|
||||
TopMenuPosition_LastRoot = 1, /**< Last position in the root menu */
|
||||
TopMenuPosition_LastCategory = 3 /**< Last position in their last category */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -113,21 +113,21 @@ enum TopMenuPosition
|
||||
*/
|
||||
enum TopMenuObject
|
||||
{
|
||||
INVALID_TOPMENUOBJECT = 0,
|
||||
INVALID_TOPMENUOBJECT = 0
|
||||
};
|
||||
|
||||
/**
|
||||
* TopMenu callback prototype.
|
||||
*
|
||||
* @param topmenu Handle to the TopMenu.
|
||||
* @param action TopMenuAction being performed.
|
||||
* @param topobj_id The topobj ID (if used).
|
||||
* @param param Extra parameter (if used).
|
||||
* @param buffer Output buffer (if used).
|
||||
* @param maxlength Output buffer (if used).
|
||||
* @param topmenu Handle to the TopMenu.
|
||||
* @param action TopMenuAction being performed.
|
||||
* @param topobj_id The topobj ID (if used).
|
||||
* @param param Extra parameter (if used).
|
||||
* @param buffer Output buffer (if used).
|
||||
* @param maxlength Output buffer (if used).
|
||||
*/
|
||||
typedef TopMenuHandler = function void (
|
||||
TopMenu topmenu,
|
||||
TopMenu topmenu,
|
||||
TopMenuAction action,
|
||||
TopMenuObject topobj_id,
|
||||
int param,
|
||||
@ -152,18 +152,18 @@ methodmap TopMenu < Handle
|
||||
|
||||
// Re-sorts the items in a TopMenu via a configuration file.
|
||||
//
|
||||
// The format of the configuration file should be a Valve Key-Values
|
||||
// formatted file that SourceMod can parse. There should be one root
|
||||
// section, and one sub-section for each category. Each sub-section's
|
||||
// The format of the configuration file should be a Valve Key-Values
|
||||
// formatted file that SourceMod can parse. There should be one root
|
||||
// section, and one sub-section for each category. Each sub-section's
|
||||
// name should match the category name.
|
||||
//
|
||||
// Each sub-section may only contain key/value pairs in the form of:
|
||||
// key: "item"
|
||||
// value: Name of the item as passed to AddToTopMenu().
|
||||
//
|
||||
// The TopMenu will draw items in the order declared in the configuration
|
||||
// file. If items do not appear in the configuration file, they are sorted
|
||||
// per-player based on how the handler function renders for that player.
|
||||
// The TopMenu will draw items in the order declared in the configuration
|
||||
// file. If items do not appear in the configuration file, they are sorted
|
||||
// per-player based on how the handler function renders for that player.
|
||||
// These items appear after the configuration sorted items.
|
||||
//
|
||||
// @param topmenu TopMenu Handle.
|
||||
@ -172,79 +172,79 @@ methodmap TopMenu < Handle
|
||||
// @param maxlength Maximum size of the error buffer. Error buffer
|
||||
// will be filled with a zero-terminated string if
|
||||
// false is returned.
|
||||
// @return True on success, false on failure.
|
||||
// @return True on success, false on failure.
|
||||
public native bool LoadConfig(const char[] file, char[] error, int maxlength);
|
||||
|
||||
// Adds a category to a TopMenu.
|
||||
//
|
||||
//
|
||||
// @param name Object name (MUST be unique).
|
||||
// @param handler Handler for topobj.
|
||||
// @param cmdname Command name (for access overrides).
|
||||
// @param flags Default access flags.
|
||||
// @param info_string Arbitrary storage (max 255 bytes).
|
||||
// @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on failure.
|
||||
// @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on failure.
|
||||
public native TopMenuObject AddCategory(const char[] name, TopMenuHandler handler,
|
||||
const char[] cmdname = "", int flags = 0,
|
||||
const char[] info_string = "");
|
||||
|
||||
// Adds an item to a TopMenu category.
|
||||
//
|
||||
//
|
||||
// @param name Object name (MUST be unique).
|
||||
// @param handler Handler for topobj.
|
||||
// @param category The object of the parent category for the item.
|
||||
// @param cmdname Command name (for access overrides).
|
||||
// @param flags Default access flags.
|
||||
// @param info_string Arbitrary storage (max 255 bytes).
|
||||
// @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on failure.
|
||||
// @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on failure.
|
||||
public native TopMenuObject AddItem(const char[] name, TopMenuHandler handler,
|
||||
TopMenuObject parent, const char[] cmdname = "",
|
||||
int flags = 0, const char[] info_string = "");
|
||||
|
||||
// Retrieves the info string of a top menu item.
|
||||
//
|
||||
//
|
||||
// @param parent TopMenuObject ID.
|
||||
// @param buffer Buffer to store info string.
|
||||
// @param maxlength Maximum size of info string.
|
||||
// @return Number of bytes written, not including the null terminator.
|
||||
// @return Number of bytes written, not including the null terminator.
|
||||
public native int GetInfoString(TopMenuObject parent, char[] buffer, int maxlength);
|
||||
|
||||
// Retrieves the name string of a top menu item.
|
||||
//
|
||||
//
|
||||
// @param topobj TopMenuObject ID.
|
||||
// @param buffer Buffer to store info string.
|
||||
// @param maxlength Maximum size of info string.
|
||||
// @return Number of bytes written, not including the null terminator.
|
||||
// @return Number of bytes written, not including the null terminator.
|
||||
public native int GetObjName(TopMenuObject topobj, char[] buffer, int maxlength);
|
||||
|
||||
// Removes an topobj from a TopMenu.
|
||||
//
|
||||
// Plugins' topobjs are automatically removed all TopMenus when the given
|
||||
//
|
||||
// Plugins' topobjs are automatically removed all TopMenus when the given
|
||||
// plugin unloads or pauses. In the case of unpausing, all items are restored.
|
||||
//
|
||||
//
|
||||
// @param topobj TopMenuObject ID.
|
||||
public native void Remove(TopMenuObject topobj);
|
||||
|
||||
// Displays a TopMenu to a client.
|
||||
//
|
||||
//
|
||||
// @param client Client index.
|
||||
// @param position Position to display from.
|
||||
// @return True on success, false on failure.
|
||||
// @return True on success, false on failure.
|
||||
public native bool Display(int client, TopMenuPosition position);
|
||||
|
||||
// Displays a TopMenu category to a client.
|
||||
//
|
||||
//
|
||||
// @param category Category topobj id.
|
||||
// @param client Client index.
|
||||
// @return True on success, false on failure.
|
||||
// @return True on success, false on failure.
|
||||
public native bool DisplayCategory(TopMenuObject category, int client);
|
||||
|
||||
// Finds a category's topobj ID in a TopMenu.
|
||||
//
|
||||
//
|
||||
// @param name Object's unique name.
|
||||
// @return TopMenuObject ID on success, or
|
||||
// @return TopMenuObject ID on success, or
|
||||
// INVALID_TOPMENUOBJECT on failure.
|
||||
public native TopMenuObject FindCategory(const char[] name);
|
||||
|
||||
|
||||
// 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.
|
||||
@ -256,56 +256,56 @@ methodmap TopMenu < Handle
|
||||
/**
|
||||
* Creates a TopMenu.
|
||||
*
|
||||
* @param handler Handler to use for drawing the root title.
|
||||
* @return A new TopMenu Handle, or INVALID_HANDLE on failure.
|
||||
*/
|
||||
* @param handler Handler to use for drawing the root title.
|
||||
* @return A new TopMenu Handle, or INVALID_HANDLE on failure.
|
||||
*/
|
||||
native TopMenu CreateTopMenu(TopMenuHandler handler);
|
||||
|
||||
/**
|
||||
* Re-sorts the items in a TopMenu via a configuration file.
|
||||
*
|
||||
* The format of the configuration file should be a Valve Key-Values
|
||||
* formatted file that SourceMod can parse. There should be one root
|
||||
* section, and one sub-section for each category. Each sub-section's
|
||||
* The format of the configuration file should be a Valve Key-Values
|
||||
* formatted file that SourceMod can parse. There should be one root
|
||||
* section, and one sub-section for each category. Each sub-section's
|
||||
* name should match the category name.
|
||||
*
|
||||
* Each sub-section may only contain key/value pairs in the form of:
|
||||
* key: "item"
|
||||
* value: Name of the item as passed to AddToTopMenu().
|
||||
*
|
||||
* The TopMenu will draw items in the order declared in the configuration
|
||||
* file. If items do not appear in the configuration file, they are sorted
|
||||
* per-player based on how the handler function renders for that player.
|
||||
* The TopMenu will draw items in the order declared in the configuration
|
||||
* file. If items do not appear in the configuration file, they are sorted
|
||||
* per-player based on how the handler function renders for that player.
|
||||
* These items appear after the configuration sorted items.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param file File path.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum size of the error buffer.
|
||||
* Error buffer will be filled with a
|
||||
* zero-terminated string if false is
|
||||
* returned.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid TopMenu Handle.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param file File path.
|
||||
* @param error Error buffer.
|
||||
* @param maxlength Maximum size of the error buffer.
|
||||
* Error buffer will be filled with a
|
||||
* zero-terminated string if false is
|
||||
* returned.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid TopMenu Handle.
|
||||
*/
|
||||
native bool LoadTopMenuConfig(Handle topmenu, const char[] file, char[] error, int maxlength);
|
||||
|
||||
/**
|
||||
* Adds an topobj to a TopMenu.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param name Object name (MUST be unique).
|
||||
* @param type Object type.
|
||||
* @param handler Handler for topobj.
|
||||
* @param parent Parent topobj ID, or INVALID_TOPMENUOBJECT for none.
|
||||
* Items must have a category parent.
|
||||
* Categories must not have a parent.
|
||||
* @param cmdname Command name (for access overrides).
|
||||
* @param flags Default access flags.
|
||||
* @param info_string Arbitrary storage (max 255 bytes).
|
||||
* @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on
|
||||
* failure.
|
||||
* @error Invalid TopMenu Handle.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param name Object name (MUST be unique).
|
||||
* @param type Object type.
|
||||
* @param handler Handler for topobj.
|
||||
* @param parent Parent topobj ID, or INVALID_TOPMENUOBJECT for none.
|
||||
* Items must have a category parent.
|
||||
* Categories must not have a parent.
|
||||
* @param cmdname Command name (for access overrides).
|
||||
* @param flags Default access flags.
|
||||
* @param info_string Arbitrary storage (max 255 bytes).
|
||||
* @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on
|
||||
* failure.
|
||||
* @error Invalid TopMenu Handle.
|
||||
*/
|
||||
native TopMenuObject AddToTopMenu(Handle topmenu,
|
||||
const char[] name,
|
||||
@ -315,75 +315,75 @@ native TopMenuObject AddToTopMenu(Handle topmenu,
|
||||
const char[] cmdname="",
|
||||
int flags=0,
|
||||
const char[] info_string="");
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves the info string of a top menu item.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param parent TopMenuObject ID.
|
||||
* @param buffer Buffer to store info string.
|
||||
* @param maxlength Maximum size of info string.
|
||||
* @return Number of bytes written, not including the
|
||||
* null terminator.
|
||||
* @error Invalid TopMenu Handle or TopMenuObject ID.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param parent TopMenuObject ID.
|
||||
* @param buffer Buffer to store info string.
|
||||
* @param maxlength Maximum size of info string.
|
||||
* @return Number of bytes written, not including the
|
||||
* null terminator.
|
||||
* @error Invalid TopMenu Handle or TopMenuObject ID.
|
||||
*/
|
||||
native int GetTopMenuInfoString(Handle topmenu, TopMenuObject parent, char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Retrieves the name string of a top menu item.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param topobj TopMenuObject ID.
|
||||
* @param buffer Buffer to store info string.
|
||||
* @param maxlength Maximum size of info string.
|
||||
* @return Number of bytes written, not including the
|
||||
* null terminator.
|
||||
* @error Invalid TopMenu Handle or TopMenuObject ID.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param topobj TopMenuObject ID.
|
||||
* @param buffer Buffer to store info string.
|
||||
* @param maxlength Maximum size of info string.
|
||||
* @return Number of bytes written, not including the
|
||||
* null terminator.
|
||||
* @error Invalid TopMenu Handle or TopMenuObject ID.
|
||||
*/
|
||||
native int GetTopMenuObjName(Handle topmenu, TopMenuObject topobj, char[] buffer, int maxlength);
|
||||
|
||||
/**
|
||||
* Removes an topobj from a TopMenu.
|
||||
*
|
||||
* Plugins' topobjs are automatically removed all TopMenus when the given
|
||||
* Plugins' topobjs are automatically removed all TopMenus when the given
|
||||
* plugin unloads or pauses. In the case of unpausing, all items are restored.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param topobj TopMenuObject ID.
|
||||
* @error Invalid TopMenu Handle.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param topobj TopMenuObject ID.
|
||||
* @error Invalid TopMenu Handle.
|
||||
*/
|
||||
native void RemoveFromTopMenu(Handle topmenu, TopMenuObject topobj);
|
||||
|
||||
/**
|
||||
* Displays a TopMenu to a client.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param client Client index.
|
||||
* @param position Position to display from.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid TopMenu Handle or client not in game.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param client Client index.
|
||||
* @param position Position to display from.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid TopMenu Handle or client not in game.
|
||||
*/
|
||||
native bool DisplayTopMenu(Handle topmenu, int client, TopMenuPosition position);
|
||||
|
||||
/**
|
||||
* Displays a TopMenu category to a client.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param category Category topobj id.
|
||||
* @param client Client index.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid TopMenu Handle or client not in game.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param category Category topobj id.
|
||||
* @param client Client index.
|
||||
* @return True on success, false on failure.
|
||||
* @error Invalid TopMenu Handle or client not in game.
|
||||
*/
|
||||
native bool DisplayTopMenuCategory(Handle topmenu, TopMenuObject category, int client);
|
||||
|
||||
/**
|
||||
* Finds a category's topobj ID in a TopMenu.
|
||||
*
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param name Object's unique name.
|
||||
* @return TopMenuObject ID on success, or
|
||||
* INVALID_TOPMENUOBJECT on failure.
|
||||
* @error Invalid TopMenu Handle.
|
||||
* @param topmenu TopMenu Handle.
|
||||
* @param name Object's unique name.
|
||||
* @return TopMenuObject ID on success, or
|
||||
* INVALID_TOPMENUOBJECT on failure.
|
||||
* @error Invalid TopMenu Handle.
|
||||
*/
|
||||
native TopMenuObject FindTopMenuCategory(Handle topmenu, const char[] name);
|
||||
|
||||
@ -403,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",
|
||||
|
@ -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 _eventsmsgs_included
|
||||
#endinput
|
||||
#endif
|
||||
@ -40,7 +40,7 @@
|
||||
*/
|
||||
enum UserMsg
|
||||
{
|
||||
INVALID_MESSAGE_ID = -1,
|
||||
INVALID_MESSAGE_ID = -1
|
||||
};
|
||||
|
||||
/**
|
||||
@ -49,15 +49,15 @@ enum UserMsg
|
||||
enum UserMessageType
|
||||
{
|
||||
UM_BitBuf = 0,
|
||||
UM_Protobuf,
|
||||
UM_Protobuf
|
||||
};
|
||||
|
||||
/**
|
||||
* @section Message Flags.
|
||||
*/
|
||||
#define USERMSG_RELIABLE (1<<2) /**< Message will be set on the reliable stream */
|
||||
#define USERMSG_INITMSG (1<<3) /**< Message will be considered to be an initmsg */
|
||||
#define USERMSG_BLOCKHOOKS (1<<7) /**< Prevents the message from triggering SourceMod and Metamod hooks */
|
||||
#define USERMSG_RELIABLE (1<<2) /**< Message will be set on the reliable stream */
|
||||
#define USERMSG_INITMSG (1<<3) /**< Message will be considered to be an initmsg */
|
||||
#define USERMSG_BLOCKHOOKS (1<<7) /**< Prevents the message from triggering SourceMod and Metamod hooks */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
@ -66,14 +66,17 @@ enum UserMessageType
|
||||
/**
|
||||
* Returns usermessage serialization type used for the current engine
|
||||
*
|
||||
* @return The supported usermessage type.
|
||||
* @return The supported usermessage type.
|
||||
*/
|
||||
native UserMessageType GetUserMessageType();
|
||||
|
||||
stock Protobuf UserMessageToProtobuf(Handle msg)
|
||||
{
|
||||
if (GetUserMessageType() != UM_Protobuf)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return view_as<Protobuf>(msg);
|
||||
}
|
||||
|
||||
@ -81,7 +84,10 @@ stock Protobuf UserMessageToProtobuf(Handle msg)
|
||||
stock BfWrite UserMessageToBfWrite(Handle msg)
|
||||
{
|
||||
if (GetUserMessageType() == UM_Protobuf)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return view_as<BfWrite>(msg);
|
||||
}
|
||||
|
||||
@ -89,57 +95,62 @@ stock BfWrite UserMessageToBfWrite(Handle msg)
|
||||
stock BfRead UserMessageToBfRead(Handle msg)
|
||||
{
|
||||
if (GetUserMessageType() == UM_Protobuf)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return view_as<BfRead>(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ID of a given message, or -1 on failure.
|
||||
*
|
||||
* @param msg String containing message name (case sensitive).
|
||||
* @return A message index, or INVALID_MESSAGE_ID on failure.
|
||||
* @param msg String containing message name (case sensitive).
|
||||
* @return A message index, or INVALID_MESSAGE_ID on failure.
|
||||
*/
|
||||
native UserMsg GetUserMessageId(const char[] msg);
|
||||
|
||||
/**
|
||||
* Retrieves the name of a message by ID.
|
||||
*
|
||||
* @param msg_id Message index.
|
||||
* @param msg Buffer to store the name of the message.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return True if message index is valid, false otherwise.
|
||||
* @param msg_id Message index.
|
||||
* @param msg Buffer to store the name of the message.
|
||||
* @param maxlength Maximum length of string buffer.
|
||||
* @return True if message index is valid, false otherwise.
|
||||
*/
|
||||
native bool GetUserMessageName(UserMsg msg_id, char[] msg, int maxlength);
|
||||
|
||||
/**
|
||||
* Starts a usermessage (network message).
|
||||
*
|
||||
* @note Only one message can be active at a time.
|
||||
* @note It is illegal to send any message while a non-intercept hook is in progress.
|
||||
*
|
||||
* @param msgname Message name to start.
|
||||
* @param clients Array containing player indexes to broadcast to.
|
||||
* @param numClients Number of players in the array.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
* @error Invalid message name, unable to start a message, invalid client,
|
||||
* or client not connected.
|
||||
* @param msgname Message name to start.
|
||||
* @param clients Array containing player indexes to broadcast to.
|
||||
* @param numClients Number of players in the array.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
* @error Invalid message name, unable to start a message, invalid client,
|
||||
* or client not connected.
|
||||
*/
|
||||
native Handle StartMessage(const char[] msgname, const int[] clients, int numClients, int flags=0);
|
||||
|
||||
/**
|
||||
* Starts a usermessage (network message).
|
||||
*
|
||||
* @note Only one message can be active at a time.
|
||||
* @note It is illegal to send any message while a non-intercept hook is in progress.
|
||||
*
|
||||
* @param msg Message index to start.
|
||||
* @param clients Array containing player indexes to broadcast to.
|
||||
* @param numClients Number of players in the array.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
* @error Invalid message name, unable to start a message, invalid client,
|
||||
* or client not connected.
|
||||
* @param msg Message index to start.
|
||||
* @param clients Array containing player indexes to broadcast to.
|
||||
* @param numClients Number of players in the array.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
* @error Invalid message name, unable to start a message, invalid client,
|
||||
* or client not connected.
|
||||
*/
|
||||
native Handle StartMessageEx(UserMsg msg, const int[] clients, int numClients, int flags=0);
|
||||
|
||||
@ -156,29 +167,29 @@ typeset MsgHook
|
||||
/**
|
||||
* Called when a bit buffer based usermessage is hooked
|
||||
*
|
||||
* @param msg_id Message index.
|
||||
* @param msg Handle to the input bit buffer.
|
||||
* @param players Array containing player indexes.
|
||||
* @param playersNum Number of players in the array.
|
||||
* @param reliable True if message is reliable, false otherwise.
|
||||
* @param init True if message is an initmsg, false otherwise.
|
||||
* @return Ignored for normal hooks. For intercept hooks, Plugin_Handled
|
||||
* blocks the message from being sent, and Plugin_Continue
|
||||
* resumes normal functionality.
|
||||
* @param msg_id Message index.
|
||||
* @param msg Handle to the input bit buffer.
|
||||
* @param players Array containing player indexes.
|
||||
* @param playersNum Number of players in the array.
|
||||
* @param reliable True if message is reliable, false otherwise.
|
||||
* @param init True if message is an initmsg, false otherwise.
|
||||
* @return Ignored for normal hooks. For intercept hooks, Plugin_Handled
|
||||
* blocks the message from being sent, and Plugin_Continue
|
||||
* resumes normal functionality.
|
||||
*/
|
||||
function Action (UserMsg msg_id, BfRead msg, const int[] players, int playersNum, bool reliable, bool init);
|
||||
/**
|
||||
* Called when a protobuf based usermessage is hooked
|
||||
*
|
||||
* @param msg_id Message index.
|
||||
* @param msg Handle to the input protobuf.
|
||||
* @param players Array containing player indexes.
|
||||
* @param playersNum Number of players in the array.
|
||||
* @param reliable True if message is reliable, false otherwise.
|
||||
* @param init True if message is an initmsg, false otherwise.
|
||||
* @return Ignored for normal hooks. For intercept hooks, Plugin_Handled
|
||||
* blocks the message from being sent, and Plugin_Continue
|
||||
* resumes normal functionality.
|
||||
* @param msg_id Message index.
|
||||
* @param msg Handle to the input protobuf.
|
||||
* @param players Array containing player indexes.
|
||||
* @param playersNum Number of players in the array.
|
||||
* @param reliable True if message is reliable, false otherwise.
|
||||
* @param init True if message is an initmsg, false otherwise.
|
||||
* @return Ignored for normal hooks. For intercept hooks, Plugin_Handled
|
||||
* blocks the message from being sent, and Plugin_Continue
|
||||
* resumes normal functionality.
|
||||
*/
|
||||
function Action (UserMsg msg_id, Protobuf msg, const int[] players, int playersNum, bool reliable, bool init);
|
||||
};
|
||||
@ -186,72 +197,74 @@ typeset MsgHook
|
||||
/**
|
||||
* Called when a message hook has completed.
|
||||
*
|
||||
* @param msg_id Message index.
|
||||
* @param sent True if message was sent, false if blocked.
|
||||
* @param msg_id Message index.
|
||||
* @param sent True if message was sent, false if blocked.
|
||||
*/
|
||||
typedef MsgPostHook = function void (UserMsg msg_id, bool sent);
|
||||
|
||||
/**
|
||||
* Hooks a user message.
|
||||
*
|
||||
* @param msg_id Message index.
|
||||
* @param hook Function to use as a hook.
|
||||
* @param intercept If intercept is true, message will be fully intercepted,
|
||||
* allowing the user to block the message. Otherwise,
|
||||
* the hook is normal and ignores the return value.
|
||||
* @param post Notification function.
|
||||
* @error Invalid message index.
|
||||
* @param msg_id Message index.
|
||||
* @param hook Function to use as a hook.
|
||||
* @param intercept If intercept is true, message will be fully intercepted,
|
||||
* allowing the user to block the message. Otherwise,
|
||||
* the hook is normal and ignores the return value.
|
||||
* @param post Notification function.
|
||||
* @error Invalid message index.
|
||||
*/
|
||||
native void HookUserMessage(UserMsg msg_id, MsgHook hook, bool intercept=false, MsgPostHook post=INVALID_FUNCTION);
|
||||
|
||||
/**
|
||||
* Removes one usermessage hook.
|
||||
*
|
||||
* @param msg_id Message index.
|
||||
* @param hook Function used for the hook.
|
||||
* @param intercept Specifies whether the hook was an intercept hook or not.
|
||||
* @error Invalid message index.
|
||||
* @param msg_id Message index.
|
||||
* @param hook Function used for the hook.
|
||||
* @param intercept Specifies whether the hook was an intercept hook or not.
|
||||
* @error Invalid message index.
|
||||
*/
|
||||
native void UnhookUserMessage(UserMsg msg_id, MsgHook hook, bool intercept=false);
|
||||
|
||||
/**
|
||||
* Starts a usermessage (network message) that broadcasts to all clients.
|
||||
*
|
||||
* @note See StartMessage or StartMessageEx().
|
||||
*
|
||||
* @param msgname Message name to start.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
* @param msgname Message name to start.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
*/
|
||||
stock Handle StartMessageAll(const char[] msgname, int flags=0)
|
||||
{
|
||||
int total = 0;
|
||||
int[] clients = new int[MaxClients];
|
||||
for (int i=1; i<=MaxClients; i++)
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
if (IsClientConnected(i))
|
||||
{
|
||||
clients[total++] = i;
|
||||
}
|
||||
}
|
||||
|
||||
return StartMessage(msgname, clients, total, flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts a simpler usermessage (network message) for one client.
|
||||
*
|
||||
* @note See StartMessage or StartMessageEx().
|
||||
*
|
||||
* @param msgname Message name to start.
|
||||
* @param client Client to send to.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
* @param msgname Message name to start.
|
||||
* @param client Client to send to.
|
||||
* @param flags Optional flags to set.
|
||||
* @return A handle to a bf_write bit packing structure, or
|
||||
* INVALID_HANDLE on failure.
|
||||
*/
|
||||
stock Handle StartMessageOne(const char[] msgname, int client, int flags=0)
|
||||
{
|
||||
int players[1];
|
||||
|
||||
players[0] = client;
|
||||
|
||||
|
||||
return StartMessage(msgname, players, 1, flags);
|
||||
}
|
||||
|
@ -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
|
||||
@ -38,84 +38,84 @@
|
||||
/**
|
||||
* Calculates a vector's length.
|
||||
*
|
||||
* @param vec Vector.
|
||||
* @param squared If true, the result will be squared (for optimization).
|
||||
* @return Vector length (magnitude).
|
||||
* @param vec Vector.
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* Calculates the distance between two vectors.
|
||||
*
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @param squared If true, the result will be squared (for optimization).
|
||||
* @return Vector distance.
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* Calculates the dot product of two vectors.
|
||||
*
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @return Dot product of the two vectors.
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @return Dot product of the two vectors.
|
||||
*/
|
||||
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
|
||||
* Computes the cross product of two vectors. Any input array can be the same
|
||||
* as the output array.
|
||||
*
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @param result Resultant vector.
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @param result Resultant vector.
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @param vec Vector.
|
||||
* @param result Resultant vector.
|
||||
* @return Vector length.
|
||||
* @param vec Vector.
|
||||
* @param result Resultant vector.
|
||||
* @return Vector length.
|
||||
*/
|
||||
native float NormalizeVector(const float vec[3], float result[3]);
|
||||
|
||||
/**
|
||||
* Returns vectors in the direction of an angle.
|
||||
*
|
||||
* @param angle Angle.
|
||||
* @param fwd Forward vector buffer or NULL_VECTOR.
|
||||
* @param right Right vector buffer or NULL_VECTOR.
|
||||
* @param up Up vector buffer or NULL_VECTOR.
|
||||
* @param angle Angle.
|
||||
* @param fwd Forward vector buffer or NULL_VECTOR.
|
||||
* @param right Right vector buffer or NULL_VECTOR.
|
||||
* @param up Up vector buffer or NULL_VECTOR.
|
||||
*/
|
||||
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.
|
||||
* @param vec Vector.
|
||||
* @param angle Angle buffer.
|
||||
*/
|
||||
native void GetVectorAngles(const float vec[3], float angle[3]);
|
||||
|
||||
/**
|
||||
* Returns direction vectors from a vector.
|
||||
*
|
||||
* @param vec Vector.
|
||||
* @param right Right vector buffer or NULL_VECTOR.
|
||||
* @param up Up vector buffer or NULL_VECTOR.
|
||||
* @param vec Vector.
|
||||
* @param right Right vector buffer or NULL_VECTOR.
|
||||
* @param up Up vector buffer or NULL_VECTOR.
|
||||
*/
|
||||
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
|
||||
* Adds two vectors. It is safe to use either input buffer as an output
|
||||
* buffer.
|
||||
*
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @param result Result buffer.
|
||||
*
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector.
|
||||
* @param result Result buffer.
|
||||
*/
|
||||
stock void AddVectors(const float vec1[3], const float vec2[3], float result[3])
|
||||
{
|
||||
@ -125,12 +125,12 @@ stock void AddVectors(const float vec1[3], const float vec2[3], float result[3])
|
||||
}
|
||||
|
||||
/**
|
||||
* Subtracts a vector from another vector. It is safe to use either input
|
||||
* Subtracts a vector from another vector. It is safe to use either input
|
||||
* buffer as an output buffer.
|
||||
*
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector to subtract from first.
|
||||
* @param result Result buffer.
|
||||
*
|
||||
* @param vec1 First vector.
|
||||
* @param vec2 Second vector to subtract from first.
|
||||
* @param result Result buffer.
|
||||
*/
|
||||
stock void SubtractVectors(const float vec1[3], const float vec2[3], float result[3])
|
||||
{
|
||||
@ -142,8 +142,8 @@ stock void SubtractVectors(const float vec1[3], const float vec2[3], float resul
|
||||
/**
|
||||
* Scales a vector.
|
||||
*
|
||||
* @param vec Vector.
|
||||
* @param scale Scale value.
|
||||
* @param vec Vector.
|
||||
* @param scale Scale value.
|
||||
*/
|
||||
stock void ScaleVector(float vec[3], float scale)
|
||||
{
|
||||
@ -155,7 +155,7 @@ stock void ScaleVector(float vec[3], float scale)
|
||||
/**
|
||||
* Negatives a vector.
|
||||
*
|
||||
* @param vec Vector.
|
||||
* @param vec Vector.
|
||||
*/
|
||||
stock void NegateVector(float vec[3])
|
||||
{
|
||||
@ -167,9 +167,9 @@ stock void NegateVector(float vec[3])
|
||||
/**
|
||||
* Builds a vector from two points by subtracting the points.
|
||||
*
|
||||
* @param pt1 First point (to be subtracted from the second).
|
||||
* @param pt2 Second point.
|
||||
* @param output Output vector buffer.
|
||||
* @param pt1 First point (to be subtracted from the second).
|
||||
* @param pt2 Second point.
|
||||
* @param output Output vector buffer.
|
||||
*/
|
||||
stock void MakeVectorFromPoints(const float pt1[3], const float pt2[3], float output[3])
|
||||
{
|
||||
|
@ -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 _version_included
|
||||
#endinput
|
||||
#endif
|
||||
@ -38,12 +38,12 @@
|
||||
#tryinclude <version_auto>
|
||||
|
||||
#if !defined _auto_version_included
|
||||
#define SOURCEMOD_V_TAG "manual"
|
||||
#define SOURCEMOD_V_REV 0
|
||||
#define SOURCEMOD_V_CSET "0"
|
||||
#define SOURCEMOD_V_MAJOR 1 /**< SourceMod Major version */
|
||||
#define SOURCEMOD_V_MINOR 10 /**< SourceMod Minor version */
|
||||
#define SOURCEMOD_V_RELEASE 0 /**< SourceMod Release version */
|
||||
#define SOURCEMOD_V_TAG "manual"
|
||||
#define SOURCEMOD_V_REV 0
|
||||
#define SOURCEMOD_V_CSET "0"
|
||||
#define SOURCEMOD_V_MAJOR 1 /**< SourceMod Major version */
|
||||
#define SOURCEMOD_V_MINOR 10 /**< SourceMod Minor version */
|
||||
#define SOURCEMOD_V_RELEASE 0 /**< SourceMod Release version */
|
||||
|
||||
#define SOURCEMOD_VERSION "1.10.0-manual" /**< SourceMod version string (major.minor.release-tag) */
|
||||
#define SOURCEMOD_VERSION "1.10.0-manual" /**< SourceMod version string (major.minor.release-tag) */
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user