Страница 1 из 11
GTA Форумы » GTA San Andreas » MTA San Andreas » Движение объектов
Движение объектов
FanorДата: 26.04.2011 | Сообщение # 1
Скриптер в МТА
Группа: Пользователь
Сообщений: 11
Статус: Offline
Создаем Meta.xml файл
И втавляем туда
Code
<script src="server.lua" type="server" />

1. Нам требуется создать новую переменную с названием "start", чтобы записать туда всё, что нам нужно. Поэтому в первой строчке мы записываем этот код:

Code
function start ()

Сейчас мы разберём, что это всё означает:
- function - Объявляем, что дальше идёт новая переменная.
- start - Название переменной. Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "start" то слово, которое вы выберите (Примечание: Название переменной должно быть написано по латинскими буквами и не должно содержать пробелов)

2. После того, как мы написали этот код, нам нужно поставить туда всё, что нам потребуется в дальнейшем. Тоесть:
- Нам требуется указать, когда объект начнёт двигаться (Через какое время после старта карты), поэтому мы напишем этот код (Предварительно нажав клавишу "TAB" (не обязательно)):

Code
setTimer(objectm, 5000, 0)

- setTimer - Название переменной. Примечание: Эту часть переменной нельзя изменять, всё что указано ниже в этой переменной можно.
- objectm - Название переменной, для которой мы указываем все значения. (В нашем случае это "objectm", вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "objectm" то слово, которое вы выберите ). Примечание: Название переменной должно быть написано латинскими буквами и без пробелов.
- 5000 - Время, за которое объект будет проходить нужное расстояние. Примечание: Время указывается в миллисекундах (5000 = 5 секунд).
- 0 - Количество повторений движения объекта. Примечание: 0 = Бесконечно.

3. После того, как вы написали код - перейдите на следующую строку
4. Теперь нам требуется создать новую переменную, для упрощения управления движения объектом (Чтобы движения объектом выполнялось в том случае, когда значение этой переменной равно нужному нам числу). Напишем следующий код:

Code
status = 1

Теперь мы разберём что мы написали:
- status - Название переменной, для которой мы поставили значение. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "status" то, которое вы выберите ).
- 1 - Значение переменной, которую мы написали ранее. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо цифры "1" то, что вы выберите )

5. Теперь нам необходимо создать объект на карте, который мы собираемся двигать. Для этого на следующей строке мы напишем этот код:

Code
objectone = createObject(3458,X-Позиция,Y-Позиция,Z-Позиция,rotX,rotY,rotZ)

Теперь мы разберём этот код:
- objectone - Имя объекта, которое мы будем указывать в дальнейшем ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "objectone" то, что вы выберите ).
- createObject - переменная добавления объекта на карту. Примечание: Её изменять нельзя!
- 3458 - Номер объекта, который мы собираемся двигать.
- X-Позиция - Положение объекта на оси X
- Y-Позиция - Положение объекта на оси Y
- Z-Позиция - Положение объекта на оси Z
- rotX - Вращение объекта по оси X (Не перемещение!)
- rotY - Вращение объекта по оси Y (Не перемещение!)
- rotZ - Вращение объекта по оси Z (Не перемещение!)
6. После того, как вы всё написали - перейдите на следующую строчку
7. Напишите слово - end . (Предварительно убрав все пробелы на строчке)

Первая переменная готова, теперь перейдём к следующей:

1. Пропустите две строчки от предыдущей переменная.
2. Напишите этот код:

Code
function objectm ()

Сейчас мы вспомним, что всё это значит:
- function - Объявляем, что дальше идёт переменная.
- objectm - Название переменной (Возможно вы его изменили в предыдущих действиях). Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "start" то слово, которое вы выберите (Примечание: Название переменнойи должно быть написано по латинскими буквами и не должно содержать пробелов)
3. Теперь мы должны поставить условие, при которое объект будет двигаться. Для этого на следующей строчке напишем этот код (Предварительно нажав клавишу "TAB" (не обязательно)):

Code
if status == 1 then

Сейчас мы разберём, что всё это означает:
- if - Это слово пишется тогда, когда мы объявляем условие, при котором будет что-либо выполняться.
- status == 1 - Это условие, при котом будет выполняться код, написанный вами ниже. Мы с вами ранее написали код, в котором указывается, что слово "status" ровно "1" Примечание: Два знака "="обязательно!
- then - Если условие выполнено, то с помощью этого значения будет выполняться код, написанный вами ниже.
4. Теперь, после того как условие выполнено, нам требуется заставить нужный нам объект двигаться. Теперь нам нужно написать следующий код:

Code
moveObject (objectone, 5000, movX, movY, movZ)

