summaryrefslogtreecommitdiff
path: root/sourcemod-1.5-dev/scripting/include/cstrike.inc
diff options
context:
space:
mode:
authornavewindre <nw@moneybot.cc>2023-11-13 14:28:08 +0100
committernavewindre <nw@moneybot.cc>2023-11-13 14:28:08 +0100
commitda518fdc0f32839730ccdee8098b59c6f842d93f (patch)
treed6f856a6148c0b4d5819f88f068b7287b8044513 /sourcemod-1.5-dev/scripting/include/cstrike.inc
parentbc678b10830cdaef64bcc592ca2524ebe0fcdc45 (diff)
ya
Diffstat (limited to 'sourcemod-1.5-dev/scripting/include/cstrike.inc')
-rw-r--r--sourcemod-1.5-dev/scripting/include/cstrike.inc422
1 files changed, 422 insertions, 0 deletions
diff --git a/sourcemod-1.5-dev/scripting/include/cstrike.inc b/sourcemod-1.5-dev/scripting/include/cstrike.inc
new file mode 100644
index 0000000..45ccac0
--- /dev/null
+++ b/sourcemod-1.5-dev/scripting/include/cstrike.inc
@@ -0,0 +1,422 @@
+/**
+ * vim: set ts=4 :
+ * =============================================================================
+ * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
+ * =============================================================================
+ *
+ * This file is part of the SourceMod/SourcePawn SDK.
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, version 3.0, as published by the
+ * Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, AlliedModders LLC gives you permission to link the
+ * code of this program (as well as its derivative works) to "Half-Life 2," the
+ * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
+ * by the Valve Corporation. You must obey the GNU General Public License in
+ * all respects for all other code used. Additionally, AlliedModders LLC grants
+ * this exception to all derivative works. AlliedModders LLC defines further
+ * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
+ * or <http://www.sourcemod.net/license.php>.
+ *
+ * Version: $Id$
+ */
+
+#if defined _cstrike_included
+ #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_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 */
+
+enum CSRoundEndReason
+{
+ CSRoundEnd_TargetBombed = 0, /**< Target Successfully Bombed! */
+ CSRoundEnd_VIPEscaped, /**< The VIP has escaped! */
+ CSRoundEnd_VIPKilled, /**< VIP has been assassinated! */
+ CSRoundEnd_TerroristsEscaped, /**< The terrorists have escaped! */
+ CSRoundEnd_CTStoppedEscape, /**< The CTs have prevented most of the terrorists from escaping! */
+ CSRoundEnd_TerroristsStopped, /**< Escaping terrorists have all been neutralized! */
+ CSRoundEnd_BombDefused, /**< The bomb has been defused! */
+ CSRoundEnd_CTWin, /**< Counter-Terrorists Win! */
+ CSRoundEnd_TerroristWin, /**< Terrorists Win! */
+ CSRoundEnd_Draw, /**< Round Draw! */
+ CSRoundEnd_HostagesRescued, /**< All Hostages have been rescued! */
+ CSRoundEnd_TargetSaved, /**< Target has been saved! */
+ CSRoundEnd_HostagesNotRescued, /**< Hostages have not been rescued! */
+ CSRoundEnd_TerroristsNotEscaped, /**< Terrorists have not escaped! */
+ CSRoundEnd_VIPNotEscaped, /**< VIP has not escaped! */
+ CSRoundEnd_GameStart, /**< Game Commencing! */
+
+ // The below only exist on CS:GO
+ CSRoundEnd_TerroristsSurrender, /**< Terrorists Surrender */
+ CSRoundEnd_CTSurrender, /**< CTs Surrender */
+};
+
+enum CSWeaponID
+{
+ CSWeapon_NONE = 0,
+ CSWeapon_P228,
+ CSWeapon_GLOCK,
+ CSWeapon_SCOUT,
+ CSWeapon_HEGRENADE,
+ CSWeapon_XM1014,
+ CSWeapon_C4,
+ CSWeapon_MAC10,
+ CSWeapon_AUG,
+ CSWeapon_SMOKEGRENADE,
+ CSWeapon_ELITE,
+ CSWeapon_FIVESEVEN,
+ CSWeapon_UMP45,
+ CSWeapon_SG550,
+ CSWeapon_GALIL,
+ CSWeapon_FAMAS,
+ CSWeapon_USP,
+ CSWeapon_AWP,
+ CSWeapon_MP5NAVY,
+ CSWeapon_M249,
+ CSWeapon_M3,
+ CSWeapon_M4A1,
+ CSWeapon_TMP,
+ CSWeapon_G3SG1,
+ CSWeapon_FLASHBANG,
+ CSWeapon_DEAGLE,
+ CSWeapon_SG552,
+ CSWeapon_AK47,
+ CSWeapon_KNIFE,
+ CSWeapon_P90,
+ CSWeapon_SHIELD,
+ CSWeapon_KEVLAR,
+ CSWeapon_ASSAULTSUIT,
+ CSWeapon_NIGHTVISION,
+ CSWeapon_GALILAR,
+ CSWeapon_BIZON,
+ CSWeapon_MAG7,
+ CSWeapon_NEGEV,
+ CSWeapon_SAWEDOFF,
+ CSWeapon_TEC9,
+ CSWeapon_TASER,
+ CSWeapon_HKP2000,
+ CSWeapon_MP7,
+ CSWeapon_MP9,
+ CSWeapon_NOVA,
+ CSWeapon_P250,
+ CSWeapon_SCAR17,
+ CSWeapon_SCAR20,
+ CSWeapon_SG556,
+ CSWeapon_SSG08,
+ CSWeapon_KNIFE_GG,
+ CSWeapon_MOLOTOV,
+ CSWeapon_DECOY,
+ CSWeapon_INCGRENADE,
+ CSWeapon_DEFUSER
+};
+
+/**
+ * Called when a player attempts to purchase an item.
+ * 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
+ */
+forward Action:CS_OnBuyCommand(client, const String:weapon[]);
+
+/**
+ * Called when CSWeaponDrop is called
+ * Return Plugin_Continue to allow the call or return a
+ * higher action to deny.
+ *
+ * @param client Client index
+ * @param weaponIndex Weapon index
+ */
+forward Action:CS_OnCSWeaponDrop(client, weaponIndex);
+
+/**
+ * Called when game retrieves a weapon's price for a player.
+ * Return Plugin_Continue to use default value or return a higher
+ * action to use a newly-set price.
+ *
+ * @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
+ *
+ * @note Not all "weapons" call GetWeaponPrice. Example: c4, knife, vest, vest helmet, night vision.
+ */
+forward Action:CS_OnGetWeaponPrice(client, const String:weapon[], &price);
+
+/**
+ * Called when TerminateRound is called.
+ * Return Plugin_Continue to ignore, return Plugin_Changed to continue,
+ * 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
+ */
+forward Action:CS_OnTerminateRound(&Float:delay, &CSRoundEndReason:reason);
+
+/**
+ * Respawns a player.
+ *
+ * @param client Player's index.
+ * @noreturn
+ * @error Invalid client index, client not in game.
+ */
+native CS_RespawnPlayer(client);
+
+/**
+ * Switches the player's team.
+ *
+ * @param client Player's index.
+ * @param team Team index.
+ * @noreturn
+ * @error Invalid client index, client not in game.
+ */
+native CS_SwitchTeam(client, team);
+
+/**
+ * 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
+ *
+ * @noreturn
+ * @error Invalid client index, client not in game, or invalid weapon index.
+ */
+native CS_DropWeapon(client, 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.
+ * @noreturn
+ */
+native 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.
+ * @noreturn
+ *
+ * @note Will set the buffer to the original alias if it is not an alias to a weapon.
+ */
+native CS_GetTranslatedWeaponAlias(const String:alias[], String:weapon[], size);
+
+/**
+ * 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)
+ *
+ * @error Invalid client, failing to get weapon info, or failing to get price offset.
+ * @note c4, knife and shield will always return 0. vest, vest helmet and night vision will always return default price.
+ */
+native CS_GetWeaponPrice(client, CSWeaponID:id, bool:defaultprice = false);
+
+/**
+ * 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.
+ */
+native CS_GetClientClanTag(client, String:buffer[], size);
+
+/**
+ * Sets a clients clan tag
+ * @param client Client index to set clan tag for.
+ * @param tag Tag to set clients clan tag as.
+ * @noreturn
+ *
+ * @error Invalid client.
+ */
+native CS_SetClientClanTag(client, const String:tag[]);
+
+/**
+ * Gets a team's score
+ * @param team Team index to get score for.
+ * @return Returns the internal team score.
+ *
+ * @error Invalid team index.
+ */
+native CS_GetTeamScore(team);
+
+/**
+ * Sets a team's score
+ * @param team Team index to set score for.
+ * @param value Value to set teams score as.
+ * @noreturn
+ *
+ * @error Invalid team index.
+ * @note This will update the scoreboard only after the scoreboard update function is called. Use SetTeamScore plus this to update the scoreboard instantly and save values correctly.
+ */
+native CS_SetTeamScore(team, value);
+
+/**
+ * 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.
+ */
+native CS_GetMVPCount(client);
+
+/**
+ * Sets a client's mvp count
+ * @param client Client index to set mvp count for.
+ * @param value Value to set client's mvp count as.
+ * @noreturn
+ *
+ * @error Invalid client.
+ */
+native CS_SetMVPCount(client, value);
+
+/**
+ * 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.
+ */
+native CS_GetClientContributionScore(client);
+
+/**
+ * Sets a client's contribution score (CS:GO only)
+ * @param client Client index to set score for.
+ * @param value Value to set client's score as.
+ * @noreturn
+ *
+ * @error Invalid client.
+ */
+native CS_SetClientContributionScore(client, value);
+
+/**
+ * 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.
+ */
+native CS_GetClientAssists(client);
+
+/**
+ * Sets a client's assists (CS:GO only)
+ * @param client Client index to set assists for.
+ * @param value Value to set client's assists as.
+ * @noreturn
+ *
+ * @error Invalid client.
+ */
+native CS_SetClientAssists(client, value);
+
+/**
+ * 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.
+ *
+ * @note For best results use CS_GetTranslatedWeaponAlias on the weapon name before passing it.
+ */
+native CSWeaponID:CS_AliasToWeaponID(const String: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.
+ */
+native CS_WeaponIDToAlias(CSWeaponID:weaponID, String:destination[], 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.
+ *
+ * @note This will return false always for CSWeapon_NONE
+ */
+native bool:CS_IsValidWeaponID(CSWeaponID:id);
+
+/**
+ * Sets a player's model based on their current class
+ *
+ * @param client Player's index.
+ * @noreturn
+ * @error Invalid client index, client not in game.
+ */
+native CS_UpdateClientModel(client);
+
+/**
+ * Do not edit below this line!
+ */
+public Extension:__ext_cstrike =
+{
+ name = "cstrike",
+ file = "games/game.cstrike.ext",
+ autoload = 0,
+#if defined REQUIRE_EXTENSIONS
+ required = 1,
+#else
+ required = 0,
+#endif
+};
+
+#if !defined REQUIRE_EXTENSIONS
+public __ext_cstrike_SetNTVOptional()
+{
+ MarkNativeAsOptional("CS_RespawnPlayer");
+ MarkNativeAsOptional("CS_SwitchTeam");
+ MarkNativeAsOptional("CS_DropWeapon");
+ MarkNativeAsOptional("CS_TerminateRound");
+ MarkNativeAsOptional("CS_GetTranslatedWeaponAlias");
+ MarkNativeAsOptional("CS_GetWeaponPrice");
+ MarkNativeAsOptional("CS_GetClientClanTag");
+ MarkNativeAsOptional("CS_SetClientClanTag");
+ MarkNativeAsOptional("CS_GetTeamScore");
+ MarkNativeAsOptional("CS_SetTeamScore");
+ MarkNativeAsOptional("CS_GetMVPCount");
+ MarkNativeAsOptional("CS_SetMVPCount");
+ MarkNativeAsOptional("CS_GetClientContributionScore");
+ MarkNativeAsOptional("CS_SetClientContributionScore");
+ MarkNativeAsOptional("CS_GetClientAssists");
+ MarkNativeAsOptional("CS_SetClientAssists");
+ MarkNativeAsOptional("CS_AliasToWeaponID");
+ MarkNativeAsOptional("CS_WeaponIDToAlias");
+ MarkNativeAsOptional("CS_IsValidWeaponID");
+ MarkNativeAsOptional("CS_UpdateClientModel");
+}
+#endif
+