SkyFrost
Умник
Здравствуйте уважаемые пользователи Pawno-Info, сегодня я Вам сливаю команды как...
/jail - Посадить нарушителя в КПЗ от имени администратора.
/unjail - Отпустить нарушителя с КПЗ от имени администратора.
/tjail - Посмотреть время КПЗ нарушителя сколько осталось ему сидеть.
/jailtime - Посмотреть время заключения(для нарушителей)
/jail - Посадить нарушителя в КПЗ от имени администратора.
/unjail - Отпустить нарушителя с КПЗ от имени администратора.
/tjail - Посмотреть время КПЗ нарушителя сколько осталось ему сидеть.
/jailtime - Посмотреть время заключения(для нарушителей)
Создаём переменные как...
PHP:
enum e_PLAYER_INFO // Ваша переменная..
{
pJail,
pJailTime
}
PHP:
new gRandomSkin[ ] = {42,8};
PHP:
public OnPlayerSpawn(playerid)
PHP:
if(pInfo[playerid][pJail] == 1)
{
new RandomGS = random(sizeof(gRandomSkin));
SetPlayerSkin(playerid,gRandomSkin[RandomGS]);
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid, 122);
SetPlayerPos(playerid,193.3589,175.6009,1003.0234); // Меняем на свои координаты
SetPlayerFacingAngle(playerid, 0.9531); // Меняем на свои координаты
SetCameraBehindPlayer(playerid);
new string[80];
format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~y~JAILED: ~w~%d", pInfo[playerid][pJailTime]);
GameTextForPlayer(playerid, string, 3000, 3);
SendClientMessage(playerid, COLOR_GREY, !"Вы ещё не отсидели свой тюремный срок");
}
1). Переходим на public OnGameModeInit()
2). Вставляем секундный таймер сюда:
PHP:
one_second_timer = SetTimer("@_OneSecondTimer", 1000, 1);
PHP:
@_OneSecondTimer();
@_OneSecondTimer()
{
foreach(new i: Player)
{
if(!IsPlayerConnected(i)) continue;
if(pInfo[i][pJail] > 0)
{
pInfo[i][pJailTime]--;
if(pInfo[i][pJailTime] == 0)
{
if(pInfo[i][pJail] == 1)
{
SendClientMessage(i, COLOR_GREEN, !"Время заключения в КПЗ истекло, теперь Вы свободны");
SpawnPlayer(i);
}
if(pInfo[i][pMember] != 0 ) SetPlayerSkin(i,pInfo[i][pMemberSkin]); // pMember смените на свою переменную фракции и pMemberSkin Так же pSkin.
else SetPlayerSkin(i, pInfo[i][pSkin]);
SetPlayerColorEx(i, TeamColors[GetTeamID(i)]); // TeamColors Цвет фракции и игрока..
GameTextForPlayer(i, "~g~freedom", 5000, 1);
pInfo[i][pJail] = pInfo[i][pJailTime] = 0;
SetPlayerInterior(i, 0);
SetPlayerVirtualWorld(i, 0);
}
}
}
return 1;
}
PHP:
if(pInfo[playerid][pAdmin] < 0) // Поменяйте на свой уровень администрирование
PHP:
CMD:jail(playerid, params[ ])
{
if(pInfo[playerid][pAdmin] < 0)
return 1;
new jtime,
id,
reason[64];
if(sscanf(params, "uds[64]", id, jtime, reason))
return SendClientMessage(playerid, COLOR_GREY, !"Введите: /jail [id игрока] [время в минутах] [причина]");
if(pInfo[id][pJail] > 0)
return SendClientMessage(playerid, COLOR_GREY, !"Игрок уже находиться в КПЗ!");
if(jtime < 1 || jtime > 180)
return SendClientMessage(playerid, COLOR_GREY, !"Количество минут от 1 до 180!");
ResetPlayerWeapons(id);
pInfo[id][pJailTime] = jtime * 60;
new RandomGS = random(sizeof(gRandomSkin));
SetPlayerSkin(id,gRandomSkin[RandomGS]);
SetPlayerVirtualWorld(id, 1);
static const
fmt_adm[] = "[A] %s[%d] посадил %s[%d] в КПЗ на %d минут (%s)",
fmt_player[] = "Администратор %s[%d] посадил Вас в КПЗ (%s)",
fmt_time[] = "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~y~JAILED: ~w~%d";
new string[sizeof(ftm_str) - 12 + (MAX_PLAYER_NAME*2) + 6];
format(string, sizeof string , fmt_adm,
pInfo[playerid][pName], playerid,
pInfo[id][pName], id, jtime, reason);
SendAdminMessage(string, COLOR_GRAD1);
format(string, sizeof string, fmt_player,
pInfo[playerid][pName], playerid, reason);
SendClientMessage(id, COLOR_GREEN, string);
format(string, sizeof string, fmt_time, pInfo[playerid][pJailTime]);
GameTextForPlayer(id, string, 3000, 3);
SendClientMessage(id, -1, !"{FFFFFF}Чтобы посмотреть сколько Вам осталось сидеть в тюрьме, введите команду {bf2141}/jailtime");
SetPlayerPos(id,193.3589,175.6009,1003.0234); // Поменяйте на свои координанты
SetPlayerFacingAngle(id, 0.9531); // Поменяйте на свои координанты
SetPlayerInterior(id, 3);
SetPlayerVirtualWorld(playerid, 122);
pInfo[id][pJail] = 1;
return true;
}
CMD:unjail(playerid, params[ ])
{
if(pInfo[playerid][pAdmin] < 0) return 1;
new id;
if(sscanf(params, "u", id))
return SendClientMessage(playerid, COLOR_WHITE, !"Введите: /unjail [id игрока]");
if(pInfo[id][pJail] == 0)
return SendClientMessage(playerid, COLOR_GREY, !"Игрок не находиться в КПЗ!");
if(pInfo[id][pMember] != 0 ) SetPlayerSkin(id,pInfo[id][pMemberSkin]); // pMember смените на свою переменную фракции и pMemberSkin Так же pSkin.
else SetPlayerSkin(id, pInfo[id][pSkin]);
pInfo[id][pJail] = 0;
pInfo[id][pJailTime] = 0;
ResetPlayerWeapons(id);
SetPlayerInterior(id, 0);
SetPlayerPos(id,2285.8391,2425.4106,10.8203); // Поменяйте на свои координанты
SetPlayerFacingAngle(id, 180.2862); // Поменяйте на свои координанты
static const fmt_admin[] = "[A] %s[%d] выпустил из КПЗ %s[%d]";
new unjail_player[sizeof(fmt_admin) - 8 + (MAX_PLAYER_NAME*2) + 6];
format(unjail_player, sizeof unjail_player, fmt_admin,
pInfo[playerid][pName], playerid, pInfo[id][pName], id);
SendAdminMessage(unjail_player, COLOR_GRAD1);
return true;
}
CMD:tjail(playerid, params[ ])
{
if(pInfo[playerid][pAdmin] < 0) return 1;
new id;
if(sscanf(params, "u", id))
return SendClientMessage(playerid, COLOR_GREY, !"/tjail [id игрока]");
if(pInfo[id][pJail] == 0)
return SendClientMessage(playerid, COLOR_GREY, !"Игрок не находиться в КПЗ!");
if(!IsPlayerConnected(id))
return SendClientMessage(playerid, COLOR_GREY, !"Игрок не в игре!");
static const
fmt_time[ ] = "{FFA500}%s[%d]. {FFFFFF}Осталось сидеть: {FFA500}%d {FFFFFF}секунд.",
fmt_time1[ ] = "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~y~JAILED TIME: ~w~%d";
new jail_player_time[sizeof(fmt_time) - 6 + (MAX_PLAYER_NAME*1) + 3];
format(jail_player_time, sizeof jail_player_time, fmt_time,
pInfo[id][pName], id, pInfo[id][pJailTime]);
SendClientMessage(playerid, COLOR_GREY, jail_player_time);
format(jail_player_time, sizeof jail_player_time, fmt_time1, pInfo[id][pJailTime]);
GameTextForPlayer(playerid, jail_player_time, 3000, 3);
return true;
}
CMD:jailtime(playerid, params[ ])
{
if(pInfo[playerid][pJailTime] == 0)
return SendClientMessage(playerid,COLOR_GREY, !"Вы не находитесь под заключением в тюрьме!");
new string[30];
format(string, sizeof(string), "jail time left: %d sec", pInfo[playerid][pJailTime]);
GameTextForPlayer(playerid, string, 3000, 1);
return 1;
}
PHP:
#define COLOR_GRAD1 (0xB4B5B700)
#define COLOR_GREY (0xAFAFAFAA)
#define COLOR_GREEN (0x66CC00FF)
#define COLOR_WHITE (0xFFFFFFAA)
