Question

huri
Новичок

Помогите пожалуйста, нужна система когда администратор пишет например /dm [ID игрока] игрока сажало без ввода причины и времени, при этом на 60 минут с причиной ДМа. Т.Е. администратор пишет /dm [ID] и игрока сажает на час с причиной ДМ. Надеюсь понятно.

Share this post


Link to post

5 answers to this question

  • 1
Cawfee
Великий Гуру

@huri, покажите код команды ареста игрока администратором.

Share this post


Link to post
  • 1
Cawfee
Великий Гуру

@huri,

Спойлер

CMD:dm(playerid, params[]) {
    
    if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF"Используйте /dm [id игрока]");
    extract params -> new to_player;
    
    new string[128];
    format(string, sizeof string, "%d 60 DeathMatch", to_player); // 60 - время ареста, DeathMatch - причина
    callcmd::jail(playerid, string);
    return 1;
}

 

 

Share this post


Link to post
  • 1
trevison
Активный

всё точно также

CMD:/*команда*/(playerid, params[]) {
    
    if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF"Используйте /команда [id игрока]");
    extract params -> new to_player;

    new string[128];
    format(string, sizeof string, "%d 30 причина", to_player);  // 30 - кол-во дней
    callcmd::ban(playerid, string);
    return 1;
}
CMD:/*команда*/(playerid, params[]) {
    
    if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF"Используйте /команда [id игрока]");
    extract params -> new to_player;

    new string[128];
    format(string, sizeof string, "%d причина", to_player);
    callcmd::warn(playerid, string);
    return 1;
}

 

Share this post


Link to post
  • 0
huri
Новичок

@Cawfee Система именно /jail
 

Спойлер

