shape1
shape2
shape3
shape4
shape7
shape8

/kick - кик с диалогом как на Radmir


Давид Ордян

Модератор
Команда портала
Модератор
09.10.2021
180
10
11
0
/kick - кик с диалогом как на Radmir

C++:
CMD:kick(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) < 5) return 1;
    else if(admin_logged[playerid] == false) return SendClientMessage(playerid, 0x999999FF, "Вы не авторизированы, для этого используйте /alogin");
    if(GetPlayerAntiBan(playerid) == 3) return SendClientMessage(playerid, 0xCECECEFF, "Не так часто!");
    if(GetPlayerVzlom(playerid) == 1) return SendClientMessage(playerid, 0x999999FF, "Ваш аккаунт подозревается во взломе, доступ к многим действиям заблокирован.");

    if(!strlen(params)) return SendClientMessage(playerid, COLOR_GOLD, "Используйте:{"#cW"} /kick [ID игрока] [причина (необязательно)]");

    extract params -> new to_player;

    if(!IsPlayerConnected(to_player)) return SendClientMessage(playerid, 0xFF6600FF, "Такого игрока нет");
    else if(GetPlayerAdminEx(to_player) > GetPlayerAdminEx(playerid)) return SendClientMessage(playerid, 0xFF6600FF, "Нельзя кикнуть администратора выше по рангу");

    new reason[31];
    sscanf(params, "{d}s[30]", reason);

    new fmt_msg[128];
    format(fmt_msg, sizeof fmt_msg, "Администратор %s кикнул игрока %s", GetPlayerNameEx(playerid), GetPlayerNameEx(to_player));

    if(strlen(reason) > 0)
        format(fmt_msg, sizeof fmt_msg, "%s. Причина: %s", fmt_msg, reason);

    SendClientMessageToAll(0xFF5533FF, fmt_msg);

    format(fmt_msg, sizeof fmt_msg, "Кикнул %s[acc:%d]", GetPlayerNameEx(to_player), GetPlayerAccountID(to_player));
    SendLog(playerid, LOG_TYPE_ADMIN_ACTION, fmt_msg);

    new message[324];

    new    year, month, day;

    getdate(year, month, day);

    format
    (
        message,
        sizeof(message),
        "{"#cW"}Дата: %d %s %d г.\n\
        {"#cW"}Ваш ник: %s\n\
        {"#cW"}Ник администратора: %s\n\
        {"#cW"}Причина: %s\n\n\
        {"#cW"}Если Вы не согласны с наказанием, сделайте скриншот (F8)\n\
        И оставьте жалобу на форуме {"#cGold"}ссылка на форум\n\
        ",
           day,
        GetMonthName(month),
        year,
        GetPlayerNameEx(to_player),
        GetPlayerNameEx(playerid),
        reason
    );
    Dialog(to_player, INVALID_DIALOG_ID, DIALOG_STYLE_MSGBOX, "{FF6600}Отключение от сервера", message, "Закрыть", "");

    //new query[400];

    //mysql_format(mysql, query, sizeof query, "UPDATE accounts SET a_kick = a_kick+1 WHERE name = '%s'", GetPlayerNameEx(playerid));
    //mysql_query(mysql, query, false);

    //mysql_format(mysql, query, sizeof query, "INSERT INTO alogs (acc_id,type,name_adm,time,reason) VALUES (%d,'%e','%e',%d,'%e')", GetPlayerAccountID(to_player), "Кик", GetPlayerNameEx(playerid), gettime(), reason);
    //mysql_query(mysql, query, false);

//    Kick(to_player);
    Kick:(to_player);

    return 1;
}