Рейтинг - 5.0 (3)

Сегодня мы опять каснёмся темы актёров. На этот раз мы рассмотрим их модели поведения. Тоесть будем сами указывать как должен вести себя актёр в определённых ситуациях.

Приветствую Вас, уважаемые пользователи нашего сайта RU-SCRIPT.3DN.RU! Для начала, рассмотрим опкоды, которые умеют создавать модели поведения:

060A: create_decision_maker_type 0 store_to $DM
06AE: create_group_decision_maker_type 0 store_to $GDM
Здесь:
0 - тип поведения ( смотрите таблицу 1 )
$DM и $GDM - переменные самых моделей поведения

Первый опкод задаёт поведения для актёра, второй - для целой группы ( банды ). Рассмотрим таблицу типов:

Таблица 1
Тип поведенияОписание
0Поведение актера в группе
1Модель поведения копа
2Обычная модель
3Храброе поведение
4Трусливое поведение

После того, как модель объявлена, нужно присвоить её актёру или группе:

060B: set_actor 1@ decision_maker_to $DM 
06AD: set_group $PLAYER_GROUP group_decision_maker_to $GDM
Здесь:
1@ - переменная актёра, который будет следовать заданной модели поведения
$PLAYER_GROUP - переменная группы, для которой будет присвоена модель поведения
$DM и $GDM - переменные самых моделей поведения

Есть опкод, который проверяет: "Существует ли модель поведения?":

09F2: decision_maker $DM exists

Так же есть возможность сбросить стоковую реакцию актера на событие:

0708: reset_decision_maker $DM event 9
Здесь:
$DM - переменная модели поведения 9 - событие, которые будет сбрасываться ( см. События актёров ). Насколько я понял, актёр не будет выполнять ( или будет пытаться не выполнять ) событие. Тоесть, если сбросить событие поднятия рук когда в него целится, он не будет поднимать их. Это уже плюс к интеллекту противника

Ну и, естественно, если модель поведения больше нужна, то её следует выгрузить с памяти:

065C: remove_references_to_decision_maker $DM

Так же можно задать стиль походки нужного актёра:

0245: set_actor 1@ walk_style_to "FATMAN"
Здесь:
1@ - сам актёр
"FATMAN" - стиль походки ( смотрите таблицу в этом уроке )

Теперь к примерам. Давайте создадим актёра на Гроув используя модели поведения:

{$CLEO}
0000:
 
:DM
thread 'DM'
wait 0
060A: create_decision_maker_type 4 store_to 1@
0376: 0@ = create_random_actor_at 2486.2708 -1655.7012 12.3363
actor.Angle(0@) = 195.281
actor.Health(0@) = 90000
077A: set_actor 0@ acquaintance 2 to_actors_pedtype 0 // see ped.dat 
0446: set_actor 0@ immune_to_headshots 0 
0245: set_actor 0@ walk_style_to "GANG1"
0708: reset_decision_maker 1@ event 9
060B: set_actor 0@ decision_maker_to 1@ 
 
while not actor.Dead(0@)
wait 0
end
 
065C: remove_references_to_decision_maker 1@
0A93: end_custom_thread

Теперь посмотрите, как будет себя вести актёр:

А вот, что будет, если буквально поменять тип поведения на трусливое ( decision_maker_type "3" ) при этом же скрипте:

Как видите, результат противоположный. Можно сказать, что мы можем управлять даже характером актёров :) Какой вариант подойдёт вашим актёрам? :)


Теги: модель поведения, decision maker

NFSCarbon_VSD   (06.12.12 22:01)
А если не писать
0708: reset_decision_maker 1@ event 9,
то результат будет тот же самый?
Вход на сайт

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

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

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