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

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

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

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

Мануал Ворота по нику, как на StrikeArena'е

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

Kosty66

Специалист
Мне зафлудили в скайпе, как выдать ключи к воротам в моде StrikeArena. Я щас не только объясню как давать ключи, но и как сделать такие ворота.
Автор: Kosty66.
Дата выполнения урока: 04.06.2012.
В поисковике на сайте Pawno-Info: Такой урок не найден.

Начнём.​
Добавим к форвардам.​
PHP:
forward VorotaName();
Добавим к New.​
PHP:
new VorotaName,VorotaNametimer;
В public OnGameModeInit().​
PHP:
VorotaName = CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ);
P.S.:​
PHP:
modelid	ИД модели объекта.
Float:X	Координата X на карте.
Float:Y	Координата Y на карте.
Float:Z	Координата Z на карте.
Float:rX	Угол поворота объекта по оси X.
Float:rY	Угол поворота объекта по оси Y.
Float:rZ	Угол поворота объекта по оси Z.
Возвращает	ИД только что созданного объекта.
Команда /opengate должна выглядит, примерно так .​
PHP:
if ((strcmp(cmd, "/opengate", true)==0) || (strcmp(cmd, "/openg", true)==0))
{
	//================================================== ========== Проверка на авторизацию
	if(IsPlayerConnected(playerid))
	{
		if(gPlayerLogged[playerid] == 0)
		{
			SendClientMessage(playerid, COLOR_GREY, "* Авторизуйся!");
			return 1;
		}
		new redname[MAX_PLAYER_NAME];
		GetPlayerName(playerid, redname, sizeof(redname));

		//================================================== ============ По Нику.
		else if(PlayerToPoint(дистанция,playerid,x,y,z)) // ПРИМЕР: else if(PlayerToPoint(25.0,playerid,320.074,-1186.506,77.109))
		{
			if (!strcmp(redname, "kosty66", true) || !strcmp(redname, "Pawno_Info", true) || !strcmp(redname, "Forest_Okda", true) || !strcmp(redname, "Хз ещё кто-нить", true)) // Ники для которых открываются ворота
			{
				MoveObject(VorotaName, 321.349609375, -1188.294921875, 68.127265930176,3); // Сами ворота
				VorotaNametimer = SetTimer(VorotaName", 7000, 0); //VorotaName - Название вызываемой функции, 7000 - Время, через которая функция будет выполнена в миллисекундах, 0	Будет ли функция повторятся?.
}
else{SendClientMessage(playerid, COLOR_YELLOW, "* Вы не Kosty66 или не арендуете у него дом.");} // А если откроет другой? Не остаылять же это без действия, а то скажут БАГ!
}

//================================================== =========== Для Фракции.
else if(PlayerToPoint(дистанция,playerid,x,y,z))
{
if((PlayerInfo[playerid][pMember]>=1)) || (PlayerInfo[playerid][pAdmin]>=4)) // Могут открыть сотрудники, но не лидер ЛиСиПиДи и Админ выше 4 уровня.
{
MoveObject(lspdgate,1588.509521, -1637.965698, 9.261518,3); // lspdgate - это тоже самое что мы писали по Нику "VorotaName", только сделана другая переменная, так же как написано выше.)))
lspdgatetimer = SetTimer("lspdGate", 7000, 0); // Всё тоже самое, что написано выше.
}
else{SendClientMessage(playerid, COLOR_YELLOW, "* Вы не состоите в ЛиСиПиДи!");} // А если откроет другой? Не остаылять же это без действия, а то скажут БАГ!
}
			return 1;
		}
	}
Создадим Паблик.​
PHP:
public VorotaName()
{
	MoveObject(mitgate,X, Y, Z); // Координаты
	KillTimer(VorotaNametimer);  
	return 0;
}
Проверено на моде "StrikeArena v7.1 финальная версия (version 8.0)"
Спасибо За Внимание.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу