View Single Post
Cruze
Veteran Member
Join Date: May 2017
Old 06-26-2022 , 04:29   Re: CS GO Removing Red Circle when being hit
Reply With Quote #7

Try this:
PHP Code:
#include <sourcemod>
#include <sdkhooks>

#pragma newdecls required
#pragma semicolon 1

#define PLUGIN_VERSION    "1.2"
#define PLUGIN_NAME        "NoDamage"

bool g_bLateLoadg_bEnabled;
ConVar g_hEnabled;

public 
Plugin myinfo 
{
    
name PLUGIN_NAME,
    
author "Thomas Ross, fixes by Grey83 & Cruze",
    
description "Stops damage from being taken",
    
version PLUGIN_VERSION,
    
url ""
}

public 
APLRes AskPluginLoad2(Handle myselfbool latechar[] errorint err_max)
{
    
g_bLateLoad late;
    return 
APLRes_Success;
}

public 
void OnPluginStart()
{
    
CreateConVar("sm_nodamage_version"PLUGIN_VERSIONPLUGIN_NAMEFCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    
g_hEnabled CreateConVar("sm_nodamage_enabled""1""1 = Plugin enabled, 0 = Disabled"FCVAR_SPONLYtrue0.0true1.0);

    
HookConVarChange(g_hEnabledOnSettingsChange);
    
g_bEnabled g_hEnabled.BoolValue;
    
    
HookEvent("player_hurt"Event_PlayerHurtEventHookMode_Pre);

    if(
g_bLateLoad && g_bEnabled)
    {    
        
LateLoadConnect();
        
g_bLateLoad false;
    }
}

public 
int OnSettingsChange(ConVar cvar, const char[] oldVal, const char[] newVal)
{
    if(
StrEqual(oldValnewVal))
    {
        return;
    }
    
    
g_bEnabled = !!StringToInt(newVal);

    if (
g_bEnabled)
    {
        
LateLoadConnect();
    }
    else
    {
        
LateLoadDisconnect();
    }
}

public 
void OnClientPostAdminCheck(int client)
{
    if(
IsFakeClient(client))
    {
        return;
    }
    
SDKHook(clientSDKHook_OnTakeDamageEvent_OnTakeDamage);
}

 public 
void OnClientDisconnect(int client)
{
    if(
IsFakeClient(client))
    {
        return;
    }
    
SDKUnhook(clientSDKHook_OnTakeDamageEvent_OnTakeDamage);
}

public 
Action Event_PlayerHurt(Event ev, const char[] namebool dbc)
{
    if (
g_bEnabled)
    {
        return 
Plugin_Handled;
    }
    return 
Plugin_Continue;
}

public 
Action Event_OnTakeDamage(int victimint &attackerint &inflictorfloat &damageint &damagetype

    return 
Plugin_Handled;
}

void LateLoadConnect()
{
    for(
int client 1client <= MaxClientsclient++) if(IsClientInGame(client))
    {
        
OnClientPostAdminCheck(client);
    }
}

void LateLoadDisconnect()
{
    for(
int client 1client <= MaxClientsclient++) if(IsClientInGame(client))
    {
        
OnClientDisconnect(client);
    }

Attached Files
File Type: sp Get Plugin or Get Source (nodamage2.sp - 140 views - 2.2 KB)
__________________
Taking paid private requests! Contact me

Last edited by Cruze; 06-26-2022 at 10:23. Reason: Fixed invalid client index error on lateload
Cruze is offline