SDK – повышаем сложность игры

on

SDK – повышаем сложность игры

 

 

 

 

 

Сложность: Низкая

 

 

Всем привет. Как вы уже поняли, в этой статье я хочу показать вам, как повысить (или облегчить) сложность игры, изменяя маленькие параметры каждого уровня сложности и некоторых параметров игрока. Для чего это нужно? Скажем, для новых ощущений в Serious Sam SE при прохождении сначала, или же для кооперативных карт мапперов, что хотят усложнить приключения Сэма в их маленьком мире. Статья небольшая, но новичкам может пригодиться.

 

 

Внимание: Эта статья подразумевает, что у вас уже есть настроенная директория для SDK, и вы знаете хотя бы минимум для работы с ней.

 

Итак, для работы нам понадобятся всего два исходника – Game.cpp и Player.es.

 

Сейчас мы разберемся с Player.es. Моя идея — показать вам, как сделать ограниченный боезапас, уровень здоровья и брони на уровнях сложности «Турист» и «Новичок» (уровень здоровья и брони как на «Обычном» и далее), сделать на них же отсутствие защиты от собственных ракет и гранат и убрать регенерацию здоровья на уровне сложности «Турист».

 

Ограниченный уровень здоровья и брони на «Туристе» и «Новичке»:

 

Здесь работаем с Player.es. Открываем исходник и находим строчки:

 

Как видите, здоровье, и броня показаны здесь двумя типами: Top и Max.

Все очень просто. Top – если рассматривать, как TopHealth – количество здоровья, выше которого аптечки, колбы и пробирки уже не берутся (исключением здесь служит таблетка). MaxHealth – максимальное количество здоровья. Если оно ниже максимума, но все еще больше TopHealth, то аптечки, колбы и пробирки тоже не имеют силы – повысить здоровье до максимума вы сможете только сердцами или таблетками. Такая же история и с MaxArmor и TopArmor.

Теперь примемся за настройку этих параметров. У TopHealth и TopArmor в функции return .

 

«Чего же тут медлить! – воскликнете вы. – Достаточно просто выставить 100 повсюду и вуаля – уровень здоровья ограничен». Нет, дорогие друзья, если вы сделаете так, то не сможете брать сердечки, таблетки и т.д – максимальный уровень здоровья будет равен сотне! (правда, если уровень здоровья будет ниже нуля, вы все равно сможете восстанавливать его)

 

Параметрам TopHealth и TopArmor в функции return ставим по 100 единиц. Также, не забываем в CSessionProperties GD_EASY поменять на GD_ EXTREME. Если этого не сделать, наши действия будут равносильны эпосу, описанному выше.

Теперь правим MaxHealth и MaxArmor. И здесь особо париться не надо – ставим 200 единиц в ту функцию return, что находится повыше (первую). В итоге у нас получается все так, как и нужно было:

 

 

Теперь, в этом же самом исходнике, мы уберем возможность регенерации здоровья на «Туристе».

 

Ищем строчки, показанные на изображении:

 

Выделяем их и удаляем.

Будьте аккуратны, при удалении не заденьте другие скобки и параметры!

Если рассмотреть удаленный нами код подробней, то получается:

Когда активен уровень сложности «Турист» (GD_TOURIST), игра берет текущее значение здоровья (GetHealth) и сравнивает его с минимальным уровнем (не ноль, а TopHealth!). Если текущее значение здоровья (GetHealth) будет меньше минимального (TopHealth), к текущему значению (GetHealth) начинает прибавляться по одной единице (fHealth+) до тех пор, пока оно не станет минимальным (TopHealth).

Зная код, можно быстро сделать регенерацию здоровья на всех уровнях сложности (если нужно).

Теперь, опять же в этом исходнике, мы запретим защиту от собственных гранат и ракет на легких уровнях сложности. Ищем строки:

 

Удаляем и этот код тоже.

Перейдем теперь к исходнику Game.cpp. В нем нам нужно уменьшить боезапас, увеличить скорость бега и скорость атаки противников, увеличить повреждения, наносимые врагами.

 

В самом начале исходника ищем такие вот строчки:

 

Пять значений – пять уровней сложности. Опять же, ничего сложного.

 

В первом параметре gam_afAmmoQuantity смотрим два первых значения. Они равны двум. Если уменьшить до единицы, боезапас будет таким же, как и на «Обычном» и далее уровнях сложности.

 

Во втором параметре gam_afDamageStrength значения первых двух уровней сложности разнятся. Значения первого – 0.25, второго – 0.5. Завысим их чуть–чуть, выставим первому уровню сложности 0.3, второму – 0.6. Теперь нас будут чуть – больнее бить.

 

В третьем параметре gam_afEnemyAttackSpeed мы видим, что скорость атаки врагов не очень большая, поэтому первым двум значениям ставим 0.85 вместо 0.75.

 

И, наконец, четвертый параметр gam_afEnemyMovementSpeed показывает нам, насколько быстро бегут враги. Здесь можно ничего не менять – зачем нам слишком уж надоедливые враги?

Сохраняйте два этих исходника и компилируйте. Не забудьте о том, что сама Visual C++ может проворонить момент и не скомпилировать другую библиотеку, которую вы еще не выбирали. Обычно она должна видеть изменения в исходниках и компилировать не одну вами выбранную, а все те, в которых были изменения.

 

Вот и закончена наша «опасная» статья. Надеюсь, вам она понравилась. Если я допустил какие – либо ошибки – сообщайте. Если что непонятно – спрашивайте.

 




Добавить комментарий