[bot] Implement/match n_GetPlayerSpecialAction(...)

* Implement/match `CNetGame::GetPlayerSpecialAction(...)`
This commit is contained in:
RD42 2024-07-08 18:01:38 +08:00
parent 2703cfe7a5
commit 6ead220db3
4 changed files with 20 additions and 2 deletions

View File

@ -63,6 +63,8 @@ long GetTickCount();
char* strlwr(char* str);
#endif
#define SPECIAL_ACTION_NONE 0
#pragma pack(1)
typedef struct _PLAYER_SPAWN_INFO
{

View File

@ -220,6 +220,18 @@ BOOL CNetGame::GetPlayerKeys(PLAYERID playerId, WORD *udAnalog, WORD *lrAnalog,
}
}
BYTE CNetGame::GetPlayerSpecialAction(PLAYERID playerId)
{
if(playerId >= MAX_PLAYERS) return SPECIAL_ACTION_NONE;
if(bPlayerSlotState[playerId] == FALSE) return SPECIAL_ACTION_NONE;
if(bytePlayerState[playerId] == PLAYER_STATE_ONFOOT)
{
return unnamed_3[playerId].byteSpecialAction;
}
return SPECIAL_ACTION_NONE;
}
//----------------------------------------------------
// MATCH
BOOL CNetGame::IsPlayerAdded(PLAYERID playerId)

View File

@ -111,6 +111,7 @@ public:
BYTE GetPlayerHealth(PLAYERID playerId);
BYTE GetPlayerArmour(PLAYERID playerId);
BOOL GetPlayerKeys(PLAYERID playerId, WORD *udAnalog, WORD *lrAnalog, WORD *wKeys);
BYTE GetPlayerSpecialAction(PLAYERID playerId);
BOOL IsPlayerAdded(PLAYERID playerId);
BOOL IsVehicleAdded(VEHICLEID VehicleID);
PVECTOR GetMyPos(PVECTOR Vector);

View File

@ -206,8 +206,11 @@ static cell AMX_NATIVE_CALL n_GetPlayerArmour(AMX *amx, cell *params)
// native GetPlayerSpecialAction(playerid)
static cell AMX_NATIVE_CALL n_GetPlayerSpecialAction(AMX *amx, cell *params)
{
// TODO: n_GetPlayerSpecialAction
return 0;
if (pNetGame->GetPlayerPool()->GetSlotState((PLAYERID)params[1]))
{
return (cell)pNetGame->GetPlayerSpecialAction((PLAYERID)params[1]);
}
return SPECIAL_ACTION_NONE;
}
// native IsPlayerStreamedIn(playerid)