Corrected newline format.

This commit is contained in:
richard 2009-04-01 19:04:00 +02:00
parent 7817981473
commit f9d0a96d77
2 changed files with 203 additions and 203 deletions

View File

@ -1,188 +1,188 @@
/** /**
* ==================== * ====================
* Zombie:Reloaded * Zombie:Reloaded
* File: damagecontrol.inc * File: damagecontrol.inc
* Author: Greyscale * Author: Greyscale
* ==================== * ====================
*/ */
#define DMG_GENERIC 0 // generic damage was done #define DMG_GENERIC 0 // generic damage was done
#define DMG_BULLET (1 << 1) // shot #define DMG_BULLET (1 << 1) // shot
#define DMG_SLASH (1 << 2) // cut, clawed, stabbed #define DMG_SLASH (1 << 2) // cut, clawed, stabbed
#define DMG_BURN (1 << 3) // heat burned #define DMG_BURN (1 << 3) // heat burned
#define DMG_FALL (1 << 5) // fell too far #define DMG_FALL (1 << 5) // fell too far
#define DMG_BLAST (1 << 6) // explosive blast damage #define DMG_BLAST (1 << 6) // explosive blast damage
#define DMG_DROWN (1 << 14) // Drowning #define DMG_DROWN (1 << 14) // Drowning
enum ZRHooks enum ZRHooks
{ {
Hook_TraceAttack, Hook_TraceAttack,
Hook_OnTakeDamage Hook_OnTakeDamage
} }
new gHooks[MAXPLAYERS+1][ZRHooks]; new gHooks[MAXPLAYERS+1][ZRHooks];
InitDmgControl() InitDmgControl()
{ {
/* It's case sensitive! */ /* It's case sensitive! */
RegConsoleCmd("kill", Attempt_Suicide); RegConsoleCmd("kill", Attempt_Suicide);
RegConsoleCmd("KILL", Attempt_Suicide); RegConsoleCmd("KILL", Attempt_Suicide);
RegConsoleCmd("jointeam", Attempt_Suicide); RegConsoleCmd("jointeam", Attempt_Suicide);
RegConsoleCmd("JOINTEAM", Attempt_Suicide); RegConsoleCmd("JOINTEAM", Attempt_Suicide);
RegConsoleCmd("spectate", Attempt_Suicide); RegConsoleCmd("spectate", Attempt_Suicide);
} }
ClientHookAttack(client) ClientHookAttack(client)
{ {
gHooks[client][Hook_TraceAttack] = Hacks_Hook(client, HACKS_HTYPE_TRACEATTACK, TraceAttack, false); gHooks[client][Hook_TraceAttack] = Hacks_Hook(client, HACKS_HTYPE_TRACEATTACK, TraceAttack, false);
gHooks[client][Hook_OnTakeDamage] = Hacks_Hook(client, HACKS_HTYPE_ONTAKEDAMAGE, OnTakeDamage, false); gHooks[client][Hook_OnTakeDamage] = Hacks_Hook(client, HACKS_HTYPE_ONTAKEDAMAGE, OnTakeDamage, false);
} }
ClientUnHookAttack(client) ClientUnHookAttack(client)
{ {
Hacks_Unhook(gHooks[client][Hook_TraceAttack]); Hacks_Unhook(gHooks[client][Hook_TraceAttack]);
Hacks_Unhook(gHooks[client][Hook_OnTakeDamage]); Hacks_Unhook(gHooks[client][Hook_OnTakeDamage]);
} }
public TraceAttack(client, inflictor, attacker, damage, hitbox, hitgroup) public TraceAttack(client, inflictor, attacker, damage, hitbox, hitgroup)
{ {
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]);
if (!attacker || !IsClientPlayer(attacker) || !IsClientInGame(attacker) || !enabled) if (!attacker || !IsClientPlayer(attacker) || !IsClientInGame(attacker) || !enabled)
{ {
return Hacks_Continue; return Hacks_Continue;
} }
if (IsPlayerZombie(client) && IsPlayerZombie(attacker)) if (IsPlayerZombie(client) && IsPlayerZombie(attacker))
{ {
return 0; return 0;
} }
if (IsPlayerHuman(client) && IsPlayerHuman(attacker)) if (IsPlayerHuman(client) && IsPlayerHuman(attacker))
{ {
return 0; return 0;
} }
return Hacks_Continue; return Hacks_Continue;
} }
public OnTakeDamage(client, inflictor, attacker, damage, damagetype, ammotype) public OnTakeDamage(client, inflictor, attacker, damage, damagetype, ammotype)
{ {
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]);
if (!enabled) if (!enabled)
{ {
return Hacks_Continue; return Hacks_Continue;
} }
decl String:classname[64]; decl String:classname[64];
GetEdictClassname(inflictor, classname, sizeof(classname)); GetEdictClassname(inflictor, classname, sizeof(classname));
if (StrContains(classname, "trigger") > -1) if (StrContains(classname, "trigger") > -1)
{ {
return Hacks_Continue; return Hacks_Continue;
} }
if (damagetype & DMG_FALL) if (damagetype & DMG_FALL)
{ {
if (!IsPlayerZombie(client)) if (!IsPlayerZombie(client))
{ {
return Hacks_Continue; return Hacks_Continue;
} }
new bool:blockfalldamage = GetClassNoFallDamage(pClass[client]); new bool:blockfalldamage = GetClassNoFallDamage(pClass[client]);
if (!blockfalldamage) if (!blockfalldamage)
{ {
return Hacks_Continue; return Hacks_Continue;
} }
return 0; return 0;
} }
if (damagetype & DMG_BLAST) if (damagetype & DMG_BLAST)
{ {
if (!IsPlayerHuman(client) || !IsClientPlayer(attacker) || !IsClientInGame(attacker)) if (!IsPlayerHuman(client) || !IsClientPlayer(attacker) || !IsClientInGame(attacker))
{ {
return Hacks_Continue; return Hacks_Continue;
} }
return 0; return 0;
} }
if (damagetype & DMG_BULLET) if (damagetype & DMG_BULLET)
{ {
if (!client || !IsClientPlayer(client) || !IsClientInGame(client)) if (!client || !IsClientPlayer(client) || !IsClientInGame(client))
{ {
return Hacks_Continue; return Hacks_Continue;
} }
if (!attacker || !IsClientPlayer(attacker) || !IsClientInGame(attacker)) if (!attacker || !IsClientPlayer(attacker) || !IsClientInGame(attacker))
{ {
return Hacks_Continue; return Hacks_Continue;
} }
if (IsPlayerZombie(client) && IsPlayerHuman(attacker)) if (IsPlayerZombie(client) && IsPlayerHuman(attacker))
{ {
return Hacks_Continue; return Hacks_Continue;
} }
if (IsPlayerHuman(client) && IsPlayerZombie(attacker)) if (IsPlayerHuman(client) && IsPlayerZombie(attacker))
{ {
new health = GetClientHealth(client); new health = GetClientHealth(client);
SetEntityHealth(client, health + damage); SetEntityHealth(client, health + damage);
return Hacks_Continue; return Hacks_Continue;
} }
return 0; return 0;
} }
return Hacks_Continue; return Hacks_Continue;
} }
public Action:Attempt_Suicide(client, argc) public Action:Attempt_Suicide(client, argc)
{ {
if (!client) if (!client)
{ {
return Plugin_Continue; return Plugin_Continue;
} }
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]);
if (!enabled) if (!enabled)
{ {
return Plugin_Continue; return Plugin_Continue;
} }
new bool:suicide = IsPlayerZombie(client) ? GetConVarBool(gCvars[CVAR_SUICIDE_ZOMBIE]) : GetConVarBool(gCvars[CVAR_SUICIDE_HUMAN]); new bool:suicide = IsPlayerZombie(client) ? GetConVarBool(gCvars[CVAR_SUICIDE_ZOMBIE]) : GetConVarBool(gCvars[CVAR_SUICIDE_HUMAN]);
if (!suicide) if (!suicide)
{ {
return Plugin_Continue; return Plugin_Continue;
} }
decl String:cmd[16]; decl String:cmd[16];
GetCmdArg(0, cmd, sizeof(cmd)); GetCmdArg(0, cmd, sizeof(cmd));
if (!IsPlayerAlive(client)) if (!IsPlayerAlive(client))
{ {
return Plugin_Continue; return Plugin_Continue;
} }
ZR_ReplyToCommand(client, "Suicide text"); ZR_ReplyToCommand(client, "Suicide text");
ZR_PrintToChat(client, "Suicide text"); ZR_PrintToChat(client, "Suicide text");
decl String:clientname[64]; decl String:clientname[64];
decl String:buffer[192]; decl String:buffer[192];
GetClientName(client, clientname, sizeof(clientname)); GetClientName(client, clientname, sizeof(clientname));
if (LogFlagCheck(LOG_GAME_EVENTS, LOG_MODULE_DAMAGECONTROL)) if (LogFlagCheck(LOG_GAME_EVENTS, LOG_MODULE_DAMAGECONTROL))
{ {
ZR_LogMessageFormatted(client, "damage control", "suicide", "Player \"%s\" attempted suicide.", true, clientname); ZR_LogMessageFormatted(client, "damage control", "suicide", "Player \"%s\" attempted suicide.", true, clientname);
} }
if (GetConVarBool(gCvars[CVAR_SUICIDE_ECHO])) if (GetConVarBool(gCvars[CVAR_SUICIDE_ECHO]))
{ {
Format(buffer, sizeof(buffer), "Player '%s' attempted suicide.", clientname); Format(buffer, sizeof(buffer), "Player '%s' attempted suicide.", clientname);
ZR_PrintToAdminChat(buffer); ZR_PrintToAdminChat(buffer);
} }
return Plugin_Handled; return Plugin_Handled;
} }

