Переход разработчиков, документирование и тестирование версии 2.13 на наличие окончательных исправлений к выпуску.
Репозиторий дополнений VSH2
ВНИМАНИЕ. Этот файл ознакомительных сведений скоро будет обновлен. Спасибо за ваше терпение!
VSH2 — это переписанная версия VSH1. И VSH1, и FF2 имели очень плохую структуру игровых модов, использующую дрянной хакерский код. Я мог бы даже пойти дальше и сказать, что у них, вероятно, вообще не было ни структуры, ни какой-либо реальной структуры кода.
VSH2 на самом деле имеет структурированную, основанную на событиях структуру, которая сочетает в себе лучшие функции как FF2, так и VSH1, не только имея поддержку многопользовательских боссов, но и упрощая добавление новых боссов и предоставляя им действительно уникальные способности и механику, предоставляя разработчику полную свободу действий. , неограниченное управление с помощью кода, а не строго файлов конфигурации.
Цель FF2 заключалась в том, чтобы упростить добавление боссов стандартным и стандартным способом. Конечно, есть компромисс: в FF2 гораздо сложнее, если не невозможно, по-настоящему настроить механику и способности босса без необходимости перекодировать части самого FF2. VSH2, поскольку для этого требуется хотя бы некоторый опыт работы с SourcePawn, новичку несколько сложнее создавать новых боссов, чем если бы они использовали FF2, но выбор наград VSH2 идет по более сложному пути, позволяя вам контролировать поведение почти каждого отдельного босса и логика.
Если вам нужна помощь в настройке боссов или, по крайней мере, вам нужна информация об API для создания боссов, воспользуйтесь обширным API VSH2, заглянув в вики VSH2.
NB: VSH2 будет прекрасно работать без дополнительной настройки в качестве замены VSH1, но он был разработан с расчетом на способных разработчиков SourcePawn, чтобы максимально эффективно использовать возможности среды, написанной с нуля!
addons/sourcemod/configs
. Обязательно сохраните структуру папок, указанную в конфигурациях.Используйте новый синтаксис sourcepawn (sourcemod 1.7+).
В утверждениях, требующих скобок (например, в операторах if), каждая сторона скобок должна быть разнесена так, чтобы начальные скобки касались ключевого слова конструкции, например, construct( code/expression )
.
Однострочные комментарии, передающие сообщение, должны иметь три косые черты: ///
.
Многострочные комментарии, передающие сообщение, должны иметь дополнительную начальную звездочку: /**
.
Свойства, функции и методы размером менее 30 строк кода должны начинаться с скобки {
в стиле K&R C, например: ret func() {
.
Имена локальных переменных должны быть в Snake_case.
Имена свойств должны иметь однобуквенный префикс их типа.
Функции, методы, карты методов, перечисления и значения перечислений должны быть названы в PascalCase. Pascal_Case также приемлем.
Значения перечисления, используемые в качестве флагов, могут быть в верхнем регистре.
Правила именованных констант:
1.0
), должны быть перечисляемыми константами, к которым добавляется 0.0
в месте их использования.3.14
), должны определяться препроцессором. Связанные операторы if
не являются плохими, но если данные всегда представляют собой только одну вещь за раз, используйте операторы if-else if
.
if-else if
для одного фрагмента данных, используйте оператор switch
.Битовые поля/флаги позволяют использовать одно целое число как 32 логических значения. Полезно, если элемент может иметь несколько аспектов одновременно.
1 << n
, где n
от 0 до 31.IntLog2
в int_log.inc
: n == IntLog2(1 << n)
Никаких предварительных приращений ++i, i--
, только пост-инкременты i++, i--