| 
| [S]ilverbac[k] | Дата: Четверг, 10.07.2014, 23:24 | Сообщение # 1 |  | .::Offline::. Пахан ![[S]ilverbac[k]](/avatar/85/497598.png)  Сообщений: 723[ 86 ] Награды: 17  
Статус 
отсутствует | Наверное, все в одиночной игре бывали возле аэропорта(в любом городе) и пытались пробраться на территорию посадочной полосы чтобы украсть самолет. Но вас всегда останавливали ворота, о да, те самые ворота, которые не открывались из-за отсутствии у вас лицензии пилота. В этом уроке я покажу вам, как сделать нечто подобное.
 
 Для примера будут использоваться эти ворота
 
 
   
 Для начала удалим стандартные ворота функцией RemoveBuildingForPlayer и создадим переменную, которая будет содержать обе части ворот.
 
 В OnPlayerConnect
 
 
 Код  RemoveBuildingForPlayer(playerid, 985, 2497.4063, 2777.0703, 11.5313, 0.25);//1-я часть ворот
 RemoveBuildingForPlayer(playerid, 986, 2497.4063, 2769.1094, 11.5313, 0.25);//2-я часть ворот
 
 Ко всем new
 
 
 
 Теперь создаем два объекта на месте этих ворот и прописываем их в OnGameModeInit
 
 
 Код  gate[0] = CreateObject(985, 2497.4063, 2777.0703, 11.5313, 0.0000000, 0.0000000, 90.0000000); //object(gate_closel)
 gate[1] = CreateObject(986, 2497.4063, 2769.1094, 11.5313, 0.0000000, 0.0000000, 90.0000000); //object(gate_closer)
 
 Теперь нужно узнать координаты, куда будут двигаться ворота(при открытии). Для этого нужно создать по одной копии каждого объекта в стороне от них.
 Из созданных объектов нужно сохранить только координаты X,Y,Z.
 
 Далее нам нужно сделать проверку на приближение игрока к воротам. Для этого воспользуемся public OnPlayerUpdate и функцией IsPlayerInRangeOfPoint.
 
 
 Код  public OnPlayerUpdate(playerid)
 {
 if(IsPlayerInRangeOfPoint(playerid, 10.0, 2496.6779785156, 2773.1818847656, 10.822999954224))//проверка на приближение к точке
 {
 ...
 }
 return 1;
 }
 
 10.0 - радиус, при пребывании в котором ворота будут открыты
 
 Теперь нам нужно создать таймер, который будет отвечать за закрытие ворот
 
 Ко всем new
 
 
 
 В OnPlayerUpdate вместо "..."
 
 
 Код  gatetimer = SetTimer("GateClose",5000,false);//объявляем таймер
 MoveObject(gate[0], 2497.4108887, 2784.8049316, 11.5299997, 5.0);//движение 1-й части ворот
 MoveObject(gate[1], 2497.3769531, 2761.0859375, 11.5200005, 5.0);//движение 2-й части ворот
 
 5000 - время, через которое ворота закроются(в миллисекундах)
 false- повторение таймера(true или false)
 
 После всех public нам нужно создать сам таймер, в котором ворота будут закрываться назад
 
 
 Код forward GateClose(); public GateClose()
 {
 MoveObject(gate[0], 2497.4063, 2777.0703, 11.5313, 5.0);//двигаем 1-ю часть ворот назад
 MoveObject(gate[1], 2497.4063, 2769.1094, 11.5313, 5.0);//двигаем 2-ю часть ворот назад
 KillTimer(gatetimer);//убиваем таймер
 return 1;
 }
 Теперь при приближении к воротам они будут открываться и закрываться через 5 секунд.
 |  |  |  |  | 
| 
| ZioSHik | Дата: Пятница, 11.07.2014, 02:11 | Сообщение # 2 |  | .::Offline::. Авторитет   Сообщений: 831[ 82 ] Награды: 29  
Статус 
отсутствует | А случайно эти ворота не нужно сначала удалить в редакторе? |  |  |  |  | 
| 
| [S]ilverbac[k] | Дата: Пятница, 11.07.2014, 14:42 | Сообщение # 3 |  | .::Offline::. Пахан ![[S]ilverbac[k]](/avatar/85/497598.png)  Сообщений: 723[ 86 ] Награды: 17  
Статус 
отсутствует | Да, совсем забыл. 
 [FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
 |  |  |  |  | 
| 
| Kapany3-941 | Дата: Вторник, 06.01.2015, 14:44 | Сообщение # 4 |  | .::Offline::. Новичок   Сообщений: 2[ 0 ] Награды: 0  
Статус 
отсутствует | if(IsPlayerInRangeOfPoint(playerid, 10.0, 2496.6779785156, 2773.1818847656, 10.822999954224))//проверка на приближение к точке 
 а как эти координаты узнать?
 |  |  |  |  | 
| 
| [S]ilverbac[k] | Дата: Вторник, 06.01.2015, 16:33 | Сообщение # 5 |  | .::Offline::. Пахан ![[S]ilverbac[k]](/avatar/85/497598.png)  Сообщений: 723[ 86 ] Награды: 17  
Статус 
отсутствует | Когда ты поставил объект ворот, подойди как можно ближе к воротам и к той точке, при приближении к которой ворота должны открываться, и введи команду /save. 
 [FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
 |  |  |  |  |