Skip to content

Commit 6dffaef

Browse files
authored
Add new native rg_observer_find_next_player (#345)
1 parent 5fa7a83 commit 6dffaef

5 files changed

Lines changed: 44 additions & 2 deletions

File tree

reapi/extra/amxmodx/scripting/include/reapi_gamedll.inc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,6 +1185,18 @@ native rg_disappear(const player);
11851185
*/
11861186
native rg_set_observer_mode(const player, const mode);
11871187

1188+
/*
1189+
* Call origin function CBasePlayer::Observer_FindNextPlayer()
1190+
* @note Player must be a valid observer (m_afPhysicsFlags & PFLAG_OBSERVER).
1191+
*
1192+
* @param player Player index.
1193+
* @param bReverse If bReverse is true, finding order will be reversed
1194+
* @param name Player name to find.
1195+
*
1196+
* @noreturn
1197+
*/
1198+
native rg_observer_find_next_player(const player, const bool:bReverse = false, const name[] = "");
1199+
11881200
/*
11891201
* Emits a death notice (logs, DeathMsg event, win conditions check)
11901202
*

reapi/include/cssdk/dlls/API/CSPlayer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ class CCSPlayer: public CCSMonster
118118
virtual void Reset() = 0;
119119
virtual void OnSpawnEquip(bool addDefault = true, bool equipGame = true) = 0;
120120
virtual void SetScoreboardAttributes(CBasePlayer *destination = nullptr) = 0;
121+
virtual void Observer_FindNextPlayer(bool bReverse, const char *name = nullptr) = 0;
121122

122123
CBasePlayer *BasePlayer() const;
123124

reapi/include/cssdk/dlls/regamedll_api.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
#include <API/CSInterfaces.h>
4141

4242
#define REGAMEDLL_API_VERSION_MAJOR 5
43-
#define REGAMEDLL_API_VERSION_MINOR 27
43+
#define REGAMEDLL_API_VERSION_MINOR 29
4444

4545
// CBasePlayer::Spawn hook
4646
typedef IHookChainClass<void, class CBasePlayer> IReGameHook_CBasePlayer_Spawn;

reapi/src/natives/natives_misc.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3244,6 +3244,34 @@ cell AMX_NATIVE_CALL rg_set_observer_mode(AMX* amx, cell* params)
32443244
return TRUE;
32453245
}
32463246

3247+
/*
3248+
* Call origin function CBasePlayer::Observer_FindNextPlayer()
3249+
* @note Player must be a valid observer (m_afPhysicsFlags & PFLAG_OBSERVER).
3250+
*
3251+
* @param player Player index.
3252+
* @param bReverse If bReverse is true, finding order will be reversed
3253+
* @param name Player name to find.
3254+
*
3255+
* @noreturn
3256+
*/
3257+
cell AMX_NATIVE_CALL rg_observer_find_next_player(AMX* amx, cell* params)
3258+
{
3259+
enum args_e { arg_count, arg_index, arg_bReverse, arg_name };
3260+
3261+
CHECK_ISPLAYER(arg_index)
3262+
3263+
CBasePlayer *pPlayer = UTIL_PlayerByIndex(params[arg_index]);
3264+
CHECK_CONNECTED(pPlayer, arg_index);
3265+
3266+
char nameBuf[MAX_PLAYER_NAME_LENGTH];
3267+
const char* name = getAmxString(amx, params[arg_name], nameBuf);
3268+
if (strcmp(name, "") == 0)
3269+
name = nullptr;
3270+
3271+
pPlayer->CSPlayer()->Observer_FindNextPlayer(params[arg_bReverse] != 0, name);
3272+
return TRUE;
3273+
}
3274+
32473275
/*
32483276
* Emits a death notice (logs, DeathMsg event, win conditions check)
32493277
*
@@ -3457,6 +3485,7 @@ AMX_NATIVE_INFO Misc_Natives_RG[] =
34573485
{ "rg_switch_best_weapon", rg_switch_best_weapon },
34583486
{ "rg_disappear", rg_disappear },
34593487
{ "rg_set_observer_mode", rg_set_observer_mode },
3488+
{ "rg_observer_find_next_player", rg_observer_find_next_player },
34603489
{ "rg_death_notice", rg_death_notice },
34613490
{ "rg_player_relationship", rg_player_relationship },
34623491

reapi/version/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
#pragma once
77

88
#define VERSION_MAJOR 5
9-
#define VERSION_MINOR 26
9+
#define VERSION_MINOR 27
1010
#define VERSION_MAINTENANCE 0

0 commit comments

Comments
 (0)