• 0

[закрыто] Кто-то может помочь с системой быстрых наказаний от администрации?

Question

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

Share this post


Link to post

5 answers to this question

  • 1

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

Share this post


Link to post
  • 1

@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

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

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

@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

@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
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By def
      arizona.pwn(23374) : error 012: invalid function call, not a valid address
      arizona.pwn(23374) : error 001: expected token: ";", but found ")"
      arizona.pwn(23374) : error 029: invalid expression, assumed zero
      arizona.pwn(23374) : fatal error 107: too many error messages on one line
      жалуется на данную строчку:
       
      %s{cccccc}Для продолжения нажмите 'Далее'",PN(playerid),playerid,ItemsInfo[itemid][ItemName2],hours,cost*hours,Inventory[playerid][2][slot], AksColorName(Inventory[playerid][4][slot]), Inventory[playerid][5][slot] ? GetNameStripe(Inventory[playerid][5][slot]) : "");