fixing scaleability and health. also making scalebility for player a float
This commit is contained in:
parent
4b01705bba
commit
15e53c7759
@ -42,7 +42,7 @@ char g_cWeaponCommand[g_dIndexes][g_dLength];
|
||||
|
||||
int g_iLength = g_dLength - 1;
|
||||
int g_iWave;
|
||||
int g_iZMScaleability;
|
||||
float g_iZMScaleability;
|
||||
int g_iZMCount;
|
||||
int g_iToolsVelocity; //from zombie reloaded
|
||||
int g_iClientZMClasses[g_dIndexes];
|
||||
@ -72,11 +72,11 @@ float g_fBotStuckPush;
|
||||
|
||||
bool g_bSwitchingIndex;
|
||||
bool g_bRoundInProgress;
|
||||
bool g_bShouldBeHuman[g_dIndexes];
|
||||
bool g_bShouldBeZM[g_dIndexes];
|
||||
bool g_bFallDamage[g_dIndexes];
|
||||
bool g_bClientProtection[g_dIndexes];
|
||||
|
||||
bool g_bRestartRound = true;
|
||||
|
||||
Handle g_hClientZMCookie;
|
||||
Handle g_hClientHumanCookie;
|
||||
|
||||
@ -115,7 +115,6 @@ public void OnPluginStart()
|
||||
HookEvent("player_spawn", ApplySettings, EventHookMode_Post);
|
||||
HookEvent("round_start", Event_roundStart, EventHookMode_Post);
|
||||
HookEvent("player_death", Event_OnPlayerDeath, EventHookMode_Post);
|
||||
HookEvent("player_connect", Event_OnFullConnect, EventHookMode_Pre);
|
||||
HookEvent("player_hurt", EventPlayerHurt, EventHookMode_Pre);
|
||||
HookEvent("player_jump", EventPlayerJump, EventHookMode_Post);
|
||||
|
||||
@ -128,12 +127,58 @@ public void OnPluginStart()
|
||||
RegAdminCmd("sm_human", Cmd_Humanize, ADMFLAG_BAN);
|
||||
RegAdminCmd("sm_infect", Cmd_Zombienize, ADMFLAG_BAN);
|
||||
}
|
||||
|
||||
public Action ApplySettings(Event event, const char[] name, bool dontBroadcast)
|
||||
{
|
||||
int activePlayers = 0;
|
||||
for (int i = 1; i < MaxClients; i++)
|
||||
{
|
||||
if (IsValidClient(i) && !IsFakeClient(i) && (GetClientTeam(i) == CS_TEAM_CT || GetClientTeam(i) == CS_TEAM_T))
|
||||
{
|
||||
activePlayers++;
|
||||
}
|
||||
if (activePlayers > 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (activePlayers == 1 && g_bRestartRound)
|
||||
{
|
||||
PrintToChatAll("First Player joining. Restarting the round...");
|
||||
g_bRestartRound = false;
|
||||
CS_TerminateRound(4.0, CSRoundEnd_Draw, false);
|
||||
}
|
||||
else if (activePlayers == 0)
|
||||
{
|
||||
g_bRestartRound = true;
|
||||
}
|
||||
|
||||
|
||||
int client = GetClientOfUserId(event.GetInt("userid"));
|
||||
if (!IsValidClient(client) || !IsPlayerAlive(client) || IsClientSourceTV(client))
|
||||
{
|
||||
return Plugin_Handled;
|
||||
}
|
||||
if (!IsFakeClient(client) && g_iClientRespawnCount[client] < 1) //player ran out of human respawns and will be zm instead.
|
||||
{
|
||||
SelectWaveBasedZM(client, 1);
|
||||
}
|
||||
else if (IsFakeClient(client)) //bot getting respawned as zm
|
||||
{
|
||||
SelectWaveBasedZM(client, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectWavebasedHuman(client); //player getting respawned as human
|
||||
}
|
||||
return Plugin_Handled;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public Action Cmd_LoadManually(int client, int args)
|
||||
{
|
||||
//LoadClasses();
|
||||
AddDownloadContent();
|
||||
return Plugin_Handled;
|
||||
}
|
||||
@ -265,16 +310,19 @@ public void findTarget(int client, int state)
|
||||
PrintToChat(client, "Found no specific Target!");
|
||||
return;
|
||||
}
|
||||
if (!IsPlayerAlive(targets[0]))
|
||||
{
|
||||
PrintToChat(client, "Target is not alive. Cant be turned human or zombie.");
|
||||
return;
|
||||
}
|
||||
if (state == 0)
|
||||
{
|
||||
PrintToChat(client, "Humanized: %N", targets[0]);
|
||||
g_bShouldBeHuman[targets[0]] = true;
|
||||
SelectWavebasedHuman(targets[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(client, "Infected: %N", targets[0]);
|
||||
g_bShouldBeZM[targets[0]] = true;
|
||||
SelectWaveBasedZM(targets[0], 1);
|
||||
}
|
||||
}
|
||||
@ -519,7 +567,7 @@ public int Zombieclass_Menu(Menu menu, MenuAction action, int client, int select
|
||||
g_iClientZMClasses[client] = selection + g_iZMBeginindex;
|
||||
IntToString(g_iClientZMClasses[client], l_cInfo, sizeof(l_cInfo));
|
||||
SetClientCookie(client, g_hClientZMCookie, l_cInfo);
|
||||
if (g_bSwitchingIndex && GetClientTeam(client) == CS_TEAM_T)
|
||||
if (g_bSwitchingIndex && GetClientTeam(client) == CS_TEAM_T && IsPlayerAlive(client)) //beginning of round, is correct team and alive
|
||||
{
|
||||
SelectWaveBasedZM(client, 1);
|
||||
}
|
||||
@ -540,8 +588,9 @@ public int Humanclass_Menu(Menu menu, MenuAction action, int client, int selecti
|
||||
char l_cInfo[4];
|
||||
IntToString(selection, l_cInfo, sizeof(l_cInfo));
|
||||
SetClientCookie(client, g_hClientHumanCookie, l_cInfo);
|
||||
|
||||
g_iClientHumanClasses[client] = selection;
|
||||
if (g_bSwitchingIndex && GetClientTeam(client) == CS_TEAM_CT)
|
||||
if (g_bSwitchingIndex && GetClientTeam(client) == CS_TEAM_CT && IsPlayerAlive(client)) //beginning of round, is correct team and alive
|
||||
{
|
||||
SelectWavebasedHuman(client);
|
||||
}
|
||||
@ -768,12 +817,10 @@ public void OnClientPostAdminCheck(int client)
|
||||
{
|
||||
g_bClientProtection[client] = false;
|
||||
g_bFallDamage[client] = false;
|
||||
g_bShouldBeHuman[client] = false;
|
||||
g_bShouldBeZM[client] = false;
|
||||
g_fKnockBackIndex[client] = 1.0;
|
||||
g_fJumpHeightIndex[client] = 1.0;
|
||||
g_fJumpDistanceIndex[client] = 1.0;
|
||||
g_iClientRespawnCount[client] = 0;
|
||||
g_iClientRespawnCount[client] = g_iClientRespawnCountNum;
|
||||
char sCookieValue[12];
|
||||
GetClientCookie(client, g_hClientZMCookie, sCookieValue, sizeof(sCookieValue));
|
||||
if (sCookieValue[0])
|
||||
@ -794,6 +841,7 @@ public void OnClientPostAdminCheck(int client)
|
||||
g_iClientHumanClasses[client] = 0;
|
||||
}
|
||||
SetAdminGroups(client);
|
||||
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
@ -816,8 +864,6 @@ public void OnClientDisconnect(int client)
|
||||
{
|
||||
g_bClientProtection[client] = false;
|
||||
g_bFallDamage[client] = false;
|
||||
g_bShouldBeHuman[client] = false;
|
||||
g_bShouldBeZM[client] = false;
|
||||
g_fKnockBackIndex[client] = 1.0;
|
||||
g_fJumpHeightIndex[client] = 1.0;
|
||||
g_fJumpDistanceIndex[client] = 1.0;
|
||||
@ -840,11 +886,11 @@ public MRESReturn DHook_GetPlayerMaxSpeed(int client, Handle hReturn)
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public void Event_roundStart(Handle event, const char[] name, bool dontBroadcast)
|
||||
{
|
||||
int l_iHumanPlayers;
|
||||
g_bRoundInProgress = false;
|
||||
g_bSwitchingIndex = true;
|
||||
CreateTimer(g_fSwitchingTimer, Timer_switchingModel, INVALID_HANDLE);
|
||||
RetrieveWaveSettings(g_iWave);
|
||||
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
if (IsValidClient(i) && !IsClientSourceTV(i))
|
||||
@ -852,12 +898,12 @@ public void Event_roundStart(Handle event, const char[] name, bool dontBroadcast
|
||||
if (IsFakeClient(i))
|
||||
{
|
||||
SelectWaveBasedZM(i, 0);
|
||||
continue;
|
||||
}
|
||||
else if (GetClientTeam(i) > CS_TEAM_SPECTATOR)
|
||||
g_iClientRespawnCount[i] = g_iClientRespawnCountNum; //even if not spawned in yet it should be set for every real player.
|
||||
if (IsPlayerAlive(i))
|
||||
{
|
||||
g_iClientRespawnCount[i] = g_iClientRespawnCountNum;
|
||||
SelectWavebasedHuman(i);
|
||||
l_iHumanPlayers++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -912,13 +958,26 @@ public void LoadWave(int wave)
|
||||
if (kv.JumpToKey(l_cJumptokey, false))
|
||||
{
|
||||
g_bRoundInProgress = true;
|
||||
g_iZMScaleability = kv.GetNum("PlayerScaleAbility", 5);
|
||||
g_iZMScaleability = kv.GetFloat("PlayerScaleAbility", 5.0);
|
||||
g_fZMHealthScaleability = kv.GetFloat("HealthScaleAbility", 1.0);
|
||||
g_iZMCount = kv.GetNum("Zombie Count", 5);
|
||||
if (g_iZMScaleability > 0)
|
||||
|
||||
int additional_zombie_per_player = RoundFloat(g_iZMCount * g_iZMScaleability);
|
||||
|
||||
int l_iPlayers;
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
g_iZMCount *= g_iZMScaleability;
|
||||
if (IsValidClient(i) && !IsFakeClient(i) && CS_TEAM_CT == GetClientTeam(i))
|
||||
{
|
||||
l_iPlayers++;
|
||||
}
|
||||
}
|
||||
|
||||
l_iPlayers -= 1; //first player equals the zombie count.
|
||||
//first player takes the zombie count, each additional player adds to additional_zombie_per_player
|
||||
//if 1 player then additional_zombie_per_player * 0. so just g_iZMCount
|
||||
g_iZMCount += additional_zombie_per_player * l_iPlayers;
|
||||
|
||||
g_iClientRespawnCountNum = kv.GetNum("Respawns", 5);
|
||||
l_iBotQuote = kv.GetNum("bot_scaling", 1);
|
||||
SettingBotQoute(l_iBotQuote);
|
||||
@ -1086,13 +1145,11 @@ public void SettingBotQoute(int botscale)
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public void addBots(int botcount)
|
||||
{
|
||||
//ServerCommand("bot_kick");
|
||||
for (int i = 0; i < botcount; i++)
|
||||
if (botcount > 44)
|
||||
{
|
||||
if (i > 44) //probably will be turned into a convar somewhen.
|
||||
continue;
|
||||
ServerCommand("bot_add_t");
|
||||
botcount = 44;
|
||||
}
|
||||
ServerCommand("bot_quota %i", botcount);
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
@ -1157,10 +1214,10 @@ public void CreateDefaultWave()
|
||||
}
|
||||
KeyValues kv = CreateKeyValues("Waves");
|
||||
kv.JumpToKey("Wave 1", true);
|
||||
g_iZMScaleability = 5;
|
||||
g_iZMScaleability = 5.0;
|
||||
g_fZMHealthScaleability = 1.0;
|
||||
g_iZMCount = 2;
|
||||
kv.SetNum("PlayerScaleAbility", g_iZMScaleability);
|
||||
kv.SetFloat("PlayerScaleAbility", g_iZMScaleability);
|
||||
kv.SetFloat("HealthScaleAbility", g_fZMHealthScaleability);
|
||||
kv.SetNum("Zombie Count", g_iZMCount); //creates 10 zombies per player
|
||||
kv.SetNum("Respawns", 5);
|
||||
@ -1322,95 +1379,18 @@ public void ReadingClassValuesFromFile(int index, char[] Line)
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public Action Event_OnFullConnect(Event event, const char[] name, bool dontBroadcast)
|
||||
{
|
||||
int client = GetClientOfUserId(GetEventInt(event, "userid"));
|
||||
if (!client || !IsClientInGame(client))
|
||||
return Plugin_Continue;
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
if (IsValidClient(i) && IsPlayerAlive(i) && GetClientTeam(i) == CS_TEAM_CT)
|
||||
{
|
||||
ChangeClientTeam(client, CS_TEAM_T);
|
||||
if (!IsPlayerAlive(client))
|
||||
CS_RespawnPlayer(client);
|
||||
else
|
||||
ApplySettingsEvent(client);
|
||||
return Plugin_Continue;
|
||||
}
|
||||
}
|
||||
ChangeClientTeam(client, CS_TEAM_CT);
|
||||
ServerCommand("mp_restartgame 1");
|
||||
return Plugin_Continue;
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public Action ApplySettings(Event event, const char[] name, bool dontBroadcast)
|
||||
{
|
||||
int client = GetClientOfUserId(event.GetInt("userid"));
|
||||
ApplySettingsEvent(client);
|
||||
return Plugin_Handled;
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public Action ApplySettingsEvent(int client)
|
||||
{
|
||||
if (!IsValidClient(client))
|
||||
return Plugin_Handled;
|
||||
if (g_bShouldBeHuman[client])
|
||||
{
|
||||
SelectWavebasedHuman(client);
|
||||
g_bShouldBeHuman[client] = false;
|
||||
}
|
||||
else if (g_bShouldBeZM[client])
|
||||
{
|
||||
SelectWaveBasedZM(client, 1);
|
||||
g_bShouldBeZM[client] = false;
|
||||
}
|
||||
else if (IsFakeClient(client))
|
||||
{
|
||||
SelectWaveBasedZM(client, 0);
|
||||
}
|
||||
else if (g_iClientRespawnCount[client] > 0)
|
||||
{
|
||||
SelectWavebasedHuman(client);
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectWaveBasedZM(client, 1);
|
||||
}
|
||||
return Plugin_Continue;
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public bool shouldApplySettings(int client, int team, int teamDest)
|
||||
{
|
||||
if (team != teamDest)
|
||||
{
|
||||
ChangeClientTeam(client, teamDest);
|
||||
if (!IsPlayerAlive(client))
|
||||
CS_RespawnPlayer(client);
|
||||
else
|
||||
ApplySettingsEvent(client);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public Action SelectWavebasedHuman(int client)
|
||||
{
|
||||
if (!IsValidClient(client))
|
||||
return Plugin_Handled;
|
||||
int l_iTeam = GetClientTeam(client);
|
||||
if (shouldApplySettings(client, l_iTeam, CS_TEAM_CT))
|
||||
|
||||
if (GetClientTeam(client) == CS_TEAM_T)
|
||||
{
|
||||
ModelSelection(client, 2, g_iClientHumanClasses[client]);
|
||||
ChangeClientTeam(client, CS_TEAM_CT); //default putting humans to CT team
|
||||
CS_RespawnPlayer(client); //respawning because changeclientteam kills the player on css
|
||||
}
|
||||
ModelSelection(client, 2, g_iClientHumanClasses[client]);
|
||||
|
||||
return Plugin_Continue;
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
@ -1420,11 +1400,18 @@ public Action SelectWaveBasedZM(int client, int state)
|
||||
{
|
||||
if (!IsValidClient(client))
|
||||
return Plugin_Handled;
|
||||
int l_iTeam = GetClientTeam(client);
|
||||
|
||||
if (GetClientTeam(client) == CS_TEAM_CT)
|
||||
{
|
||||
ChangeClientTeam(client, CS_TEAM_T); //default putting bots to t
|
||||
CS_RespawnPlayer(client); //respawning because changeclientteam kills the player on css
|
||||
}
|
||||
//state 0 was bot, state 1 was real player.
|
||||
if (!IsValidClient(client))
|
||||
return Plugin_Handled;
|
||||
int l_iZMIndex;
|
||||
int l_ibotIndex;
|
||||
if (shouldApplySettings(client, l_iTeam, CS_TEAM_T))
|
||||
{
|
||||
|
||||
if (state == 0)
|
||||
{
|
||||
for (int i = 0; i < g_dIndexes; i++)
|
||||
@ -1461,8 +1448,7 @@ public Action SelectWaveBasedZM(int client, int state)
|
||||
}
|
||||
}
|
||||
}
|
||||
ModelSelection(client, state, g_iClientZMClasses[client]);
|
||||
}
|
||||
ModelSelection(client, 1, g_iClientZMClasses[client]);
|
||||
return Plugin_Handled;
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
@ -1470,7 +1456,7 @@ public Action SelectWaveBasedZM(int client, int state)
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public Action ModelSelection(int client, int state, int modelIndex)
|
||||
{
|
||||
//state 0 = zombie bots, state 1 = zombie players, state 2 = human players
|
||||
//state 1 = zombie players, state 2 = human players
|
||||
char l_cUniqueModel[g_dLength];
|
||||
int l_iModelIndex;
|
||||
l_iModelIndex = modelIndex;
|
||||
@ -1482,6 +1468,8 @@ public Action ModelSelection(int client, int state, int modelIndex)
|
||||
{
|
||||
Format(l_cUniqueModel, sizeof(l_cUniqueModel), g_cHumanClasses[l_iModelIndex][g_iLength]);
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < g_dIndexes; i++)
|
||||
{
|
||||
if (strlen(g_cUniqueName[i][g_iLength]) < 1)
|
||||
@ -1493,13 +1481,13 @@ public Action ModelSelection(int client, int state, int modelIndex)
|
||||
if (StrContains(g_cModelPath[i][g_iLength], "mdl") == -1)
|
||||
{
|
||||
//incorrect modelpaths crash at SetEntityModel
|
||||
LoadClasses();
|
||||
ForcePlayerSuicide(client);
|
||||
//LoadClasses();
|
||||
//ForcePlayerSuicide(client);
|
||||
return Plugin_Continue;
|
||||
}
|
||||
|
||||
|
||||
SetEntityModel(client, g_cModelPath[i][g_iLength]);
|
||||
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
|
||||
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
|
||||
g_bClientProtection[client] = true;
|
||||
if (StrContains(g_cNoFallDmg[i][g_iLength], "YES") > -1)
|
||||
g_bFallDamage[client] = true;
|
||||
@ -1508,15 +1496,27 @@ public Action ModelSelection(int client, int state, int modelIndex)
|
||||
if (state < 2)
|
||||
{
|
||||
CreateTimer(g_fZMSpawnProtection, Timer_StopProtection, client);
|
||||
Client_SetActiveWeapon(client, GetPlayerWeaponSlot(client, 2));
|
||||
//Client_SetActiveWeapon(client, GetPlayerWeaponSlot(client, 2));
|
||||
}
|
||||
else
|
||||
{
|
||||
CreateTimer(g_fHumanSpawnProtection, Timer_StopProtection, client);
|
||||
Client_SetActiveWeapon(client, GetPlayerWeaponSlot(client, 1));
|
||||
//Client_SetActiveWeapon(client, GetPlayerWeaponSlot(client, 1));
|
||||
}
|
||||
if (state < 2) //setting the zombie health here using the HealthScaleAbility.
|
||||
{
|
||||
int l_iPlayers;
|
||||
for (int j = 1; j <= MaxClients; j++)
|
||||
{
|
||||
if (IsValidClient(j) && !IsFakeClient(j) && CS_TEAM_CT == GetClientTeam(j))
|
||||
{
|
||||
l_iPlayers++;
|
||||
}
|
||||
}
|
||||
l_iPlayers -= 1; //first player indicates the full health of the class, each additional uses scaleability health.
|
||||
int additional_zombie_health_per_player = RoundFloat(g_fZMHealthScaleability * StringToInt(g_cHealth[i][g_iLength]));
|
||||
SetEntityHealth(client, StringToInt(g_cHealth[i][g_iLength]) + (additional_zombie_health_per_player * l_iPlayers));
|
||||
}
|
||||
if (state < 2 && RoundFloat(g_fZMHealthScaleability * 10.0) > 0.0)
|
||||
SetEntityHealth(client, StringToInt(g_cHealth[i][g_iLength]) * RoundFloat(g_fZMHealthScaleability * 10.0) / 10);
|
||||
else
|
||||
SetEntityHealth(client, StringToInt(g_cHealth[i][g_iLength]));
|
||||
g_iSpeedIndex[client] = i;
|
||||
@ -1625,14 +1625,15 @@ public Action Timer_Respawn(Handle timer, any userid)
|
||||
if (client == 0)
|
||||
return Plugin_Continue;
|
||||
|
||||
if (!IsValidClient(client) || IsPlayerAlive(client) || GetClientTeam(client) <= CS_TEAM_SPECTATOR)
|
||||
if (!IsValidClient(client) || IsPlayerAlive(client) || (GetClientTeam(client) != CS_TEAM_T && GetClientTeam(client) != CS_TEAM_CT))
|
||||
{
|
||||
return Plugin_Continue;
|
||||
}
|
||||
|
||||
UpdateWaveCount(client);
|
||||
if (!IsFakeClient(client) && g_iClientRespawnCount[client] < 1)
|
||||
{
|
||||
ChangeClientTeam(client, CS_TEAM_T);
|
||||
ChangeClientTeam(client, CS_TEAM_T); //ran out of respawns for CT
|
||||
}
|
||||
else if (IsFakeClient(client) && GetClientTeam(client) != CS_TEAM_T)
|
||||
{
|
||||
@ -1640,7 +1641,7 @@ public Action Timer_Respawn(Handle timer, any userid)
|
||||
}
|
||||
else if (!IsFakeClient(client) && GetClientTeam(client) != CS_TEAM_CT)
|
||||
{
|
||||
ChangeClientTeam(client, CS_TEAM_CT);
|
||||
ChangeClientTeam(client, CS_TEAM_CT); //default putting humans to CT team
|
||||
}
|
||||
CS_RespawnPlayer(client);
|
||||
return Plugin_Continue;
|
||||
@ -1669,6 +1670,14 @@ public Action Event_OnPlayerDeath(Handle event, const char[] name, bool dontBroa
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_iClientRespawnCount[client] > 0)
|
||||
{
|
||||
PrintToChat(client, "You have %i respawns left as human. You will respawn in %f seconds.", g_iClientRespawnCount[client], g_fRespawnTimer);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(client, "You will respawn as a zombie in %f seconds.", g_fRespawnTimer);
|
||||
}
|
||||
CreateTimer(g_fRespawnTimer, Timer_Respawn, GetClientUserId(client), TIMER_FLAG_NO_MAPCHANGE);
|
||||
}
|
||||
return Plugin_Continue;
|
||||
@ -1679,7 +1688,6 @@ public Action Event_OnPlayerDeath(Handle event, const char[] name, bool dontBroa
|
||||
public Action UpdateWaveCount(int client)
|
||||
{
|
||||
//PrintToChatAll("Player %N died", client);
|
||||
char l_cCount[g_dIndexes];
|
||||
if (GetClientTeam(client) == CS_TEAM_CT)
|
||||
{
|
||||
g_iClientRespawnCount[client]--;
|
||||
@ -1697,7 +1705,10 @@ public Action UpdateWaveCount(int client)
|
||||
else if (GetClientTeam(client) == CS_TEAM_T)
|
||||
{
|
||||
g_iZMCount--;
|
||||
SetHudTextParams(-0.5, 0.8, 10.0, 255, 0, 255, 255, 1, 0.1, 0.1, 0.1);
|
||||
//not using hudtext anymore
|
||||
/*
|
||||
char l_cCount[g_dIndexes];
|
||||
SetHudTextParams(-0.4, 0.8, 10.0, 255, 0, 255, 255, 1, 0.1, 0.1, 0.1);
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
if (IsValidClient(i) && !IsFakeClient(i))
|
||||
@ -1706,6 +1717,8 @@ public Action UpdateWaveCount(int client)
|
||||
ShowHudText(i, 3, l_cCount);
|
||||
}
|
||||
}
|
||||
*/
|
||||
PrintHintTextToAll("Remaining Zombies: %i", g_iZMCount);
|
||||
}
|
||||
if (g_iZMCount == 0 && g_bRoundInProgress)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user