Доступ к готовым решениям

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

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

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

Мануал Система Demorgan (/prison)

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

Archange

Мастер
Для начала давайте добавим команду.

PHP:
if(strcmp(cmd, "/prison", true) == 0 || strcmp(cmd, "/pri", true) == 0)
    {
  		new stringer[186];
		if(pInfo[playerid][pAdmin] < 2) return true;
		if(pInfo[playerid][pAlogin] != 1) return  SendCM(playerid,CRED,AdminNL);
		if(sscanf(params, "dds[50]",params[0],params[1],params[2])) return SendCM(playerid, CGREY, "Введите: /(pri)son [id] [минуты] [причина]");
		if(!IsPlayerConnected(params[0])) return true;
		if(Pinfo[params[0]][pAdmin] > Pinfo[playerid][pAdmin]) return SendCM(playerid,CGREY, "Администратора выше вас нельзя посадить в Demorgan!");
		if(params[1] > 200 || params[1] < 0) return SendCM(playerid,CGREY,"Ошибка: Нельзя меньше 0 и больше 200");
		if(params[1] == 0)
	 	{
	 	    if(pInfo[params[0]][pPrison] <= 2) return SendCM(playerid, CGREY, "Игрок не находится в Demorgan!");
	 		format(stringer, sizeof(stringer), "Вы были освобождены администратором: %s",Pinfo[playerid][pNames]);
			SendCM(params[0], CLIGHTRED, stringer);
			format(stringer, sizeof(stringer), "[A] Администратор %s освободил игрока %s из Demorgan.", pInfo[playerid][pNames], pInfo[params[0]][pNames], params[1]);
			SendAM(CREDD,stringer);
			Pinfo[params[0]][pPrison] = -1;
	  		SpawnPlayer(params[0]);
	  		return true;
	 	}
		ResetPlayerWeapons(params[0]);
		SetPlayerInterior(params[0], 0);
		SetPPos(params[0],2543.0537,-8141.8242,72.6420);
		SetPlayerFacingAngle(params[0], 268.7242);
		Pinfo[params[0]][pPrison] = params[1]*60;
		format(stringer, sizeof(stringer), "Администратор %s посадил вас в Demorgan на %i минут(ы). Причина: %s",pInfo[playerid][pNames],params[1], params[2]);
		SendCM(params[0], CLIGHTRED, stringer);
		format(stringer, sizeof(stringer), "Администратор %s посадил игрока %s в Demorgan на %i минут(ы). Причина: %s", pInfo[playerid][pNames],pInfo[params[0]][pNames], params[1], params[2]);
		SendCMToAll(CLIGHTRED,stringer);
		return true;
	}
В OnPlayerSpawn добавляем следующее

PHP:
else if(pInfo[playerid][pPrison] >= 1)
	{
		SetPlayerInterior(playerid, 0);
		SetPlayerToTeamColor(playerid);
		SetPlayerSkin(playerid, pInfo[playerid][pSkin]);
		SetPPos(playerid,2543.0537,-8141.8242,72.6420);
		SetPlayerFacingAngle(playerid, 268.7242);
		return true;
	}
И в ежесекундный таймер добавляем следующее

PHP:
			else if(pInfo[i][pPrison] >= 1)
			{
			    pInfo[i][pPrison] --;
				if(pInfo[i][pPrison] == 1)
				{
		            pInfo[i][pPrison] = -1;
		            SendCM(i, CGREEN, "Вы были успешно освобождены из Demorgan, больше не нарушайте правила!");
				}
			}
[HR][/HR]
Прочее.​

Если будут ошибки с SendCM, то замените на SendClientMessage, это #define сокращение.

Если у вас будет выдавать ошибки с pPrison, заявляя на то что его нет, то добавьте в столбец с pInfo в самый конец pPrison, выглядеть должно таким образом
PHP:
pInfo
{
      pTest,
      pTest,
      pPrison
}
В конце, а именно в строчке pPrison, не должно быть запятой!


AdminNL - это #define сокращение текста на то, что Администратор не авторизован!


Если будет выдавать ошибку с SetPPos, то замените на SetPlayerPos, т.к. тут используется сокращение для дополнительного stock, также в SetPlayerPos вы можете изменить координаты где будет спавнится игрок или же телепортироваться.


ResetPlayerWeapons - стандартная функция для того чтобы забрать у игрока оружие.


SendAM - это спец.чат для администрации, у меня это #define сокращение не SendAdminMessage, если у вас что-либо другое, замените на свое.


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