CMD:jail(playerid, params[])
{
    if(Test_server == 1return SCM(playerid, -1"Íà ìîìåíò ÇÁÒ, â öåëÿõ áåçîïàñíîñòè, ïîäîáíûå êîìàíäû îòêëþ÷åíû");
    if(GetPlayerAdminEx(playerid) < 2return 1;
             else if(admin_logged[playerid] == falsereturn SendClientMessage(playerid, 0x999999FF"Âû íå àâòîðèçèðîâàíû, äëÿ ýòîãî èñïîëüçóéòå /alogin");
    if(GetPlayerAntiBan(playerid) == 3return SendClientMessage(playerid, 0xCECECEFF"Íå òàê ÷àñòî!");
    if(GetPlayerVzlom(playerid) == 1return SendClientMessage(playerid, 0x999999FF"Âàø àêêàóíò ïîäîçðåâàåòñÿ âî âçëîìå, äîñòóï ê ìíîãèì äåéñòâèÿì çàáëîêèðîâàí.");

    if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF"Èñïîëüçóéòå: /jail [id èãðîêà] [âðåìÿ â ìèíóòàõ] [ïðè÷èíà (íåîáÿçàòåëüíî)]");

    extract params -> new to_player, jail_time, string: reason[30];

    if(GetPlayerPrikol(to_player) == 1)  return SendClientMessage(playerid, 0xCECECEFF"Äàííîãî èãðîêà íåëüçÿ ïîñàäèòü!");
    if(!IsPlayerConnected(to_player) || !IsPlayerLogged(to_player))
        return SendClientMessage(playerid, 0xCECECEFF"Òàêîãî èãðîêà íåò");

    if(!(1 <= jail_time <= 10000)) return SendClientMessage(playerid, 0xCECECEFF"Âðåìÿ äîëæíî áûòü íå ìåíüøå 1 è íå áîëüøå 10.000 ìèíóò");
    if(GetPlayerData(to_player, P_JAIL) > 0return SendClientMessage(playerid, 0xCECECEFF"Ýòîò èãðîê óæå ñèäèò â òþðüìå");
    //else if(to_player == playerid) return SendClientMessage(playerid, 0xCECECEFF, "Íåëüçÿ ïîñòàâèòü çàòû÷êó ñàìîìó ñåáå");

    new fmt_msg[128];
    format(fmt_msg, sizeof fmt_msg, "Àäìèíèñòðàòîð %s ïîñàäèë â äåìîðãàí èãðîêà %s íà %d ìèí", GetPlayerNameEx(playerid), GetPlayerNameEx(to_player), jail_time);
    
    AddPlayerData(playerid, P_ADMDM, +, 1);
    UpdatePlayerDatabaseInt(playerid, "admdemorgan", GetPlayerData(playerid, P_ADMDM));

    if(strlen(reason))
        format(fmt_msg, sizeof fmt_msg, "%s. Ïðè÷èíà: %s", fmt_msg, reason);

    SendClientMessageToAll(0xFF0000AA, fmt_msg);
    SetPlayerData(playerid, P_ANTIBAN, 1);
    SetTimerEx("AntiBan"20000false"i", playerid);

    SendClientMessage(to_player, 0xCECECEFF"Âðåìÿ äî îêîí÷àíèÿ çàêëþ÷åíèÿ: {CCCC00}/time");

    JailPlayer(to_player, jail_time);

    format(fmt_msg, sizeof fmt_msg, "Ïîñàäèë â äåìîðãàí %s[%d] íà %d ìèí. Ïðè÷èíà: %s",
    GetPlayerNameEx(to_player), GetPlayerAccountID(to_player), jail_time, reason);

    SendLog(playerid, LOG_TYPE_ADMIN_JAIL, fmt_msg);

    return 1;
}

 

 

Edited by Cawfee

Заметка от Cawfee , создано

3.2. Код необходимо брать в тег "Код", а код более 10 строк – еще и в "Спойлер". Как это сделать рассказано в разделе "FAQ".

Устное предупреждение.

Share this post


Link to post
  • 0
huri
Новичок

@Cawfee А если блокировку или варн?

 

Варн:
 

Спойлер

CMD:warn(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) < 2) return 1;
    if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF, "Èñïîëüçóéòå: /warn [id èãðîêà] [ïðè÷èíà (íåîáÿçàòåëüíî)]");
    if(Test_server == 1) return SCM(playerid, -1, "Íà ìîìåíò ÇÁÒ, â öåëÿõ áåçîïàñíîñòè, ïîäîáíûå êîìàíäû îòêëþ÷åíû");
    if(GetPlayerAntiBan(playerid) == 10) return SendClientMessage(playerid, 0xCECECEFF, "Íå òàê ÷àñòî!");
            else if(admin_logged[playerid] == false) return SendClientMessage(playerid, 0x999999FF, "Âû íå àâòîðèçèðîâàíû, äëÿ ýòîãî èñïîëüçóéòå /alogin");
    if(GetPlayerVzlom(playerid) == 1) return SendClientMessage(playerid, 0x999999FF, "Âàø àêêàóíò ïîäîçðåâàåòñÿ âî âçëîìå, äîñòóï ê ìíîãèì äåéñòâèÿì çàáëîêèðîâàí.");

    extract params -> new to_player, string:reason[66];

    if(GetPlayerPrikol(to_player) == 1)  return SendClientMessage(playerid, 0xCECECEFF, "Äàííîãî èãðîêà íåëüçÿ çàñïàâíèòü!");
    if(!IsPlayerConnected(to_player) || !IsPlayerLogged(to_player))
        return SendClientMessage(playerid, 0xCECECEFF, "Òàêîãî èãðîêà íåò");

    if(GetPlayerAdminEx(to_player) > GetPlayerAdminEx(playerid))
        return SendClientMessage(playerid, 0xCECECEFF, "Íåëüçÿ âûäàòü ïðåäóïðåæäåíèå àäìèíó âûøå ïî ðàíãó");

    AddPlayerData(to_player, P_WARN, +, 1);
    SetPlayerData(to_player, P_WARN_TIME, gettime() + (86400 * 10));

    new fmt_msg[128];
    format(fmt_msg, sizeof fmt_msg, "Àäìèíèñòðàòîð %s âûäàë ïðåäóïðåæäåíèå èãðîêó %s [%d|3]", GetPlayerNameEx(playerid), GetPlayerNameEx(to_player), GetPlayerData(to_player, P_WARN));

    if(strlen(reason) > 0)
        format(fmt_msg, sizeof fmt_msg, "%s. Ïðè÷èíà: %s", fmt_msg, reason);

    SendClientMessageToAll(0xFF0000AA, fmt_msg);
    SetPlayerData(to_player, P_ADMIN, 0);
    UpdatePlayerDatabaseInt(to_player, "admin", 0);

    TextDrawHideForPlayer(to_player, adm_menu_TD[0]);
    TextDrawHideForPlayer(to_player, adm_menu_TD[1]);
    TextDrawHideForPlayer(to_player, adm_menu_TD[2]);

    TextDrawHideForPlayer(to_player, time_TD);

    InvitePlayer(to_player, 0, 0, true);

    new uid = GetPlayerAccountID(to_player);
    new warns = GetPlayerData(to_player, P_WARN);
    new warns_time = GetPlayerData(to_player, P_WARN_TIME);

    format(fmt_msg, sizeof fmt_msg, "Âûäàë âàðí %s[%d] (%d/3). Ïðè÷èíà: %d", GetPlayerNameEx(to_player), uid, warns, reason);
    SendLog(playerid, LOG_TYPE_ADMIN_WARN, fmt_msg);

    if(warns >= 3)
    {
        SendClientMessage(to_player, 0xFF5533FF, "Àêêàóíò çàáëîêèðîâàí íà 10 äíåé");

        warns =
        warns_time = 0;

        AddBan(uid, gettime(), 10, GetPlayerIpEx(to_player), "ïîëó÷åíî 3 âàðíà", GetPlayerNameEx(playerid));
        BanEx(to_player, "ïîëó÷åíî 3 âàðíà");
    }
    else Kick:(to_player);

    format(fmt_msg, sizeof fmt_msg, "UPDATE accounts SET warn=%d,warn_time=%d WHERE id=%d", warns, warns_time, uid);
    mysql_query(mysql, fmt_msg, false);

    return 1;
}

 


Ban:

Спойлер

CMD:ban(playerid, params[])
{
    if(Test_server == 1) return SCM(playerid, -1, "Íà ìîìåíò ÇÁÒ, â öåëÿõ áåçîïàñíîñòè, ïîäîáíûå êîìàíäû îòêëþ÷åíû");
    if(GetPlayerAntiBan(playerid) == 11) return SendClientMessage(playerid, 0xCECECEFF, "Íå òàê ÷àñòî!");
    if(GetPlayerAdminEx(playerid) < 3) return 1;
            else if(admin_logged[playerid] == false) return SendClientMessage(playerid, 0x999999FF, "Âû íå àâòîðèçèðîâàíû, äëÿ ýòîãî èñïîëüçóéòå /alogin");
    if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF, "Èñïîëüçóéòå: /ban [id èãðîêà] [ñðîê â äíÿé] [ïðè÷èíà (íåîáÿçàòåëüíî)]");

    extract params -> new to_player, ban_time, string:reason[30];
    if(GetPlayerPrikol(to_player) == 1)  return SendClientMessage(playerid, 0xCECECEFF, "Äàííîãî èãðîêà íåëüçÿ çàáàíèòü!");
    if(!IsPlayerConnected(to_player) || !IsPlayerLogged(to_player))
        return SendClientMessage(playerid, 0xCECECEFF, "Òàêîãî èãðîêà íåò");

    new max_days = GetPlayerAdminEx(playerid) > 4 ? 365 : 30;

    new fmt_msg[128];

    if(!(1 <= ban_time <= max_days))
    {
        format(fmt_msg, sizeof fmt_msg, "Ñðîê áàíà ìîæåò áûòü îò 1 äî %d äíåé", max_days);

        return SendClientMessage(playerid, 0xCECECEFF, fmt_msg);
    }

    TextDrawHideForPlayer(to_player, adm_menu_TD[0]);
    TextDrawHideForPlayer(to_player, adm_menu_TD[1]);
    TextDrawHideForPlayer(to_player, adm_menu_TD[2]);

    TextDrawHideForPlayer(to_player, time_TD);

    if(GetPlayerAdminEx(to_player) > GetPlayerAdminEx(playerid))
        return SendClientMessage(playerid, 0xCECECEFF, "Íåëüçÿ çàáàíèòü àäìèíèñòðàòîðà âûøå ïî ðàíãó");
    //if(to_player == playerid) return SendClientMessage(playerid, 0xCECECEFF, "Íåëüçÿ çàáàíèòü ñàìîãî ñåáÿ");

    format(fmt_msg, sizeof fmt_msg, "Àäìèíèñòðàòîð %s çàáàíèë èãðîêà %s íà %d äíåé", GetPlayerNameEx(playerid), GetPlayerNameEx(to_player), ban_time);
    
    AddPlayerData(playerid, P_ADMBAN, +, 1);

    if(strlen(reason) > 0)
        format(fmt_msg, sizeof fmt_msg, "%s. Ïðè÷èíà: %s", fmt_msg, reason);

    SendClientMessageToAll(0xFF0000AA, fmt_msg);

    if(!strlen(reason)) reason = "None";

    format(fmt_msg, sizeof fmt_msg, "Çàáàíèë %s[%d] íà %d äíåé. Ïðè÷èíà %s", GetPlayerNameEx(to_player), GetPlayerAccountID(to_player), reason);
    SetPlayerData(playerid, P_ANTIBAN, 1);
    SetTimerEx("AntiBan", 20000, false, "i", playerid);
    SendLog(playerid, LOG_TYPE_ADMIN_BAN, fmt_msg);
    SetPlayerData(to_player, P_ADMIN, 0);
    SetPlayerData(to_player, P_MIND, 0);
    SetPlayerData(to_player, P_FULL, 0);
    SetPlayerData(to_player, P_GIVEFULL, 0);
    UpdatePlayerDatabaseInt(to_player, "admin", 0);
    UpdatePlayerDatabaseInt(to_player, "mind", 0);
    UpdatePlayerDatabaseInt(to_player, "full", 0);
    UpdatePlayerDatabaseInt(to_player, "givefull", 0);

    AddBan(GetPlayerAccountID(to_player), gettime(), ban_time, GetPlayerIpEx(to_player), reason, GetPlayerNameEx(playerid));
    BanEx(to_player, reason);
    return 1;
}

 

 

Edited by huri

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Elvis
      By Elvis
      Идёт набор в команду по разработке CRMP-проекта! 
       
      Требуются специалисты на следующие роли:  
      - Технический администратор (1 человек)  
      - Технические разработчики (2 человека)  
      - Внутриигровые разработчики (5 человек)  
       
      Все подробности и условия обсудим лично — пишите руководителю в Telegram - @AntonLegost
    • Jasper231
      By Jasper231
      Идет набор в команду для создания CRMP MOBILE проекта. Нам нужны
      1) Кодеры
      2) Мапперы
      3) Люди которые вообще разбираются в создании серверов
       
      об зарпалте договоримся и об остальном поговорим в вк: @haslyyyim
    • otec
      By otec
      Копия радмира
      ║☑️Название CORVUS CRMP
      ║☑️Сервер у которого есть будущее и будет
      ║☑️Адекватная администрация
      ║☑️Идут наборы в Лидеры, Админы.
      ║☑️Вступайте в Telegram: t.me/corvusgta « Вступай!
      ║☑️Вступайте в ВКонтакте: vk.com/corvus_crmp « Вступай!
      ║☑️Постоянные ПРИЗЫ - МП | Интересный Мод
      ║☑️Все новости - обновления в Telegram и ВКонтакте
      ║☑️Сайт - corvus-crmp.ru
      ║☑️Форум - forum.corvus-crmp.ru
      ║☑️Скачать лаунчер - corvus-crmp.ru
      ║☑️Заходи мы ждем тебя
      ║☑️В случае возможных ошибок пишите сюда:@corvus_help_bot
    • vicegame
      By vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК