Зеркальные ники

kleuser

Участник
Сообщения
1,838
Реакции
733
Сегодня у депозита вышло видео и школьники сразу начали абузить эту фигню.
Есть у кого мысли как с этим можно бороться ?

Видео с багом
 

kleuser

Участник
Сообщения
1,838
Реакции
733
Вариант хороший с блокировкой таких групп. Судя по всему она одна такая вот она https://steamcommunity.com/groups/0b
Вопрос к скриптерам, как проверять людей которые находятся в этой группе и кикать их ?
 

Shid0

🦾 Свет даëт мне сил!
Сообщения
1,130
Реакции
1,256
Вариант хороший с блокировкой таких групп. Судя по всему она одна такая вот она https://steamcommunity.com/groups/0b
Вопрос к скриптерам, как проверять людей которые находятся в этой группе и кикать их ?
Просто отключи теги групп или поставь свои для всех. Зачем голову ломать.
 

Shid0

🦾 Свет даëт мне сил!
Сообщения
1,130
Реакции
1,256
"1)Если зайти на любой сервер и прописать в консоли cl_clanid, то у тебя выйдет что то типо "cl_clanid xxxxx (по стандарту "0") , если стоит 0, то ты не сможешь ставить клант-теги, в созданных тобой группах стима. Заходишь в конфиг игры и жмешь cntrl+f, вводишь clanid и нажимаешь "найти далее", пока не найдешь строчку "cl_clanid 0" (обычно 0 стоит), за место нуля вписываешь идентификатор группы, которую ты создал (найти его можно в редактировании профиля группы)."
через конфиг можно попробовать прописать.
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,076
"1)Если зайти на любой сервер и прописать в консоли cl_clanid, то у тебя выйдет что то типо "cl_clanid xxxxx (по стандарту "0") , если стоит 0, то ты не сможешь ставить клант-теги, в созданных тобой группах стима. Заходишь в конфиг игры и жмешь cntrl+f, вводишь clanid и нажимаешь "найти далее", пока не найдешь строчку "cl_clanid 0" (обычно 0 стоит), за место нуля вписываешь идентификатор группы, которую ты создал (найти его можно в редактировании профиля группы)."
через конфиг можно попробовать прописать.
Чёта не понял рофла. Это совет, как отключить клан-тег НА КЛИЕНТЕ? ЪХАХАХАХХАХАХАХ

Разве такое возможно ? Поподробней
Через GetEntPropString можно, кажется, получить строку с клан-тег и экранировать этот символ, а затем его установить. Само событие установки тега можно отловить так (нашёл где-то в интернете, очень давно, автора не подскажу - прости автор ☹ ):
C-подобный:
public Action OnClientCommandKeyValues(int client, KeyValues kv)
{
    char sCmd[64];
    if (kv.GetSectionName(sCmd, sizeof(sCmd)) && StrEqual(sCmd, "ClanTagChanged", false))
    {
     
    }
  
    return Plugin_Continue;
}

P.S. Либо по-другому: если есть в клантеге этот символ, то в этом "событии" вернуть Plugin_Handled;
P.P.S. Кажется вот, массив из 64, Prop_Send, m_szClan
 

rejchev

менеджер клоунов
Сообщения
1,673
Реакции
1,294
Просто выставить другой клан-тег, тем же CS_SetClientClanTag
Сам символ:
- Коррекция справа-налево (U+202E)


C-подобный:
#pragma newdecls required

#include cstrike

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        char szTag[128];
        CS_GetClientClanTag(iClient, szTag, sizeof(szTag));

        if(!szTag[0] || FindCharInString(szTag, 14844078) == -1)  //  \x202E
            return;

        szTag[0] = 0; // Зануляем клан-тег
        CS_SetClientClanTag(iClient, szTag);
    }
}
 
Последнее редактирование:

kleuser

Участник
Сообщения
1,838
Реакции
733
Просто выставить другой клан-тег, тем же CS_SetClientClanTag
Сам символ:
- Коррекция справа-налево (U+202E)


C-подобный:
#pragma newdecls required

#include cstrike

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        char szTag[128];
        CS_GetClientClanTag(iClient, szTag, sizeof(szTag));

        if(!szTag[0] || FindCharInString(szTag, 14844078) == -1)  //  \x202E
            return;

        szTag[0] = 0;
        CS_SetClientClanTag(iClient, szTag);
    }
}

Так а что получается этот код делает? Заменяет этот символ на что-то (на что не увидел) ?
Может просто удалить из ника этот 202E если это возможно.

Я в коде вообще не шарю :)
 

rejchev

