Страница 1 из 1

Проверки и переходы [Уроки по созданию модов GTA SA]

Добавлено: 21 фев 2019, 20:58
Vovka
Проверки и ‘прыжки’

Как говорилось ранее, перед без проверок нормально ‘скриптить’ в GTA не возможно. Поэтому подробно разберем оператор ‘if’ и специальный ‘jump’ для проверок.

004D: jump_if_false @LABEL
Так изначально выглядит команда перехода на другой поток в случае фальши проверки.
Но благодаря возможностям SB, для удобства эта команда была сокращена и выглядит вот так:
jf @LABEL

Теперь об операторе IF.
Максимум можно одновременно осуществлять не более семи проверок, рассмотрим пример:

:LABEL
wait 100
if AND
$1 = 0
$2 = 5
$3 = 2
$4 = 7
$5 = 8
$6 = 1
$7 = 3
jf @LABEL
//Тут мы проверяем кол-во чисел в переменных.

Опять же, благодаря SB компилятор автоматически подсчитывает количество проверок. Стоит просто ввести if AND .

Также взгляните на этот код:

:LABEL
wait 100
if OR
$1 = 0
$2 = 5
$3 = 2
$4 = 7
$5 = 8
$6 = 1
$7 = 3
jf @LABEL

Тут проверка интереснее: чтение кода пойдет дальше в том случае, если хотя бы одна переменная равна.
Теперь рассмотрим пример использования перехода на другой поток при фальши проверки.

:LABEL
0004: $01 = 0 //Создаем переменную со значением ‘0’

:LABEL_2
if AND
$01 = 5 //Проверяем, равна ли переменная пятерке
jf @LABEL_3 //Так как мы знаем, что переменная равна нулю, переходим на указанный поток (LABEL_3)
create_thread @LABEL_4 //Теперь переменная равна пяти, поэтому прыжок в случае фальши игнорируется, выполняем команду (в данном случае создаем поток)
end_thread //Скрипт выполнен, закрываем поток

:LABEL_3
0008: $01 += 5 //Прибавляем к переменной пять единиц
jump @LABEL_2 //И проверяем заново (переход на поток с проверкой)
end_thread

В этой статье мы рассмотрели основные методы проверки.
Успехов в скриптинге!