Seradin
Kleine Drow
- Registriert
- 20.09.2002
- Beiträge
- 1.386
So dann beginne ich mal.
Ich werde versuchen anhand eines neuen NPC die Erschaffung eines solchen zu zeigen. Das ganze mache ich mit WeiDu, da damit eine einfache Integation ins Spiel möglich ist. Ihr findet alles was ich hier vorstelle und noch vieles mehr im Resourcen-Topic.
1. Tools
Um richtig basteln zu können braucht man auch eine entsprechende Ausrüstung, deshalb hier eine kleine Auflistung der Programme die ich benutzen werde.
2. Foren
Nun noch zu einigen Foren in denen sich mit dem Basteln von Modulen (Mods) beschäftigt wird. Ich nenne hier nur zwei, aber es gibt natürlich noch einige weitere, die man auch im Ressourcen-Topic findet.
3. Tutorien
So zum Schluss verweisse ich noch auf maus NPC-Tutorial, aber auch hier gibt es viele weitere im Netz, die meisten sind aber englischsprachig.
4. NPC-Module
Hier noch eine kleine Tabelle mit den schon gemachten oder gerade in Abreit stehenden NPC.
5. Lexikon der Module-Bastler
6. Wie mache ich ein NPC-Modul
a) Das erzeugen eines Creature-files
[flüster]Das Beispiel ist kursiv geschrieben.[/flüster]
Was bracht man alles?
Man sollte sich als erstes klar werden, was man eigentlich machen will und wie der Charakter grob aussehen soll. Ob der neue NPC nun nur einer wird, der in die Gruppe aufgenommen werden kann, oder ob man einige Quests und vielleicht sogar eine Romanze zu ihm schreibt, ist für den Anfang ganz egal. Ich würde auch vorschlagen, erst einen zu erstellen, der nur in die Gruppe aufgenommen wird, und wenn man danach immer noch Lust hat, ihn langsam ausbaut.
Wenn man nun also seinen Charakter sich etwas überlegt hat, startet man das Baldurs Gate 2 Spiel und zwar Schatten von Amn im Mehrspieler Modus. Dort betätigt man den 'Charakter generieren' Button. Nun ist man im Charakter-Erstellungs-Bildschirm, den man ja kennen sollte. Jetzt generiert man sich seinen Charakter grob. Damit meine ich, man muss nicht würfeln bis die Attribute so sind wie man sie gerne hätte, das kann man später noch. Nach dem Einstellen
auf den Button 'Exportieren' klicken und einen unverwechselbaren Namen abspeichern. So, nun kann man das Spiel wieder schliessen.
Nun startet man den ShadowKeeper (SK). Sollte es noch nicht installierte sein, so sollte man sich das Programm runter laden und die exe-Datei starten.
Um die gespeichte Datei zu bearbeiten, öffnet man 'File' und in dort dann 'Open Character File...'. Nun öffnet sich ein Fenster in dem man seinen Charakter suchen muss. Wenn man ihn gefunden habt, klickt man auf den Namen und markiert dadurch die Datei. Nun betätigt man den Button 'OK'. Nun sieht man die chr-Datei seines Charakters. Hier kann man nun einiges ändern.
WICHTIG: Man sollte nie die Stufe des Charakters ändern. Wenn man ihm eine höhere Stufe geben will, dann sollte man dies immer über 'Experience' (Erfahrungspunkte) tun und dann im Spiel den Charakter aufsteigen lassen.
So nun aber zu den einzelnen Teilen. Unter 'Abilities' findet man:
eigentlich einen ganz anderen Charakter erstellen. Die nächsten vier Seiten, 'Memorization' (wieviel ist von welcher Zauberstufe memoriert; nicht mit spielen), 'Innate' (Innate-Fähigkeiten, wie z.B Fallen stellen, Wunden heilen; nicht mit spielen), 'Wizard' (bekannte Zauber des Magiers und Hexers) und 'Priest' (Priester- und Druidenzauber) sind für spells (Zauber) da. Bei 'Saving Throws' sind wieder die Grundwerte der Rettungswürfe ohne Modifier angegeben. 'Proficiencies' hier verteilt man die Waffenfertigkeitspunkte (darauf achten nur soviele vergeben, wie man auch weggenommen hat). Danach kommt 'Resistances' hier kann man seinem NPC Resistenzen vergeben (in Prozent). Unter 'Thievs' findet man die Diebesfähigkeiten, auch diese sind wieder nur die Grundwerte und das Spiel speichert intern die Boni und die Stufenabhängigen. Der Rest 'State Flags', 'Affects' und 'Global Variables' sind für diese Moderstellung unwichtig, also Finger weg.
Wenn man nun alles eingestellt hat speichert man alles ab. Dazu öffnet man wieder 'File' und klickt auf 'Save'. Man sollte beachten, dass man mit dem SK keine Datei überschreiben kann und deshalb einen neuen Dateinamen vergeben muss.
Nun, da man seine Änderungen abgespeichert hat, kann man die Kreaturen Datei (.cre) erschaffen. Dazu öffnet man 'Tools' und dort aktiviert man 'Convert to CRE' und erstellt dadurch die cre-Datei. Damit es keine Probleme mit schon existierenden Dateien gibt, ist es empfehlenswert vor seine eigenen Dateien eine Buchstabenkombination und einen Lattenzaun '#' zu setzten. Dies machen schon einige Module-Bastler, deshalb sollte man schaun welche Kürzel schon vergeben sind. Dazu hatte maus mal eine Liste angefangen.
Es ist noch zu empfehlen alles in einem extra Ordner zu speichern. Ich lege dafür immer einen Ordner, auf einer anderen Partition, mit dem Namen des Moduls an. Um die cre-Datei dort hinein zu bekommen, öffnet man den override-Ordner im BG2-Verzeichniss und sucht die Datei. Danach kopiert man sie aus diesem Ordner und fügt sie in den Modul-Ordner ein.
Da man nun den Charakter hat, kann man seine Aufmerksamkeit den Dialogen widmen.
b) Das Erstellen eines Dialoges
Was bracht man alles?
Am Anfang braucht man zwei Dialoge auf jeden Fall
Die ganzen Dialogdateien speichert man am Besten auch bereits im Modul-Ordner. Zum Schreiben der Dialoge empfihlt sich der ConTEXT-editor zusammen mit dem WeiDu Zusatz. Man kann aber auch jeden anderen Editor verwenden. Man sollte darauf aufpassen, das alles als eine Text-Datei angesehen wird.
So nun zu den Dialogen:
Am Anfang der Dialogdatei muss immer ein
BEGIN ~Dateiname für dlg-Datei~
stehen. Dies ist nötig, damit der WeiDu-Übersetzer weiss wo die Datei beginnt. Der Name zweischen den Tildes (~) wird dann der Name der dlg-Datei.
Die einzelnen Zwiegespräche zwischen dem NPC und anderen sind immer gleich aufgebaut.
Eine Dialogoption würde nun so aussehen:
Möchte man unterschiedliche Texte bei männlichen und weiblichen HC's machen dann funktioniert dies so:
Nun zu den häufigsten Bedingungen:
Unter Anweisungen versteht man meisstens das setzten von Variablen
SetGlobal("VariablenName","Zuordnung",neuer_Wert)
oder bestimmte Befehle
JoinParty() => in die Gruppe beitreten
Das Beispiel für den Aufnahme-Dialog ist hier
So nun kommt der Rauswurfdialog:
Dieser Dialog ist genauso aufgebaut wie jeder andere Dialog auch.
Man muss aber auf den dlg-Dateinamen aufpassen. Rauswurfdialoge werden mit einem
P gekennzeichnet. Also zum Beispiel so: NPCNameP.
Im Rauswurfdialog befindet sich auch der Wiederaufnahmedialog.
Nun muss man die Dialoge noch speichern. Dafür sind die d-Dateien da. Der
Aufnahmedialog wird in ?#NPCName.d und der Rauswurfdialog in der ?#NPCNameP.d
gespeichert. Dabei steht das ? für das eigene Kürzel (bei mir wäre das ein S).
Den Aufnahmedialog speichere ich in der S#Germon.d Datei und den Rauswurfdialog
in der S#GermP.d (beides im Mod-Ordner).
Achtung: Nicht mehr als 8 Zeichen verwenden.
Die Dialoge, die wir bis jetzt gemacht haben, sind nur für den SoA-Teil (man
kann den Mod aber auch mit ToB spielen).
Soll das Mod in mehreren Sprachen vorhanden sein, benützt man ausser den d-
Dateien noch tra-Dateien für die enzelnen Sprachen. In den d-Dateien steht dann
nur der Syntax des Dialoges und in den tra-Dateien dann die Strings des Dialoges
. Der Verweis auf den entsprechenden String wird mit @Zahl gemacht. Die
tra-Dateien stehen dann in einem Ordner 'deutsch', 'english' usw.
Beispiel:
Das Beispiel für den Rauswurfdialog ist hier
c) Die tp2-Datei
Zum Zuweisen der beiden Dialoge, muss man jetzt das Mod installieren. Dafür
braucht man zwei Dateien:
eines schon vorhandenen WeiDu-Mods und kopiert diese Datei. Danach benennt man
sie um, zum Beispiel Setup-NPC.exe.
Bei mir heisst sie einfach Setup-Germon.exe.
Die exe-Datei ist für das Ausführen der Installation da.
So nun fehlt noch die tp2-Datei. Dieses kann man wie fast alles einfach mit einem editor schreiben. In dieser Datei steht sozusagen das Rezept für die Installation. In dieser Datei wird genau aufgeschlüsselt, welche Mod-Datei wohin
installiert werden soll und welche Datein überhaupt zu dem Mod gehören. Es sorgt auch für das compilieren der d-Dateien.
Auch die tp2-Datei folgt, wie die meisten WeiDu Dateien einem bestimmten Schema.
Als Kopf hat man die vier Anweisungen
Teil, damit nach einer Deinstallation alles wieder so ist wie vor dem Mod. Der
Ordner muss selber bereits im NPC-Ordner erstellt worden sein.
AUTHOR: Hier kann man seinen Namen, email oder was einen sonst kennzeichnen soll
eingeben
LANGUAGE: Hier gibt man die Sprachen, für die das Mod ausgelegt wurde an und die
entsprechenden Ordner. (Braucht man nur, falls man tra-Dateien benutzt)
BEGIN: Hier steht, was man gerade installiert und ab hier beginnt nun auch der
Installationspfad.
Für den Rest empfiehlt es sich geordnet vorzugehen, also zum Beispiel erst alle
Sounds installieren, dann Bilder ...
Ich gehe jetzt nicht auf die Struktur ein, die kann man hier bei meinem Beispiel
ansehen, sondern auf die Befehle, die man braucht.
Komentare im tp2-file werden mit // begonnen.
Achtung: Die tp2-Datei wie die exe-Datei benennen.
Beispiel für die tp2-Datei.
d) Dialog-Dateien zuweisen/Deathvariable verteilen/und und und
So nun den Mod-Ordner, die tp2-Datei und die Setup-Mod.exe in das BG2-Verzeichnis
kopieren. Dann mit hilfe der exe-Datei installieren. Sollte ein Fehler auftraten, wird alles wieder deinstalliert. In der Debug-Datei, die angelegt wird, kann man nachschauen wo der Fehler auftrat, oder wenn alles klappte, was wie installiert
wurde.
Nach erfolgreichem installieren, den NearInfinity öffnen und die entsprechende cre-Datei suchen (über Game; Open File...; Open external file; cre-Datei suchen und
auswählen). Hier auf edit (obere linke Ecke) gehen und nun:
Nun auf 'Save' gehen und alle Änderungen werden gespeichert. Jetzt wieder
deinstallieren, die Änderungen sollten gespeichert bleiben (sonst lief etwas falsch).
e) Ergänzen eines Area-Skriptes
So da nun der NPC soweit fertig ist, wird es an der Zeit ihm einen Erscheinungsort zu geben. Dafür überlegt man sich am besten, wo und wann man den NPC das erstemal treffen soll. Wenn man sich einen Platz ausgesucht hat, geht
man ins Spiel und reist mit hilfe eines gespeicherten Spielstandes zu dem Ort. Man sollte sich keinen Ort aussuchen der zuvoll ist, da es sonst zu Problemen
kommen könnte. Wenn man die Daten für den Ort haben will, setzt man den Curser einfach auf die gewünschte Erscheinungsstelle und drückt die 'x'-Taste. Nun
erscheint im Dialogfenst die x- und y-Koordinate der Stelle und auch die Area in der man sich im Moment befindet. Manchmal können sich Areas im Laufe des Spieles
verändern, dass muss man berücksichtigen und die richtige Area finden oder wenn der NPC immer dort sein soll ihn in jeder Area ergänzen.
Bei mir, wird man Germon im Obergeschoss der Tarverne des Stadttor-Viertels finden.
So nun da man sich einen Ort ausgesucht hat, öffnet man am Besten einen Editor.
Wenn man nur einen NPC in die Area einfügen will, ist die Anweisung ganz einfach. Das einzige was man dann als Bedingung braucht, ist, dass der NPC noch nicht erschaffen wurde, was man über eine Variable steuern kann.
Der Syntax sieht dann so aus:
Das ist alles, jetzt muss man die Datei nur noch als ein bcs-file abspiecher.
Da der Computer diesen Syntax aber noch kompalieren muss, muss man das ganze noch mit dem NearInfinity öffnen.
Das ganze was jetzt abgespiechert wurde, findet man nun im oberen Fenster des geöffneten bcs-files wieder. Von dort muss man es rauskopieren und in das untere Fenster einfügen. Jetzt auf Compile gehen und nicht vergessen die Datei wieder abzuspeichern. Damit die Datei auch ins Spiel installiert wird, muss man noch die tp2-Datei um diese ergänzen. Das geht, wie im Teil d) erklärt mit dem Befehl
EXTEND_BOTTOM.
f) Erstellen eines Charakter-Skriptes
So nun brauchen der NPC noch ein Charakterskript um fertig zu sein. Dieses Skript ist dazu da, um zum Beispiel Dialoge zu triggern (auszulösen), um Rufabzug oder Rufsteigerung bei Aufnahme bzw. Austritt zu steuern oder auch innate-Fähigkeiten bei Stufenaufstiegen zu geben...
Die einzelnen Anweisungen in dem Skript, sind immer so aufgebaut:
Das ?Ziffer steht für die Wahrscheinlichkeit, dass die Nachfolgende Anweisungen ausgeführt werden.
Bedingungen sind zum Beispiel:
Dies sind nur einige der möglichen Bedingungen, eine vollständige Liste mit allen Detais findet man im NearInfinity in der Datei TRIGGER.IDS. Man kann auch mehrere der Bedingungen kombinieren. Sollen alle gelten (AND-Anweisung) schreibt man sie einfach untereinander, sollen mindestens eine Bedingung erfüllt sein, kann man das ganze mit einem OR(?) und den gewünschen Bedingungen danach machen. Das ? steht hier für eine Zahl, die angibt, wieviele Bedingungen zum OR (oder) gehären. Soll eine Bedingung nicht erfüllt sein, macht man das mit einem ! vor
den Bedingung.
So nun zu einigen Anweisungen, hier kann man eine vollständige Liste in der ACTION.IDS finden.
Anweisungen können auch zu mehreren auftreten (kein OR() benuten)
So das Charakter-Skript macht man genauso wie das Area-Ergänzungsskript, nur dass man dieses hier, für alle Dinge verwendet, die man vom NPC her steuern will. Ach ja, das Skript muss auch nicht kronologisch sein, das Spiel sucht sich einfach aus, welche Bedingung erfült sind und führt dann die Anweisungen aus. Komentare fügt man wie beim tp2-file mit // ein.
So nun muss man noch das Charakterfile dem NPC zuordnen, das geht genauso wie das Zuordnen der dlg-Datei. Das Charakter-Skript muss als Override script zugeordnet werden.
Zum Schluss kann man jetzt noch im Spiel testen ob alles passt.
Hier die Beispiele für das Area-Ergänzung-Skript und das Charakter-Skript.
Ich werde einen neutral guten männlichen Halbling Dieb erstellen, dem ich später ein eigenes Kit geben möchte.
Bei dem Beispiel ist das
So das wär's erstmal mit der Ausrüstung, einige Hilfen und der Anfang eines Lexikons für die 'Bastler-Sprache'. Ich werde versuchen diesen Post aktuell zu halten und falls ich etwas vergessen oder falsch habe, dann meckert bitte.
Achtung: Ich hatte beim einfügen der dlg-Datei geschrieben, dass XP auf 0 sein muss, dass ist falsch. Dieser Wert sind nämlich die XP des NPC und die müssen natürlich auf einem Wert stehen, die zum Level passen.
Ich werde versuchen anhand eines neuen NPC die Erschaffung eines solchen zu zeigen. Das ganze mache ich mit WeiDu, da damit eine einfache Integation ins Spiel möglich ist. Ihr findet alles was ich hier vorstelle und noch vieles mehr im Resourcen-Topic.
1. Tools
Um richtig basteln zu können braucht man auch eine entsprechende Ausrüstung, deshalb hier eine kleine Auflistung der Programme die ich benutzen werde.
- Als erstes würde ich den ConText empfehlen. Er ist ein Editor, was bei ihm recht schön ist, es gibt eine Syntax-Unterstützung für WeiDu. Zur Unterstützung braucht man noch diesen WeiDU-Highlighter (zip-Datei). Mit diesem Programm werde ich die Dialog-Datein schreiben.
- Für die Skripte der NPC benutze ich immer NearInfinity. Dies ist ein Browser/Editor auch teilweisse für NWN und IWD2 .
Man kann Skripte auch mit WeiDu compilieren, was dann Sinn macht, wenn man Strings in diesen verwendet. Die Strings kann man dann ganz einfach mit tra-Dateien einbinden. Ohne Strings sind compilierte Skripte besser.
- Zum schnellen testen und auch zur der Creature-Datei benutze ich den ShadowKeeper. Er ist auch ein Editor, aber speziell für BG2.
2. Foren
Nun noch zu einigen Foren in denen sich mit dem Basteln von Modulen (Mods) beschäftigt wird. Ich nenne hier nur zwei, aber es gibt natürlich noch einige weitere, die man auch im Ressourcen-Topic findet.
- Das erste ist das der FW Studios ein englischsprachiges
- und als zweites noch das deutschsprachige Rosenranken-Forum.
3. Tutorien
So zum Schluss verweisse ich noch auf maus NPC-Tutorial, aber auch hier gibt es viele weitere im Netz, die meisten sind aber englischsprachig.
4. NPC-Module
Hier noch eine kleine Tabelle mit den schon gemachten oder gerade in Abreit stehenden NPC.
- NPC: Klasse/Kit, Rasse, Gesinnung, Bastler
- Drizzt: Waldläufer, Drow, ?G, D.Klingauf/Octavian (Rosenranken)
- Vanim: Meuchelmörder, Mensch?, NB?, maus
- Roar: Mönch, Mensch, ?, maus
- Teddy: Barbar, Halb-Ork, ?, maus
- SilverStar: Meuchelmörderin, Elf, NB, ?
- Valen: Kämpfer/Diebin, Vampir, CB, ?
- Kelsey: Hexer, Mensch?, ?, ?
- Tashia: Hexe, Elf, ?, ?
- Solaufein: Kämpfer/Magier?, Drow, ?, Weimar
- Elvanshalee: Klerikerin, Drow, CG, Seradin
- Fedegar: Barbar, Mensch, NG, Seradin
- Cynthia: Hasardeurin, Mensch, N, Ozzy
- Ozzy: Magierkiller, Mensch, N, Ozzy
- Chiara: Kämpfer(Dieb)in, Vampir, ?G, Leute aus diesem Forum
5. Lexikon der Module-Bastler
- String: Mit einem String wird eine Kette von Zeichen bezeichnet. Man verwendet den Begriff haupsächlich für die Sätze in Dialogen.
- Skript: Mit einem Skript werden die Handlungen eines NPC gesteuert, wenn der Spieler keinen Einfluss darauf haben soll, was passiert. In einem Skript können zum Beispiel die EP-Anpassung bei der Aufnahme stehen, oder aber auch wie sich ein NPC in einer Situation im Kampf verhalten soll. Die letztgenannten kennt man als künstliche Inelligenz (KI) schon aus dem Spiel.
- dlg-Dateien: dlg bedeutet Dialog. Hier steht die Struktur der Dialoge, wobei die Strings in die Dialog.tlk und DialogF.tlk ausgelager sind.
- d-Dateien: Bei WeiDu schreibt man die Dialogsyntax in die d-Dateien, die dann mit hilfe von WeiDu compiliert werden.
- compilieren: Man schreibt alles in einem Syntax und dieser wird dann von einem Programm in die 'Spielsprache' übersetzt (compiliert).
- Syntax: Die Grammatikregeln einer Sprache.
- IF-Anweisung: Hiermit gibt man an was das Programm tun soll, wenn eine bestimmte Vorrausetzung erfüllt ist. IF ~VORRAUSETZUNG~ THEN... bedeutet nichts weiter als WENN die VORRAUSETUNG erfüllt ist, DANN...
- Dialog.tlk und DialogF.tlk: Hier stehen die Strings der Dialoge. In der Dialog.tlk stehen die Strings für einen männlichen Hauptcharakter und in der DialogF.tlk diejenigen für einen weiblichen. Bei einer Installation mit WeiDu werden diese Dateien ergänzt.
- chr-Datei: Hier stehen alle Informationen eines Spieler-Charakters. (Charakter-File)
- cre-Datei: Hier stehen alle Informationen eines Nicht-Spieler-Charakters. (Creature-File)
- d-Datei: Hier steht der Syntax für einen Dialog
- BEGIN: Anfang von Dialogen, Zwiegesprächen ...
- EXIT: Dialog beendet
- END: Ende von Zwiegesprächen ...
- tra-Datei: Dateityp, in dem die Strings für Dialoge stehen, wenn der MOD in verschiedenen Sprachen existiert. Welche tra-Dateien gelten, werden bei der Installation festgelegt.
- P-Datei: Umgangssprachlich für den Rauswurf- und Wiederaufnahmeteil.
- exe-Datei: Programm zum Ausführen der Installatin/Deinstallation/Reinstallation
- tp2-Datei: Struktur (Rezept) der Installation
6. Wie mache ich ein NPC-Modul
a) Das erzeugen eines Creature-files
[flüster]Das Beispiel ist kursiv geschrieben.[/flüster]
Was bracht man alles?
- eine Idee
- das Baldurs Gate 2 Spiel
- den ShadowKeeper
Man sollte sich als erstes klar werden, was man eigentlich machen will und wie der Charakter grob aussehen soll. Ob der neue NPC nun nur einer wird, der in die Gruppe aufgenommen werden kann, oder ob man einige Quests und vielleicht sogar eine Romanze zu ihm schreibt, ist für den Anfang ganz egal. Ich würde auch vorschlagen, erst einen zu erstellen, der nur in die Gruppe aufgenommen wird, und wenn man danach immer noch Lust hat, ihn langsam ausbaut.
Wenn man nun also seinen Charakter sich etwas überlegt hat, startet man das Baldurs Gate 2 Spiel und zwar Schatten von Amn im Mehrspieler Modus. Dort betätigt man den 'Charakter generieren' Button. Nun ist man im Charakter-Erstellungs-Bildschirm, den man ja kennen sollte. Jetzt generiert man sich seinen Charakter grob. Damit meine ich, man muss nicht würfeln bis die Attribute so sind wie man sie gerne hätte, das kann man später noch. Nach dem Einstellen
auf den Button 'Exportieren' klicken und einen unverwechselbaren Namen abspeichern. So, nun kann man das Spiel wieder schliessen.
Nun startet man den ShadowKeeper (SK). Sollte es noch nicht installierte sein, so sollte man sich das Programm runter laden und die exe-Datei starten.
Um die gespeichte Datei zu bearbeiten, öffnet man 'File' und in dort dann 'Open Character File...'. Nun öffnet sich ein Fenster in dem man seinen Charakter suchen muss. Wenn man ihn gefunden habt, klickt man auf den Namen und markiert dadurch die Datei. Nun betätigt man den Button 'OK'. Nun sieht man die chr-Datei seines Charakters. Hier kann man nun einiges ändern.
WICHTIG: Man sollte nie die Stufe des Charakters ändern. Wenn man ihm eine höhere Stufe geben will, dann sollte man dies immer über 'Experience' (Erfahrungspunkte) tun und dann im Spiel den Charakter aufsteigen lassen.
So nun aber zu den einzelnen Teilen. Unter 'Abilities' findet man:
- Attribute {hier kann man diese nun einstellen wie man sie gerne hätte}
- 'Base HP' (Basis Trefferpunkte) {dies sind die HP ohne Konstitutionsbonus, dieser kommt vom Spiel automatisch dazu}
- 'Current HP' (momentane Trefferpunkte){auch hier fehlt der Konstitutionsbonus und kommt erst durch's Spiel dazu}
- 'Base AC' (Basis Rüstungsklasse) {dieser Wert gibt die natürliche RK ohne Geschicklichkeitsbonus an, der auch wieder erst vom Spiel dazu gebracht wird}
- 'THAC0' (ETW0) {dies ist der ETW0 ohne irgendwelche Modifier, diese kommen erst durchs Spiel}
- 'Reputation' (Ruf)
- 'Attacks' (Angriffe) {Angriffe ohne Modifier, diese kommen erst durchs Spiel dazu}
- 'Experience' (Erfahrungspunkte)
- 'Exp for Kill' (Erfahrungspunkte für's Töten) {hier sollte bei einem Gruppen NPC eine Null stehen}
- 'Gold' {damit der NPC nicht nur wegen seines Goldes aufgenommen wird, hier eine Null eintragen}
- 'Levels' (Stufen) {dran denken, nicht selber ändern}
eigentlich einen ganz anderen Charakter erstellen. Die nächsten vier Seiten, 'Memorization' (wieviel ist von welcher Zauberstufe memoriert; nicht mit spielen), 'Innate' (Innate-Fähigkeiten, wie z.B Fallen stellen, Wunden heilen; nicht mit spielen), 'Wizard' (bekannte Zauber des Magiers und Hexers) und 'Priest' (Priester- und Druidenzauber) sind für spells (Zauber) da. Bei 'Saving Throws' sind wieder die Grundwerte der Rettungswürfe ohne Modifier angegeben. 'Proficiencies' hier verteilt man die Waffenfertigkeitspunkte (darauf achten nur soviele vergeben, wie man auch weggenommen hat). Danach kommt 'Resistances' hier kann man seinem NPC Resistenzen vergeben (in Prozent). Unter 'Thievs' findet man die Diebesfähigkeiten, auch diese sind wieder nur die Grundwerte und das Spiel speichert intern die Boni und die Stufenabhängigen. Der Rest 'State Flags', 'Affects' und 'Global Variables' sind für diese Moderstellung unwichtig, also Finger weg.
Wenn man nun alles eingestellt hat speichert man alles ab. Dazu öffnet man wieder 'File' und klickt auf 'Save'. Man sollte beachten, dass man mit dem SK keine Datei überschreiben kann und deshalb einen neuen Dateinamen vergeben muss.
Nun, da man seine Änderungen abgespeichert hat, kann man die Kreaturen Datei (.cre) erschaffen. Dazu öffnet man 'Tools' und dort aktiviert man 'Convert to CRE' und erstellt dadurch die cre-Datei. Damit es keine Probleme mit schon existierenden Dateien gibt, ist es empfehlenswert vor seine eigenen Dateien eine Buchstabenkombination und einen Lattenzaun '#' zu setzten. Dies machen schon einige Module-Bastler, deshalb sollte man schaun welche Kürzel schon vergeben sind. Dazu hatte maus mal eine Liste angefangen.
Es ist noch zu empfehlen alles in einem extra Ordner zu speichern. Ich lege dafür immer einen Ordner, auf einer anderen Partition, mit dem Namen des Moduls an. Um die cre-Datei dort hinein zu bekommen, öffnet man den override-Ordner im BG2-Verzeichniss und sucht die Datei. Danach kopiert man sie aus diesem Ordner und fügt sie in den Modul-Ordner ein.
Da man nun den Charakter hat, kann man seine Aufmerksamkeit den Dialogen widmen.
b) Das Erstellen eines Dialoges
Was bracht man alles?
- Einen Editor, zum Beispiel ConText
Am Anfang braucht man zwei Dialoge auf jeden Fall
- Aufnahmedialog
- Rauswurfdialog
Die ganzen Dialogdateien speichert man am Besten auch bereits im Modul-Ordner. Zum Schreiben der Dialoge empfihlt sich der ConTEXT-editor zusammen mit dem WeiDu Zusatz. Man kann aber auch jeden anderen Editor verwenden. Man sollte darauf aufpassen, das alles als eine Text-Datei angesehen wird.
So nun zu den Dialogen:
Am Anfang der Dialogdatei muss immer ein
BEGIN ~Dateiname für dlg-Datei~
stehen. Dies ist nötig, damit der WeiDu-Übersetzer weiss wo die Datei beginnt. Der Name zweischen den Tildes (~) wird dann der Name der dlg-Datei.
Die einzelnen Zwiegespräche zwischen dem NPC und anderen sind immer gleich aufgebaut.
- IF ~Bedingung~ THEN BEGIN Nummer => Dies beginnt ein neues Zwiegespräch
- SAY ~Text~ => Dies ist der Text, den der NPC sagt
- IF ~Bedingung~ THEN REPLY ~Text~ GOTO Nummer2 => Dies gibt den Text aus, den der Gesprächspartner sagt und der Dialog geht bei Zwiegesprächer 'Nummer2' weiter
- IF ~Bedingung~ THEN REPLY ~Text~ EXIT => der Gesprächspartner sagt wieder einen Text, aber diesmal geht das Gespräch nicht weiter, sondern ist beendet
- IF ~Bedingung~ THEN REPLY ~Text~ DO ~Anweisung~ EXIT => auch hier wird der Text des Gesprächspartners ausgegeben, aber danach wird eine Anweisung ausgeführt und erst dann der Dialog beendet.
- IF ~Bedingung~ THEN REPLY ~Text~ DO ~Anweisung~ GOTO Nummer2 => selbe wie zuvor, nur das nach der Anweisung der Dialog beim Zwiegespräch 'Nummer2' weiter geht
- END => muss immer am Ende eines Zwiegespräches stehen
- die Bedingung muss erfüllt sein, damit die Dinge danach ausgeführt werden. Soll die Bedingung immer erfüllt sein, macht man das so, das man nichts zwischen die Tildes (~) schreibt oder ein TRUE()
- ein Dialog geht immer von dem Charakter aus, dem die Dialogdatei gehört
- der Charakter dem die Dialogdatei gehört, hat niemals mehrere Optionen
- der Gesprächspartners kann auch mehrere Optionen haben, das Gespräch bezieht sich intern dann aber immer auf den HC
- nur der Beginn eines Dialoges hat eine Bedingung am Anfang
- ein Zwiegespräch ist immer durch ein END beendet
Eine Dialogoption würde nun so aussehen:
Code:
IF ~Bedingung1~ THEN BEGIN 1
SAY ~Text1~
IF ~Bedingung2~ THEN REPLY ~Text2~ GOTO 2
IF ~Bedingung3~ THEN REPLY ~Text3~ EXIT
END {Zwiegespräche 1}
IF ~~ THEN BEGIN 2
SAY ~Text4~
IF ~Bedingung4~ THEN DO ~Anweisung~ EXIT
END {Zwiegespräch 2}
Möchte man unterschiedliche Texte bei männlichen und weiblichen HC's machen dann funktioniert dies so:
- ~Text bei männlichem HC~ ~Text bei weiblichen HC~ => dies geht aber nur beim Text des Charakters, dem die Dialogdatei gehört
- IF ~Bedingung für männlichen HC~ THEN REPlY ~TextM~
IF ~Bedingung für weiblichen HC~ THEN REPLY ~TextW~ => beim Gesprächspartner muss man die Unterscheidung mit Hilfe der Bedingungen treffen
Nun zu den häufigsten Bedingungen:
- Global("VariablenName","Zuordnung",Wert) => die Bedingung ist nur erfüllt, wenn die Variable einen bestimmten Wert hat
- VariablenName => Name der Variablen, bei Modulen wird gerne wieder die Variante mit dem Lattenzaun benutz, damit es keine Überschneidungen gibt
- Zuordnung => es gibt drei Zuordnungen:
1. GLOBAL => ordnet dem Spiel die Variable zu
2. LOCALS => ordnet dem Charkter die Variable zu
3. AREA => ordnet der Area die Variable zu - Wert => Wert (Zahl) der Vartiablen
- Gender(Player1, Geschlecht) => nur erfüllt, wenn Player1 dieses Geschlecht hat (MALE ; FEMALE)
- Alignment(Player1,Gesinnung) => nur erfüllt beim richtiger Gesinnung (LAWFUL_X ; NEUTRAL_X ; CHAOTIC_X ; X= GOOD, NEUTRAL, EVEL ; NEUTRAL_NEUTRAL gibt es nicht, das ist einfach nur NEUTRAL)
- NumTimesTalkedTo(0) => gibt an, das der Charakter noch nie mit der Gruppe (HC) geredet hat
- NumTimesTalkedToGT(#) => Durch die Zahl in Klammern, kann man angeben, nach wievielen Dialogen mit der Gruppe (HC) dieser Dialog kommt.
- weiter folgen
Unter Anweisungen versteht man meisstens das setzten von Variablen
SetGlobal("VariablenName","Zuordnung",neuer_Wert)
oder bestimmte Befehle
JoinParty() => in die Gruppe beitreten
Das Beispiel für den Aufnahme-Dialog ist hier
So nun kommt der Rauswurfdialog:
Dieser Dialog ist genauso aufgebaut wie jeder andere Dialog auch.
Man muss aber auf den dlg-Dateinamen aufpassen. Rauswurfdialoge werden mit einem
P gekennzeichnet. Also zum Beispiel so: NPCNameP.
Im Rauswurfdialog befindet sich auch der Wiederaufnahmedialog.
Nun muss man die Dialoge noch speichern. Dafür sind die d-Dateien da. Der
Aufnahmedialog wird in ?#NPCName.d und der Rauswurfdialog in der ?#NPCNameP.d
gespeichert. Dabei steht das ? für das eigene Kürzel (bei mir wäre das ein S).
Den Aufnahmedialog speichere ich in der S#Germon.d Datei und den Rauswurfdialog
in der S#GermP.d (beides im Mod-Ordner).
Achtung: Nicht mehr als 8 Zeichen verwenden.
Die Dialoge, die wir bis jetzt gemacht haben, sind nur für den SoA-Teil (man
kann den Mod aber auch mit ToB spielen).
Soll das Mod in mehreren Sprachen vorhanden sein, benützt man ausser den d-
Dateien noch tra-Dateien für die enzelnen Sprachen. In den d-Dateien steht dann
nur der Syntax des Dialoges und in den tra-Dateien dann die Strings des Dialoges
. Der Verweis auf den entsprechenden String wird mit @Zahl gemacht. Die
tra-Dateien stehen dann in einem Ordner 'deutsch', 'english' usw.
Beispiel:
Code:
d-Datei:
BEGIN ~DateiName~
IF ~Bedingung~ THEN BEGIN 1
SAY @1
IF ~Bedingung2~ THEN REPLY @2 EXIT
END
tra-Datei:
@1 = ~String1~
@2 = ~String2~
Das Beispiel für den Rauswurfdialog ist hier
c) Die tp2-Datei
Zum Zuweisen der beiden Dialoge, muss man jetzt das Mod installieren. Dafür
braucht man zwei Dateien:
- exe-Datei
- tp2-Datei
eines schon vorhandenen WeiDu-Mods und kopiert diese Datei. Danach benennt man
sie um, zum Beispiel Setup-NPC.exe.
Bei mir heisst sie einfach Setup-Germon.exe.
Die exe-Datei ist für das Ausführen der Installation da.
So nun fehlt noch die tp2-Datei. Dieses kann man wie fast alles einfach mit einem editor schreiben. In dieser Datei steht sozusagen das Rezept für die Installation. In dieser Datei wird genau aufgeschlüsselt, welche Mod-Datei wohin
installiert werden soll und welche Datein überhaupt zu dem Mod gehören. Es sorgt auch für das compilieren der d-Dateien.
Auch die tp2-Datei folgt, wie die meisten WeiDu Dateien einem bestimmten Schema.
Als Kopf hat man die vier Anweisungen
- BACKUP ~Pfad~
- AUTHOR ~Author, email~
- LANGUAGE ~Spache~ ~Ordner der entprechenden tra-Dateien~
- BEGIN ~NPC, Mod, ...~
Teil, damit nach einer Deinstallation alles wieder so ist wie vor dem Mod. Der
Ordner muss selber bereits im NPC-Ordner erstellt worden sein.
AUTHOR: Hier kann man seinen Namen, email oder was einen sonst kennzeichnen soll
eingeben
LANGUAGE: Hier gibt man die Sprachen, für die das Mod ausgelegt wurde an und die
entsprechenden Ordner. (Braucht man nur, falls man tra-Dateien benutzt)
BEGIN: Hier steht, was man gerade installiert und ab hier beginnt nun auch der
Installationspfad.
Für den Rest empfiehlt es sich geordnet vorzugehen, also zum Beispiel erst alle
Sounds installieren, dann Bilder ...
Ich gehe jetzt nicht auf die Struktur ein, die kann man hier bei meinem Beispiel
ansehen, sondern auf die Befehle, die man braucht.
- EXTEND_BOTTOM: Diesen Befehl braucht man, wenn man ein schon vorhandenes
Skript ergänzen will (wird am Ende des Skriptes angehängt). Zum Beispiel eine
weitere Person in eine Area einbringen.
Aussehen: EXTEND_BOTTOM ~Skript~ ~Pfad zur Ergänzung~ - EXTEND_TOP: Zum Dazufügen am Anfang eines Skiptes.
Aussehen: EXTEND_TOP ~Skript~ ~Pfad zur Ergänzung~ - COPY: Kopiert eine Datei von dem einen Ort zum andreren.
Aussehen: COPY ~Pfad der zu kopierenden Datei~ ~Pfad zum Zielort~ - SAY: Hiermit werden Strings zugewiesen.
Aussehen: Im Zusammenhang mit dem Charakter-file, kommen die drei Varianten
zutage:- SAY NAME1 ~Voller Name~
- SAY NAME2 ~Rufname~
- SAY BIO ~Biographie~
zugewiesen, nicht bei der Installation der Sounds), gibt es viele Varianten die
aber diese Form haben:
SAY SOUNDZUWEISUNG ~Was wird gesagt (als String)~ [sound-Datei (ohne Endung aber)
]
Im Zusammenhang mit items:- SAY NAME1 ~Name vor dem identifizieren (vermute ich)~
- SAY NAME2 ~Name nach dem identifizieren~
- SAY DESC ~Beschreibung des items~
SAY NAME1 ~Name des Zaubers~
- COMPILE: Übersetzt die d-Datei in eine dlg-Datei und ergänzt die tlk-Dateinen
. - USING: Installiert die richtigen tra-Dateien. Braucht man aber immer, auch
wenn man keine tra-Dateien hat. Dann ist der Bereich zwischen den ~~ einfach
leer.
Diese beiden gehören immer zusammen. Aussehen:
COMPILE ~Pfad der d-Datei~
USING ~Pfad der entsprechenden tra-Datei; der Sprachenordner wird hier durch ein
%s symbolisiert (Das Installationsprogramm nimmt so immer den richtigen
Sprachenordner)~ - APPEND ~pdialog.2da~
~Deathvariable P-Dialog J-Dialog D-Dialog~
UNLESS ~Deathvariable~
UNLESS ~25POST~
Dialog-Datei-Anfänge mit HC in SoA - APPEND ~pdialog.2da~
~Deathvariable P-Dialog J-Dialog D-Dialog 25P-Dialog 25J-Dialog 25D-Dialog 25-
Dialog~
UNLESS ~Deathvariable~
IF ~25POST~
Dialog-Datei-Anfänge mit HC in SoA+ToB - APPEND ~interdia.2da~
~Deathvariable B-Dialog~
UNLESS ~Deathvariable~
UNLESS ~25FILE~
Dialog-Datei-Anfänge mit NPCs in SoA - APPEND ~interdia.2da~
~Deathvariable B-Datei~
UNLESS ~Deathvariable~
IF ~25FILE~
Dialog-Datei-Anfänge mit NPCs in SoA+ToB
Komentare im tp2-file werden mit // begonnen.
Achtung: Die tp2-Datei wie die exe-Datei benennen.
Beispiel für die tp2-Datei.
d) Dialog-Dateien zuweisen/Deathvariable verteilen/und und und
So nun den Mod-Ordner, die tp2-Datei und die Setup-Mod.exe in das BG2-Verzeichnis
kopieren. Dann mit hilfe der exe-Datei installieren. Sollte ein Fehler auftraten, wird alles wieder deinstalliert. In der Debug-Datei, die angelegt wird, kann man nachschauen wo der Fehler auftrat, oder wenn alles klappte, was wie installiert
wurde.
Nach erfolgreichem installieren, den NearInfinity öffnen und die entsprechende cre-Datei suchen (über Game; Open File...; Open external file; cre-Datei suchen und
auswählen). Hier auf edit (obere linke Ecke) gehen und nun:
- Flags: auf ( No flags set )
- Gold: auf den gewünschen Wert
- Small portrait: Dateiname des kleinen Bildes aussuchen
- Large portrait: Dateiname des grossen Bildes aussuchen
- Sound: Zuweisen, falls das nicht schon automatisch geschehen ist
- Death variable: richtigen Variablennamen eintagen
- Dialog: richigen aussuchen (Aufnahme-dlg-Name)
- Override skript: wird auch das richtige ausgesucht, sobald man es erstellt hat
Nun auf 'Save' gehen und alle Änderungen werden gespeichert. Jetzt wieder
deinstallieren, die Änderungen sollten gespeichert bleiben (sonst lief etwas falsch).
e) Ergänzen eines Area-Skriptes
So da nun der NPC soweit fertig ist, wird es an der Zeit ihm einen Erscheinungsort zu geben. Dafür überlegt man sich am besten, wo und wann man den NPC das erstemal treffen soll. Wenn man sich einen Platz ausgesucht hat, geht
man ins Spiel und reist mit hilfe eines gespeicherten Spielstandes zu dem Ort. Man sollte sich keinen Ort aussuchen der zuvoll ist, da es sonst zu Problemen
kommen könnte. Wenn man die Daten für den Ort haben will, setzt man den Curser einfach auf die gewünschte Erscheinungsstelle und drückt die 'x'-Taste. Nun
erscheint im Dialogfenst die x- und y-Koordinate der Stelle und auch die Area in der man sich im Moment befindet. Manchmal können sich Areas im Laufe des Spieles
verändern, dass muss man berücksichtigen und die richtige Area finden oder wenn der NPC immer dort sein soll ihn in jeder Area ergänzen.
Bei mir, wird man Germon im Obergeschoss der Tarverne des Stadttor-Viertels finden.
So nun da man sich einen Ort ausgesucht hat, öffnet man am Besten einen Editor.
Wenn man nur einen NPC in die Area einfügen will, ist die Anweisung ganz einfach. Das einzige was man dann als Bedingung braucht, ist, dass der NPC noch nicht erschaffen wurde, was man über eine Variable steuern kann.
Der Syntax sieht dann so aus:
Code:
IF
Global("Variable","AR????",Wert)
THEN
RESPONSE #100
SetGlobal("Variable","AR????",Neuerwert)
CreateCreature("chr-Datei-Name",[x-Koord.y-Koord],Gesichtsrichtung)
END
- Global frägt, wie bei Dialogen, ab, ob die Variable in der auf einem bestimmten Wert steht.
- RESPONSE und der Wert nach dem # gibt an, mit welcher Wahrscheinlichkeit das Nachfolgende eintritt (in Prozent).
- SetGlobal setzt, wie bei Dialogen, den Wert der Variablen auf einen neuen.
- CreateCreature erschafft eine Kreatur an den Koordinaten in [ ] und mit der Blickrichtung, die er letzte Zahlenwert angibt (hier sind die Werte 1-12 möglich)
Das ist alles, jetzt muss man die Datei nur noch als ein bcs-file abspiecher.
Da der Computer diesen Syntax aber noch kompalieren muss, muss man das ganze noch mit dem NearInfinity öffnen.
Das ganze was jetzt abgespiechert wurde, findet man nun im oberen Fenster des geöffneten bcs-files wieder. Von dort muss man es rauskopieren und in das untere Fenster einfügen. Jetzt auf Compile gehen und nicht vergessen die Datei wieder abzuspeichern. Damit die Datei auch ins Spiel installiert wird, muss man noch die tp2-Datei um diese ergänzen. Das geht, wie im Teil d) erklärt mit dem Befehl
EXTEND_BOTTOM.
f) Erstellen eines Charakter-Skriptes
So nun brauchen der NPC noch ein Charakterskript um fertig zu sein. Dieses Skript ist dazu da, um zum Beispiel Dialoge zu triggern (auszulösen), um Rufabzug oder Rufsteigerung bei Aufnahme bzw. Austritt zu steuern oder auch innate-Fähigkeiten bei Stufenaufstiegen zu geben...
Die einzelnen Anweisungen in dem Skript, sind immer so aufgebaut:
Code:
IF
Bedingung1
Bedingung2
OR(2)
Bedingung3
Bedingung4
THEN
RESPONSE #?1
Anweisungen1a
Anweisungen1b
RESPONSE #?2
Anweisung2
.
.
.
END
Das ?Ziffer steht für die Wahrscheinlichkeit, dass die Nachfolgende Anweisungen ausgeführt werden.
Bedingungen sind zum Beispiel:
- InParty("DeathVariable"): Anweisungen starten nur, wenn der gewünsche NPC in der Gruppe ist
- Global("Variable","Bezug",Wert): Anweisungen starten nur, wenn die Variable den Wert 'Wert' hat
- Level("DeathVariable",Wert): Anweisungen startetn nur, wenn der gewünsche NPC das Level 'Wert' hat
- AreaCheck("AR????"): Anweisungen startetn nur, wenn man sich in der gewünschen Area befindet
- See("DaethVariable"/GruppenNummer): Anweisungen startetn nur, wenn man den gewünschen NPC sieht (Mit GruppenNummer ist z.B. Player1 für den HC gemeint)
- StateCheck("DaethVariable"/GruppenNummer,Status): Anweisungen startetn nur, wenn sich der Gewünsche NPC in diesem 'Status' (z.B. schafend) befindet
- XPGT("DaethVariable"/GruppenNummer,?): Anweisungen starten nur, wenn die Erfahrungspunkte des gewünschen NPC mehr als ? sind
- ...
Dies sind nur einige der möglichen Bedingungen, eine vollständige Liste mit allen Detais findet man im NearInfinity in der Datei TRIGGER.IDS. Man kann auch mehrere der Bedingungen kombinieren. Sollen alle gelten (AND-Anweisung) schreibt man sie einfach untereinander, sollen mindestens eine Bedingung erfüllt sein, kann man das ganze mit einem OR(?) und den gewünschen Bedingungen danach machen. Das ? steht hier für eine Zahl, die angibt, wieviele Bedingungen zum OR (oder) gehären. Soll eine Bedingung nicht erfüllt sein, macht man das mit einem ! vor
den Bedingung.
So nun zu einigen Anweisungen, hier kann man eine vollständige Liste in der ACTION.IDS finden.
- SetGlobal("Variable","Bezug",NeuerWert): weisst der Variablen einen neuen Wert zu
- Wait(?): lässt den Besitzer des bcs-files ? Sekunden lang wareten
- DestroyItem("Dateiname"): zerstört das item (keine Datei-Endung verwenden)
- GiveItemCreate("Dateiname","DeathVariable",1,?1,?2): Erschafft das item und gibt es dem gewünschten NPC mit den Ladungen ?1, ?2 (Bei den Ladungen bin ich mir nicht so ganz sicher, am besten ungeladen erstellen und 0 für ?1, ?2
eintagen) - ReputationInc(?): Addiert ? zum Ruf der Gruppe dazu, wird ein Minus vor ? gesetzt, wird ? abgezogen vom Gruppenruf
- AddXPObject("DaethVariable"/GruppenNummer,?) gewünschtem NPC ? Erfahrungspunkte geben
- Continue(): fortfahren
- ...
Anweisungen können auch zu mehreren auftreten (kein OR() benuten)
So das Charakter-Skript macht man genauso wie das Area-Ergänzungsskript, nur dass man dieses hier, für alle Dinge verwendet, die man vom NPC her steuern will. Ach ja, das Skript muss auch nicht kronologisch sein, das Spiel sucht sich einfach aus, welche Bedingung erfült sind und führt dann die Anweisungen aus. Komentare fügt man wie beim tp2-file mit // ein.
So nun muss man noch das Charakterfile dem NPC zuordnen, das geht genauso wie das Zuordnen der dlg-Datei. Das Charakter-Skript muss als Override script zugeordnet werden.
Zum Schluss kann man jetzt noch im Spiel testen ob alles passt.
Hier die Beispiele für das Area-Ergänzung-Skript und das Charakter-Skript.
Ich werde einen neutral guten männlichen Halbling Dieb erstellen, dem ich später ein eigenes Kit geben möchte.
Bei dem Beispiel ist das
- Geschlecht: Männlich
- Rasse: Halbling
- Klasse: Dieb
- Gesinnung: neutral gut
- Attribute:
- Stärke: 14
- Geschicklichkeit: 19
- Konstitution: 13
- Intelligenz: 13
- Weisheit: 10
- Charisma: 11
- Fähigkeiten:
- Kurzschwert
- Krummsäbel
- Keule
- Schleuder
- Taschendiebstahl: 65
- Schlösser öffnen: 85
- Fallen finden: 85
- Schleichen: 65
- Verstecken: 65
- Illusionen entdecken: 15
- Fallen stellen: 10
- Aussehen: Farben und Sound
- Name: Germon Leichtfuss
So das wär's erstmal mit der Ausrüstung, einige Hilfen und der Anfang eines Lexikons für die 'Bastler-Sprache'. Ich werde versuchen diesen Post aktuell zu halten und falls ich etwas vergessen oder falsch habe, dann meckert bitte.
Achtung: Ich hatte beim einfügen der dlg-Datei geschrieben, dass XP auf 0 sein muss, dass ist falsch. Dieser Wert sind nämlich die XP des NPC und die müssen natürlich auf einem Wert stehen, die zum Level passen.
Zuletzt bearbeitet von einem Moderator: