Archange
Мастер
Для начала давайте добавим команду.
В OnPlayerSpawn добавляем следующее
И в ежесекундный таймер добавляем следующее
[HR][/HR]
Если будут ошибки с SendCM, то замените на SendClientMessage, это #define сокращение.
Если у вас будет выдавать ошибки с pPrison, заявляя на то что его нет, то добавьте в столбец с pInfo в самый конец pPrison, выглядеть должно таким образом
В конце, а именно в строчке pPrison, не должно быть запятой!
AdminNL - это #define сокращение текста на то, что Администратор не авторизован!
Если будет выдавать ошибку с SetPPos, то замените на SetPlayerPos, т.к. тут используется сокращение для дополнительного stock, также в SetPlayerPos вы можете изменить координаты где будет спавнится игрок или же телепортироваться.
ResetPlayerWeapons - стандартная функция для того чтобы забрать у игрока оружие.
SendAM - это спец.чат для администрации, у меня это #define сокращение не SendAdminMessage, если у вас что-либо другое, замените на свое.
!IsPlayerConnected - данная проверка отвечает за то, что игрок подключился на сервер или же нет, меняйте на свою проверку если у вас будут выдавать ошибки, если у вас ее нет, рекомендуется написать.
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;
}
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, больше не нарушайте правила!");
}
}
Прочее.
Если будут ошибки с SendCM, то замените на SendClientMessage, это #define сокращение.
Если у вас будет выдавать ошибки с pPrison, заявляя на то что его нет, то добавьте в столбец с pInfo в самый конец pPrison, выглядеть должно таким образом
PHP:
pInfo
{
pTest,
pTest,
pPrison
}
AdminNL - это #define сокращение текста на то, что Администратор не авторизован!
Если будет выдавать ошибку с SetPPos, то замените на SetPlayerPos, т.к. тут используется сокращение для дополнительного stock, также в SetPlayerPos вы можете изменить координаты где будет спавнится игрок или же телепортироваться.
ResetPlayerWeapons - стандартная функция для того чтобы забрать у игрока оружие.
SendAM - это спец.чат для администрации, у меня это #define сокращение не SendAdminMessage, если у вас что-либо другое, замените на свое.
!IsPlayerConnected - данная проверка отвечает за то, что игрок подключился на сервер или же нет, меняйте на свою проверку если у вас будут выдавать ошибки, если у вас ее нет, рекомендуется написать.
Последнее редактирование:
