Русское сообщество по скриптингу

Отлов команд прописываемых игроком в консоле

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Отлов команд прописываемых игроком в консоле

Сообщение simplyDavchik » 18 сен 2017, 19:50

Я создатель сервера, пара игроков как-то крашат сервер, с плагинами быть проблем не может (ну я так думаю), мне нужно узнать что они прописывают в консоле, поможете как это можно осуществить?
Даже если цель не достижима, попробовать стоит.
Аватара пользователя
simplyDavchik
 
Сообщения: 132
Зарегистрирован: 08 апр 2017, 23:28
Откуда: Латвия
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Java
C++
C#
Pawn

Re: Отлов команд прописываемых игроком в консоле

Сообщение Subb98 » 18 сен 2017, 20:19

simplyDavchik писал(а):Я создатель сервера

Для чего вы в каждой теме пишите эту очевидную и бесполезную информацию? Это какой-то секретный шифр о котором известно только членам "тайного клуба создателей серверов"?

simplyDavchik писал(а):пара игроков как-то крашат сервер, с плагинами быть проблем не может (ну я так думаю)

Прежде всего, следует убедиться, что в плагинах нет бэкдоров:
  • Отключить все плагины с закрытым исходным кодом (если такие есть);
  • Все установленные плагины с открытым исходным кодом проверить визуально (пробежаться глазами по коду) на наличие бэкдоров и ещё раз перекомпилировать (на всякий случай)
Убедиться, что сервер защищён от актуальных уязвимостей (эксплойтов), если это не так, то принять соответствующие меры (доустановить необходимую защиту).

simplyDavchik писал(а):мне нужно узнать что они прописывают в консоле, поможете как это можно осуществить?

Никак. Максимум, что у вас есть, это логи сервера и дамп после падения.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Отлов команд прописываемых игроком в консоле

Сообщение simplyDavchik » 18 сен 2017, 20:36

Ладно, попробую что-нибудь сделать
Даже если цель не достижима, попробовать стоит.
Аватара пользователя
simplyDavchik
 
Сообщения: 132
Зарегистрирован: 08 апр 2017, 23:28
Откуда: Латвия
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Java
C++
C#
Pawn

Re: Отлов команд прописываемых игроком в консоле

Сообщение Subb98 » 18 сен 2017, 20:46

simplyDavchik, вы спрашивайте, если будет что-то непонятно. Только задавайте вопросы более конкретные, а не абстрактные.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Отлов команд прописываемых игроком в консоле

Сообщение oReo » 20 сен 2017, 12:15

simplyDavchik, Компилируй плагин и ставь вторым тоесть после бан системы (если она есть) или первым.
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>

#define PLUGIN "CLogger" // Console Logger
#define VERSION "1.0"
#define AUTHOR "???"

new g_DefaultCmd[][] =
{
    "fullupdate","lastinv","menuselect","vban","specmode","VModEnable","specmode","spec_set_ad",
    "vmodenable","cl_setautobuy","cl_setrebuy","buy","buyequip","weapon_knife","weapon_flashbang",
    "weapon_smokegrenade","buyammo1","buyammo2","showbriefing"
};

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
}

public client_command(id)
{
    static Float:Last_Cmd[33];
    if(Last_Cmd[id] == get_gametime()) 
    
{
        Last_Cmd[id] = get_gametime();
        return PLUGIN_HANDLED;
    }
    Last_Cmd[id] = get_gametime();

    static sArgv[64],sArgv1[64];
    read_argv(0, sArgv, 63);
    read_args(sArgv1, charsmax(sArgv1));
    remove_quotes(sArgv); trim(sArgv);

    new szName[32],szIP[32],players[32],pnum;
    get_players(players, pnum, "ch");
    get_user_ip(id, szIP, charsmax(szIP));
    get_user_name(id, szName, charsmax(szName));

    if(is_user_connected(id))
    {
        for(new i = 0; i < sizeof(g_DefaultCmd); i++)
        {
            if(equal(g_DefaultCmd[i],sArgv))
            {
                return PLUGIN_CONTINUE;
            }
        }
        static Float:FLastMsg[33],Float:Gametime;Gametime = get_gametime();
        if(Gametime > (FLastMsg[id] + 1.5)) 
        
{
            for(new i = 0; i < pnum; i++) 
            
{
                if(get_user_flags(players[i]) & ADMIN_BAN)
                {
            if(!equal(sArgv, ""))
            {
                ColorChat(players[i], NORMAL, "[^3CLogger^1] Игрок ^4%s ^1Прописал В Консоль ^1[^4%s %s^1]",szName,sArgv,sArgv1);
                log_to_file("console_log.txt", "<%s> writed %s %s", szName, sArgv, sArgv1);
            }
                }
            }
            FLastMsg[id] = Gametime;
        }
    }
    return PLUGIN_CONTINUE;
}
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: Отлов команд прописываемых игроком в консоле

Сообщение ALIK » 20 сен 2017, 16:05

oReo, почему бы не использовать дерево вместо цикла?
Аватара пользователя
ALIK
 
Сообщения: 227
Зарегистрирован: 01 июн 2010, 23:05
Благодарил (а): 116 раз.
Поблагодарили: 55 раз.
Опыт программирования: Меньше недели
Языки программирования: Pawn

Re: Отлов команд прописываемых игроком в консоле

Сообщение oReo » 21 сен 2017, 06:13

ALIK, я в павне не оч давно, поэтому хз что за дерево :D
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: Отлов команд прописываемых игроком в консоле

Сообщение Subb98 » 21 сен 2017, 07:28

«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15