added smokegrenade, added ambient sound, due to request will bot scaling 0 now use zombie count to decide how many bots to spawn

This commit is contained in:
jenz 2024-02-23 18:11:52 +01:00
parent 0cb6d1c977
commit b4409d3a1b

View File

@ -89,6 +89,7 @@ Handle g_hClientHumanCookie;
Handle g_hCheckBotStuck = null; Handle g_hCheckBotStuck = null;
Handle g_hZombieSounds = null; Handle g_hZombieSounds = null;
Handle g_hFixKNife = null; Handle g_hFixKNife = null;
Handle g_hAmbient = null;
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: // Purpose:
@ -155,6 +156,7 @@ public void OnPluginStart()
g_hCheckBotStuck = CreateTimer(2.0, Timer_CheckIfBotsStuck, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); g_hCheckBotStuck = CreateTimer(2.0, Timer_CheckIfBotsStuck, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
g_hZombieSounds = CreateTimer(g_fZMSounds, Timer_zombieSounds, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); g_hZombieSounds = CreateTimer(g_fZMSounds, Timer_zombieSounds, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
g_hFixKNife = CreateTimer(2.0, Timer_FixKNife, INVALID_HANDLE, TIMER_REPEAT); g_hFixKNife = CreateTimer(2.0, Timer_FixKNife, INVALID_HANDLE, TIMER_REPEAT);
g_hAmbient = CreateTimer(60.3, Timer_Ambient, INVALID_HANDLE, TIMER_REPEAT); // 0.3 seconds without sound
for (int i = 1; i < MaxClients; i++) for (int i = 1; i < MaxClients; i++)
{ {
@ -173,6 +175,8 @@ public void OnPluginEnd()
delete g_hZombieSounds; delete g_hZombieSounds;
if (g_hFixKNife != null) if (g_hFixKNife != null)
delete g_hFixKNife; delete g_hFixKNife;
if (g_hAmbient != null)
delete g_hAmbient;
} }
public Action CheckPlayerTeam(Handle timer, any userid) public Action CheckPlayerTeam(Handle timer, any userid)
@ -1090,6 +1094,7 @@ public void OnClientDisconnect(int client)
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public void Event_roundStart(Handle event, const char[] name, bool dontBroadcast) public void Event_roundStart(Handle event, const char[] name, bool dontBroadcast)
{ {
EmitAmbience("ambient/zr/zr_ambience.mp3");
g_iHumanCount = 999; g_iHumanCount = 999;
g_iZombieCount = 999; g_iZombieCount = 999;
g_bRoundInProgress = false; g_bRoundInProgress = false;
@ -1348,19 +1353,23 @@ public void LoadWave(int wave)
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public void SettingBotQoute(int botscale) public void SettingBotQoute(int botscale)
{ {
if (botscale < 1) int l_iPlayers;
{ for (int i = 1; i < MaxClients; i++)
return; {
} if (IsValidClient(i) && !IsFakeClient(i) && CS_TEAM_CT == GetClientTeam(i))
int l_iPlayers; {
for (int i = 1; i < MaxClients; i++) l_iPlayers++;
{ }
if (IsValidClient(i) && !IsFakeClient(i) && CS_TEAM_CT == GetClientTeam(i)) }
{ if (botscale > 0)
l_iPlayers++; {
} addBots(l_iPlayers * botscale);
} }
addBots(l_iPlayers * botscale); else
{
//bot_scaling 0 should imply we spawn zombie_count amount of bots instead of scaling bots to player amount.
addBots(g_iZMCount);
}
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: // Purpose:
@ -2168,3 +2177,29 @@ stock void ReplaceStrings(char[] str, char[] strReplace)
TrimString(l_cstrFix); TrimString(l_cstrFix);
Format(str, sizeof(l_cstrFix), l_cstrFix); Format(str, sizeof(l_cstrFix), l_cstrFix);
} }
//ambience
void EmitAmbience(const char[] sound)
{
PrecacheSound(sound);
StopAmbience(sound);
EmitSoundToAll(sound, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, 1.0, SNDPITCH_NORMAL, -1, NULL_VECTOR, NULL_VECTOR, true, 0.0);
}
void StopAmbience(const char []sound)
{
for (int i = 0; i < MaxClients; i++)
{
if (!IsValidClient(i))
{
continue;
}
StopSound(i, SNDCHAN_AUTO, sound);
}
}
public Action Timer_Ambient(Handle timer, any userid)
{
EmitAmbience("ambient/zr/zr_ambience.mp3");
return Plugin_Handled;
}