Интересности

Здесь я расскажу об интересных опкодах, 
опишу их работу и параметры
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

02DD: 88@ = get_random_ped_in_zone 'SAN_AND' with_pedtype_civilian 1 gang 0 criminal/prostitute 1

Берет случайного пешехода из зоны с именем 'SAN_AND' и записывает его в переменную 88@, 1,0,1 искать пешеходов с таким типом человека (1-да, 0-нет)
-----
00C1: 3@ = get_minutes_left_to_time_hours 5@ time_minutes 6@

Записывает время (мин, 3@), которое осталось до 5@ часов, 6@ минут
-----
01F7: set_player $PLAYER_CHAR ignored_by_cops 1

Полиция игнорирует игрока. Звезды остаются, но полиция не нападает. 1-вкл, 0-выкл.
-----
02BF: car 51@ sunk

Проверка, бухнулась ли машина 51@ в воду.
-----
02E1: 136@ = create_cash_pickup 500 at 2338.551 -1186.939 1027.977 permanence_flag 1

Создает пикап денег с переменной 136@, 500 - кол-во денег, 2338.551 -1186.939 1027.977 - координаты, permanence_flag 1 - 1-деньги не исчезают, 0-исчезают.
-----
0326: 138@ = create_actor 94@ fire

Поджигает актера 94@. Переменная огня - 138@.
-----
0376: 18@ = create_random_actor_at -1576.88 55.26 8.57

Создает случайного актера в точке с координатами -1576.88 55.26 8.57 и записывает его в переменную 18@
-----
03FE: set_actor 1@ money 0

Задает актеру 1@ кол-во денег, равное 0.
-----
041A: 41@ = actor $PLAYER_ACTOR weapon 22 ammo

Записывает в переменную 41@ кол-во патронов в оружии 22 (номера оружий есть в справке SB) у актера $PLAYER_ACTOR (или другого актера)
-----
04B8: get_weapon_data_from_actor $PLAYER_ACTOR weapon_group 2 weapon 380@ ammo 381@ model 382@

Берет оружие из группы 2 (группы оружий есть в справке SB), записывает его в 380@, его патроны в 381@, его модель в 382@
-----
050A: 17@ = distance_between_XYZ $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 and_XYZ 4@ 5@ 6@

Записывает в переменную 17@ расстояние между точками $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 и 4@ 5@ 6@
-----
051E: 196@ = get_current_radio_station

Записывает текущую радиостанцию в переменную 196@
-----
05C4: AS_actor $PLAYER_ACTOR hands_up 15000 ms

Актер $PLAYER_ACTOR поднимает руки вверх на 15000 миллисекунд (15 сек)
-----
05D9: AS_actor 87@ run_to_actor $PLAYER_ACTOR timelimit 5000 stop_within_radius 3.0

Актер 87@ бежит к актеру $PLAYER_ACTOR в течение 5000 миллисекунд (5 сек) и останавливается в радиусе 3.0 метров от него.
-----
0330: set_player $PLAYER_CHAR infinite_run 0

Включает (1) или отключает (0) бесконечный бег у игрока.
-----
055D: make_player $PLAYER_CHAR fireproof 1

Включает (1) или отключает (0) огнеупорность игрока.
-----
08C6: set_actor 65@ stay_on_bike 1

Если параметр равен 1, то актер (65@) не падает с мотоциклов при любых авариях.
-----
0337: set_actor 18@ visibility 0

Включает (1) или выключает (0) видимость актера. Можно сделать человека-невидимку
-----
01B9: set_actor 2@ armed_weapon_to 0

Актер 2@ переключается на оружие с номером 0 (кулаки в данном случае). Полезно, если актеру дано несколько видов оружия.
-----
017B: set_actor $PLAYER_ACTOR weapon 22 ammo_to 10

Количество патронов оружия номер 22 у актера $PLAYER_ACTOR становится равным 10.
-----
087E: set_actor 35@ weapon_droppable 0

Оружие актера 35@ не выпадает (если 0) после смерти.
-----
07FF: set_car 69@ hydraulics 1

Включает (1) гидравлику у машины 69@
-----
0825: set_helicopter 40@ instant_rotor_start

Ротор у вертолета 40@ начинает работать на полную мощность сразу после этого опкода (обычно ротор разгоняется некоторое время). Полезно, если Вы создаете вертолет в воздухе
-----
0727: set_heli 377@ behavior_to_police_heli_and_follow_actor $PLAYER_ACTOR follow_car -1 radius 20.0

Вертолет 377@ ведет себя, как полицейский вертолет и следует за актером $PLAYER_ACTOR, за машиной -1 (если -1, значит ни за какой машиной не следует) в радиусе 20.0
-----
Конструкция такого типа:
if
gosub @Metka
then
...
end

позволяет Вам использовать gosub для проверки чего-либо. В самом gosub необходимо использовать 0485 и 059A, а также не забывайте про обычный свойственный gosub'у return. Таким образом можно проделать какие-либо действия и определить истинность или ложность условия. Однако лучше использовать такое условие отдельно от остальных.
-----
0110: clear_player 0 wanted_level

Очищает уровень розыска, причём мгновенно.
-----
09D4: suspend_wanted_level

Звёзды розыска начинают мигать. Если игрок совершает правонарушение, то розыск возвращается в своё обычное положение, а если пройдёт время, и игрок ничего плохого не сделает, то полиция закончит свои поиски.
-----
0829: actor 49@ perform_animation "CRCKDETH3" IFP_file "CRACK" rate 4.0 time 0 and_dies

Актёр 49@ выполняет анимацию "CRCKDETH3" из .ifp файла "CRACK" в течении 0 мс (ставьте -1 для полного воспроизведения анимации вне зависимости от её длины) и умирает.