Теперь мы разберём написанный нами код:
- moveObject - переменной, при помощи которой мы заставляем двигаться нужный нам объект. Примечание: Изменять нельзя!
- objectone - Название объекта, который мы писали ранее. (Возможно вы его изменили).
- 5000 - Время, за которое объект будет проходить нужное расстояние.
- movX - Координаты по оси X, куда должен будет переместиться объект.
- movY - Координаты по оси Y, куда должен будет переместиться объект.
- movZ - Координаты по оси Z, куда должен будет переместиться объект.
Далее будет всё писаться для тех, кому нужно чтобы объект двигался после передвижения на нужную нам точку в другое место (Например обратно на начальную поцизию). Если вам это не нужно, то переходите к пункту №9.
5. Теперь нам требуется чтобы объект не стоял на месте, а двигался на следующую позицию. Для этого нам требуется изменить значение переменной "status" на 2. Для этого напишем такой код (Предварительно перейдя на новую строку):

Code
status = 2

Теперь мы вспомним что это такое:
- status - Название переменной, для которой мы поставили значение. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо слова "status" то, которое вы выберите ).
- 2 - Значение переменной, которую мы написали ранее. ( Вы можете изменить название, но в дальнейшем вы должны будете писать вместо цифры "2" то, что вы выберите ).
6. Теперь нам нужно поставить новое условие, при котором объект будет двигаться в новом направлении. Для этого напишем этот код:

Code
elseif status == 2 then

- elseif - Это слово пишется тогда, когда мы объявляем условие, при котором будет что-либо выполняться.
- status == 2 - Это условие, при котом будет выполняться код, написанный вами ниже. Мы с вами ранее написали код, в котором указывается, что слово "status" ровно "2" Примечание: Два знака "="обязательно!
- then - Если условие выполнено, то с помощью этого значения будет выполняться код, написанный вами ниже
7. Теперь нам требуется подвинуть объект туда, куда нам требуется. Для этого напишем этот код:

Code
moveObject (objectone, 5000, movX, movY, movZ)

Теперь мы разберём написанный нами код:
- moveObject - переменной, при помощи которой мы заставляем двигаться нужный нам объект. Примечание: Изменять нельзя!
- objectone - Название объекта, который мы писали ранее. (Возможно вы его изменили).
- 5000 - Время, за которое объект будет проходить нужное расстояние.
- movX - Координаты по оси X, куда должен будет переместиться объект.
- movY - Координаты по оси Y, куда должен будет переместиться объект.
- movZ - Координаты по оси Z, куда должен будет переместиться объект.
8. Теперь нам требуется чтобы объект двигался в первоначальном направлении. Для этого мы вернём функции "status" первоначальное значение - "1". Вот код ( Не забудьте перейти на новую строку ):

Code
addEventHandler ( "onResourceStart", getRootElement(), start )

Я думаю вам уже не понадобится знать, что это значит всё, но знайте: последнее слово "start" - это название той переменной, которую мы писали в начале.
12. Сохраните ваш документ. ( Нажмите на иконку дискеты, она третья по счёту в панели инструментов и выглядит так: )

Вот такой код у вас должен был получиться (Только с вашими значениями местами):

Code
unction start ()  
   setTimer(objectm, 5000, 0)  
   status = 1  
   objectone = createObject(3458,2488.9965820313,-1667.4375,13.86528015136,0,0,0)  
end  

function objectm()  
   if status == 1 then  
    moveObject (objectone, 5000, 2488.9965820313, -1667.4375, 30.86528015136)  
    status = 2  
   elseif status == 2 then  
    moveObject (objectone, 5000, 2488.9965820313, -1667.4375, 13.86528015136)  
    status = 1  
   end  
end  

addEventHandler ( "onResourceStart", getRootElement(), start )

Примечания:
- Чтобы проще было найти то, что вам нужно - после открытия новой переменной ( Тоесть после таких переменных как: function, if, elseif ) на следующей строке нажмите один раз клавишу "TAB", а когда пишите слово "end" , то убирайте этот пробел. Таким образом у вас будет получаться что-то типо "дерева" переменных.
- Каждый новый код, написанный выше, должен писать с новой строки. (Смотрите пример кода, написанный выше)

 

GTA Форумы » GTA San Andreas » MTA San Andreas » Движение объектов
Страница 1 из 11
Поиск:
!ЧТОБЫ ДОБАВИТЬ СООБЩЕНИЕ, ЗАРЕГИСТРИРУЙТЕСЬ ИЛИ ВОЙДИТЕ ПОД СВОИМ ЛОГИНОМ
РЕГИСТРАЦИЯ ОЧЕНЬ ПРОСТАЯ И ЗАЙМЕТ У ВАС 30 СЕКУНД!