View File

@ -1015,7 +1015,7 @@ ClassGetOverlayPath(index, String:overlay[], maxlen, cachetype = ZR_CLASS_CACHE_
* Gets the health points from the specified class. * Gets the health points from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1047,7 +1047,7 @@ ClassGetHealth(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the running speed value from the specified class. * Gets the running speed value from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1079,7 +1079,7 @@ Float:ClassGetSpeed(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the jump distance boost from the specified class. * Gets the jump distance boost from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1111,7 +1111,7 @@ Float:ClassGetJumpDistance(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the jump height boost from the specified class. * Gets the jump height boost from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1143,7 +1143,7 @@ Float:ClassGetJumpHeight(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the knock back boost from the specified class. * Gets the knock back boost from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1175,7 +1175,7 @@ Float:ClassGetKnockback(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the night vision setting from the specified class. * Gets the night vision setting from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1207,7 +1207,7 @@ bool:ClassGetNVGs(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the field of view value from the specified class. * Gets the field of view value from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1239,7 +1239,7 @@ ClassGetFOV(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the health regen interval value from the specified class. * Gets the health regen interval value from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1272,7 +1272,7 @@ Float:ClassGetHealthRegenInterv(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the health regen amount value from the specified class. * Gets the health regen amount value from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1305,7 +1305,7 @@ ClassGetHealthRegenAmount(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the napalm grenades time from the specified class. * Gets the napalm grenades time from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1337,7 +1337,7 @@ Float:ClassGetNapalmTime(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the no fall damage setting from the specified class. * Gets the no fall damage setting from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1370,7 +1370,7 @@ bool:ClassGetNoFallDamage(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the kill bonus value from the specified class. * Gets the kill bonus value from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1402,7 +1402,7 @@ ClassGetKillBonus(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the health infect bonus value from the specified class. * Gets the health infect bonus value from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1435,7 +1435,7 @@ ClassGetHealthInfectBonus(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the initial alpha value from the specified class. * Gets the initial alpha value from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1467,7 +1467,7 @@ ClassGetAlphaInitial(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the alpha value when damaged, from the specified class. * Gets the alpha value when damaged, from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.
@ -1500,7 +1500,7 @@ ClassGetAlphaDamaged(index, cachetype = ZR_CLASS_CACHE_PLAYER)
* Gets the damage amount needed to change alpha, from the specified class. * Gets the damage amount needed to change alpha, from the specified class.
* *
* @param index Index of the class in a class cache or a client index, * @param index Index of the class in a class cache or a client index,
* depending on the cache type specified. * depending on the cache type specified.
* @param cachetype Optional. Specifies what class cache to read from. Options: * @param cachetype Optional. Specifies what class cache to read from. Options:
* ZR_CLASS_CACHE_ORIGINAL - Unchanced class data. * ZR_CLASS_CACHE_ORIGINAL - Unchanced class data.
* ZR_CLASS_CACHE_MODIFIED - Changed/newest class data. * ZR_CLASS_CACHE_MODIFIED - Changed/newest class data.