75 lines
2.0 KiB
SourcePawn
75 lines
2.0 KiB
SourcePawn
/* Plugin Template generated by Pawn Studio */
|
|
|
|
#include <sourcemod>
|
|
|
|
new Handle:h_enabled;
|
|
new bool:enabled, health[MAXPLAYERS+1];
|
|
|
|
public Plugin:myinfo =
|
|
{
|
|
name = "Health 4 Ever (GOD MODE)",
|
|
author = "Chefe",
|
|
description = "Give Health (GODMODE)",
|
|
version = "1.3",
|
|
url = "www.sourcemod.net"
|
|
}
|
|
|
|
public OnPluginStart()
|
|
{
|
|
HookEvent("player_hurt", Event_PlayerHurt);
|
|
HookEvent("player_spawn", Event_PlayerSpawn);
|
|
h_enabled = CreateConVar("sm_god_enabled", "1", "Enable or Disable Health for Admins.");
|
|
AutoExecConfig(true);
|
|
|
|
CreateTimer(1.0, Timer_RefillClip, _, TIMER_REPEAT);
|
|
|
|
enabled = GetConVarBool(h_enabled);
|
|
|
|
HookConVarChange(h_enabled, OnEnabledChange);
|
|
}
|
|
|
|
public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
|
|
{
|
|
new userid = GetEventInt(event, "userid");
|
|
new client = GetClientOfUserId(userid);
|
|
|
|
health[client] = GetClientHealth(client);
|
|
}
|
|
|
|
public OnEnabledChange(Handle:cvar, const String:oldVal[], const String:newVal[])
|
|
{
|
|
enabled = !!StringToInt(String:newVal);
|
|
}
|
|
|
|
public Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
|
|
{
|
|
new client_userid = GetEventInt(event, "userid");
|
|
new client = GetClientOfUserId(client_userid);
|
|
new AdminId:client_admin = GetUserAdmin(client);
|
|
new damage = GetEventInt(event, "health");
|
|
|
|
if (IsClientInGame(client) && enabled && IsPlayerAlive(client) && !IsFakeClient(client))
|
|
{
|
|
SetEntData(client, FindDataMapOffs(client, "m_iMaxHealth"), health[client], 4, true);
|
|
SetEntData(client, FindDataMapOffs(client, "m_iHealth"), health[client], 4, true);
|
|
|
|
PrintToChat(client, "\x01[\x04HR\x01] Blocked \x04%i\x01 damage!", (health[client]-damage));
|
|
}
|
|
}
|
|
|
|
public Action:Timer_RefillClip(Handle:timer)
|
|
{
|
|
for (new i = 1; i != GetMaxClients(); i++)
|
|
{
|
|
if (IsClientInGame(i) && IsPlayerAlive(i) && !IsFakeClient(i))
|
|
{
|
|
RefillClip(i)
|
|
}
|
|
}
|
|
}
|
|
|
|
stock RefillClip(i)
|
|
{
|
|
new iWeapon = GetEntDataEnt2(i, FindSendPropInfo("CTFPlayer", "m_hActiveWeapon"));
|
|
SetEntData(iWeapon, FindSendPropInfo("CBaseCombatWeapon", "m_iClip1"), 500);
|
|
} |