trying to fix stuff
This commit is contained in:
parent
d48bb8e343
commit
1f1d2cb111
@ -34,6 +34,7 @@ char g_cSpeed[g_dIndexes][g_dLength];
|
|||||||
char g_cKnockback[g_dIndexes][g_dLength];
|
char g_cKnockback[g_dIndexes][g_dLength];
|
||||||
char g_cJumpHeight[g_dIndexes][g_dLength];
|
char g_cJumpHeight[g_dIndexes][g_dLength];
|
||||||
char g_cJumpDistance[g_dIndexes][g_dLength];
|
char g_cJumpDistance[g_dIndexes][g_dLength];
|
||||||
|
char g_cDamageMultiplier[g_dIndexes][g_dLength];
|
||||||
char g_cAdminGroups[g_dIndexes][g_dIndexes][g_dLength];
|
char g_cAdminGroups[g_dIndexes][g_dIndexes][g_dLength];
|
||||||
char g_cZMSounds[g_dIndexes][g_dLength];
|
char g_cZMSounds[g_dIndexes][g_dLength];
|
||||||
char g_cWeaponEntity[g_dIndexes][g_dLength];
|
char g_cWeaponEntity[g_dIndexes][g_dLength];
|
||||||
@ -59,9 +60,10 @@ int g_iSoundIndexes;
|
|||||||
int g_iWeaponIndex;
|
int g_iWeaponIndex;
|
||||||
int g_iBotStuckCounts;
|
int g_iBotStuckCounts;
|
||||||
|
|
||||||
float g_fKnockBackIndex[g_dIndexes];
|
float g_fKnockBackIndex[g_dIndexes + 1];
|
||||||
float g_fJumpHeightIndex[g_dIndexes];
|
float g_fJumpHeightIndex[g_dIndexes + 1];
|
||||||
float g_fJumpDistanceIndex[g_dIndexes];
|
float g_fJumpDistanceIndex[g_dIndexes + 1];
|
||||||
|
float g_fDamageMultiplier[g_dIndexes + 1];
|
||||||
float g_fSwitchingTimer;
|
float g_fSwitchingTimer;
|
||||||
float g_fZMSpawnProtection;
|
float g_fZMSpawnProtection;
|
||||||
float g_fHumanSpawnProtection;
|
float g_fHumanSpawnProtection;
|
||||||
@ -75,7 +77,6 @@ bool g_bRoundInProgress;
|
|||||||
bool g_bFallDamage[g_dIndexes];
|
bool g_bFallDamage[g_dIndexes];
|
||||||
bool g_bClientProtection[g_dIndexes];
|
bool g_bClientProtection[g_dIndexes];
|
||||||
|
|
||||||
bool g_bRestartRound = true;
|
|
||||||
|
|
||||||
Handle g_hClientZMCookie;
|
Handle g_hClientZMCookie;
|
||||||
Handle g_hClientHumanCookie;
|
Handle g_hClientHumanCookie;
|
||||||
@ -94,6 +95,9 @@ public Plugin myinfo =
|
|||||||
|
|
||||||
public void OnPluginStart()
|
public void OnPluginStart()
|
||||||
{
|
{
|
||||||
|
OnMapStart();
|
||||||
|
RetrieveWaveSettings(1);
|
||||||
|
|
||||||
//processstring
|
//processstring
|
||||||
LoadTranslations("common.phrases.txt");
|
LoadTranslations("common.phrases.txt");
|
||||||
|
|
||||||
@ -126,14 +130,22 @@ public void OnPluginStart()
|
|||||||
RegAdminCmd("sm_wave", Cmd_ChangeWave, ADMFLAG_RCON);
|
RegAdminCmd("sm_wave", Cmd_ChangeWave, ADMFLAG_RCON);
|
||||||
RegAdminCmd("sm_human", Cmd_Humanize, ADMFLAG_BAN);
|
RegAdminCmd("sm_human", Cmd_Humanize, ADMFLAG_BAN);
|
||||||
RegAdminCmd("sm_infect", Cmd_Zombienize, ADMFLAG_BAN);
|
RegAdminCmd("sm_infect", Cmd_Zombienize, ADMFLAG_BAN);
|
||||||
|
|
||||||
|
for (int i = 1; i < MaxClients; i++)
|
||||||
|
{
|
||||||
|
if (IsValidClient(i))
|
||||||
|
{
|
||||||
|
OnClientPostAdminCheck(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Action ApplySettings(Event event, const char[] name, bool dontBroadcast)
|
public Action Timer_CheckIfRestartNeeded(Handle timer, any userid)
|
||||||
{
|
{
|
||||||
int activePlayers = 0;
|
int activePlayers = 0;
|
||||||
for (int i = 1; i < MaxClients; i++)
|
for (int i = 1; i < MaxClients; i++)
|
||||||
{
|
{
|
||||||
if (IsValidClient(i) && !IsFakeClient(i) && (GetClientTeam(i) == CS_TEAM_CT || GetClientTeam(i) == CS_TEAM_T))
|
if (IsValidClient(i) && (GetClientTeam(i) == CS_TEAM_CT || GetClientTeam(i) == CS_TEAM_T))
|
||||||
{
|
{
|
||||||
activePlayers++;
|
activePlayers++;
|
||||||
}
|
}
|
||||||
@ -142,18 +154,32 @@ public Action ApplySettings(Event event, const char[] name, bool dontBroadcast)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (activePlayers == 1 && g_bRestartRound)
|
if (activePlayers == 1)
|
||||||
{
|
{
|
||||||
PrintToChatAll("First Player joining. Restarting the round...");
|
PrintToChatAll("First Player joining. Restarting the round...");
|
||||||
g_bRestartRound = false;
|
|
||||||
CS_TerminateRound(4.0, CSRoundEnd_Draw, false);
|
CS_TerminateRound(4.0, CSRoundEnd_Draw, false);
|
||||||
}
|
}
|
||||||
else if (activePlayers == 0)
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Action ApplySettings(Event event, const char[] name, bool dontBroadcast)
|
||||||
|
{
|
||||||
|
int activePlayers = 0;
|
||||||
|
for (int i = 1; i < MaxClients; i++)
|
||||||
{
|
{
|
||||||
g_bRestartRound = true;
|
if (IsValidClient(i) && (GetClientTeam(i) == CS_TEAM_CT || GetClientTeam(i) == CS_TEAM_T))
|
||||||
|
{
|
||||||
|
activePlayers++;
|
||||||
|
}
|
||||||
|
if (activePlayers > 1)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (activePlayers == 1)
|
||||||
|
{
|
||||||
|
CreateTimer(10.0, Timer_CheckIfRestartNeeded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int client = GetClientOfUserId(event.GetInt("userid"));
|
int client = GetClientOfUserId(event.GetInt("userid"));
|
||||||
if (!IsValidClient(client) || !IsPlayerAlive(client) || IsClientSourceTV(client))
|
if (!IsValidClient(client) || !IsPlayerAlive(client) || IsClientSourceTV(client))
|
||||||
{
|
{
|
||||||
@ -269,7 +295,6 @@ public Action Cmd_Say(int client, int args)
|
|||||||
continue;
|
continue;
|
||||||
if (StrEqual(l_cBuffer, g_cWeaponCommand[i][g_iLength], false) || StrEqual(l_cBuffer2, g_cWeaponCommand[i][g_iLength], false))
|
if (StrEqual(l_cBuffer, g_cWeaponCommand[i][g_iLength], false) || StrEqual(l_cBuffer2, g_cWeaponCommand[i][g_iLength], false))
|
||||||
{
|
{
|
||||||
//PrintToChatAll("SUCCESS: %s", l_cBuffer);
|
|
||||||
ZmarketGetWeapon(client, i);
|
ZmarketGetWeapon(client, i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -758,8 +783,6 @@ public Action LoadClasses()
|
|||||||
l_hFileZM = OpenFile(g_cPathsClassZM, "r");
|
l_hFileZM = OpenFile(g_cPathsClassZM, "r");
|
||||||
if (!FileExists(g_cPathsClassHuman) && !FileExists(g_cPathsClassZM))
|
if (!FileExists(g_cPathsClassHuman) && !FileExists(g_cPathsClassZM))
|
||||||
{
|
{
|
||||||
//PrintToChatAll("File does not exist g_cPathsClassHuman: %s", g_cPathsClassHuman);
|
|
||||||
//PrintToChatAll("File does not exist g_cPathsClassZM: %s", g_cPathsClassZM);
|
|
||||||
CreateBackUpClassHuman(g_iLoadClassesIndex);
|
CreateBackUpClassHuman(g_iLoadClassesIndex);
|
||||||
CreateBackUpClassZM(g_iLoadClassesIndex);
|
CreateBackUpClassZM(g_iLoadClassesIndex);
|
||||||
delete l_hFile;
|
delete l_hFile;
|
||||||
@ -820,6 +843,7 @@ public void OnClientPostAdminCheck(int client)
|
|||||||
g_fKnockBackIndex[client] = 1.0;
|
g_fKnockBackIndex[client] = 1.0;
|
||||||
g_fJumpHeightIndex[client] = 1.0;
|
g_fJumpHeightIndex[client] = 1.0;
|
||||||
g_fJumpDistanceIndex[client] = 1.0;
|
g_fJumpDistanceIndex[client] = 1.0;
|
||||||
|
g_fDamageMultiplier[client] = 1.0;
|
||||||
g_iClientRespawnCount[client] = g_iClientRespawnCountNum;
|
g_iClientRespawnCount[client] = g_iClientRespawnCountNum;
|
||||||
char sCookieValue[12];
|
char sCookieValue[12];
|
||||||
GetClientCookie(client, g_hClientZMCookie, sCookieValue, sizeof(sCookieValue));
|
GetClientCookie(client, g_hClientZMCookie, sCookieValue, sizeof(sCookieValue));
|
||||||
@ -862,13 +886,14 @@ public void SetAdminGroups(int client)
|
|||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
public void OnClientDisconnect(int client)
|
public void OnClientDisconnect(int client)
|
||||||
{
|
{
|
||||||
g_bClientProtection[client] = false;
|
g_bClientProtection[client] = false;
|
||||||
g_bFallDamage[client] = false;
|
g_bFallDamage[client] = false;
|
||||||
g_fKnockBackIndex[client] = 1.0;
|
g_fKnockBackIndex[client] = 1.0;
|
||||||
g_fJumpHeightIndex[client] = 1.0;
|
g_fJumpHeightIndex[client] = 1.0;
|
||||||
g_fJumpDistanceIndex[client] = 1.0;
|
g_fJumpDistanceIndex[client] = 1.0;
|
||||||
g_iClientRespawnCount[client] = 0;
|
g_fDamageMultiplier[client] = 1.0;
|
||||||
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
|
g_iClientRespawnCount[client] = 0;
|
||||||
|
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
@ -1084,8 +1109,6 @@ public void LoadWave(int wave)
|
|||||||
if (strlen(g_cSMFLAGS[i][g_iLength]) > 0 && StrEqual(g_cTeam[i][g_iLength], "Human"))
|
if (strlen(g_cSMFLAGS[i][g_iLength]) > 0 && StrEqual(g_cTeam[i][g_iLength], "Human"))
|
||||||
{
|
{
|
||||||
Format(g_cHumanClasses[i][g_iLength], sizeof(g_cHumanClasses), g_cUniqueName[i][g_iLength]);
|
Format(g_cHumanClasses[i][g_iLength], sizeof(g_cHumanClasses), g_cUniqueName[i][g_iLength]);
|
||||||
//PrintToChatAll("SUCCESS: g_cTeam[i][g_iLength]: %s", g_cTeam[i][g_iLength]);
|
|
||||||
//PrintToChatAll("g_cHumanClasses[i][g_iLength]: %s", g_cHumanClasses[i][g_iLength]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1099,7 +1122,6 @@ public void LoadWave(int wave)
|
|||||||
}
|
}
|
||||||
if (StrEqual(l_cLine, g_cUniqueName[i][g_iLength], false))
|
if (StrEqual(l_cLine, g_cUniqueName[i][g_iLength], false))
|
||||||
{
|
{
|
||||||
//PrintToChatAll("l_cLine SUCCESS: %s \n%i", l_cLine, i);
|
|
||||||
Format(g_cHumanClasses[i][g_iLength], sizeof(g_cHumanClasses), g_cUniqueName[i][g_iLength]);
|
Format(g_cHumanClasses[i][g_iLength], sizeof(g_cHumanClasses), g_cUniqueName[i][g_iLength]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1261,6 +1283,8 @@ public void CreateBackUpClassZM(int index)
|
|||||||
kv.SetString("jump_height", g_cJumpHeight[index][g_iLength]);
|
kv.SetString("jump_height", g_cJumpHeight[index][g_iLength]);
|
||||||
Format(g_cJumpDistance[index][g_iLength], sizeof(g_cJumpDistance), "1.0");
|
Format(g_cJumpDistance[index][g_iLength], sizeof(g_cJumpDistance), "1.0");
|
||||||
kv.SetString("jump_distance", g_cJumpDistance[index][g_iLength]);
|
kv.SetString("jump_distance", g_cJumpDistance[index][g_iLength]);
|
||||||
|
Format(g_cDamageMultiplier[index][g_iLength], sizeof(g_cDamageMultiplier), "1.0");
|
||||||
|
kv.SetString("damage_multiplier", g_cDamageMultiplier[index][g_iLength]);
|
||||||
kv.Rewind();
|
kv.Rewind();
|
||||||
kv.ExportToFile(g_cPathsClassZM);
|
kv.ExportToFile(g_cPathsClassZM);
|
||||||
delete kv;
|
delete kv;
|
||||||
@ -1291,6 +1315,8 @@ public void CreateBackUpClassHuman(int index)
|
|||||||
kv.SetString("jump_height", g_cJumpHeight[index][g_iLength]);
|
kv.SetString("jump_height", g_cJumpHeight[index][g_iLength]);
|
||||||
Format(g_cJumpDistance[index][g_iLength], sizeof(g_cJumpDistance), "1.0");
|
Format(g_cJumpDistance[index][g_iLength], sizeof(g_cJumpDistance), "1.0");
|
||||||
kv.SetString("jump_distance", g_cJumpDistance[index][g_iLength]);
|
kv.SetString("jump_distance", g_cJumpDistance[index][g_iLength]);
|
||||||
|
Format(g_cDamageMultiplier[index][g_iLength], sizeof(g_cDamageMultiplier), "1.0");
|
||||||
|
kv.SetString("damage_multiplier", g_cDamageMultiplier[index][g_iLength]);
|
||||||
kv.Rewind();
|
kv.Rewind();
|
||||||
kv.ExportToFile(g_cPathsClassHuman);
|
kv.ExportToFile(g_cPathsClassHuman);
|
||||||
delete kv;
|
delete kv;
|
||||||
@ -1373,12 +1399,18 @@ public void ReadingClassValuesFromFile(int index, char[] Line)
|
|||||||
{
|
{
|
||||||
ReplaceStrings(li_c, "jump_distance");
|
ReplaceStrings(li_c, "jump_distance");
|
||||||
Format(g_cJumpDistance[index][g_iLength], sizeof(g_cJumpDistance), li_c);
|
Format(g_cJumpDistance[index][g_iLength], sizeof(g_cJumpDistance), li_c);
|
||||||
|
}
|
||||||
|
else if (StrContains(Line, "damage_multiplier") > -1)
|
||||||
|
{
|
||||||
|
ReplaceStrings(li_c, "damage_multiplier");
|
||||||
|
Format(g_cDamageMultiplier[index][g_iLength], sizeof(g_cDamageMultiplier), li_c);
|
||||||
g_iLoadClassesIndex++;
|
g_iLoadClassesIndex++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
//we should only be able to land in here if terrorist or CT.
|
||||||
public Action SelectWavebasedHuman(int client)
|
public Action SelectWavebasedHuman(int client)
|
||||||
{
|
{
|
||||||
if (!IsValidClient(client))
|
if (!IsValidClient(client))
|
||||||
@ -1388,6 +1420,12 @@ public Action SelectWavebasedHuman(int client)
|
|||||||
{
|
{
|
||||||
ChangeClientTeam(client, CS_TEAM_CT); //default putting humans to CT team
|
ChangeClientTeam(client, CS_TEAM_CT); //default putting humans to CT team
|
||||||
CreateTimer(1.0, Timer_delayedRespawn, GetClientUserId(client));
|
CreateTimer(1.0, Timer_delayedRespawn, GetClientUserId(client));
|
||||||
|
return Plugin_Continue;
|
||||||
|
}
|
||||||
|
if (!IsPlayerAlive(client) && CS_TEAM_CT) //this should help if you spawn late into a round so that you actually respawn
|
||||||
|
{
|
||||||
|
CreateTimer(1.0, Timer_delayedRespawn, GetClientUserId(client));
|
||||||
|
return Plugin_Continue;
|
||||||
}
|
}
|
||||||
ModelSelection(client, 2, g_iClientHumanClasses[client]);
|
ModelSelection(client, 2, g_iClientHumanClasses[client]);
|
||||||
|
|
||||||
@ -1507,12 +1545,10 @@ public Action ModelSelection(int client, int state, int modelIndex)
|
|||||||
if (state < 2)
|
if (state < 2)
|
||||||
{
|
{
|
||||||
CreateTimer(g_fZMSpawnProtection, Timer_StopProtection, GetClientUserId(client));
|
CreateTimer(g_fZMSpawnProtection, Timer_StopProtection, GetClientUserId(client));
|
||||||
//Client_SetActiveWeapon(client, GetPlayerWeaponSlot(client, 2));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CreateTimer(g_fHumanSpawnProtection, Timer_StopProtection, GetClientUserId(client));
|
CreateTimer(g_fHumanSpawnProtection, Timer_StopProtection, GetClientUserId(client));
|
||||||
//Client_SetActiveWeapon(client, GetPlayerWeaponSlot(client, 1));
|
|
||||||
}
|
}
|
||||||
if (state < 2) //setting the zombie health here using the HealthScaleAbility.
|
if (state < 2) //setting the zombie health here using the HealthScaleAbility.
|
||||||
{
|
{
|
||||||
@ -1534,6 +1570,7 @@ public Action ModelSelection(int client, int state, int modelIndex)
|
|||||||
g_fKnockBackIndex[client] = StringToFloat(g_cKnockback[i][g_iLength]);
|
g_fKnockBackIndex[client] = StringToFloat(g_cKnockback[i][g_iLength]);
|
||||||
g_fJumpHeightIndex[client] = StringToFloat(g_cJumpHeight[i][g_iLength]);
|
g_fJumpHeightIndex[client] = StringToFloat(g_cJumpHeight[i][g_iLength]);
|
||||||
g_fJumpDistanceIndex[client] = StringToFloat(g_cJumpDistance[i][g_iLength]);
|
g_fJumpDistanceIndex[client] = StringToFloat(g_cJumpDistance[i][g_iLength]);
|
||||||
|
g_fDamageMultiplier[client] = StringToFloat(g_cDamageMultiplier[i][g_iLength]);
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1611,13 +1648,6 @@ public Action Timer_zombieSounds(Handle timer, any userid)
|
|||||||
}
|
}
|
||||||
l_client = l_clients[GetRandomInt(0, l_iclientCount - 1)];
|
l_client = l_clients[GetRandomInt(0, l_iclientCount - 1)];
|
||||||
l_iSoundIndexes = GetRandomInt(0, g_iSoundIndexes - 1);
|
l_iSoundIndexes = GetRandomInt(0, g_iSoundIndexes - 1);
|
||||||
/*
|
|
||||||
PrintToChatAll("emitting sound from client: %N", l_client);
|
|
||||||
PrintToChatAll("with l_iSoundIndexes: %i", l_iSoundIndexes);
|
|
||||||
PrintToChatAll("g_cZMSounds[l_iSoundIndexes][g_iLength]: %s", g_cZMSounds[l_iSoundIndexes][g_iLength]);
|
|
||||||
EmitSound(l_clients, l_iclientCount, g_cZMSounds[l_iSoundIndexes][g_iLength], l_client, SNDCHAN_BODY, SNDLEVEL_NORMAL, SND_NOFLAGS, 0.45, SNDPITCH_NORMAL);
|
|
||||||
EmitSoundToAll(g_cZMSounds[l_iSoundIndexes][g_iLength]);
|
|
||||||
*/
|
|
||||||
for (int i = 1; i < MaxClients; i++)
|
for (int i = 1; i < MaxClients; i++)
|
||||||
{
|
{
|
||||||
if (IsValidClient(i) && !IsFakeClient(i))
|
if (IsValidClient(i) && !IsFakeClient(i))
|
||||||
@ -1666,7 +1696,29 @@ public Action Timer_StopProtection(Handle timer, any userid)
|
|||||||
if (client == 0)
|
if (client == 0)
|
||||||
return Plugin_Continue;
|
return Plugin_Continue;
|
||||||
if (IsValidClient(client))
|
if (IsValidClient(client))
|
||||||
|
{
|
||||||
g_bClientProtection[client] = false;
|
g_bClientProtection[client] = false;
|
||||||
|
if (GetPlayerWeaponSlot(client, CS_SLOT_KNIFE) == -1) //just making sure everybody has a knife. otherwise giving them one
|
||||||
|
{
|
||||||
|
GivePlayerItem(client, "weapon_knife");
|
||||||
|
CreateTimer(1.0, Timer_SwitchKnife, GetClientOfUserId(client));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Action Timer_SwitchKnife(Handle timer, any userid)
|
||||||
|
{
|
||||||
|
int client = GetClientOfUserId(userid);
|
||||||
|
if (client == 0)
|
||||||
|
return Plugin_Continue;
|
||||||
|
|
||||||
|
if (!IsValidClient(client) || !IsPlayerAlive(client))
|
||||||
|
{
|
||||||
|
return Plugin_Continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Client_ChangeWeapon(client, "weapon_knife");
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
@ -1701,7 +1753,6 @@ public Action Event_OnPlayerDeath(Handle event, const char[] name, bool dontBroa
|
|||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
public Action UpdateWaveCount(int client)
|
public Action UpdateWaveCount(int client)
|
||||||
{
|
{
|
||||||
//PrintToChatAll("Player %N died", client);
|
|
||||||
if (GetClientTeam(client) == CS_TEAM_CT)
|
if (GetClientTeam(client) == CS_TEAM_CT)
|
||||||
{
|
{
|
||||||
g_iClientRespawnCount[client]--;
|
g_iClientRespawnCount[client]--;
|
||||||
@ -1748,11 +1799,17 @@ public Action UpdateWaveCount(int client)
|
|||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
public Action OnTakeDamage(int client, int &attacker, int &inflictor, float &damage, int &damagetype)
|
public Action OnTakeDamage(int client, int &attacker, int &inflictor, float &damage, int &damagetype)
|
||||||
{
|
{
|
||||||
if (g_bClientProtection[client])
|
if (g_bClientProtection[client])
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
else if (damagetype & DMG_FALL && g_bFallDamage[client])
|
else if (damagetype & DMG_FALL && g_bFallDamage[client])
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
return Plugin_Continue;
|
if (IsValidClient(attacker) && g_fDamageMultiplier[attacker] != 1.0) //damage multiplier
|
||||||
|
{
|
||||||
|
//value lower than 1.0 will reduce the actual damage.
|
||||||
|
damage *= g_fDamageMultiplier[attacker];
|
||||||
|
return Plugin_Changed;
|
||||||
|
}
|
||||||
|
return Plugin_Continue;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
// Purpose: zombie reloaded copied knockback
|
// Purpose: zombie reloaded copied knockback
|
||||||
|
Loading…
Reference in New Issue
Block a user