Итак, начнём...
В public OnPlayerCommandText вставляете это
PHP код:
Code
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 код:
Code
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 код:
Code
pMutes,
pWarns,
pKicks,
pBlocked,
pPrisons,
Теперь в команду /kick (/skick пропускаем)
вставляем это
PHP код:
Code
PlayerInfo[giveplayerid][pKicks] += 1;
Это должно стоять перед сообщением о кике игрока.
Сообщение выглядит примерно так
PHP код:
Code
format(string, sizeof(string), "Игрок %s отсоеденен администратором %s - %s", giveplayer,sendername, (result));
SendClientMessageToAll(COLOR_GREY, string);
У каждого по разному выглядит сообщение.
В итоге должно получится, что-то в роде этого.
PHP код:
Code
PlayerInfo[giveplayerid][pKicks] += 1;
format(string, sizeof(string), "Игрок %s отсоеденен администратором %s - %s", giveplayer,sendername, (result));
SendClientMessageToAll(COLOR_GREY, string);
В команду /mute вставляем это
PHP код:
Code
PlayerInfo[playerid][pMutes] += 1;
Вставляем это, после
PHP код:
Code
PlayerInfo[playa][pMuteTime] = mins*1;
PlayerInfo[playa][pMuted] = 1;;
И у нас должно получится так
PHP код:
Code
PlayerInfo[playa][pMuteTime] = mins*1;
PlayerInfo[playa][pMuted] = 1;
PlayerInfo[playerid][pMutes] += 1;
Теперь ищем команду /prison и вставляем
PHP код:
Code
PlayerInfo[giveplayerid][pPrisons] += 1;
Вставляем только после
PHP код:
Code
PlayerInfo[giveplayerid][pJailed] = 4;
PlayerInfo[giveplayerid][pMestoJail] = 1;
И у нас получается
PHP код:
Code
PlayerInfo[giveplayerid][pJailed] = 4;
PlayerInfo[giveplayerid][pMestoJail] = 1;
PlayerInfo[giveplayerid][pPrisons] += 1;
Точно также вставляем в команду /ban, /offban (/sban пропускаем) вот это
PHP код:
Code
PlayerInfo[giveplayerid][pBlocked] += 1;
Это мы сделали, чтобы при использовании этих команд, в игроку в счётчик насчитывались наказания. Команду Warn'a я пропустил. Так как в RLS модах, она уже готова.
И на завершение команды, сохраняем статистику наказаний, тоесть, чтобы при выходе и входе в игру таблица сохранялась.
Для этого в public OnPlayerConnect добавляем
PHP код:
Code
PlayerInfo[playerid][pWarns] = 0;
PlayerInfo[playerid][pMutes] = 0;
PlayerInfo[playerid][pKicks] = 0;
PlayerInfo[playerid][pPrisons] = 0;
PlayerInfo[playerid][pBlocked] = 0;
PlayerInfo[playerid][pMutes] = 0;
PlayerInfo[playerid][pKicks] = 0;
PlayerInfo[playerid][pPrisons] = 0;
PlayerInfo[playerid][pBlocked] = 0;
В public OnPlayerRegister добавляем
PHP код:
Code
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 код:
Code
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 код:
Code
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]);
И на этом наша команда готова
Чтобы посмотреть пример нажмите на <<Ссылка>>