SA-MP/server/netgame.h
2024-10-27 22:39:37 +08:00

171 lines
4.4 KiB
C++

#ifndef SAMPSRV_NETGAME_H
#define SAMPSRV_NETGAME_H
#define MAX_SPAWNS 319
#define GAMESTATE_STOPPED 0
#define GAMESTATE_RUNNING 1
#define GAMESTATE_RESTARTING 2
#define INVALID_ID 0xFFFF
class CNetGame // size: W: 14808 L: 14816
{
private:
CGameMode *m_pGameMode;
CFilterScripts *m_pFilterScripts;
CPlayerPool *m_pPlayerPool;
CVehiclePool *m_pVehiclePool;
CPickupPool *m_pPickupPool;
CObjectPool *m_pObjectPool;
CMenuPool *m_pMenuPool;
CTextDrawPool *m_pTextPool;
CLabelPool *m_pLabelPool;
CGangZonePool *m_pGangZonePool;
CActorPool *m_pActorPool;
int m_iCurrentGameModeIndex;
int m_iCurrentGameModeRepeat;
BOOL m_bFirstGameModeLoaded;
CScriptHttps *m_pScriptHttps;
CScriptTimers *m_pScriptTimers;
RakServerInterface *m_pRak;
int m_iLastServerTickUpdate;
int m_iServerTickCount;
int m_iServerTickRate;
BOOL m_bLanMode;
void UpdateNetwork();
public:
int m_iShowPlayerMarkers;
bool m_bShowNameTags;
BYTE m_byteWorldTime;
bool m_bAllowWeapons; // Allow weapons in interiors
bool m_bStuntBonus; // Insane stunt bonusses enabled?
char field_5C;
BYTE m_byteWeather;
int m_iGameState;
float m_fGravity;
int m_iDeathDropMoney;
char field_6A;
char field_6B;
bool m_bLimitGlobalChatRadius; // limit global player chat to other players within a certain radius
bool m_bUseCJWalk;
float m_fGlobalChatRadius; // limit global chat radius
float m_fNameTagDrawDistance; // The distance which players will start rendering nametags
bool m_bDisableEnterExits; // Interior enter/exits disabled?
bool m_bNameTagLOS;
bool m_bManualVehicleEngineAndLights;
bool m_bLimitPlayerMarkerRadius;
float m_fPlayerMarkerRadius;
BOOL m_bVehicleFriendlyFire;
#ifndef WIN32
double m_dElapsedTime;
#endif
CScriptTimers* GetTimers() { return m_pScriptTimers; };
CNetGame();
~CNetGame();
void Init(BOOL bFirst);
void ShutdownForGameModeRestart();
BOOL SetNextScriptFile(char *szFile);
CPlayerPool * GetPlayerPool() { return m_pPlayerPool; };
CVehiclePool * GetVehiclePool() { return m_pVehiclePool; };
RakServerInterface * GetRakServer() { return m_pRak; };
CGameMode * GetGameMode() { return m_pGameMode; };
CFilterScripts * GetFilterScripts() { return m_pFilterScripts; };
CGangZonePool * GetGangZonePool() { return m_pGangZonePool; };
CActorPool * GetActorPool() { return m_pActorPool; };
void MasterServerAnnounce(float fElapsedTime);
char *GetNextScriptFile();
void LoadAllFilterscripts();
void Process();
void BroadcastData( char *szUniqueID,
RakNet::BitStream *bitStream,
PLAYERID excludedPlayer,
char orderingStream );
void SendToPlayer( char *szUniqueID,
RakNet::BitStream *bitStream,
PLAYERID playerId,
char orderingChannel );
void LoadBanList();
// CLASS SYSTEM
int m_iSpawnsAvailable;
PLAYER_SPAWN_INFO m_AvailableSpawns[MAX_SPAWNS];
const PCHAR GetWeaponName(int iWeaponID);
DWORD GetTime();
};
//----------------------------------------------------
#define WEAPON_BRASSKNUCKLE 1
#define WEAPON_GOLFCLUB 2
#define WEAPON_NITESTICK 3
#define WEAPON_KNIFE 4
#define WEAPON_BAT 5
#define WEAPON_SHOVEL 6
#define WEAPON_POOLSTICK 7
#define WEAPON_KATANA 8
#define WEAPON_CHAINSAW 9
#define WEAPON_DILDO 10
#define WEAPON_DILDO2 11
#define WEAPON_VIBRATOR 12
#define WEAPON_VIBRATOR2 13
#define WEAPON_FLOWER 14
#define WEAPON_CANE 15
#define WEAPON_GRENADE 16
#define WEAPON_TEARGAS 17
#define WEAPON_MOLTOV 18
#define WEAPON_COLT45 22
#define WEAPON_SILENCED 23
#define WEAPON_DEAGLE 24
#define WEAPON_SHOTGUN 25
#define WEAPON_SAWEDOFF 26
#define WEAPON_SHOTGSPA 27
#define WEAPON_UZI 28
#define WEAPON_MP5 29
#define WEAPON_AK47 30
#define WEAPON_M4 31
#define WEAPON_TEC9 32
#define WEAPON_RIFLE 33
#define WEAPON_SNIPER 34
#define WEAPON_ROCKETLAUNCHER 35
#define WEAPON_HEATSEEKER 36
#define WEAPON_FLAMETHROWER 37
#define WEAPON_MINIGUN 38
#define WEAPON_SATCHEL 39
#define WEAPON_BOMB 40
#define WEAPON_SPRAYCAN 41
#define WEAPON_FIREEXTINGUISHER 42
#define WEAPON_CAMERA 43
#define WEAPON_NIGHTVISION 44
#define WEAPON_INFRARED 45
#define WEAPON_PARACHUTE 46
#define WEAPON_VEHICLE 49
#define WEAPON_DROWN 53
#define WEAPON_COLLISION 54
//----------------------------------------------------
#endif