Вопросы

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

Поделиться сообщением


Ссылка на сообщение

5 ответов на этот вопрос

  • 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;
}

 

 

Поделиться сообщением


Ссылка на сообщение
  • 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;
}

 

Поделиться сообщением


Ссылка на сообщение
  • 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;
}

 

 

Отредактировано пользователем Cawfee

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

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

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

Поделиться сообщением


Ссылка на сообщение
  • 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;
}

 

 

Отредактировано пользователем huri

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба