видно steam id других игроков

Тема в разделе "Запросы", создана пользователем Максим Юдачёв, 27 мар 2015.

  1. Максим Юдачёв

    Максим Юдачёв

    Сообщения:
    9
    Симпатии:
    0
    видно steam id других игроков, стразу говорю, пробывал снимать админку и писать status
    в консоли всё ровно видно id всех игроков, помогите сделать чтобы игрок мог видеть только свой steam id
    Кто реально поможет, +
    Безымянный.jpg
     
    Последнее редактирование: 27 мар 2015
  2. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    плагин поствить не судьба?
    немножко по форуму поискать то.
     
  3. Максим Юдачёв

    Максим Юдачёв

    Сообщения:
    9
    Симпатии:
    0
    Название напишешь плагина ?
     
  4. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    чтот вроде такого

    PHP:
    public OnPluginStart() 
    {      
    RegConsoleCmd("status"Block); 

    public 
    Action:Block(clientargs
    {          
    return 
    Plugin_Handled
    }
     
  5. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.978
    semjef, не сработает
     
  6. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    R1KO, окай(
    тогда надо думать( а это лень(
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.978
    AlmazON, вроде тоже не сработает, команда серверная. Обсуждали же
     
  8. Максим Юдачёв

    Максим Юдачёв

    Сообщения:
    9
    Симпатии:
    0
    Так есть какой-нибудь выход
    AddCommandListener этот
    Или этот RegConsoleCmd ?
     
  9. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.511
    Симпатии:
    1.963
    Блокировка показа SteamID для команды status

    Работает!
    PHP:
    public OnPluginStart() AddCommandListener(CommandBlock"status");

    public 
    Action:CommandBlock(clientString:command[], args) return Plugin_Handled;
    Это ты с sm plugins list перепутал)
     
    TWRP нравится это.
  10. Максим Юдачёв

    Максим Юдачёв

    Сообщения:
    9
    Симпатии:
    0
    Re: Блокировка показа SteamID для команды status

    А куда вписать это ?
    Я просто не знаю, как это сделать.
     
  11. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.511
    Симпатии:
    1.963
    В блокнот (любой текстовый редактор). Установить кодировку ANSI или UTF-8 без BOM, сохранить с расширением sp (должно получиться BlockStatus.sp, например) и компилировать.
     
    TWRP нравится это.
  12. TWRP

    TWRP Read Only

    Сообщения:
    317
    Симпатии:
    45
    можно сделать чтобы админам работал статус ?
     
  13. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.511
    Симпатии:
    1.963
    Блокировка показа SteamID для команды status

    PHP:
    public OnPluginStart() AddCommandListener(CommandBlock"status");

    public 
    Action:CommandBlock(clientString:command[], args) return client && GetUserAdmin(client)==INVALID_ADMIN_ID Plugin_Handled:Plugin_Continue;
    Так будет работать команда status и в консоли самого сервера (ведь тоже администраторские полномочия).
     
    TWRP нравится это.
  14. Максим Юдачёв

    Максим Юдачёв

    Сообщения:
    9
    Симпатии:
    0
    Правильно сделал ?
    Вот фото:



    Выполнение 1.... 1.jpg
    Выполнение 2.... 2.jpg
    Выполнение 3.... 3.png
    Выполнение 4.... 4.jpg
    Выполнение 5.... 5.jpg

    Теперь можно кидать на сервер ?
    Сервер на linux, компилировал через windows compile.exe
    тут лежит /addons/sourcemod/scripting/compiled будучи скопилированный BlockStatus.sp поменялось на расширение BlockStatus.smx
     
  15. BatyaMedic

    BatyaMedic Ньюсмейкер

    Сообщения:
    769
    Симпатии:
    123
    Да.
     
    Максим Юдачёв нравится это.
  16. Максим Юдачёв

    Максим Юдачёв

    Сообщения:
    9
    Симпатии:
    0
    Проблема, появилась, теперь и не игроки не видят и не админы.
    В чём может быть проблема ?

    писал так:

    PHP:
    public OnPluginStart() AddCommandListener(CommandBlock"status"); 

    public 
    Action:CommandBlock(clientString:command[], args) return Plugin_Handled;
     
  17. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.511
    Симпатии:
    1.963
    Для админов писать так.
     
    TWRP и Максим Юдачёв нравится это.
  18. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    Когда то переделал status_protect. Может кому пригодится)
    В общем status показывает всем. Ping тоже, там еще вроде защита какая та было от спама ping-status
    Только админам показывает настоящие стим айди других админов.
    Простым игрокам отображает не настоящие стим айди админов.
    Исходник если найду скину...
     

    Вложения:

    Последнее редактирование: 27 мар 2015
  19. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.715
    Симпатии:
    452
    Re: Блокировка показа SteamID для команды status

    Не катит, при попытке написания status от клиента - client берется сервера (т.е. 0)

    P.S.
    Сидел-писал
    PHP:
    #include <sourcemod>

    public Plugin:myinfo =
    {
        
    name        "Status Ping Flood Control",
        
    author        "Danyas" ,
        
    description    "Управление доступом к командам status и ping.",
        
    version        "beta",
        
    url            "N/A"
    }

    new 
    Handle:    g_hMaxCmds,
        
    Handle:    g_hAdminImmunity,
        
    Handle:    g_hAfterLimitAction,
        
    Handle:    g_hActionReason,
        
    Handle:    g_hBanDuration,
                
    g_WCmds[MAXPLAYERS 1];

    public 
    OnPluginStart()
    {
        
    g_hMaxCmds            CreateConVar("sm_spfc_cmds_max",            "5",    "Допустимое количество вводимых команд на раунд."_true1.0);
        
    g_hAdminImmunity    CreateConVar("sm_spfc_admin_immunity",        "1",    "Имунитет для админов. Для сервера имунитет включен в любом случае.");
        
    g_hAfterLimitAction    CreateConVar("sm_spfc_action",    "1",        "0 - перестать отвечать на команды до конца раунда. \n 1 - кикнуть \n 2 - забанить");
        
    g_hActionReason        CreateConVar("sm_spfc_action_reason",        "Флуд командами Status '|' Ping.",    "Работает когда sm_spfc_action больше нуля! \n Выводимая причина кика '|' бана игроку");
        
    g_hBanDuration        CreateConVar("sm_spfc_action_duration",    "5",    "Работает когда sm_spfc_action равен двум! \n Длительность бана игрока");

        
    RegConsoleCmd("status",spChecker);    RegConsoleCmd("ping",spChecker);    // Add's checker for cmds status and ping
        
    HookEvent("round_end"Event_RoundEndEventHookMode_PostNoCopy);                    // Hooking roundend event
    }

    public 
    Action:spChecker(clientargs)
    {
        if (
    client == 0)                                                                        {                                                return Plugin_Continue;    }        //Server immunity Check
        
    else if (GetConVarBool(g_hAdminImmunity) && GetUserAdmin(client) != INVALID_ADMIN_ID)    {                                                return Plugin_Continue;    }        //Admin Immunity Check
        
    else
        {    
    g_WCmds[client]++                                 // +1 to cmd count
            
    if(g_WCmds[client] > GetConVarInt(g_hMaxCmds))    // Validate if used cmds count higher then sm_spfc_cmds_max
            
    {    if (!IsClientInKickQueue(client))                // execlude invalid client errors
                
    {
                    new 
    String:reason[64];
                    
    GetConVarString(g_hActionReasonreason64);
                    switch (
    GetConVarInt(g_hAfterLimitAction))
                    {
                        case 
    1:        {    g_WCmds[client] = 0;    KickClient(client"[SPFC] %s",reason);                                                                    return Plugin_Handled;}
                        case 
    2:        {    g_WCmds[client] = 0;    ServerCommand("sm_ban #%d %i [SPFC]\"%s\""GetClientUserId(client), GetConVarInt(g_hBanDuration), reason);    return Plugin_Handled;}
                        default:    {    
    PrintToConsole(client"[SPFC] %s. До конца раунда они не будут работать."reason);                                            return Plugin_Handled;}
                    }
                }
                return 
    Plugin_Handled;
            }
            return 
    Plugin_Continue;
        }
    }

    public 
    Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
    {
        for(new 
    1<= MaxClientsi++)    g_WCmds[i] = 0// reset cmds count
    }
     
  20. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.511
    Симпатии:
    1.963
    Тогда зачем его проверял? Когда он у тебя не 0?
    Функция всегда должна возвращать значение, т.е. конечная скобка должна быть лишь одна.