func_buyzone: Now print the titles.txt message hint for telling you to buy stuff.

This commit is contained in:
Marco Cawthorne 2023-03-28 15:28:24 -07:00
parent 0704d3e7fd
commit 92497583a1
Signed by: eukara
GPG Key ID: CE2032F0A2882A22
4 changed files with 63 additions and 39 deletions

View File

@ -83,4 +83,9 @@ func_buyzone::Touch(entity eToucher)
if (team == 0 || team == pl.team)
pl.gflags |= GF_BUYZONE;
if (pl.m_buyMessage == false) {
env_message_single(pl, "Hint_press_buy_to_purchase");
pl.m_buyMessage = true;
}
}

View File

@ -36,8 +36,8 @@ class CSGameRules:CGameRules
class CSSingleplayerRules:CSGameRules
{
/* client */
virtual void(NSClientPlayer) PlayerSpawn;
virtual void(NSClientPlayer) PlayerDeath;
virtual void PlayerSpawn(NSClientPlayer);
virtual void PlayerDeath(NSClientPlayer);
};
class CSMultiplayerRules:CSGameRules
@ -48,40 +48,42 @@ class CSMultiplayerRules:CSGameRules
int m_iEscapedTerrorists;
int m_iSwapTeamRoundCounter;
void() CSMultiplayerRules;
void CSMultiplayerRules(void);
virtual void(void) InitPostEnts;
virtual void(void) FrameStart;
virtual void(NSClientPlayer) PlayerDisconnect;
virtual void(NSClientPlayer) PlayerSpawn;
virtual void(NSClientPlayer) PlayerPreFrame;
virtual void(NSClientPlayer) PlayerDeath;
virtual int(int) MaxItemPerSlot;
virtual bool(NSClientPlayer, string) ConsoleCommand;
virtual void InitPostEnts(void);
virtual void FrameStart(void);
virtual void PlayerDisconnect(NSClientPlayer);
virtual void PlayerSpawn(NSClientPlayer);
virtual void PlayerPreFrame(NSClientPlayer);
virtual void PlayerDeath(NSClientPlayer);
virtual int MaxItemPerSlot(int);
virtual bool ConsoleCommand(NSClientPlayer, string);
/* CS specific */
virtual void(void) CreateRescueZones;
virtual void(void) CreateCTBuyzones;
virtual void(void) CreateTBuyzones;
virtual void(float, int) TimerBegin;
virtual void(void) TimerUpdate;
virtual void CreateRescueZones(void);
virtual void CreateCTBuyzones(void);
virtual void CreateTBuyzones(void);
virtual void TimerBegin(float, int);
virtual void TimerUpdate(void);
virtual bool(NSClientPlayer) BuyingPossible;
virtual void(int, int, int) RoundOver;
virtual void(int) RestartRound;
virtual void(NSClientPlayer) DeathCheck;
virtual void(NSClientPlayer) MakeBomber;
virtual void(NSClientPlayer) MakeVIP;
virtual void(void) CountPlayers;
virtual void(void) SwitchTeams;
virtual void(void) TimeOut;
virtual bool(void) IsTeamplay;
virtual bool BuyingPossible(NSClientPlayer);
virtual void RoundOver(int, int, int);
virtual void RestartRound(int);
virtual void DeathCheck(NSClientPlayer);
virtual void MakeBomber(NSClientPlayer);
virtual void MakeVIP(NSClientPlayer);
virtual void CountPlayers(void);
virtual void SwitchTeams(void);
virtual void TimeOut(void);
virtual bool IsTeamplay(void);
virtual void PlayerClearWeaponry(NSClientPlayer);
virtual void PlayerMakePlayable(NSClientPlayer, int);
virtual void PlayerMakeSpectator(NSClientPlayer);
virtual void PlayerRespawn(NSClientPlayer, int);
virtual entity PlayerFindSpawn(float);
virtual void PlayerReset(NSClientPlayer);
virtual void(NSClientPlayer) PlayerClearWeaponry;
virtual void(NSClientPlayer, int) PlayerMakePlayable;
virtual void(NSClientPlayer) PlayerMakeSpectator;
virtual void(NSClientPlayer, int) PlayerRespawn;
virtual entity(float) PlayerFindSpawn;
};
void CSEv_JoinAuto(void);

View File

@ -456,8 +456,7 @@ CSMultiplayerRules::RestartRound(int iWipe)
if (iWipe == FALSE) {
Money_GiveTeamReward(pl);
} else {
pl.money = 0;
Money_AddMoney(pl, autocvar_mp_startmoney);
PlayerReset(pl);
}
}
for (entity eFind = world; (eFind = findfloat(eFind, ::team, TEAM_CT));) {
@ -476,8 +475,7 @@ CSMultiplayerRules::RestartRound(int iWipe)
if (iWipe == FALSE) {
Money_GiveTeamReward(pl);
} else {
pl.money = 0;
Money_AddMoney(pl, autocvar_mp_startmoney);
PlayerReset(pl);
}
}
@ -499,8 +497,7 @@ CSMultiplayerRules::RestartRound(int iWipe)
if (iWipe == FALSE) {
Money_GiveTeamReward(pl);
} else {
pl.money = 0;
Money_AddMoney(pl, autocvar_mp_startmoney);
PlayerReset(pl);
}
}
@ -981,6 +978,25 @@ CSMultiplayerRules::PlayerMakeSpectator(NSClientPlayer pp)
PlayerClearWeaponry(pl);
}
/*
=================
PlayerReset
Called when we give the initial starting money, and also when
another player joins and causes the game rules/scores to reset fully
=================
*/
void
CSMultiplayerRules::PlayerReset(NSClientPlayer pl)
{
player p = (player)pl;
/* give the initial server-joining money */
p.money = 0;
Money_AddMoney(pl, autocvar_mp_startmoney);
p.m_buyMessage = false; /* unset the buy message. */
}
/*
=================
PlayerSpawn
@ -995,8 +1011,7 @@ CSMultiplayerRules::PlayerSpawn(NSClientPlayer pl)
PlayerMakeSpectator(pl);
Spawn_ObserverCam(pl);
/* give the initial server-joining money */
Money_AddMoney(pl, autocvar_mp_startmoney);
PlayerReset(pl);
/* we don't belong to any team */
pl.team = TEAM_SPECTATOR;

View File

@ -189,6 +189,8 @@ class player:NSClientPlayer
int charmodel;
int money;
float progress;
bool m_buyMessage;
#endif
};