Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/infopun

Статус
В этой теме нельзя размещать новые ответы.

Karen_Telunc

Умник
Приветствую вас, дорогие друзья. Сейчас я вам представлю простенькую команду, для игрока.

Автор: Karen_Telunc
Мод: Подходит под RLS.
Тест: на RLS моде.
Время работы: Несколько часов.
Данная команда: показывает статистику наказаний на аккаунте игрока, а также с помощью этой команды, можно подать заявку на [Снятие Бан чата, Освобождение из Карцера (ДеМоргана), Снятие варна].

Итак, начнём...
В public OnPlayerCommandText вставляете это
PHP код:
Код:
else if(strcmp(cmd, "/infopun", true) == 0) 
     { 
            { 
                new listitems[] = "[1] - Посмотреть счётчик наказаний\n[2] - Подать заявку на снятие бан чата\n[3] - Подать заявку на освобождение из карцера\n[4] - Подать заявку на снятие предупреждений"; 
                   ShowPlayerDialog(playerid, 2700, DIALOG_STYLE_LIST, "{bbbbbb}Меню наказаний", listitems, "Выбрать", "Закрыть"); 

               } 
        return 1; 
    }
К case'ам вставляете вот это
PHP код:
Код:
case 2700: 
    { 
        if(response) 
        { 
            switch(listitem) 
            { 
                case 0: 
                { 
                  format(string,sizeof(string), "{00ff00}Бан чата{ffffff}: %d раз\n{42aaff}Киков{ffffff}: %d раз\n{ffa500}Карцер{ffffff}: %d раз\n{faff00}Предупреждений{ffffff}: %d раз\n{ff0000}Блокировок{ffffff}: %d раз",PlayerInfo[playerid][pMutes],PlayerInfo[playerid][pKicks],PlayerInfo[playerid][pPrisons],PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pBlocked]); 
                  ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"{bbbbbb}Ваша таблица наказаний",string,"Выйти",""); 
                return 1; 
                } 
                case 1: 
                { 
                if(PlayerInfo[playerid][pMuted] == 0) return  SendClientMessage(playerid, COLOR_GREY, "У вас отсутствует бан чата"); 
                new plname[MAX_PLAYER_NAME]; 
                SendClientMessage(playerid, COLOR_GREY, "Вы подали заявление на снятие бан чата. Ожидайте ответа"); 
                GetPlayerName(playerid, plname, sizeof(plname)); 
                format(string, 256, "[Adm] %s подал заявку на снятие Бан чата [PlayerID: %d] [LVL: %d] [Время бан чата: %d]", plname,playerid,PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pMuteTime]); 
                ABroadCast(COLOR_LIME,string,1); 
                return 1; 
                } 
                case 2: 
                { 
                if(PlayerInfo[playerid][pMestoJail] == 0) return  SendClientMessage(playerid, COLOR_GREY, "Вы не сидите в карцере"); 
                if(PlayerInfo[playerid][pJailed] == 0) return SendClientMessage(playerid, COLOR_GREY, "Вы не сидите в карцере"); 
                 if(PlayerInfo[playerid][pJailed] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы не сидите в карцере"); 
                 if(PlayerInfo[playerid][pJailed] == 2) return SendClientMessage(playerid, COLOR_GREY, "Вы не сидите в карцере"); 
                 if(PlayerInfo[playerid][pJailed] == 3) return SendClientMessage(playerid, COLOR_GREY, "Вы не сидите в карцере"); 
                new plname[MAX_PLAYER_NAME]; 
                SendClientMessage(playerid, COLOR_GREY, "Вы подали заявление на освобождение из карцера. Ожидайте ответа"); 
                GetPlayerName(playerid, plname, sizeof(plname)); 
                format(string, 256, "[Adm] %s подал заявку на освобождение из карцера [PlayerID: %d] [LVL: %d] [Время карцера %d]", plname,playerid,PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pJailTime]); 
                ABroadCast(COLOR_LIME,string,1); 
                return 1; 
                } 
                case 3: 
                { 
                if(PlayerInfo[playerid][pWarns] == 0) return  SendClientMessage(playerid, COLOR_GREY, "У вас отсутствуют предупреждения"); 
                new plname[MAX_PLAYER_NAME]; 
                SendClientMessage(playerid, COLOR_GREY, "Вы подали заявление на снятие предупреждений. Ожидайте ответа"); 
                GetPlayerName(playerid, plname, sizeof(plname)); 
                format(string, 256, "[Adm] %s подал заявку на снятие Warn'a [PlayerID: %d] [LVL: %d] [Warn's: %d]", plname,playerid,PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pWarns]); 
                ABroadCast(COLOR_LIME,string,1); 
                return 1; 
                } 
            } 
        } 
    }
В enum pInfo вставляете
PHP код:
Код:
pMutes, 
    pWarns, 
    pKicks, 
    pBlocked, 
    pPrisons,
