From 24791ac3153b18842e744205486f45a89937708e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johnny=20Bergstr=C3=B6m?= Date: Tue, 6 Apr 2004 07:40:51 +0000 Subject: [PATCH] Updated cs_set_user_team to include model --- dlls/cstrike/cstrike.cpp | 7 +- dlls/cstrike/cstrike.dsp | 4 +- dlls/cstrike/cstrike.h | 3 +- plugins/include/cstrike.inc | 147 ++++++++++++++++++++++++------------ 4 files changed, 108 insertions(+), 53 deletions(-) diff --git a/dlls/cstrike/cstrike.cpp b/dlls/cstrike/cstrike.cpp index 804c3aa6..d28ee63c 100755 --- a/dlls/cstrike/cstrike.cpp +++ b/dlls/cstrike/cstrike.cpp @@ -507,11 +507,12 @@ static cell AMX_NATIVE_CALL cs_get_user_team(AMX *amx, cell *params) // cs_get_u return (int)*((int *)pPlayer->pvPrivateData + OFFSET_TEAM); } -static cell AMX_NATIVE_CALL cs_set_user_team(AMX *amx, cell *params) // cs_set_user_team(index, team); = 2 params +static cell AMX_NATIVE_CALL cs_set_user_team(AMX *amx, cell *params) // cs_set_user_team(index, team, model = 0); = 3 params { // Set user team // params[1] = user index // params[2] = team + // params[3] = model = 0 // Valid entity should be within range if (params[1] < 1 || params[1] > gpGlobals->maxClients || !g_players[params[1]].GetOnline()) @@ -529,8 +530,12 @@ static cell AMX_NATIVE_CALL cs_set_user_team(AMX *amx, cell *params) // cs_set_u return 0; } + int model = params[3]; + // Just set team. Removed check of 1-2-3, because maybe scripters want to create new teams, 4, 5 etc? *((int *)pPlayer->pvPrivateData + OFFSET_TEAM) = params[2]; + if (model != 0) + *((int *)pPlayer->pvPrivateData + OFFSET_INTERNALMODEL) = model; /*switch (params[2]) { case TEAM_T: diff --git a/dlls/cstrike/cstrike.dsp b/dlls/cstrike/cstrike.dsp index 602d5d32..73553a0b 100755 --- a/dlls/cstrike/cstrike.dsp +++ b/dlls/cstrike/cstrike.dsp @@ -56,7 +56,7 @@ LINK32=link.exe # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # Begin Special Build Tool SOURCE="$(InputPath)" -PostBuild_Cmds=echo Copying dll... copy Release\cstrike.dll K:\S\cstrike\addons\amxx\modules\cstrike_amx.dll echo Copying inc... copy ..\plugins\include\cstrike.inc K:\S\cstrike\addons\amxx\scripting\include\ +PostBuild_Cmds=echo Copying dll... copy Release\cstrike.dll K:\S\cstrike\addons\amxx\modules\cstrike_amx.dll echo Copying inc... copy ..\plugins\include\cstrike.inc K:\S\cstrike\addons\amxx\scripting\include\ # End Special Build Tool !ELSEIF "$(CFG)" == "cstrike - Win32 Debug" @@ -86,7 +86,7 @@ LINK32=link.exe # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"Debug/cstrike_amx.dll" /pdbtype:sept # Begin Special Build Tool SOURCE="$(InputPath)" -PostBuild_Cmds=copy Debug\cstrike_amx.dll k:\s\cstrike\addons\amxx\modules\ copy ..\plugins\include\cstrike.inc k:\s\cstrike\addons\amxx\scripting\include\ +PostBuild_Cmds=copy Debug\cstrike_amx.dll k:\s\cstrike\addons\amxx\modules\ copy ..\plugins\include\cstrike.inc k:\s\cstrike\addons\amxx\scripting\include\ # End Special Build Tool !ENDIF diff --git a/dlls/cstrike/cstrike.h b/dlls/cstrike/cstrike.h index 61f1e6c7..cb406288 100755 --- a/dlls/cstrike/cstrike.h +++ b/dlls/cstrike/cstrike.h @@ -89,6 +89,7 @@ pfnmodule_engine_g* g_engModuleFunc; // "player" entities #define OFFSET_TEAM 114 + EXTRAOFFSET // same as STEAM #define OFFSET_CSMONEY 115 + EXTRAOFFSET // same as STEAM + //#define OFFSET_INTERNALMODEL 126 + EXTRAOFFSET // unconfirmed with WON! #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 @@ -121,6 +122,7 @@ pfnmodule_engine_g* g_engModuleFunc; // "player" entities #define OFFSET_TEAM 114 + EXTRAOFFSET #define OFFSET_CSMONEY 115 + EXTRAOFFSET + #define OFFSET_INTERNALMODEL 126 + EXTRAOFFSET #define OFFSET_NVGOGGLES 129 + EXTRAOFFSET #define OFFSET_DEFUSE_PLANT 193 + EXTRAOFFSET #define OFFSET_VIP 215 + EXTRAOFFSET @@ -209,7 +211,6 @@ pfnmodule_engine_g* g_engModuleFunc; #define DEFUSER_COLOUR_B 0 #define HAS_NVGOGGLES (1<<0) -#define MODELRESETTIME 1.0 // cstrike-specific defines above // Globals below diff --git a/plugins/include/cstrike.inc b/plugins/include/cstrike.inc index 7f4a6d6d..46be557f 100755 --- a/plugins/include/cstrike.inc +++ b/plugins/include/cstrike.inc @@ -10,114 +10,163 @@ #endif #define _cstrike_included -/* Returns player deaths. */ +/* Returns player deaths. + */ native cs_get_user_deaths(index); -/* Sets player deaths. */ +/* Sets player deaths. + */ native cs_set_user_deaths(index, newdeaths); -/* Returns index of entity (does not have to be a player) which hostage is following. 0 is hostage doesn't follow anything. */ +/* Returns index of entity (does not have to be a player) which hostage is following. 0 is hostage doesn't follow anything. + */ native cs_get_hostage_foll(index); -/* Set hostage to follow entity specified in followedindex. Does not have to be a player. If followedindex is 0 the hostage will stop following. */ +/* Set hostage to follow entity specified in followedindex. Does not have to be a player. If followedindex is 0 the hostage will stop following. + */ native cs_set_hostage_foll(index, followedindex = 0); -/* Get unique hostage id. */ +/* Get unique hostage id. + */ native cs_get_hostage_id(index); /* Get amount of ammo in backpack on a user for a specific weapon. -* Look in amxconst.inc for weapon types: CSW_*. -* Weapons on the same line uses the same ammo type: -* awm -* scout, ak, g3 -* para -* famas, m4a1, aug, sg550, galil, sg552 -* m3, xm -* usp, ump, mac -* fiveseven, p90 -* deagle -* p228 -* glock, mp5, tmp, elites -* flash -* he -* smoke */ + * Look in amxconst.inc for weapon types: CSW_*. + * Weapons on the same line uses the same ammo type: + * awm + * scout, ak, g3 + * para + * famas, m4a1, aug, sg550, galil, sg552 + * m3, xm + * usp, ump, mac + * fiveseven, p90 + * deagle + * p228 + * glock, mp5, tmp, elites + * flash + * he + * smoke + */ native cs_get_user_bpammo(index, weapon); -/* Restock/remove ammo in a user's backpack. */ +/* Restock/remove ammo in a user's backpack. + */ native cs_set_user_bpammo(index, weapon, amount); -/* Returns 1 if user has a defuse kit. */ +/* Returns 1 if user has a defuse kit. + */ native cs_get_user_defuse(index); /* If defusekit is 1, the user will have a defuse kit. -* You can specify a different colour for the defuse kit icon showing on hud. Default is the normal green. -* You can specify an icon. Default is "defuser". Set flash to 1 if you want the icon to flash red. */ + * You can specify a different colour for the defuse kit icon showing on hud. Default is the normal green. + * You can specify an icon. Default is "defuser". Set flash to 1 if you want the icon to flash red. + */ native cs_set_user_defuse(index, defusekit = 1, r = 0, g = 160, b = 0, icon[] = "defuser", flash = 0); -/* Is user in buyzone? Returns 1 when true, 0 when false. */ +/* Is user in buyzone? Returns 1 when true, 0 when false. + */ native cs_get_user_buyzone(index); -/* Get user model. */ +/* Get user model. + */ native cs_get_user_model(index, model[], len); -/* Set user model. */ +/* Set user model. + */ native cs_set_user_model(index, const model[]); -/* Use to reset model to standard selected model. */ +/* Use to reset model to standard selected model. + */ native cs_reset_user_model(index); -/* Returns users money. */ +/* Returns users money. + */ native cs_get_user_money(index); -/* Gives money to user. If flash is 1, the difference between new and old amount will flash red or green. */ +/* Gives money to user. If flash is 1, the difference between new and old amount will flash red or green. + */ native cs_set_user_money(index, money, flash = 1); -/* Does user have night vision goggles? */ +/* Does user have night vision goggles? + */ native cs_get_user_nvg(index); -/* Set nvgoggles to 1 to give night vision goggles to index. Set it to 0 to remove them. */ +/* Set nvgoggles to 1 to give night vision goggles to index. Set it to 0 to remove them. + */ native cs_set_user_nvg(index, nvgoggles = 1); -/* Returns 1 if user has the "skill" to plant bomb, else 0. Normally this would only be true for a terrorist carrying a bomb. */ +/* Returns 1 if user has the "skill" to plant bomb, else 0. Normally this would only be true for a terrorist carrying a bomb. + */ native cs_get_user_plant(index); /* If plant is 1, a user will be set to be able to plant bomb within the usual bomb target areas if having one. -* You should use this if you give a player a weapon_c4, or he won't be able to plant it -* without dropping it and picking it up again (only possible for terrorists). -* If showbombicon is 1, the green C4 icon will be shown on user hud (if plant "skill" was enabled). */ + * You should use this if you give a player a weapon_c4, or he won't be able to plant it + * without dropping it and picking it up again (only possible for terrorists). + * If showbombicon is 1, the green C4 icon will be shown on user hud (if plant "skill" was enabled). + */ native cs_set_user_plant(index, plant = 1, showbombicon = 1); /* Get team directly from player's entity. -* 1 = terrorist -* 2 = counter-terrorist -* 3 = spectator */ + * 1 = terrorist + * 2 = counter-terrorist + * 3 = spectator + */ +enum CsTeams { + CS_TEAM_T = 1, + CS_TEAM_CT = 2, + CS_TEAM_SPECTATOR = 3 +}; native cs_get_user_team(index); -/* Set user team without killing player (so you can move hostages, plant bomb etc as terrorist). */ -native cs_set_user_team(index, team); +/* Set user team without killing player (so you can move hostages, plant bomb etc as terrorist). + * Note: Effect may vary between different versions of CS. + * If model is anything other than 0, that will be set as player's model. + * Model updates when player spawns. + */ +enum CsInternalModel { + 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 +}; +native cs_set_user_team(index, team, model = CS_DONTCHANGE); -/* Is user vip? */ +/* Is user vip? Returns 1 if true, 0 if false. + */ native cs_get_user_vip(index); /* If vip = 1, user is set to vip. Note that this is useful to unset vips, so they can change teams properly. -* This will not change the player's model to/from vip, or add/remove the "VIP" text in scoreboard. */ + * This will not change the player's model to/from vip, or add/remove the "VIP" text in scoreboard. + */ native cs_set_user_vip(index, vip = 1); -/* Returns 1 if specified weapon is in burst mode. */ +/* Returns 1 if specified weapon is in burst mode. + */ native cs_get_weapon_burst(index); /* If burstmode = 1, weapon will be changed to burst mode, 0 and non-burst mode (semiautomatic/automatic) will be activated. -* Only GLOCK and FAMAS can enter/leave burst mode. */ + * Only GLOCK and FAMAS can enter/leave burst mode. + */ native cs_set_weapon_burst(index, burstmode = 1); -/* Returns 1 if weapon is silenced, else 0. */ +/* Returns 1 if weapon is silenced, else 0. + */ native cs_get_weapon_silen(index); -/* If silence = 1, weapon will be silenced, 0 and silencer will be removed. Only USP and M4A1 can be silenced. */ +/* If silence = 1, weapon will be silenced, 0 and silencer will be removed. Only USP and M4A1 can be silenced. + */ native cs_set_weapon_silen(index, silence = 1); -/* Returns amount of ammo in weapon's clip. */ +/* Returns amount of ammo in weapon's clip. + */ native cs_get_weapon_ammo(index); -/* Set amount of ammo in weapon's clip. */ +/* Set amount of ammo in weapon's clip. + */ native cs_set_weapon_ammo(index, newammo); \ No newline at end of file