Skocz do zawartości
RevDev

[Rozwiązane] Niewidzialni gracze na serwerze po zmianie ESP

Rekomendowane odpowiedzi

Na serwerze zmieniłem ESP na esl_admin_esp i od tamtego czasu na serwerze jest przypadek, że gracz jest niewidzialny tylko go słychać.

Kod pluginu bo lekko został przerobiony

#include <sourcemod>
#include <sendproxy>
#include <cstrike>

#pragma semicolon 1
#pragma newdecls required

#define IsValidClient(%0) 				(1 <= %0 <= MaxClients && IsClientInGame(%0) && !IsFakeClient(%0) && !IsClientSourceTV(%0) && !IsClientReplay(%0))
#define PLUGIN_VERSION "2.8"

int user_flag;

ConVar AdminESPflag = null;
ConVar AdminESPglow = null;

ConVar sv_competitive_official_5v5;
ConVar mp_weapons_glow_on_ground;

public Plugin myinfo =  {
	name = "CS:GO Esl Admin ESP (mmcs.pro)", 
	author = "SAZONISCHE", 
	description = "ESP/WH for Admins", 
	version = PLUGIN_VERSION, 
	url = "https://mmcs.pro/"
};

public void OnPluginStart() {
	if (GetEngineVersion() != Engine_CSGO)
		SetFailState("This plugin works only on CS:GO. Disabling plugin...");
	
	if (GetConVarInt(FindConVar("sv_parallel_packentities")) == 1)
		SetFailState("Please set convar sv_parallel_packentities to 0. Disabling plugin...");
	
	CreateConVar("sm_esl_adminesp_version", PLUGIN_VERSION, "Version of CS:GO Esl Admin ESP", FCVAR_SPONLY | FCVAR_REPLICATED | FCVAR_NOTIFY);
	RegConsoleCmd("sm_esp", OnSpectEsp);
	
	AdminESPflag = CreateConVar("sm_esl_adminesp_flag", "d", "Admin flag, blank=any flag", FCVAR_NOTIFY);
	AdminESPglow = CreateConVar("sm_esl_adminesp_weapons_glow_on_ground", "0", "Enable glow weapons on ground", 0, true, 0.0, true, 1.0);
	AdminESPflag.AddChangeHook(OnCvarChanged);
	
	sv_competitive_official_5v5 = FindConVar("sv_competitive_official_5v5");
	mp_weapons_glow_on_ground = FindConVar("mp_weapons_glow_on_ground");
	
	AutoExecConfig(true, "esl_admin_esp");
	
	HookEvent("player_death", ReloadEvent);
	HookEvent("player_team", ReloadEvent);
	HookEvent("player_spawn", ReloadEvent);
}

public void OnClientDisconnect(int client) {
	if (!IsFakeClient(client))
		SetEspHook(client, false);
}

public void OnMapStart() {
	char m_BaseFlags[32];
	GetConVarString(AdminESPflag, m_BaseFlags, sizeof(m_BaseFlags));
	user_flag = ReadFlagString(m_BaseFlags);
}

public void OnCvarChanged(ConVar convar, const char[] oldValue, const char[] newValue) {
	if (convar == AdminESPflag) {
		user_flag = ReadFlagString(newValue);
		for (int client = 1; client <= MaxClients; client++) {
			if (IsValidClient(client)) {
				SetEspHook(client, false);
				SetEspClient(client, false);
			}
		}
	}
}

public Action ReloadEvent(Event event, const char[] name, bool dontBroadcast) {
	int client = GetClientOfUserId(event.GetInt("userid"));
	if (!IsValidClient(client))
		return Plugin_Continue;
	if (GetClientTeam(client) == CS_TEAM_SPECTATOR)
	{
		if (GetUserFlagBits(client) & ADMFLAG_ROOT || GetUserFlagBits(client) & user_flag) {
			SetEspHook(client, true);
			SetEspClient(client, true);
		}
	}
	return Plugin_Continue;
}

public bool SetEspHook(int client, bool value) {
	if (value) {
		if (!SendProxy_IsHooked(client, "m_iTeamNum"))
			SendProxy_Hook(client, "m_iTeamNum", Prop_Int, Set_Esp);
	} else {
		if (SendProxy_IsHooked(client, "m_iTeamNum"))
			SendProxy_Unhook(client, "m_iTeamNum", Set_Esp);
	}
}

public bool SetEspClient(int client, bool value) {
	if (AdminESPglow.BoolValue)
		SendConVarValue(client, mp_weapons_glow_on_ground, value ? "1" : "0");
	SendConVarValue(client, sv_competitive_official_5v5, value ? "1" : "0");
}

public Action Set_Esp(int entity, const char[] PropName, int &iValue, int element) {
	if (iValue) {
		iValue = 1;
		return Plugin_Changed;
	}
	return Plugin_Continue;
}

public Action OnSpectEsp(int client, int args) {
	if (!IsValidClient(client))
		return Plugin_Continue;
	if (GetClientTeam(client) != CS_TEAM_SPECTATOR)
		return Plugin_Continue;
	if (GetUserFlagBits(client) & ADMFLAG_ROOT || GetUserFlagBits(client) & user_flag) {
			SetEspHook(client, true);
			SetEspClient(client, true);
	}
	SetEspHook(client, false);
	SetEspClient(client, false);
	return Plugin_Continue;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

https://forums.alliedmods.net/showpost.php?p=2630914&postcount=9
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

https://forums.alliedmods.net/showpost.php?p=2643588&postcount=71
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami! - rozwiązanie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...