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

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

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

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

/jail /unjail /tjail /jailtime

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

SkyFrost

Умник
Здравствуйте уважаемые пользователи Pawno-Info, сегодня я Вам сливаю команды как...

/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);
3). Создаем сток.

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)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу