Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » помощь в редактировании плагина (Нужно отловить причину выхода игрока)
помощь в редактировании плагина
djded Дата: Четверг, 09.01.2020, 13:39:12 | Сообщение # 1
Сообщений: 15
Репутация: 0 [ +/- ]
Привет всем
по моей просьбе, один хороший человек написал данный простенький плагин , который пишет лог файл со всеми киками сервера (за пинг, использование запрещенных команд, спам , убийство заложников и тд)
Но вот что хотелось бы исправить: как видно на скрине (выделено) пишет кики и другие причины отключения, это то что нужно, но вот не хотелось бы что бы писались логи когда человек просто выходит с сервера(на скрине то что не выделено). Тот человек, который писал плагин, говорит что забыл как отловить причину выхода игрока.
Помогите пожалуйста
вот код

Код
#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "Kick Logging",
    author = "",
    version = "1.0",
    url = "https://hlmod.ru/"
};

public void OnPluginStart()
{
    HookEvent("player_disconnect", Event_, EventHookMode_Pre);
}

public Action Event_(Event hEvent, const char[] sName, bool bDontBroadcast)
{
    int client = GetClientOfUserId(hEvent.GetInt("userid"));
    if(IsFakeClient(client)) return;

    char sReason[128], sSteamId[32];
    hEvent.GetString("reason", sReason, sizeof(sReason));
    GetClientAuthId(client, AuthId_Steam2, sSteamId, sizeof(sSteamId));

    LogToFile("addons/sourcemod/logs/KickedPlayers.log", "Player %N <%s> disconnected due \"%s\"", client, sSteamId, sReason);
}



Прикрепления: 0447553.jpg(77.8 Kb)
 
_wS_ Дата: Четверг, 09.01.2020, 14:41:05 | Сообщение # 2
Код
#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "Kick Logging",
    author = "",
    version = "1.0",
    url = "https://hlmod.ru/"
};

public void OnPluginStart()
{
    HookEvent("player_disconnect", Event_, EventHookMode_Pre);
}

public Action Event_(Event hEvent, const char[] sName, bool bDontBroadcast)
{
    int client = GetClientOfUserId(hEvent.GetInt("userid"));
    if (client < 1 || IsFakeClient(client)) return;

    char sReason[128];
    hEvent.GetString("reason", sReason, sizeof(sReason));
    if (strcmp(sReason, "Disconnect by user.", false) != 0)
    {
        char sSteamId[32];
        GetClientAuthId(client, AuthId_Steam2, sSteamId, sizeof(sSteamId));
        LogToFile("addons/sourcemod/logs/KickedPlayers.log", "Player %N <%s> disconnected due \"%s\"", client, sSteamId, sReason);
    }
}
 
djded Дата: Четверг, 09.01.2020, 15:34:00 | Сообщение # 3
Сообщений: 15
Репутация: 0 [ +/- ]
Цитата _wS_ ()
Код

Спасибо большое _wS_ вечером поставлю как только с работы приеду:)

Добавлено (09.01.2020, 18:19:39)
---------------------------------------------
Цитата _wS_ ()
Код

Хм, прикольно, только поставил плагин, и сразу говно читер со спуфером засветился (выделил его красным)

А если по делу, то как видно на скрине, простое отключение от сервера всё так же заносится в лог:(
Может есть ещё идеи?
И ещё вопрос, можно ли добавить в лог ещё ip игрока?

Вот лог


Блин и ошибка в логе появилась:

Прикрепления: 6855718.jpg(273.5 Kb)


Сообщение отредактировал djded - Четверг, 09.01.2020, 18:43:35
 
_wS_ Дата: Четверг, 09.01.2020, 19:06:32 | Сообщение # 4
Странно, уверен что заменил и перезагрузил? Попробуй так (архив внизу).

Код
#pragma semicolon 1

public Plugin:myinfo =
{
    name = "Kick Logging",
    author = "",
    version = "1.0.1",
    url = "https://hlmod.ru/"
};

public OnPluginStart()
{
    HookEvent("player_disconnect", Event_, EventHookMode_Pre);
}

public Action:Event_(Handle:event, const String:name[], bool:silent)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    if (client > 0 && IsClientInGame(client) && !IsFakeClient(client))
    {
        decl String:sReason[128];
        GetEventString(event, "reason", sReason, sizeof(sReason));
        
        if (StrContains(sReason, "by user", false) < 0)
        {
            decl String:sSteamId[32];
            sSteamId[0] = 0;
            GetClientAuthId(client, AuthId_Steam2, sSteamId, sizeof(sSteamId));
            
            decl String:sIp[16];
            sIp[0] = 0;
            GetClientIP(client, sIp, sizeof(sIp), true);
            
            LogToFile("addons/sourcemod/logs/KickedPlayers.log", "Player %N <%s> <%s> disconnected due \"%s\"",
                client, sSteamId, sIp, sReason);
        }
    }
    return Plugin_Continue;
}


----
ip добавил

Прикрепления: disconnect_log.zip(4.0 Kb)


Сообщение отредактировал _wS_ - Четверг, 09.01.2020, 19:10:32
 
djded Дата: Четверг, 09.01.2020, 21:25:20 | Сообщение # 5
Сообщений: 15
Репутация: 0 [ +/- ]
Цитата _wS_ ()
Странно, уверен что заменил и перезагрузил? Попробуй так (архив внизу)

Отлично, ураа, работает всё.
Ошибок нету пока что.
Исходя из времени в логе(на скрине) пишет только то что нужно, обычное отключение не пишет.
Ip пишет тоже.

Спасибо огромное за помощь!
Использую много твоих плагинов, и все работают как часы.

Позже если что, отпишусь ещё насчёт работы плагина.

smexxx

Добавлено (10.01.2020, 12:07:03)
---------------------------------------------
Плагин работает отлично!
Ошибок нету.
Sm1.9
Cs:s v. 91
По моим наблюдениям, перестало писать в лог сообщения о Невозможности играть с впн, тоесть сообщение от плагина VPNblock : Доступ к серверу с VPN запрещён...
Это впринципе не критично, но есть что есть. Перед последним фиксом писало.

Прикрепления: 4813524.jpg(303.8 Kb)


Сообщение отредактировал djded - Суббота, 11.01.2020, 11:08:48
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » помощь в редактировании плагина (Нужно отловить причину выхода игрока)
  • Страница 1 из 1
  • 1
Поиск: