amxmodx/dlls/cstrike/cstrike.h

208 lines
7.4 KiB
C
Raw Normal View History

//#define __cswonbuild__ // comment when compiling for STEAM
/* AMX Mod X
* Counter-Strike Module
*
* by the AMX Mod X Development Team
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* 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, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/
// cstrike MODULE TO DO HERE: http://www.amxmodx.org/forums/viewtopic.php?t=45
// This implementation uses Vexd's way (lightly modified) of setting models on players.
2004-02-20 15:45:45 +00:00
#include <extdll.h>
#include <meta_api.h>
2004-05-03 14:01:40 +00:00
#include "amxxmodule.h"
#include "CstrikePlayer.h"
2004-02-20 15:45:45 +00:00
#define GETINFOKEYBUFFER (*g_engfuncs.pfnGetInfoKeyBuffer)
#define SETCLIENTKEYVALUE (*g_engfuncs.pfnSetClientKeyValue)
#define GETCLIENTKEYVALUE (*g_engfuncs.pfnInfoKeyValue)
#define CREATENAMEDENTITY (*g_engfuncs.pfnCreateNamedEntity)
#if defined __linux__
#define EXTRAOFFSET 5 // offsets 5 higher in Linux builds
#else
#define EXTRAOFFSET 0 // no change in Windows builds
#endif // defined __linux__
#if defined __cswonbuild__ // from here WON build looks for offsets
// "player" entities
#define OFFSET_TEAM 114 + EXTRAOFFSET // same as STEAM
#define OFFSET_CSMONEY 115 + EXTRAOFFSET // same as STEAM
2004-06-07 15:33:45 +00:00
//#define OFFSET_PRIMARYWEAPON 116 + EXTRAOFFSET // not confirmed (very likely it's the same though)
#define OFFSET_INTERNALMODEL 126 + EXTRAOFFSET // same as STEAM
#define OFFSET_NVGOGGLES 129 + EXTRAOFFSET // same as STEAM
#define OFFSET_DEFUSE_PLANT 193 + EXTRAOFFSET // same as STEAM
#define OFFSET_VIP 215 + EXTRAOFFSET // same as STEAM
#define OFFSET_BUYZONE 239 + EXTRAOFFSET // differs -2 from STEAM
#define OFFSET_AWM_AMMO 381 + EXTRAOFFSET // differs -1 from STEAM
#define OFFSET_SCOUT_AMMO 382 + EXTRAOFFSET // all of these probably differs by -1, didn't really test that yet though
#define OFFSET_PARA_AMMO 383 + EXTRAOFFSET
#define OFFSET_FAMAS_AMMO 384 + EXTRAOFFSET
#define OFFSET_M3_AMMO 385 + EXTRAOFFSET
#define OFFSET_USP_AMMO 386 + EXTRAOFFSET
#define OFFSET_FIVESEVEN_AMMO 387 + EXTRAOFFSET
#define OFFSET_DEAGLE_AMMO 388 + EXTRAOFFSET
#define OFFSET_P228_AMMO 389 + EXTRAOFFSET
#define OFFSET_GLOCK_AMMO 390 + EXTRAOFFSET
#define OFFSET_FLASH_AMMO 391 + EXTRAOFFSET
#define OFFSET_HE_AMMO 392 + EXTRAOFFSET
#define OFFSET_SMOKE_AMMO 393 + EXTRAOFFSET
#define OFFSET_C4_AMMO 394 + EXTRAOFFSET // differs -1 from STEAM
#define OFFSET_CSDEATHS 448 + EXTRAOFFSET // differs -1 from STEAM
// "weapon_*" entities
#define OFFSET_WEAPONTYPE 43 + EXTRAOFFSET // same as STEAM
#define OFFSET_CLIPAMMO 51 + EXTRAOFFSET // same as STEAM
#define OFFSET_SILENCER_FIREMODE 70 + EXTRAOFFSET // differs -4 from STEAM
// "hostage_entity" entities
#define OFFSET_HOSTAGEFOLLOW 86 + EXTRAOFFSET // same as STEAM
#define OFFSET_HOSTAGEID 487 + EXTRAOFFSET // same as STEAM
#else // from here STEAM build looks for offsets
// "player" entities
#define OFFSET_TEAM 114 + EXTRAOFFSET
#define OFFSET_CSMONEY 115 + EXTRAOFFSET
2004-06-07 15:33:45 +00:00
#define OFFSET_PRIMARYWEAPON 116 + EXTRAOFFSET
#define OFFSET_INTERNALMODEL 126 + EXTRAOFFSET
#define OFFSET_NVGOGGLES 129 + EXTRAOFFSET
#define OFFSET_DEFUSE_PLANT 193 + EXTRAOFFSET
#define OFFSET_VIP 215 + EXTRAOFFSET
#define OFFSET_BUYZONE 241 + EXTRAOFFSET
#define OFFSET_AWM_AMMO 382 + EXTRAOFFSET
#define OFFSET_SCOUT_AMMO 383 + EXTRAOFFSET
#define OFFSET_PARA_AMMO 384 + EXTRAOFFSET
#define OFFSET_FAMAS_AMMO 385 + EXTRAOFFSET
#define OFFSET_M3_AMMO 386 + EXTRAOFFSET
#define OFFSET_USP_AMMO 387 + EXTRAOFFSET
#define OFFSET_FIVESEVEN_AMMO 388 + EXTRAOFFSET
#define OFFSET_DEAGLE_AMMO 389 + EXTRAOFFSET
#define OFFSET_P228_AMMO 390 + EXTRAOFFSET
#define OFFSET_GLOCK_AMMO 391 + EXTRAOFFSET
#define OFFSET_FLASH_AMMO 392 + EXTRAOFFSET
#define OFFSET_HE_AMMO 393 + EXTRAOFFSET
#define OFFSET_SMOKE_AMMO 394 + EXTRAOFFSET
#define OFFSET_C4_AMMO 395 + EXTRAOFFSET
#define OFFSET_CSDEATHS 449 + EXTRAOFFSET
// "weapon_*" entities
#define OFFSET_WEAPONTYPE 43 + EXTRAOFFSET
#define OFFSET_CLIPAMMO 51 + EXTRAOFFSET
#define OFFSET_SILENCER_FIREMODE 74 + EXTRAOFFSET
// "hostage_entity" entities
#define OFFSET_HOSTAGEFOLLOW 86 + EXTRAOFFSET
#define OFFSET_HOSTAGEID 487 + EXTRAOFFSET
#endif // defined __cswonbuild__
// Ids of weapons in CS
#define CSW_P228 1
//#define CSW_SHIELD 2
#define CSW_SCOUT 3
#define CSW_HEGRENADE 4
#define CSW_XM1014 5
#define CSW_C4 6
#define CSW_MAC10 7
#define CSW_AUG 8
#define CSW_SMOKEGRENADE 9
#define CSW_ELITE 10
#define CSW_FIVESEVEN 11
#define CSW_UMP45 12
#define CSW_SG550 13
#define CSW_GALI 14
2004-02-20 15:45:45 +00:00
#define CSW_FAMAS 15
#define CSW_USP 16
#define CSW_GLOCK18 17
#define CSW_AWP 18
#define CSW_MP5NAVY 19
#define CSW_M249 20
#define CSW_M3 21
2004-02-20 15:45:45 +00:00
#define CSW_M4A1 22
#define CSW_TMP 23
#define CSW_G3SG1 24
#define CSW_FLASHBANG 25
#define CSW_DEAGLE 26
#define CSW_SG552 27
#define CSW_AK47 28
//#define CSW_KNIFE 29
#define CSW_P90 30
2004-02-20 15:45:45 +00:00
2004-03-22 12:20:00 +00:00
#define M4A1_SILENCED (1<<2)
#define M4A1_ATTACHSILENCEANIM 6
#define M4A1_DETACHSILENCEANIM 13
#define USP_SILENCED (1<<0)
#define USP_ATTACHSILENCEANIM 7
#define USP_DETACHSILENCEANIM 15
2004-02-20 15:45:45 +00:00
#define GLOCK_SEMIAUTOMATIC 0
#define GLOCK_BURSTMODE 2
#define FAMAS_AUTOMATIC 0
#define FAMAS_BURSTMODE 16
#define PLAYER_IS_VIP (1<<8)
2004-02-20 15:45:45 +00:00
#define TEAM_UNASSIGNED 0
2004-02-20 15:45:45 +00:00
#define TEAM_T 1
#define TEAM_CT 2
#define TEAM_SPECTATOR 3
#define CAN_PLANT_BOMB (1<<8) // 256
#define HAS_DEFUSE_KIT (1<<16) // 65536
2004-02-20 15:45:45 +00:00
#define DEFUSER_COLOUR_R 0
#define DEFUSER_COLOUR_G 160
#define DEFUSER_COLOUR_B 0
#define HAS_NVGOGGLES (1<<0)
#define SCOREATTRIB_NOTHING 0
#define SCOREATTRIB_DEAD 1
#define SCOREATTRIB_BOMB 2 // t only
#define SCOREATTRIB_VIP 4 // ct only
enum CS_Internal_Models {
CS_DONTCHANGE = 0,
CS_CT_URBAN = 1,
CS_T_TERROR = 2,
CS_T_LEET = 3,
CS_T_ARCTIC = 4,
CS_CT_GSG9 = 5,
CS_CT_GIGN = 6,
CS_CT_SAS = 7,
CS_T_GUERILLA = 8,
CS_CT_VIP = 9
};
2004-02-20 15:45:45 +00:00
// cstrike-specific defines above
CCstrikePlayer g_players[33];
bool g_precachedknife = false;
bool g_noknives = false;
2004-02-20 15:45:45 +00:00
// Globals above