Теперь в команду /kick (/skick пропускаем) вставляем это
PHP код:
Код:
PlayerInfo[giveplayerid][pKicks] += 1;
Это должно стоять перед сообщением о кике игрока.
Сообщение выглядит примерно так
PHP код:
Код:
format(string, sizeof(string), "Игрок %s отсоеденен администратором %s - %s", giveplayer,sendername, (result)); 
                        SendClientMessageToAll(COLOR_GREY, string);
У каждого по разному выглядит сообщение.
В итоге должно получится, что-то в роде этого.
PHP код:
Код:
PlayerInfo[giveplayerid][pKicks] += 1; 
                        format(string, sizeof(string), "Игрок %s отсоеденен администратором %s - %s", giveplayer,sendername, (result)); 
                        SendClientMessageToAll(COLOR_GREY, string);
-------------------------------------------
В команду /mute вставляем это
PHP код:
Код:
PlayerInfo[playerid][pMutes] += 1;
Вставляем это, после
PHP код:
Код:
PlayerInfo[playa][pMuteTime] = mins*1; 
        PlayerInfo[playa][pMuted] = 1;
И у нас должно получится так
PHP код:
Код:
PlayerInfo[playa][pMuteTime] = mins*1; 
                            PlayerInfo[playa][pMuted] = 1; 
                            PlayerInfo[playerid][pMutes] += 1;
-------------------------------------------
Теперь ищем команду /prison и вставляем
PHP код:
Код:
PlayerInfo[giveplayerid][pPrisons] += 1;
Вставляем только после
PHP код:
Код:
PlayerInfo[giveplayerid][pJailed] = 4; 
                    PlayerInfo[giveplayerid][pMestoJail] = 1;
И у нас получается
PHP код:
Код:
PlayerInfo[giveplayerid][pJailed] = 4; 
                    PlayerInfo[giveplayerid][pMestoJail] = 1; 
                    PlayerInfo[giveplayerid][pPrisons] += 1;
-------------------------------------------
Точно также вставляем в команду /ban, /offban (/sban пропускаем) вот это
PHP код:
Код:
PlayerInfo[giveplayerid][pBlocked] += 1;
-------------------------------------------
Это мы сделали, чтобы при использовании этих команд, в игроку в счётчик насчитывались наказания. Команду Warn'a я пропустил. Так как в RLS модах, она уже готова.
И на завершение команды, сохраняем статистику наказаний, тоисть, чтобы при выходе и входе в игру таблица сохранялась.
Для этого в public OnPlayerConnect добавляем
PHP код:
Код:
PlayerInfo[playerid][pWarns] = 0; 
    PlayerInfo[playerid][pMutes] = 0; 
    PlayerInfo[playerid][pKicks] = 0; 
    PlayerInfo[playerid][pPrisons] = 0; 
    PlayerInfo[playerid][pBlocked] = 0;
В public OnPlayerRegister добавляем
PHP код:
Код:
ini_setInteger(File,"Mutes",PlayerInfo[playerid][pMutes]); 
ini_setInteger(File,"Prisons",PlayerInfo[playerid][pPrisons]); 
ini_setInteger(File,"Kicks",PlayerInfo[playerid][pKicks]); 
ini_setInteger(File,"Blocked",PlayerInfo[playerid][pBlocked]);
В public OnPlayerUpdateRL вставляем
PHP код:
Код:
ini_setInteger(File,"Mutes",PlayerInfo[playerid][pMutes]); 
ini_setInteger(File,"Prisons",PlayerInfo[playerid][pPrisons]); 
ini_setInteger(File,"Kicks",PlayerInfo[playerid][pKicks]); 
ini_setInteger(File,"Blocked",PlayerInfo[playerid][pBlocked]);
В public OnPlayerLogin добавляем
PHP код:
Код:
ini_getInteger(File,"Mutes",PlayerInfo[playerid][pMutes]); 
ini_getInteger(File,"Prisons",PlayerInfo[playerid][pPrisons]); 
ini_getInteger(File,"Kicks",PlayerInfo[playerid][pKicks]); 
ini_getInteger(File,"Blocked",PlayerInfo[playerid][pBlocked]);


Вот и всё. Команда готова.
Примечание для модераторов: ув.Модераторы, в правилах раздела сказано вставлять префикс [C.M.D], но увы, у меня его нету, по этому мне пришлось в названии темы дорисовать его.


Пользуйтесь командой. Спасибо за внимание!! Кому, что не понятно, спрашивайте в теме, либо в мне в Личные сообщения. Если вы взяли команду, у вас возникают ошибки, то пишите в тему ошибки, которые возникают, а также пишите строки из мода в которых вибивают ошибки.

Если вам понравилась моя работа или же не понравилась, то просьба поставить оценку на сколько вам понравилась моя работа.
Чтобы поставить оценку, над темой нажмите на кнопку "Оценка этой темы" и выбирите балл от 1-го (Ужасно) до 5-ти (Отлично).


Дополняйте, спрашивайте, комментируйте, оценивайте тему - для меня это очень важно.
Также смотрите мои остальные работы у меня в подписи. Спасибо за внимание!!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу