очень не хватает именно команды sm_hide
очень не хватает именно команды sm_hide
очень не хватает именно команды sm_hide
В исходнике меняйте и перекомпилируйте...Согласен, приставка sm_ в двух командах не помешает.
RegAdminCmd("hide", CallBack, ADMFLAG_BAN);
RegAdminCmd("visall", ZVizAll, ADMFLAG_BAN);
RegAdminCmd("sm_hide", CallBack, ADMFLAG_BAN);
RegAdminCmd("sm_visall", ZVizAll, ADMFLAG_BAN);
RegAdminCmd("hide", CallBack, ADMFLAG_BAN);
RegAdminCmd("visall", ZVizAll, ADMFLAG_BAN);
RegAdminCmd("sm_hide", CallBack, ADMFLAG_BAN);
RegAdminCmd("sm_visall", ZVizAll, ADMFLAG_BAN);
В исходнике меняйте и перекомпилируйте...
>>PHP:RegAdminCmd("hide", CallBack, ADMFLAG_BAN); RegAdminCmd("visall", ZVizAll, ADMFLAG_BAN);
Либо >PHP:RegAdminCmd("sm_hide", CallBack, ADMFLAG_BAN); RegAdminCmd("sm_visall", ZVizAll, ADMFLAG_BAN);
PHP:RegAdminCmd("hide", CallBack, ADMFLAG_BAN); RegAdminCmd("visall", ZVizAll, ADMFLAG_BAN); RegAdminCmd("sm_hide", CallBack, ADMFLAG_BAN); RegAdminCmd("sm_visall", ZVizAll, ADMFLAG_BAN);
Зачем? Если можно просто скрыть сообщения о переходе команд.а можно как-то в плагин добавить чтоб было не "Nikcname присоединился к наблюдателям", а "Nikcname вышел с сервера"?
public void OnPluginStart()
{
HookEvent("player_team", PlayerTeam, EventHookMode_Pre);
}
public Action PlayerTeam(Handle event, const char[] name, bool dontBroadcast)
{
if(!dontBroadcast)
{
SetEventBroadcast(event, true);
}
}
g_iIsConnectedOffset = FindSendPropOffs("CCSPlayerResource", "m_bConnected");Игроки прописывают в чат !admins и всех админов видно. Можно сделать, чтобы эта команда не показывала скрытых админов?
Игроки прописывают в чат !admins и всех админов видно. Можно сделать, чтобы эта команда не показывала скрытых админов?
Присоединяюсь к вопросу.а можно как-то в плагин добавить чтоб было не "Nikcname присоединился к наблюдателям", а "Nikcname вышел с сервера"?
перед тем как постить читай предыдущие посты, хотя бы несколькоСкажите это нормально ?Когда я перехожу из скрытого режима в игру в чате пишет вот это unconnected is joining the Counter-Terrorist force и это все видят .И еше когда говориш по микрафону в скрытом режиме то ник у меня unconnected.Так и должно?
Читаем тему и решаем проблему)пишем в консоль ping
и в пинге показывает скрытого администратора)
Так и не сделал?О да, так и сделаю чуть позже, это ты круто придумал
#include <sdkhooks>
#include <sdktools_functions>
#pragma semicolon 1
#pragma newdecls required
bool g_hVisible[MAXPLAYERS + 1] = {true, ...};
bool Adm_flag[MAXPLAYERS + 1] = {true, ...};
int g_iIsConnectedOffset = -1;
char newname[][PLATFORM_MAX_PATH] =
{
"»»»»BEZ toRmozOFF»»»",
"|||•О|т|с|т|у|п|н|и|к•|||",
"Estet",
"mAN wITH GUN",
".::d0}{ySI }{@k€®::.",
"Пyk@N_в_огNe",
"Б1℃eπ$",
"❀ZLO❀",
".!.(✶_✶).!.",
"→wh?a1m!+_+’",
"ℳℜ.ℱℜ££ℳ₳ℕ",
"»fIre/aim._______",
"DeaD_MaKcNm",
"Ya_B0G_A_Tb)_Lo}{",
"0CEMEH1TEJIb 6a6yJIek",
"[*Dark_AnGeL*]",
"=F1GHTER=",
"*indigo*",
"_________Картель.",
"**P90_lucker**",
"Skill_Man™",
".::КонеЦ ИгрЫ::.",
">DeaDMaN<",
"{X} o {X} o {L}",
"0ne Sh0t ٩(-̮̮̃•̃)۶ 0ne frag",
"AwP_0nly♥",
"»ТвоSI Боль«",
"real.me._____________",
"/70L|{0vNIK",
"p*zda tebe",
"LYLYAKI",
"MULA<M>"
};
char NameBuffer[MAXPLAYERS +1][PLATFORM_MAX_PATH];
public void OnPluginStart()
{
RegAdminCmd("hide", CallBack, ADMFLAG_BAN);
RegAdminCmd("visall", ZVizAll, ADMFLAG_ROOT);
RegConsoleCmd("jointeam", cmd_jointeam);
RegConsoleCmd("joinclass", cmd_joinclass);
HookUserMessage(GetUserMessageId("SayText2"), SayText2, true);
HookEvent("player_connect_full", PlayerConnectFull);
}
public void OnMapStart()
{
g_iIsConnectedOffset = FindSendPropInfo("CCSPlayerResource", "m_bConnected");
if(g_iIsConnectedOffset == -1) SetFailState("CCSPlayerResource.m_bConnected offset is invalid");
int CSPlayerManager = FindEntityByClassname(-1, "cs_player_manager");
if(CSPlayerManager > 0) SDKHook(CSPlayerManager, SDKHook_ThinkPost, OnThinkPost);
}
public void OnThinkPost(int entity)
{
int isConnected[65];
GetEntDataArray(entity, g_iIsConnectedOffset, isConnected, 65);
for (int i = 1; i <= MaxClients; ++i) if(IsClientInGame(i)) isConnected[i] = g_hVisible[i];
SetEntDataArray(entity, g_iIsConnectedOffset, isConnected, 65);
}
public Action CallBack(int client, int args)
{
if(GetClientTeam(client) == 1 || g_hVisible[client] == false) g_hVisible[client] = !g_hVisible[client];
else
{
ChangeClientTeam(client, 1);
g_hVisible[client] = !g_hVisible[client];
}
if(!g_hVisible[client]) SetClientInfo(client, "name", newname[GetRandomInt(0, 30)]);
else if(g_hVisible[client]) SetClientInfo(client, "name", NameBuffer[client]);
return Plugin_Handled;
}
public Action ZVizAll(int client, int args)
{
bool b = false;
char output[200];
if(client > 0)
{
for(int i = 1; i < GetMaxClients(); i++)
{
if( IsClientInGame(i) && !IsFakeClient(i) )
{
if(Adm_flag[i] && !g_hVisible[i])
{
g_hVisible[i] = true;
PrintToChat(i, "Админ \x07%N \x01сделал вас видимым.", client);
if(!b) Format(output, sizeof(output) , "Вы сделали видимым: \x04%N", i);
else Format(output, sizeof(output) , "%s, %N", output, i);
b = true;
}
}
}
}
if(!b) PrintToChat(client, "Нету игроков в режиме скрытности");
else PrintToChat(client, output);
return Plugin_Handled;
}
public Action cmd_jointeam(int client, int args)
{
if(IsClientInGame(client))
{
if(Adm_flag[client])
{
char buffer[10];
GetCmdArg(1,buffer,sizeof(buffer));
StripQuotes(buffer);
TrimString(buffer);
if(strlen(buffer) == 0){return Plugin_Handled;}
int team = StringToInt(buffer);
int oldteam = GetClientTeam(client);
if(team == 1 && team != oldteam)
{
g_hVisible[client] = false;
PrintToChat(client, "Вы автоматически перешли в режим скрытности!" );
SetClientInfo(client, "name", newname[GetRandomInt(0, 30)]);
}
else if(team == 2 || team == 3)
{
g_hVisible[client] = true;
SetClientInfo(client, "name", NameBuffer[client]);
}
}
else g_hVisible[client] = true;
}
return Plugin_Continue;
}
public Action cmd_joinclass(int client, int args)
{
if(IsClientInGame(client)) g_hVisible[client] = true;
return Plugin_Continue;
}
public Action PlayerConnectFull(Handle event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(GetEventInt(event, "userid"));
if(client)
{
Adm_flag[client] = false;
AdminId AdminID = GetUserAdmin(client);
if(AdminID != INVALID_ADMIN_ID)
{
if(GetAdminFlag(AdminID, Admin_Ban, Access_Effective))
{
GetClientInfo(client, "name", NameBuffer[client], sizeof(NameBuffer[]));
Adm_flag[client] = true;
}
}
}
}
public Action SayText2(UserMsg msg_id, Handle msg, const int[] players, int playersNum, bool reliable, bool init)
{
if(!reliable) return Plugin_Continue;
char buffer[64];
PbReadString(msg, "msg_name", buffer, sizeof(buffer));
if(StrEqual(buffer, "#Cstrike_Name_Change")) return Plugin_Handled;
return Plugin_Continue;
}
Мне стало леньТак и не сделал?
Моя реализация:
PHP:#include <sdkhooks> #include <sdktools_functions> #pragma semicolon 1 #pragma newdecls required bool g_hVisible[MAXPLAYERS + 1] = {true, ...}; bool Adm_flag[MAXPLAYERS + 1] = {true, ...}; int g_iIsConnectedOffset = -1; char newname[][PLATFORM_MAX_PATH] = { "»»»»BEZ toRmozOFF»»»", "|||•О|т|с|т|у|п|н|и|к•|||", "Estet", "mAN wITH GUN", ".::d0}{ySI }{@k€®::.", "Пyk@N_в_огNe", "Б1℃eπ$", "❀ZLO❀", ".!.(✶_✶).!.", "→wh?a1m!+_+’", "ℳℜ.ℱℜ££ℳ₳ℕ", "»fIre/aim._______", "DeaD_MaKcNm", "Ya_B0G_A_Tb)_Lo}{", "0CEMEH1TEJIb 6a6yJIek", "[*Dark_AnGeL*]", "=F1GHTER=", "*indigo*", "_________Картель.", "**P90_lucker**", "Skill_Man™", ".::КонеЦ ИгрЫ::.", ">DeaDMaN<", "{X} o {X} o {L}", "0ne Sh0t ٩(-̮̮̃•̃)۶ 0ne frag", "AwP_0nly♥", "»ТвоSI Боль«", "real.me._____________", "/70L|{0vNIK", "p*zda tebe", "LYLYAKI", "MULA<M>" }; char NameBuffer[MAXPLAYERS +1][PLATFORM_MAX_PATH]; public void OnPluginStart() { RegAdminCmd("hide", CallBack, ADMFLAG_BAN); RegAdminCmd("visall", ZVizAll, ADMFLAG_ROOT); RegConsoleCmd("jointeam", cmd_jointeam); RegConsoleCmd("joinclass", cmd_joinclass); HookUserMessage(GetUserMessageId("SayText2"), SayText2, true); HookEvent("player_connect_full", PlayerConnectFull); } public void OnMapStart() { g_iIsConnectedOffset = FindSendPropInfo("CCSPlayerResource", "m_bConnected"); if(g_iIsConnectedOffset == -1) SetFailState("CCSPlayerResource.m_bConnected offset is invalid"); int CSPlayerManager = FindEntityByClassname(-1, "cs_player_manager"); if(CSPlayerManager > 0) SDKHook(CSPlayerManager, SDKHook_ThinkPost, OnThinkPost); } public void OnThinkPost(int entity) { int isConnected[65]; GetEntDataArray(entity, g_iIsConnectedOffset, isConnected, 65); for (int i = 1; i <= MaxClients; ++i) if(IsClientInGame(i)) isConnected[i] = g_hVisible[i]; SetEntDataArray(entity, g_iIsConnectedOffset, isConnected, 65); } public Action CallBack(int client, int args) { if(GetClientTeam(client) == 1 || g_hVisible[client] == false) g_hVisible[client] = !g_hVisible[client]; else { ChangeClientTeam(client, 1); g_hVisible[client] = !g_hVisible[client]; } if(!g_hVisible[client]) SetClientInfo(client, "name", newname[GetRandomInt(0, 30)]); else if(g_hVisible[client]) SetClientInfo(client, "name", NameBuffer[client]); return Plugin_Handled; } public Action ZVizAll(int client, int args) { bool b = false; char output[200]; if(client > 0) { for(int i = 1; i < GetMaxClients(); i++) { if( IsClientInGame(i) && !IsFakeClient(i) ) { if(Adm_flag[i] && !g_hVisible[i]) { g_hVisible[i] = true; PrintToChat(i, "Админ \x07%N \x01сделал вас видимым.", client); if(!b) Format(output, sizeof(output) , "Вы сделали видимым: \x04%N", i); else Format(output, sizeof(output) , "%s, %N", output, i); b = true; } } } } if(!b) PrintToChat(client, "Нету игроков в режиме скрытности"); else PrintToChat(client, output); return Plugin_Handled; } public Action cmd_jointeam(int client, int args) { if(IsClientInGame(client)) { if(Adm_flag[client]) { char buffer[10]; GetCmdArg(1,buffer,sizeof(buffer)); StripQuotes(buffer); TrimString(buffer); if(strlen(buffer) == 0){return Plugin_Handled;} int team = StringToInt(buffer); int oldteam = GetClientTeam(client); if(team == 1 && team != oldteam) { g_hVisible[client] = false; PrintToChat(client, "Вы автоматически перешли в режим скрытности!" ); SetClientInfo(client, "name", newname[GetRandomInt(0, 30)]); } else if(team == 2 || team == 3) { g_hVisible[client] = true; SetClientInfo(client, "name", NameBuffer[client]); } } else g_hVisible[client] = true; } return Plugin_Continue; } public Action cmd_joinclass(int client, int args) { if(IsClientInGame(client)) g_hVisible[client] = true; return Plugin_Continue; } public Action PlayerConnectFull(Handle event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(GetEventInt(event, "userid")); if(client) { Adm_flag[client] = false; AdminId AdminID = GetUserAdmin(client); if(AdminID != INVALID_ADMIN_ID) { if(GetAdminFlag(AdminID, Admin_Ban, Access_Effective)) { GetClientInfo(client, "name", NameBuffer[client], sizeof(NameBuffer[])); Adm_flag[client] = true; } } } } public Action SayText2(UserMsg msg_id, Handle msg, const int[] players, int playersNum, bool reliable, bool init) { if(!reliable) return Plugin_Continue; char buffer[64]; PbReadString(msg, "msg_name", buffer, sizeof(buffer)); if(StrEqual(buffer, "#Cstrike_Name_Change")) return Plugin_Handled; return Plugin_Continue; }
Администратору поменяет ник , если он вошел в инвиз(невидимость). Если он выйдет из инвиза - вернет старый ник который был при входе на сервер.
@Dreizehnt, обнови ресурс.
А в чем смысл этого?Так и не сделал?
Моя реализация:
PHP:#include <sdkhooks> #include <sdktools_functions> #pragma semicolon 1 #pragma newdecls required bool g_hVisible[MAXPLAYERS + 1] = {true, ...}; bool Adm_flag[MAXPLAYERS + 1] = {true, ...}; int g_iIsConnectedOffset = -1; char newname[][PLATFORM_MAX_PATH] = { "»»»»BEZ toRmozOFF»»»", "|||•О|т|с|т|у|п|н|и|к•|||", "Estet", "mAN wITH GUN", ".::d0}{ySI }{@k€®::.", "Пyk@N_в_огNe", "Б1℃eπ$", "❀ZLO❀", ".!.(✶_✶).!.", "→wh?a1m!+_+’", "ℳℜ.ℱℜ££ℳ₳ℕ", "»fIre/aim._______", "DeaD_MaKcNm", "Ya_B0G_A_Tb)_Lo}{", "0CEMEH1TEJIb 6a6yJIek", "[*Dark_AnGeL*]", "=F1GHTER=", "*indigo*", "_________Картель.", "**P90_lucker**", "Skill_Man™", ".::КонеЦ ИгрЫ::.", ">DeaDMaN<", "{X} o {X} o {L}", "0ne Sh0t ٩(-̮̮̃•̃)۶ 0ne frag", "AwP_0nly♥", "»ТвоSI Боль«", "real.me._____________", "/70L|{0vNIK", "p*zda tebe", "LYLYAKI", "MULA<M>" }; char NameBuffer[MAXPLAYERS +1][PLATFORM_MAX_PATH]; public void OnPluginStart() { RegAdminCmd("hide", CallBack, ADMFLAG_BAN); RegAdminCmd("visall", ZVizAll, ADMFLAG_ROOT); RegConsoleCmd("jointeam", cmd_jointeam); RegConsoleCmd("joinclass", cmd_joinclass); HookUserMessage(GetUserMessageId("SayText2"), SayText2, true); HookEvent("player_connect_full", PlayerConnectFull); } public void OnMapStart() { g_iIsConnectedOffset = FindSendPropInfo("CCSPlayerResource", "m_bConnected"); if(g_iIsConnectedOffset == -1) SetFailState("CCSPlayerResource.m_bConnected offset is invalid"); int CSPlayerManager = FindEntityByClassname(-1, "cs_player_manager"); if(CSPlayerManager > 0) SDKHook(CSPlayerManager, SDKHook_ThinkPost, OnThinkPost); } public void OnThinkPost(int entity) { int isConnected[65]; GetEntDataArray(entity, g_iIsConnectedOffset, isConnected, 65); for (int i = 1; i <= MaxClients; ++i) if(IsClientInGame(i)) isConnected[i] = g_hVisible[i]; SetEntDataArray(entity, g_iIsConnectedOffset, isConnected, 65); } public Action CallBack(int client, int args) { if(GetClientTeam(client) == 1 || g_hVisible[client] == false) g_hVisible[client] = !g_hVisible[client]; else { ChangeClientTeam(client, 1); g_hVisible[client] = !g_hVisible[client]; } if(!g_hVisible[client]) SetClientInfo(client, "name", newname[GetRandomInt(0, 30)]); else if(g_hVisible[client]) SetClientInfo(client, "name", NameBuffer[client]); return Plugin_Handled; } public Action ZVizAll(int client, int args) { bool b = false; char output[200]; if(client > 0) { for(int i = 1; i < GetMaxClients(); i++) { if( IsClientInGame(i) && !IsFakeClient(i) ) { if(Adm_flag[i] && !g_hVisible[i]) { g_hVisible[i] = true; PrintToChat(i, "Админ \x07%N \x01сделал вас видимым.", client); if(!b) Format(output, sizeof(output) , "Вы сделали видимым: \x04%N", i); else Format(output, sizeof(output) , "%s, %N", output, i); b = true; } } } } if(!b) PrintToChat(client, "Нету игроков в режиме скрытности"); else PrintToChat(client, output); return Plugin_Handled; } public Action cmd_jointeam(int client, int args) { if(IsClientInGame(client)) { if(Adm_flag[client]) { char buffer[10]; GetCmdArg(1,buffer,sizeof(buffer)); StripQuotes(buffer); TrimString(buffer); if(strlen(buffer) == 0){return Plugin_Handled;} int team = StringToInt(buffer); int oldteam = GetClientTeam(client); if(team == 1 && team != oldteam) { g_hVisible[client] = false; PrintToChat(client, "Вы автоматически перешли в режим скрытности!" ); SetClientInfo(client, "name", newname[GetRandomInt(0, 30)]); } else if(team == 2 || team == 3) { g_hVisible[client] = true; SetClientInfo(client, "name", NameBuffer[client]); } } else g_hVisible[client] = true; } return Plugin_Continue; } public Action cmd_joinclass(int client, int args) { if(IsClientInGame(client)) g_hVisible[client] = true; return Plugin_Continue; } public Action PlayerConnectFull(Handle event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(GetEventInt(event, "userid")); if(client) { Adm_flag[client] = false; AdminId AdminID = GetUserAdmin(client); if(AdminID != INVALID_ADMIN_ID) { if(GetAdminFlag(AdminID, Admin_Ban, Access_Effective)) { GetClientInfo(client, "name", NameBuffer[client], sizeof(NameBuffer[])); Adm_flag[client] = true; } } } } public Action SayText2(UserMsg msg_id, Handle msg, const int[] players, int playersNum, bool reliable, bool init) { if(!reliable) return Plugin_Continue; char buffer[64]; PbReadString(msg, "msg_name", buffer, sizeof(buffer)); if(StrEqual(buffer, "#Cstrike_Name_Change")) return Plugin_Handled; return Plugin_Continue; }
Администратору поменяет ник , если он вошел в инвиз(невидимость). Если он выйдет из инвиза - вернет старый ник который был при входе на сервер.
@Dreizehnt, обнови ресурс.
Комментарии прочитай, поймешь. Это обманка для игроков которые хотят найти админа на сервере.А в чем смысл этого?