24 часа в сутки вопросы по созданию, модификации и вскрытию игр принимаются на адрес gamedev@igromania.ru
Хочу создать мод для GTA: San Andreas, в котором при снижении здоровья до критического уровня у Сиджея сочилась бы кровь. Возможно ли это?
Да, вполне возможно — при помощи редактора SAMB. Если надо сделать так, чтобы тот или иной персонаж истекал кровью, воспользуйтесь следующей незамысловатой конструкцией:
:Blood_Test
0001: wait 0 ms
03FD: set_player $PLAYER_CHAR handling_responsiveness 7
052C: set_player $PLAYER_CHAR drunk_visuals 225
0208: $random1 = random_float -1.0 1.0
0208: $random2 = random_float -1.0 1.0
0208: $random3 = random_float -1.0 1.0
00A0: store actor $PLAYER_ACTOR position to $x_pos $y_pos $z_pos
09B8: create_blood_gush_at $x_pos $y_pos $z_pos offset $random1 $random2 $random3 density 20 on_actor $PLAYER_ACTOR
0002: jump ЈЈBlood_Test
При изменении значения параметра density 20 на density 150 (к примеру) кровь из главного героя начнет буквально хлестать. Поэкспериментируйте с этой командой — получите массу незабываемых впечатлений.
![]() |
Вождение в пьяном виде ни к чему хорошему не приведет. |
В GTA: Vice City в миссии Boomshine Saigon нам довелось отвезти Фила с оторванной рукой к его другу. Так вот, в этой миссии мы управляем машиной в нетрезвом состоянии. Есть ли в GTA: San Andreas какие-нибудь команды, позволяющие активировать данный режим?
К сожалению, «легальными» способами напоить Сиджея не получится, но в скриптах есть две команды, которые помогут нам обойти это ограничение:
03FD: set_player $PLAYER_CHAR handling_responsiveness 7
052C: set_player $PLAYER_CHAR drunk_visuals 225
Если вы хотите, чтобы главный герой оставался пьяным на протяжении длительного времени, вам необходимо поставить две команды в цикл:
:Pjanka
03FD: set_player $PLAYER_CHAR handling_responsiveness 7
052C: set_player $PLAYER_CHAR drunk_visuals 225
0002: jump ЈЈPjanka
![]() |
Один точный выстрел в грудь из не самого сильного ствола отнимает теперь у монстра добрую половину здоровья. |
Вопрос по Quake 4. При попадании в разные части тела монстров повреждения почему-то наносятся одинаковые. Можно ли это как-то исправить?
Чтобы увеличить повреждения, которые наносятся монстрам при попадании в разные части тела, вам нужно подправить в любом текстовом редакторе содержимое DEF-файлов из папки def\ai (архив pak001.pk4). У всех противников в Quake 4 три зоны поражения (за исключением «гладиатора») — голова, ноги и все остальное. Отсюда и ощущение, что, куда бы ты ни попал, эффект один и тот же. При поражении головы враг получает удвоенный урон, при ранении в ногу — урон в три четверти от стандартного. Да и то далеко не во всех случаях — у многих противников деления на зоны повреждений вообще нет.
Установим для каждой области тела строггов свой множитель урона. Добавим новые строки в файлы с параметрами монстров, а точнее — в раздел вида entityDef X (X здесь соответствует имени редактируемого файла). Для удобства новые строчки лучше располагать за параметрами с именами такого же вида. Мы будем работать с двумя типами настроек: damage_zone Y (определяет, название какого участка тела будет выглядеть в кратком виде как Y) и damage_scale Y (множитель повреждений, которые получает герой, будучи атакованным в часть тела Y).
Поскольку у разных монстров строение тела разное, к каждому из них нужен индивидуальный подход. Так, в файлы monster_berserker.def и monster_iron_maiden.def вставим следующий фрагмент кода:
"damage_zone lowerback" "*lowerback"
"damage_scale lowerback" "1.2"
"damage_zone upperback" "*upperback"
"damage_scale upperback" "1.5"
Верхние две строки соответствуют пояснице монстра, нижние — воротниковой зоне. Таким образом, в нашей модификации верхняя часть спины berserker и iron maiden будет более уязвима, чем нижняя.
В файл monster_berserker.def добавим строчки, описывающие повреждения средней части спины:
"damage_zone midback" "*midback"
"damage_scale midback" "1.3"
Файлы monster_failed_transfer.def, monster_gladiator.def, monster_grunt.def, monster_gunner.def, monster_harvester.def, monster_harvester_combat.def, monster_iron_maiden.def, monster_makron.def, monster_network_guardian.def, monster_scientist.def, monster_slimy_transfer.def, monster_stream_protector.def, monster_strogg_marine.def, monster_tactical_transfer.def дополним следующим текстом:
"damage_zone waist" "*waist"
"damage_scale waist " "1.25"
"damage_zone shoulders" "*shoulders"
"damage_scale shoulders " "0.5"
Верхние две строки описывают область талии, нижние две — плечи. Как видите, теперь попадание врагу в плечо мало что даст по сравнению, скажем, с атакой в область талии.
Во все файлы, содержащие слово monster в имени, кроме monster_boss_buddy.def, monster_convoy_ground.def, monster_convoy_hover.def, monster_fatty.def, monster_heavy_hovertank.def, monster_lt_tank.def, monster_strogg_troopcarrier.def, monster_teleport_dropper.def, monster_turret.def, monster_turret_bunker.def, monster_turret_flying.def и monster_turret_rocket.def, поместим приведенные далее строки:
"damage_zone chest" "*chest"
"damage_scale chest " "1.6"
Эти скрипты сделают ранение в грудь очень опасным для ваших противников. Такое распределение урона более логично, чем в оригинале. Целиться теперь придется тщательнее, но зато стоит пару раз точно попасть в неприятеля — и он умрет.