Das erstellen von neuen Perks
(Dieses Tutorial stammt nicht von mir! Sondern wurde von Sharcc auf meine Anfrage vom original polnischen übersetzt, und von mir angepasst.)
NOCH NICHT FERTIG NUR GESPECIHERT WEIL DIE PAGE BEI MIR IMMER ABSCHMIERT!!!
Sicher fragst du dich wie das gehen soll, da es nicht möglich ist neue Perks einzubauen, weil diese von der Engine hardcodet sind.
Es ist tatäschlich so, wenn man an die traditionelle Art und Weiße denkt.
Dies hier ist eine alternative Methode, die auf einem anderen Prinzip basiert.
Im Grunde macht man nichts anderes, als nur ein Perkbild(FRM) zu addieren, und die Eigenschaften/Fähigkeiten die unsere Figur bekommt direkt im Script zu defenieren und nicht die Methode(die hardcodet ist) per Engine.
Für das Programmieren von neuen Perks, ist es von Vorteil sich die Dateien Command.h sowie Define.h, in den mapper2/script/HEADERS/ Verzeichnis anzuschauen, um zu verstehen wie diese arbeiten.
Als erstes müssen wir das Erstellen eines neuen Perks erlernen.
Am Anfang solltest du einen einfachen Dialog Script erstellen, welcher unserer Figur den gewünschten Perk bzw. Eigenschaft verleiht.
Diese erlernst du bei einer kurzen Unterhaltung mit dem NPC, welchen du den Script zugewiesen hast.
procedure start;
procedure talk_p_proc;
procedure Node999;
procedure Node001;
procedure Node002;
procedure start begin
end
procedure talk_p_proc begin
start_gdialog(NAME,self_obj,4,-1,-1);
gSay_Start;
call Node001;
gSay_End;
end_dialogue;
end
procedure Node001 begin
Reply(100);
NOption(102,Node002,003);
NOption(101,Node999,003);
end
procedure Node002 begin
Reply(103);
inc_global_var(GVAR_NEW_PERK1);
NOption(101,Node999,003);
end
procedure Node999 begin
end
Jetzt erstellt man noch einen simplen Dialog zum vorhandenen Script.
Inhalt unter xxx.msg (xxx = Name des Scripts) im data/german/text ablegen.
z:B.:
{100}{}{Hi}
{101}{}{Eh, nichts.}
{102}{}{Gib den Perk.}
{103}{}{Ok, hier.}
Der Befehl inc_global_var ist unter Command.h definiert
Das Prinzip basiert auf den GVARs (Globale VARiable), mehr dazu hier.#define inc_global_var(x) inc_global_var_amt(x,1)
Ich empfehle an dieser Stelle sich auch die anderen beiden Teile des Tutorials anzuschauen, falls man noch nie mit Scripten gearbeitet hat.
Die Prozedur von Node002 bewirkt bei unserem Char das hinzufügen eines neuen Perks.
Der Wert der Zeile inc_global_var(GVAR_NEW_PERK1); sollte auf 1 liegen, da damit das Erlernen des Perks/Fähigkeit defeniert wird.
Die neue Gabe/Fähigkeit kann z. B. ein einmaliger großer Bonus beim Handeln sein.
In diesem Fall addierst du die folgende Zeile hinzu:
Dies bewirkt letztendlich unter Karma eine neue Gabe, und das erhöhen der Verbundenheit der Eigenschaftinc_global_var(GVAR_NOWA_KARMA1);
critter_mod_skill(dude_obj,SKILL_BARTER,35);
(das nach dem Koma hab ich nicht wirklich geblickt, ist wohl sicher falsch übersetzt) temp
Jede GVAR muss unter Global. h defeniert werden.
Sowie unter Vault13.gam#define GVAR_NEW_PERK1 (697)
Jetzt unter Karmavar.txt stellst du ein was die Änderung bezwecken soll (zu finden im Ordner data/data)GVAR_GVAR_NEW_PERK1 :=0; // (697)
Die Vorgegebenen Zahlen bedeuten:# GVAR_NEW_PERK1
697, 175, 1026, 1126
697 Nummer des globalen Wechsels
175 Nummer der illustration unter Skilldex.Ist (neu fängt es ab Nummer 175 an)
1026 Die Linie für den Titel der Gabe (unter Editor.msg bei text/english/game)
1126 Die Linie für die Beschreibung der Gabe (ebenso im selben Verzeichnis)
Natürlich musst du den Wert bei Skilldex.Ist ändern, wenn du eine neue Illustration hinzufügst,
schreib dazu einfach den Namen der frm für die eigenen Gabe am Ende der Liste.
Bei Editor.msg schreibst du den Inhalt der Gabe, z. B.:WEPNHAND.FRM ; Weapon Handling
DIVORCED.FRM ; Divorced/Widowed
NKARMA1.FRM ; neue karma 1
Du kannst auch den Namen der Zeilen ändern:{1026}{}{Rechtshänder}
{1126}{}{Da du eine lange Zeit alles mit der rechten Hand ausgeführt hast, ist deine rechte Hand weitaus besser als deine linke. Du richtest mit deiner rechten viel mehr Schaden an.}
Geändert in:{109}{}{PERKS}
{110}{}{KARMA}
Frägst du dich woher du neue Illustrationen (also Bilder) zu den eigenen Eigenschaften nehmen kannst?{109}{}{PERKS1}
{110}{}{PERKS2}
Du kannst die herkümmlichen einfach bei data/art/skilldex modifizieren, schneid von einer was aus und füge sie zu der anderen ein, z. B. so:
Du kannst Perks erstellen welche deiner Figur auf durschnittliche Weise, wie z. B. das erweitern der Kenntnisse, Hinzufügen von PA, das vergrößern von HP.
Das ist auch ganz einfach da du in dem Fall die Standartbefehle bei Define.h benutzen tust.
Es ist ebenso möglich sehr ehrgeizige Perks zu erstellen. Beispielsweise ist solch ein Projekt der Rechtshänder:
Das benutzen einer Waffe an der rechten Hand gibt dem Char mehr Durchschlagskraft. Dies ist schon schwerer hin zu bekommen,
da man auch unter Command.h operieren muss. Momentan weiß ich auch wie man das Fragment des Codes realisieren kann.
Dieser wird testen ob die Figur die Waffe in der rechten Hand hält.
Jetzt unter Dude_obj.ssl welcher ein Script unserer Figur ist, zufässig in der Prozedur critter_p_proc sollte man den Code einfügen#define spieler_hat_die_waffe_in_der_rechten_hand ((obj_item_subtype(critter_inven_obj(x,INVEN_TYPE_RIGHT_HAND))) == item_type_weapon)
if (spieler_hat_die_waffe_in_der_rechten_hand) then begin
(und hier kommt der vergrößerungs Code zur Wirkung)
Die einzige Einschrenkung ist die Vorstellung, und das kennen des Fallout Scripts. Wenn man sich in dem System auskennt,
kann man mindestens +50 weitere Perks erstellen.
Die Namen der Perks sind die am nähsten (abgeleitet von nah) zusätzlichen Gaben unseres Chars,
nur kann man sich andere Namen und Eigenschaften dabei ausdenken. Gegenwärtig:
Perks geben neue Eigenschaften aufgrund des hinzufügens.
Traits vergrößern die einzelnen Gaben und verkleinern die zweiten.
Karma ist etwas im Still was die NPCs beeinflußt (in kurzform)
Das neue System der Perks kann auch eine Mischung dieser drei Arten für die Figur sein.
Das Addieren von ihnen kann sich von den normalen Perks unterscheiden und völlig neue Möglichkeiten schaffen.
Der bislang am interessanteste Perk den ich entdeckt hab ist "Gilden Profession" (???)
bei dem man wie in einem Shop neue Fähigkeiten kaufen konnte.
Um ein Gildenmitglied zu werden, musste man diverse Aufgaben erfüllen,
oder hohe Spezifikationen wie z. B. Krieger, Wissenschaftlier, Dieb, ect besitzen.
In solch einem Fall kann man diese Eigenschaft als Karma weiter verwenden.
Das wär eine Entwicklung der Figur in der profession (???) mit einem höherer Rang
und dies wär mit einem größeres Geschick oder auch einschrängungen verbunden.
Ein MItglied der Gilde der Wissenschaftler könnte ein defensiver Krieger mit niedrigen Werten im bereich Kämpfen sein,
dafür aber mit höheren Werten wie heilen, handeln, umgang mit Computern sowie reparieren.