Request am28110 - Added tfc_get_user_goalitem native to determine if player is carrying a goal item (such as a flag or keycard)

This commit is contained in:
Scott Ehlert
2006-08-22 21:50:27 +00:00
parent 0cb316c764
commit 58abc3a655
4 changed files with 39 additions and 10 deletions

View File

@ -8,37 +8,39 @@
#ifndef __linux__
#define LINUXOFFSET 0
#define WEAP_LINUXOFFSET 0
#define CLIP_LINUXOFFSET 0
#else
#define LINUXOFFSET 5
#define WEAP_LINUXOFFSET 3
#define LINUXOFFSET 3
#define CLIP_LINUXOFFSET 4
#endif
#define TFCMAX_CUSTOMWPNS 5
#define TFCMAX_WEAPONS MAX_WEAPONS + TFCMAX_CUSTOMWPNS
#define PD_HAS_GOALITEM 26 + LINUXOFFSET
#define PD_GOALITEM_TEAM 36 + LINUXOFFSET
#define PD_SENTRY_OWNER 83 + LINUXOFFSET
#define PD_TIMER_OWNER 932 + LINUXOFFSET
#define MAX_TRACE 13
//#define NADE_OFFSET 24
#define ACT_NADE_NONE 0
#define ACT_NADE_SHOT 1<<0
#define ACT_NADE_PUT 1<<1
#define PD_AMMO_SHELLS 53 + WEAP_LINUXOFFSET
#define PD_AMMO_BULLETS 55 + WEAP_LINUXOFFSET
#define PD_AMMO_CELLS 57 + WEAP_LINUXOFFSET
#define PD_AMMO_ROCKETS 59 + WEAP_LINUXOFFSET
#define PD_AMMO_NADE1 14 + WEAP_LINUXOFFSET
#define PD_AMMO_NADE2 15 + WEAP_LINUXOFFSET
#define PD_AMMO_SHELLS 53 + LINUXOFFSET
#define PD_AMMO_BULLETS 55 + LINUXOFFSET
#define PD_AMMO_CELLS 57 + LINUXOFFSET
#define PD_AMMO_ROCKETS 59 + LINUXOFFSET
#define PD_AMMO_NADE1 14 + LINUXOFFSET
#define PD_AMMO_NADE2 15 + LINUXOFFSET
#define PD_WEAPON_AMMO 307 + CLIP_LINUXOFFSET
// For tfc_get_user_goalitem
#define CARRYING_GOALITEM (1<<0)
enum {
TFC_AMMO_SHELLS = 0,
TFC_AMMO_BULLETS,

View File

@ -342,6 +342,20 @@ static cell AMX_NATIVE_CALL TFC_SetWeaponAmmo(AMX *amx, cell *params)
return 1;
}
static cell AMX_NATIVE_CALL TFC_GetUserGoalItem(AMX *amx, cell *params)
{
int index = params[1];
CHECK_PLAYER(index);
edict_t *pPlayer = MF_GetPlayerEdict(index);
cell *team = MF_GetAmxAddr(amx, params[2]);
*team = *((int *)pPlayer->pvPrivateData + PD_GOALITEM_TEAM);
return *((int *)pPlayer->pvPrivateData + PD_HAS_GOALITEM) & CARRYING_GOALITEM;
}
static cell AMX_NATIVE_CALL TFC_GetWpnName(AMX *amx, cell *params) {
int iIndex = params[1];
if ( iIndex < 1 || iIndex > TFCMAX_WEAPONS ){
@ -426,6 +440,8 @@ AMX_NATIVE_INFO base_Natives[] = {
{"tfc_getweaponammo", TFC_GetWeaponAmmo},
{"tfc_setweaponammo", TFC_SetWeaponAmmo},
{"tfc_get_user_goalitem", TFC_GetUserGoalItem},
{"xmod_get_wpnname", TFC_GetWpnName},
{"xmod_get_wpnlogname", TFC_GetWpnLogName},
{"xmod_is_melee_wpn", TFC_IsMelee},