Иконка ресурса

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
очень не хватает именно команды sm_hide

Согласен, приставка sm_ в двух командах не помешает.
В исходнике меняйте и перекомпилируйте...
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);
 

Vladimir Serebrennikov

#говнокодер
Сообщения
388
Реакции
71
В исходнике меняйте и перекомпилируйте...
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);


thx
 

All

Random
Сообщения
553
Реакции
228
а можно как-то в плагин добавить чтоб было не "Nikcname присоединился к наблюдателям", а "Nikcname вышел с сервера"?
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
а можно как-то в плагин добавить чтоб было не "Nikcname присоединился к наблюдателям", а "Nikcname вышел с сервера"?
Зачем? Если можно просто скрыть сообщения о переходе команд.

PHP:
public void OnPluginStart()
{
   HookEvent("player_team", PlayerTeam, EventHookMode_Pre);
}

public Action PlayerTeam(Handle event, const char[] name, bool dontBroadcast)
{
   if(!dontBroadcast)
   {
       SetEventBroadcast(event, true);
   }
}
 
  • Мне нравится
Реакции: All
A

Altaj

Игроки прописывают в чат !admins и всех админов видно. Можно сделать, чтобы эта команда не показывала скрытых админов?
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Игроки прописывают в чат !admins и всех админов видно. Можно сделать, чтобы эта команда не показывала скрытых админов?
g_iIsConnectedOffset = FindSendPropOffs("CCSPlayerResource", "m_bConnected");
if(GetEntData(client, g_iIsConnectedOffset) == 0) это скрытый админ
 

Felton

Участник
Сообщения
799
Реакции
59
Скажите это нормально ?Когда я перехожу из скрытого режима в игру в чате пишет вот это unconnected is joining the Counter-Terrorist force и это все видят .И еше когда говориш по микрафону в скрытом режиме то ник у меня unconnected.Так и должно?
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Скажите это нормально ?Когда я перехожу из скрытого режима в игру в чате пишет вот это unconnected is joining the Counter-Terrorist force и это все видят .И еше когда говориш по микрафону в скрытом режиме то ник у меня unconnected.Так и должно?
перед тем как постить читай предыдущие посты, хотя бы несколько
 

MaZa

Участник
Сообщения
1,732
Реакции
980
пишем в консоль ping
и в пинге показывает скрытого администратора)
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
О да, так и сделаю чуть позже, это ты круто придумал
Так и не сделал?

Моя реализация:
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, обнови ресурс.
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Так и не сделал?

Моя реализация:
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, обнови ресурс.
Мне стало лень
 
A

Altaj

Так и не сделал?

Моя реализация:
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, обнови ресурс.
А в чем смысл этого?
 

Felton

Участник
Сообщения
799
Реакции
59
Скачал с первой страници плагин установил всё работает ок!Менял права что бы и младшие админы(ADMFLAG_BAN) автомарически переходили в скрытый режим но ничего не получилосьТочнее они заходят автоматически но я с правами ADMFLAG_ROOT теперь перестал автоматически переходить в скрытый режим так и сижу в спектрах пока с адинки не спрячусь.Как это сделать? Посоветуйте.
Всё разобрался сам в исходнике в самом низу прописал так
if(GetUserFlagBits(client) & ADMFLAG_BAN || GetUserFlagBits(client) & ADMFLAG_ROOT)
 
Последнее редактирование:
Сверху Снизу