менеджер клоунов
Сообщения
1,673
Реакции
1,294
Так а что получается этот код делает? Заменяет этот символ на что-то (на что не увидел) ?
Может просто удалить из ника этот 202E если это возможно.

Я в коде вообще не шарю :)
Зануляет клан-тег, если таковой символ имеется. Не думаю, что таких групп много.
Можно конечно конкретно символ заменять:

C-подобный:
#pragma newdecls required

#include cstrike

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        char szTag[128];
        CS_GetClientClanTag(iClient, szTag, sizeof(szTag));
       
        int pos;
        if(!szTag[0] || (pos = FindCharInString(szTag, 14844078)) == -1)  //  \x202E
            return;

        szTag[pos] = ' '; // Замена символа на ' ' - пробел
        CS_SetClientClanTag(iClient, szTag);
    }
}
 

rejchev

менеджер клоунов
Сообщения
1,673
Реакции
1,294
Этот вариант работает только если игрок на сервере клан-тэг сменил?
Если игрок зайдёт с уже установленным тегом, то ничего не произойдёт?

Когда Steam отдает информацию о клиенте, то дергается этот форвард, впрочем, он реагирует на любые изменения настроек клиента
 
Последнее редактирование:

Z-RAY-Z

Участник
Сообщения
775
Реакции
243
Захожу на сервер с "зеркальным" клан тэгом и ничего не происходит.
Можешь сделать, чтобы и при подключении заменялся символ?
 

skywalker

Участник
Сообщения
1,164
Реакции
265
Как вообще запретить клан теги групп? Плагин может есть какой нибудь?
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,076
Как вообще запретить клан теги групп? Плагин может есть какой нибудь?
Выше пример от @local, только изменить. Вот так:
C-подобный:
#pragma newdecls required

#include cstrike

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        CS_SetClientClanTag(iClient, "\0");
    }
}
 

rejchev

менеджер клоунов
Сообщения
1,673
Реакции
1,294
Захожу на сервер с "зеркальным" клан тэгом и ничего не происходит.
Можешь сделать, чтобы и при подключении заменялся символ?

Не учел детали, сейчас все должно воркать.
C-подобный:
#pragma newdecls required

#include cstrike

static const char szSymbol[4] = "\xE2\x80\xAE";

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        char szTag[15];
        CS_GetClientClanTag(iClient, szTag, sizeof(szTag));

        if(StrContains(szTag, szSymbol, false) == -1)
            return;

        ReplaceString(szTag, sizeof(szTag), szSymbol, "");

        CS_SetClientClanTag(iClient, szTag);
    }
}
 
Последнее редактирование:

Drumanid

Нестандартное звание
Сообщения
1,863
Реакции
1,749
Не учел детали, сейчас все должно воркать.
C-подобный:
#pragma newdecls required

#include cstrike

static const char szSymbol[4] = "\xE2\x80\xAE";

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        char szTag[128];
        CS_GetClientClanTag(iClient, szTag, sizeof(szTag));

        if(StrContains(szTag, szSymbol, false) == -1)
            return;

        ReplaceString(szTag, sizeof(szTag), szSymbol, "");

        CS_SetClientClanTag(iClient, szTag);
    }
}
Не понимаю для чего нужна глобалка и нельзя ли просто установить NULL_STRING?
И памяти ты че то много взял для клан тега, достаточно 16-32 :)
 
Последнее редактирование:

rejchev

менеджер клоунов
Сообщения
1,673
Реакции
1,294
И памяти ты че то много взял для клан тега, достаточно 16-32 :)
Ну если совсем посчитать, то 14 одно-байтовых символов, правда SM округлит это до 16.
Хоть и Steam сообщество позволяет делать аббревиатуру в 12 символом без намека на количество байт.
 
Последнее редактирование:

kleuser

Участник
Сообщения
1,838
Реакции
733
Просто выставить другой клан-тег, тем же CS_SetClientClanTag
Сам символ:
- Коррекция справа-налево (U+202E)


C-подобный:
#pragma newdecls required

#include cstrike

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        char szTag[128];
        CS_GetClientClanTag(iClient, szTag, sizeof(szTag));

        if(!szTag[0] || FindCharInString(szTag, 14844078) == -1)  //  \x202E
            return;

        szTag[0] = 0; // Зануляем клан-тег
        CS_SetClientClanTag(iClient, szTag);
    }
}
Эта версия не работает люди все равно заходят с зеркальным ником. Версию с полным отключением тэгов из 16 поста не хочется пока использовать(оставлю на крайний случай уже).
 
Сверху Снизу