000167. Интересное в скриптинге. Часть 2

Интересное в скриптинге. Часть 2|Всем очередной привет! В этом коротком уроке я продолжу рассказывать о результатах своих исследований.|wmysterio|wmysterio||||В некоторых случаях необходимо закрыть доступ к конкретному интерьеру, не мешая работе другого, с таким же именем. Хорошим примером будет магазин Binco. Если мы воспользуемся опкодом:

07FB: set_interior 'CSCHP' access 0

то будут выключены входы ко всем магазинам. А что, если нужно заблокировать только 1 магазин, например в районе Гэнтон? Как оказалось - можем. Для этого воспользуемся опкодом:

09B4: set_object_property_at 2244.9185 -1662.6829 radius 5.0 bitmask 16384 flag 0

Первые два параметра указывают координаты X и Y, где нужно отключить интерьеры, далее радиус действия. Нужно как можно точнее указывать эти параметры, чтобы интерьер попал в зону действия и не захватил другие интерьеры. Параметр 16384 для меня не известный, поэтому оставляйте как есть. А параметр "flag" как раз указывает будет ли закрыт интерьер или нет. В нашем случаи это 0 ( закрыть ). Используя этот опкод магазин Бинко в Гэнтоне стал отключённым:

При этом другие магазины открыты, например в Лас Вентурасе:

Этот опкод работает на коротких дистанциях.

Так же я исследовал работу водителей для погони. Самым удачным вариантом стал опкод:

06E1: AS_actor 2@ using_car 1@ target_car 0@ with_order 29 max_speed 30.0 traffic_flag 2

который заставляет актёра ехать за другой машиной. Но, обратите внимание на параметр "traffic_flag". Именно он указывает актёру как преследовать машину, так сказать модель поведения актёра в автомобиле. Все флаги я занёс в нашу базу данных.

В зависимости от ситуации подойдёт один из этих флагов. Эту информацию я откопал на одном сайте. ( Не помню каком ). Там автор рекомендует использовать в месте с опкодом "0713". Что касается параметра "with_order", то он тоже влияет на поведдение. Вот несколько вариантов поведения:

На мой взгляд, неплохая настройка поведения для преследования будет:

{$CLEO}
wait 1000

Model.Load(#ADMIRAL)
Model.Load(#WMYDRUG)
038B: load_requested_models

0@ = Car.Create(#ADMIRAL, 2478.4897, -1658.3586, 12.3348)
1@ = Car.Create(#ADMIRAL, 2498.9456, -1660.1907, 12.355)
Car.Angle(0@) = 90.0
Car.Angle(1@) = 90.0
072A: put_actor $PLAYER_ACTOR into_car 0@ driverseat
0129: 2@ = create_actor_pedtype 4 model #WMYDRUG in_car 1@ driverseat

Model.Destroy(#ADMIRAL)
Model.Destroy(#WMYDRUG)

06E1: AS_actor 2@ using_car 1@ target_car 0@ with_order 3 max_speed 60.0 traffic_flag 16 // установить манеру преследования
0A93: end_custom_thread

На этом урок можно закончить. Я продолжу исследовать опкоды и когда наберётся несколько интересных, то напишу следующую часть. Спасибо за внимание!|1576|1|0|90625068jpg200`149

`\|33437515`jpg`200`132

`||interesnoe_v_skriptinge_chast_2|1504603086

Last updated