00028. Актёры и команды, свойственны им. Команды для игрока

Актёры и команды, свойственны им. Команды для игрока|В этом уроке мы рассмотрим команды, которые будут влиять на актёров и игрока.|wmysterio|wmysterio||||Естественно от одного созданного актёра пользы не будет, так как он будет стоять. Все команды можно разделить на 2 большие группы: условные ( опкоды, назначены для проверок ) и безусловные. Начнём с самых простых:

Безусловные

Actor.Health($Actor) = 1000

устанавливает кол-во жизни у актёра

Actor.Armour($Actor) = 150

устанавливает кол-во брони актёра

Actor.Angle($Actor) = 250.24

устанавливает угол поворота актёра

actor.RemoveReferences($ACTOR)

стирает все сведения о актёре. другими словами - актёр нам больше не нужен и игра уже будет сама решать что ему делать

actor.DestroyInstantly($Actor)

уничтожает созданного ранее актёра

actor.PutAt($Actor, 1234.0, -189.0, 36.0)

перемещает актёра в заданные координаты

05D4: AS_actor $Actor rotate_angle 175.8

актёр повернётся на заданный угол ( в отличии от Actor.Angle мы сможем увидеть как он будет поворачиваться )

0672: AS_actor $Actor attack_car $Car

актёр будет атаковать заданную машину

0850: AS_actor $Actor follow_actor $Actor2

актёр1 будет следовать за актёром2

04EB: AS_actor $Actor crouch 1

заставляет актёра присесть, если поставить 0, то заставляет актёра встать.

0332: set_actor $Actor bleeding_to 1

заставляет актёра истекать кровью

03FE: set actor $Actor money 0

устанавливает актёру кол-во денег

05CD: AS_actor $Actor exit_car $Car

заставляет актёра выйти с заданной машины

Actor.WeaponAccuracy($Actor) = 95

устанавливает актёру точность стрельбы

05E2: actor $Actor1 kill_actor $Actor2

заставляет актёра1 убивать актёра2

0639: AS_actor $Actor1 rotate_to_actor $Actor2

заставляет актёра1 повернуться лицом к актёру2

0729: AS_actor $Actor hold_cellphone 1

заставляет актёра взять телефон и приложить его к уху, если поставить 0, то актёр положит телефон обратно в карман ( учтите, что бы было видно телефон нужно загрузить модель #CELLPHONE, а потом использовать этот опкод )

0321: kill_actor $Actor

убить актёра

05BC: AS_actor $Actor jump 0

заставляет пригнуть актёра ( 0 - стиль прыжка, так его и оставляйте, так как ничего особого не поменяется )

actor.SetImmunities($Actor, 1, 1, 1, 1, 1)

устанавливает актёру иммунитеты к ударам, взрывам и прочего.

07FE: set_actor $Actor fighting_style_to 5 6

устанавливает актёру определённый стиль драки

08C6: set_actor $Actor stay_on_bike 1

актёр не сможет упасть с байка, если поставить 0 - то сможет

06B0: AS_actor $Actor sit_down 5000 ms

заставляет актёра сидеть 5 секунд ( 1000 ms = 1 сек. )

05BA: AS_actor $Actor chew_gum 5000 ms

заставляет актёра жевать жвачку 5 секунд ( 1000 ms = 1 сек. ), но иногда не срабатывает

0245: set_actor $Actor walk_style_to "FATMAN"

устанавливает актёру определённый стиль походки. Я нашел только эти стили:

Стиль

Описание

"FATMAN"

толстяк

"GANG1"

гангстер 1

"GANG2"

гангстер 2

"MAN"

мужчина

"WOMAN"

женщина

"BLINDMAN"

слепой мужчина

"SEXYWOMAN"

сексуальная женщина

"DRUNKMAN"

алкаш

"PLAYER"

стиль игрока ( СЖ ), но я не тестировал этот стиль

0446: set_actor $Actor immune_to_headshots 0

устанавливает актёру иммунитет от хеадшотов ( выстрелов в голову ), если поставить 1 - то, как уже догадались, прострелить голову будет нельзя

Вот список условных опкодов, то есть тех, которые должны использоваться в блоке "if"

Условные

0965: actor $Actor swimming_in_water

проверка: находится актёр в воде?

06EE: actor $Actor in_group $Player_Group

проверка: находится актёр в группе $Player_Group?

actor.InCar($PLAYER_ACTOR, $Car)

проверка: находится актёр в заданной машине?

actor.Driving($PLAYER_ACTOR)

проверка: сидит актёр за рулём(или в транспорте)?

actor.DrivingPoliceVehicle($PLAYER_ACTOR)

проверка: сидит актёр за рулём полицейского транспорта?

actor.DrivingTaxiVehicle($PLAYER_ACTOR)

проверка: актёр сидит за рулём в такси?

04A7: actor $PLAYER_ACTOR driving_boat

проверка: актёр сидит за рулём(штурвалом) лодки?

actor.DrivingVehicleType($ACTOR, #CAR_MODEl)

проверка: модель машины актёра равна #CAR_MODEl?

actor.Dead($PLAYER_ACTOR)

проверка: актёр умер?

actor.Stopped($PLAYER_ACTOR)

проверка: актёр остановился(не бежит)?

04C5: actor $PLAYER_ACTOR photographed

проверка: актёр фотографирует?

056D: actor $ACTOR defined

проверка: существует ли актёр?

Эти опкоды можно использовать со всеми актёрами, в том числе СЖ. Однако есть опкоды, которые свойственны только игроку. Рассмотрим некоторые с них:

Безусловные

052C: set_player $PLAYER_CHAR drunk_visuals 100

заставляет экран шататься, как будто игрок пьян (100 - сила шатания, не советую делать очень большие цифры, иначе шатание превратится в мерцание)

player.CanMove($PLAYER_CHAR) = false

вы не сможете ничего делать. Если поставить true, то сможете. Очень часто используется, особенно при видеороликах.

player.ClearWantedLevel($PLAYER_CHAR)

очищает уровень розыска

player.Money($PLAYER_CHAR) += 1000

прибавляет игроку 1000 денег

0998: add respect 5

прибавляет игроку респект ( уважение )

0992: set_player $PLAYER_CHAR weapons_scrollable 1

даёт игроку возможность менять оружие, которое у него в руках. Если поставить 0 то вы не сможете менять ( как бы замораживает его в руке )

Условные

Player.Defined($PLAYER_CHAR)

проверка: игрок существует?

player.PressingHorn($PLAYER_CHAR)

проверка: игрок сигналит? Что бы сработала эта проверка нужно находится в транспорте и нажать "Сигнал"

wasted_or_busted

проверка: игрок пойман или арестован? Использовать только в миссиях!!!

Player.Controllable($PLAYER_CHAR)

проверка: игрок контролируем?

0457: player $PLAYER_CHAR aiming_at_actor $Actor

проверка: игрок целится в актёра?

Player.WantedLevel($PLAYER_CHAR) > 0

проверка: уровень розыска игрока больше нуля? Максимальный уровень розыска может быть 6 и не более.

Это только самые распространённые команды в скрипте. Есть очень большое количество опкодов и по мере изучения скриптинга в целом мы будем изучать новые и новые опкоды.

Стоит также расказать о разнице между "$PLAYER_ACTOR" и "$PLAYER_CHAR". Новички часто путают эти переменные и используют их не там, где нужно. Если в описании опкода есть слово "actor", то в тотальном большинстве случаев нужно использовать "$PLAYER_ACTOR". Если в опкоде есть слово "player", то нужно использовать "$PLAYER_CHAR".|2652|1|0||aktjory|1498735550

Last updated