cs_get_user_backpackammo cs_set_user_backpackammo
This commit is contained in:
parent
7471a45bf4
commit
6ffc9c7b49
|
@ -1,45 +1,39 @@
|
|||
/* 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.
|
||||
*/
|
||||
|
||||
#include "cstrike.h"
|
||||
|
||||
/*
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
Utils first
|
||||
*/
|
||||
// Utils first
|
||||
|
||||
bool isplayer(AMX* amx, edict_t* pPlayer) {
|
||||
bool player = false;
|
||||
|
@ -54,6 +48,7 @@ bool isplayer(AMX* amx, edict_t* pPlayer) {
|
|||
return player;
|
||||
}
|
||||
|
||||
// Then natives
|
||||
|
||||
static cell AMX_NATIVE_CALL cs_set_user_money(AMX *amx, cell *params) // cs_set_user_money(index, money, flash = 1); = 3 arguments
|
||||
{
|
||||
|
@ -710,6 +705,190 @@ static cell AMX_NATIVE_CALL cs_set_user_defusekit(AMX *amx, cell *params) // cs_
|
|||
return 1;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL cs_get_user_backpackammo(AMX *amx, cell *params) // cs_get_user_backpackammo(index, weapon); = 2 params
|
||||
{
|
||||
// Get amount of ammo in a user's backpack for a specific weapon type.
|
||||
// params[1] = user index
|
||||
// params[2] = weapon, as in CSW_*
|
||||
|
||||
// Valid entity should be within range
|
||||
if (params[1] < 1 || params[1] > gpGlobals->maxClients)
|
||||
{
|
||||
AMX_RAISEERROR(amx, AMX_ERR_NATIVE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Make into edict pointer
|
||||
edict_t *pPlayer = INDEXENT(params[1]);
|
||||
|
||||
// Check entity validity
|
||||
if (FNullEnt(pPlayer)) {
|
||||
AMX_RAISEERROR(amx, AMX_ERR_NATIVE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int offset;
|
||||
|
||||
switch (params[2]) {
|
||||
case CSW_AWP:
|
||||
offset = OFFSET_AWM_AMMO;
|
||||
break;
|
||||
case CSW_SCOUT:
|
||||
case CSW_AK47:
|
||||
case CSW_G3SG1:
|
||||
offset = OFFSET_SCOUT_AMMO;
|
||||
break;
|
||||
case CSW_M249:
|
||||
offset = OFFSET_PARA_AMMO;
|
||||
break;
|
||||
case CSW_FAMAS:
|
||||
case CSW_M4A1:
|
||||
case CSW_AUG:
|
||||
case CSW_SG550:
|
||||
case CSW_GALI:
|
||||
case CSW_SG552:
|
||||
offset = OFFSET_FAMAS_AMMO;
|
||||
break;
|
||||
case CSW_M3:
|
||||
case CSW_XM1014:
|
||||
offset = OFFSET_M3_AMMO;
|
||||
break;
|
||||
case CSW_USP:
|
||||
case CSW_UMP45:
|
||||
case CSW_MAC10:
|
||||
offset = OFFSET_USP_AMMO;
|
||||
break;
|
||||
case CSW_FIVESEVEN:
|
||||
case CSW_P90:
|
||||
offset = OFFSET_FIVESEVEN_AMMO;
|
||||
break;
|
||||
case CSW_DEAGLE:
|
||||
offset = OFFSET_DEAGLE_AMMO;
|
||||
break;
|
||||
case CSW_P228:
|
||||
offset = OFFSET_P228_AMMO;
|
||||
break;
|
||||
case CSW_GLOCK18:
|
||||
case CSW_MP5NAVY:
|
||||
case CSW_TMP:
|
||||
case CSW_ELITE:
|
||||
offset = OFFSET_GLOCK_AMMO;
|
||||
break;
|
||||
case CSW_FLASHBANG:
|
||||
offset = OFFSET_FLASH_AMMO;
|
||||
break;
|
||||
case CSW_HEGRENADE:
|
||||
offset = OFFSET_HE_AMMO;
|
||||
break;
|
||||
case CSW_SMOKEGRENADE:
|
||||
offset = OFFSET_SMOKE_AMMO;
|
||||
break;
|
||||
case CSW_C4:
|
||||
offset = OFFSET_C4_AMMO;
|
||||
break;
|
||||
default:
|
||||
AMX_RAISEERROR(amx, AMX_ERR_NATIVE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (int)*((int *)pPlayer->pvPrivateData + offset);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL cs_set_user_backpackammo(AMX *amx, cell *params) // cs_set_user_backpackammo(index, weapon, amount); = 3 params
|
||||
{
|
||||
// Set amount of ammo in a user's backpack for a specific weapon type.
|
||||
// params[1] = user index
|
||||
// params[2] = weapon, as in CSW_*
|
||||
// params[3] = new amount
|
||||
|
||||
// Valid entity should be within range
|
||||
if (params[1] < 1 || params[1] > gpGlobals->maxClients)
|
||||
{
|
||||
AMX_RAISEERROR(amx, AMX_ERR_NATIVE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Make into edict pointer
|
||||
edict_t *pPlayer = INDEXENT(params[1]);
|
||||
|
||||
// Check entity validity
|
||||
if (FNullEnt(pPlayer)) {
|
||||
AMX_RAISEERROR(amx, AMX_ERR_NATIVE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int offset;
|
||||
|
||||
switch (params[2]) {
|
||||
case CSW_AWP:
|
||||
offset = OFFSET_AWM_AMMO;
|
||||
break;
|
||||
case CSW_SCOUT:
|
||||
case CSW_AK47:
|
||||
case CSW_G3SG1:
|
||||
offset = OFFSET_SCOUT_AMMO;
|
||||
break;
|
||||
case CSW_M249:
|
||||
offset = OFFSET_PARA_AMMO;
|
||||
break;
|
||||
case CSW_FAMAS:
|
||||
case CSW_M4A1:
|
||||
case CSW_AUG:
|
||||
case CSW_SG550:
|
||||
case CSW_GALI:
|
||||
case CSW_SG552:
|
||||
offset = OFFSET_FAMAS_AMMO;
|
||||
break;
|
||||
case CSW_M3:
|
||||
case CSW_XM1014:
|
||||
offset = OFFSET_M3_AMMO;
|
||||
break;
|
||||
case CSW_USP:
|
||||
case CSW_UMP45:
|
||||
case CSW_MAC10:
|
||||
offset = OFFSET_USP_AMMO;
|
||||
break;
|
||||
case CSW_FIVESEVEN:
|
||||
case CSW_P90:
|
||||
offset = OFFSET_FIVESEVEN_AMMO;
|
||||
break;
|
||||
case CSW_DEAGLE:
|
||||
offset = OFFSET_DEAGLE_AMMO;
|
||||
break;
|
||||
case CSW_P228:
|
||||
offset = OFFSET_P228_AMMO;
|
||||
break;
|
||||
case CSW_GLOCK18:
|
||||
case CSW_MP5NAVY:
|
||||
case CSW_TMP:
|
||||
case CSW_ELITE:
|
||||
offset = OFFSET_GLOCK_AMMO;
|
||||
break;
|
||||
case CSW_FLASHBANG:
|
||||
offset = OFFSET_FLASH_AMMO;
|
||||
break;
|
||||
case CSW_HEGRENADE:
|
||||
offset = OFFSET_HE_AMMO;
|
||||
break;
|
||||
case CSW_SMOKEGRENADE:
|
||||
offset = OFFSET_SMOKE_AMMO;
|
||||
break;
|
||||
case CSW_C4:
|
||||
offset = OFFSET_C4_AMMO;
|
||||
break;
|
||||
default:
|
||||
AMX_RAISEERROR(amx, AMX_ERR_NATIVE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
(int)*((int *)pPlayer->pvPrivateData + offset) = params[3];
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
AMX_NATIVE_INFO cstrike_Exports[] = {
|
||||
{"cs_set_user_money", cs_set_user_money},
|
||||
{"cs_get_user_money", cs_get_user_money},
|
||||
|
@ -728,6 +907,8 @@ AMX_NATIVE_INFO cstrike_Exports[] = {
|
|||
{"cs_set_user_plant", cs_set_user_plant},
|
||||
{"cs_get_user_defusekit", cs_get_user_defusekit},
|
||||
{"cs_set_user_defusekit", cs_set_user_defusekit},
|
||||
{"cs_get_user_backpackammo", cs_get_user_backpackammo},
|
||||
{"cs_set_user_backpackammo", cs_set_user_backpackammo},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
@ -759,6 +940,11 @@ C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, m
|
|||
memcpy(pFunctionTable, &gMetaFunctionTable, sizeof(META_FUNCTIONS));
|
||||
gpGamedllFuncs = pGamedllFuncs;
|
||||
|
||||
// Init stuff here
|
||||
//g_msgMoney = GET_USER_MSG_ID(PLID, "Money", NULL);
|
||||
//g_msgTextMsg = GET_USER_MSG_ID(PLID, "TextMsg", NULL);
|
||||
//g_msgStatusIcon = GET_USER_MSG_ID(PLID, "StatusIcon", NULL);
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,46 +1,47 @@
|
|||
/* 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.
|
||||
*/
|
||||
/* 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
|
||||
|
||||
#include <extdll.h>
|
||||
#include <meta_api.h>
|
||||
#include <modules.h>
|
||||
|
||||
// Check later if all of these really are needed!
|
||||
meta_globals_t *gpMetaGlobals; // Variables provided to plugins.
|
||||
gamedll_funcs_t *gpGamedllFuncs; // Pair of function tables provided by game DLL.
|
||||
mutil_funcs_t *gpMetaUtilFuncs; // Meta Utility Function table type.
|
||||
enginefuncs_t g_engfuncs; // Engine hands this to DLLs for functionality callbacks
|
||||
globalvars_t *gpGlobals; // JGHG says: contains info on server, like maxclients, (time?) etc, stringbase is here :-) seems to be used with entity classnames...
|
||||
globalvars_t *gpGlobals; // JGHG says: contains info on server, like maxcliens, (time?) etc, stringbase is here :-) seems to be used with entity classnames...
|
||||
|
||||
// Must provide at least one of these...
|
||||
static META_FUNCTIONS gMetaFunctionTable; /* = {
|
||||
|
@ -73,6 +74,22 @@ pfnmodule_engine_g* g_engModuleFunc;
|
|||
#define OFFSET_DEFUSE_PLANT 193 + 5
|
||||
#define OFFSET_VIP 215 + 5
|
||||
#define OFFSET_BUYZONE 241 + 5
|
||||
|
||||
#define OFFSET_AWM_AMMO 382 + 5
|
||||
#define OFFSET_SCOUT_AMMO 383 + 5
|
||||
#define OFFSET_PARA_AMMO 384 + 5
|
||||
#define OFFSET_FAMAS_AMMO 385 + 5
|
||||
#define OFFSET_M3_AMMO 386 + 5
|
||||
#define OFFSET_USP_AMMO 387 + 5
|
||||
#define OFFSET_FIVESEVEN_AMMO 388 + 5
|
||||
#define OFFSET_DEAGLE_AMMO 389 + 5
|
||||
#define OFFSET_P228_AMMO 390 + 5
|
||||
#define OFFSET_GLOCK_AMMO 391 + 5
|
||||
#define OFFSET_FLASH_AMMO 392 + 5
|
||||
#define OFFSET_HE_AMMO 393 + 5
|
||||
#define OFFSET_SMOKE_AMMO 394 + 5
|
||||
#define OFFSET_C4_AMMO 395 + 5
|
||||
|
||||
#define OFFSET_CSDEATHS 449 + 5
|
||||
#define OFFSET_HOSTAGEID 487 + 5
|
||||
#else
|
||||
|
@ -83,14 +100,76 @@ pfnmodule_engine_g* g_engModuleFunc;
|
|||
#define OFFSET_DEFUSE_PLANT 193
|
||||
#define OFFSET_VIP 215
|
||||
#define OFFSET_BUYZONE 241
|
||||
|
||||
#define OFFSET_AWM_AMMO 382
|
||||
#define OFFSET_SCOUT_AMMO 383
|
||||
#define OFFSET_PARA_AMMO 384
|
||||
#define OFFSET_FAMAS_AMMO 385
|
||||
#define OFFSET_M3_AMMO 386
|
||||
#define OFFSET_USP_AMMO 387
|
||||
#define OFFSET_FIVESEVEN_AMMO 388
|
||||
#define OFFSET_DEAGLE_AMMO 389
|
||||
#define OFFSET_P228_AMMO 390
|
||||
#define OFFSET_GLOCK_AMMO 391
|
||||
#define OFFSET_FLASH_AMMO 392
|
||||
#define OFFSET_HE_AMMO 393
|
||||
#define OFFSET_SMOKE_AMMO 394
|
||||
#define OFFSET_C4_AMMO 395
|
||||
|
||||
#define OFFSET_CSDEATHS 449
|
||||
#define OFFSET_HOSTAGEID 487
|
||||
#endif // defined __linux__
|
||||
|
||||
|
||||
// Offsets of ammo amount in player entities
|
||||
/*
|
||||
382 int awm
|
||||
383 int scout, ak, g3
|
||||
384 int para
|
||||
385 int famas, m4a1, aug, sg550, galil, sg552
|
||||
386 int m3, xm
|
||||
387 int usp, ump, mac
|
||||
388 int fiveseven, p90
|
||||
389 int deagle
|
||||
390 int p228
|
||||
391 int glock, mp5, tmp, elites
|
||||
392 int flash
|
||||
393 int he
|
||||
394 int smoke
|
||||
395 int c4
|
||||
*/
|
||||
|
||||
// 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
|
||||
#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
|
||||
#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
|
||||
|
||||
#define M4A1_UNSILENCED 0
|
||||
#define M4A1_SILENCED 4
|
||||
|
@ -138,4 +217,8 @@ module_info_s module_info = {
|
|||
AMX_INTERFACE_VERSION,
|
||||
RELOAD_MODULE,
|
||||
};
|
||||
|
||||
//int g_msgMoney;
|
||||
//int g_msgTextMsg;
|
||||
//int g_msgStatusIcon;
|
||||
// Globals above
|
||||
|
|
Loading…
Reference in New Issue
Block a user