Entwickler umstellen, 2.13 dokumentieren und testen, um endgültige Korrekturen für die Veröffentlichung zu finden.
VSH2-Addons-Repository
HINWEIS: Diese Readme-Datei wird in Kürze aktualisiert. Vielen Dank für Ihre Geduld!
VSH2 ist eine Neufassung von VSH1. VSH1 und FF2 hatten beide ein sehr schlechtes Gamemode-Framework mit schäbiger, hackiger Codierung. Ich könnte sogar so weit gehen zu sagen, dass sie wahrscheinlich überhaupt kein Framework und keine wirkliche Struktur im Code hatten.
VSH2 verfügt tatsächlich über ein strukturiertes, ereignisbasiertes Framework, das die besten Funktionen von FF2 und VSH1 kombiniert, indem es nicht nur Multiplayer-Bossunterstützung bietet, sondern auch das Hinzufügen neuer Bosse erleichtert und ihnen durch die Bereitstellung wirklich einzigartiger Fähigkeiten und Mechaniken wirklich einzigartige Fähigkeiten und Mechaniken verleiht , uneingeschränkte Kontrolle durch Code statt reiner Konfigurationsdateien.
Der Zweck von FF2 bestand darin, das Hinzufügen von Bossen ganz einfach und auf einfache Art und Weise zu ermöglichen. Natürlich gibt es einen Kompromiss: In FF2 ist es viel schwieriger, wenn nicht sogar unmöglich, die Boss-Mechaniken und -Fähigkeiten wirklich anzupassen, ohne Teile von FF2 selbst neu programmieren zu müssen. Da VSH2 zumindest etwas Erfahrung mit SourcePawn erfordert, ist es für einen Neuling etwas schwieriger, neue Bosse zu erstellen, als wenn er FF2 verwenden würde, aber die Wahl von VSH2 belohnt den schwierigeren Weg, indem es einem ermöglicht, nahezu jedes einzelne Bossverhalten zu kontrollieren Logik.
Wenn Sie Hilfe beim Einrichten der Bosse benötigen oder zumindest Informationen über die API zum Erstellen von Bossen benötigen, dann nutzen Sie die umfangreiche API von VSH2, indem Sie einen Blick auf das VSH2-Wiki werfen
Hinweis: VSH2 funktioniert als VSH1-Ersatz völlig einwandfrei, wurde jedoch mit Blick auf fähige SourcePawn- Entwickler entwickelt, um das Beste aus dem von Grund auf neu programmierten Framework herauszuholen!
addons/sourcemod/configs
. Achten Sie darauf, die Ordnerstruktur der Konfigurationen beizubehalten.Verwenden Sie die neue Sourcepawn-Syntax (Sourcemod 1.7+).
Anweisungen, die Klammern erfordern (z. B. „if“-Anweisungen), sollten auf beiden Seiten der Klammern einen Abstand haben, wobei die beginnenden Klammern das Schlüsselwort „construct“ berühren, z. B. construct( code/expression )
.
Einzeilige Kommentare, die eine Nachricht übermitteln, müssen drei Schrägstriche enthalten: ///
.
Mehrzeilige Kommentare, die eine Nachricht übermitteln, sollten einen zusätzlichen Anfangsstern haben: /**
.
Eigenschaften, Funktionen und Methoden, die kleiner als 30 Codezeilen sind, sollten die geschweifte Klammer {
im K&R-C-Stil haben, zum Beispiel: ret func() {
.
Lokale Variablennamen sollten in „snake_case“ angegeben werden.
Eigenschaftsnamen müssen ein aus einem Buchstaben bestehendes Präfix ihres Typs haben.
Funktionen, Methoden, Methodenzuordnungen, Aufzählungen und Aufzählungswerte müssen in PascalCase benannt werden. Pascal_Case ist ebenfalls akzeptabel.
Als Flags verwendete Enum-Werte können in Großbuchstaben geschrieben werden.
Regeln für benannte Konstanten:
1.0
), sollten Enum-Konstanten sein, denen an der/den Verwendungsstelle(n) der 0.0
hinzugefügt wird.3.14
), sollten vom Präprozessor definiert werden. Verkettete if
Anweisungen sind nicht schlecht, aber wenn es sich bei den Daten immer nur um eine einzelne Sache handelt, verwenden Sie if-else if
-Anweisungen.
if-else if
-Anweisungen für ein einzelnes Datenelement ausführen, verwenden Sie eine switch
Anweisung.Mit Bitfeldern/Flags können Sie ein einzelnes Int als 32 Bools verwenden. Nützlich, wenn ein Element mehrere Aspekte gleichzeitig haben kann.
1 << n
wobei n
zwischen 0 und 31 liegt.IntLog2
in int_log.inc
: n == IntLog2(1 << n)
Keine Pre-Inkremente ++i, i--
, Post-Inkremente nur i++, i--