Рейтинг - 4.4 (5)

В этом уроке мы рассмотрим команды, которые будут влиять на актёров и игрока.

Естественно от одного созданного актёра пользы не будет, так как он будет стоять. Все команды можно разделить на 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".


undead099032   (24.08.12 20:05)
А как сделать чтобы у СЖ сначала загорела голова, а при нажатии на любую клавишу у него изо рта выходил огонь?

Yurko_UA   (24.08.12 23:47)
Почитай урок про огонь, может там что-то будет http://ru-script.3dn.ru/publ....-1-0-90

NARC   (25.08.12 01:51)
player.PressingHorn($PLAYER_CHAR)поменяйте кто может на $PLAYER_CHAR. Опечаточка вышла

Tom_Harison   (25.08.12 08:30)
поменял!

undead099032   (29.08.12 09:56)
А как сделать чтобы актер убивал с первого раза??
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Какая GTA Вам понравилась больше всего?
Всего ответов: 7
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
wmysterio
Реклама