Поведение актеров в SA
В этой статье мы расскажем об управлении актёрами. Статья будет постоянно наполняться разными опкодами, которые возможно будут взяты с комментариев или с форума, но авторство будет соблюдаться в полной мере. Вот, теперь начнём.
Сперва рассмотрим как вообще создать актёра на карте, я думаю в этом ничего сложного нет, первая создаёт актёра в заданных координатах, вторая в машине в качестве пассажира, а третья в машине за рулём: 009A: @39= create_actor 24 105 at 0.0 0.0 0.0
01C8: @40 = create_actor 23 105 in_car @35 passenger_seat 0
0129: @41 = create_actor 23 105 in_car @35 driverseat
Чтобы уничтожить актёра или просто выгрузить из памяти, превратив его в обычного пешехода (вторая команда), есть опкоды: 009B: destroy actor instantly @18
01C2: remove references to actor @2
Далее рассмотрим команды, которые отвечают за свойства актёра, сначала здоровье и броня: 0223: set actor @2 health to 500
035F: set actor @98 armour to 100
Дать игроку оружие (все номера оружия в другой статье), второй опкод дасть оружие в обе руки: 01B2: give_actor @2 weapon 28 ammo 600
081A: @2 2
Теперь рассмотрим, как заставить актёра что-либо делать, следующая комнда заставит актёра @71 убить игрока: 05E2: unknown_action_sequence @71 $PLAYER_ACTOR
Чтобы актёр присел: 04EB: unknown_action_sequence @71 1
Теперь разберёмся с группами! Сперва о том как создать группу: 062F: @239 = create_group_type
0 - не реагирует на игрока
1 - реагирует, когда в него стреляют
2 - просто стоит
3 - стоит и разговоривает и жестикулирует руками
4 - стоит и просто болтает не жестикулируя руками
5 - ходит по тротуару
Теперь, как засунуть актёра в группу (первая лидером, вторая просто членом группы): 0630: put_actor @102 in_group @239 as_leader
0631: put_actor @102 in_group @239
Теперь о некоторых группах которые отвечают за свойства актёров: 060A: unknown_create_entity 0 @236 - не реагирует
060A: unknown_create_entity 1 @236 - поднимает руки вверх когда целишься, и атакует если вы атакуете
060A: unknown_create_entity 2 @236 - регирует(стреляет) когда целишься
060A: unknown_create_entity 3 @236 - убегает когда целишься
Параметры активируем например командой, где $14 это актер 060B: unknown_actor_use_entity $14 @236