[Modding] Scripts für NPC-Mod und NPC Design

Romin

Member
Registriert
24.10.2011
Beiträge
43
Hallo Schwertküstler, VergesseneReichler und Meister der GroßenWelt!

Zunächst einmal das obligatorische GROSSE KOMPLIMENT an alle die kreativ-supportend-moddend und unermüdlich diese Seite und das ganze Projekt pflegen!

Nach Jahren des BG-Spieler-/Fandaseins überkommt auch mich schließlich das Bedürfnis eine NPC-Mod zu schreiben - oder es wenigstens zu versuchen. Nun finde ich die zahlreichen Tutorials die man so verstreut findet auch teilweise ganz hilfreich, wenngleich auch manche irgendwie fehlerhaft/nicht up-to-date scheinen (es hat eine längere Weile gedauert, bis ich den Hinweis gefunden habe, dass CreateCreature als Argument den Namen der .cre haben will und nicht die DV).

Aber zur Sache: Derzeit erscheint mein NPC im Spiel, ich kann mit ihm reden, ihn in die Gruppe aufnehmen, ihn wieder rausschmeißen und Variablen setzen, die den Gesprächsverlauf dokumentieren - soweit ist das ja schon nicht schlecht, ABER jetzt möchte ich, das folgende:
MAINCHAR geht (ohne besagten NPC) in die Taverne und möchte schlafen => Barkeeper ansprechen, Zimmer bestellen => Heia. Nun soll (vor dem "Heia" Schritt) der NPC auftauchen (er soll auf diese Art zum ersten Mal im Spiel erscheinen) und noch eben ein Gespräch anfangen bevors ins Bett geht und danach wieder verschwinden (sagen wir er ist auf Durchreise) - nach Gesprächsende soll die eigentliche Rast stattfinden. Wie mache ich das? Derzeit ist mir nicht klar an welchen Ort das geeignete Skript muss und was genau dort drin stehen muss, damit ein Dialog aufgerufen wird.

Alternativ interessiert mich auch, wie man aus einem Gespräch heraus eine Pause forcieren kann. Also etwa: MAINCHAR spricht NPC per Flirttalk o.ä an und entschließt sich sehr viel flirtiger zu werden => frühzeitige Rast wird ausgeführt (mit dem ganzen drum und dran: "Ihr habt xy Stunden geruht" etc).

Hoffe mal, die Fragen sind nicht zu trivial (Antworten hab ich darauf jedenfalls noch nirgends gesehen - zumindest hab ich sie nicht als Antworten erkannt) und mein ganzes BlaBla ist nicht allzu ermüdend und lang. Ich lese Tutorials diesbezüglich gerne auch selber, wenn jemand gerade DEN passenden Link da hat (Englisch ist kein Problem).

Vielen Dank schonmal,
Romin

EDIT: Rechtschreib- und Stilkorrektur
EDIT2: Titel angepasst
 
Zuletzt bearbeitet:

Ascalon

Senior Member
Registriert
08.04.2008
Beiträge
2.730
Hallo auch und willkommen im Forum!

Aaaaaaalso zu deinem ersten Problem: Das ist eigentlich ganz einfach zu lösen. Alles, was vor dem Einschlafen passiert, wird über das sogenannte Dreamscript geklärt, das man an dem D erkennt. wie in ACBreD.BCS oder PLAYER1D.BCS

Letzteres ist das, was du brauchst. Du erschafst eine BAF-Datei (z.B. TEST.BAF)

Und da kommt folgendes rein:

Code:
IF
    [I] (deine Voraussetzungen)[/I]
OR(X)
     AREACHECK("ARXXX")
     AREACHECK("ARXXY")
     AREACHECK("ARXXZ")
    usw...
THEN
     RESPONSE #100
und so weiter...

die Areale "ARXXX", "ARXXY" musst du raussuchen und durch die Areacodes der jeweiligen Tavernen ersetzen. Die Kneipe in Kerzenburg z.B. hat AR6516. Und das OR braucht natürlich die richtige Anzahl der AREACHECKs.
 
Zuletzt bearbeitet von einem Moderator:

Romin

Member
Registriert
24.10.2011
Beiträge
43
Na klar, eine schnelle Antwort, wer hätte das hier gedacht, das ist überraschend ;)

Danke erstmal für die Hilfe! Die Sache mit den Area-Codes kenne ich (in 6516 steht mein NPC auch momentan rum). Allerdings muss der NPC (beim DreamScript) in der Party sein damit es abläuft, oder? Oder muss der NPC nur einfach existieren, also (irgendwo oder gleiche AR) created worden sein?

Werde Deinen Hinweis gleich mal in die Tat umsetzen und rumspielen... (freue mich jetzt schon wieder auf PARSE-ERROR...grrr)

Btw. Braegar ist ganz große Klasse, aber das weißt du ja sicherlich schon...

Mit Grüßen,
Romin


!!! EDIT: Um nicht unnötig Antworten zu schreiben und rumzuspammen:
@Ascalon: Ist Antworten ein Geschwindigkeitskonstest? ... "Hey, ich war schneller mit der Antwort als der Fragesteller." :)
 
Zuletzt bearbeitet:

Ascalon

Senior Member
Registriert
08.04.2008
Beiträge
2.730
Du erweiterst einfach das PLAYER1D Script, das wird vom HC ausgeführt ;)
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Super, danke das mit PLAYER1D funktioniert soweit schon mal ganz gut, allerdings hab ich trotzdem noch eine Frage dazu:
So wie es jetzt aussieht wird vor dem Rasten eine Begegnung mit NPC forciert. Allerdings wird danach nicht automatisch geschlafen. Wüsste schon gerne wie man das hinbekommt. Kann man da aus dem Gespräch vielleicht ein Skript (vielleicht das gleiche, welches auch ausgeführt wird, wenn man in der Herberge schläft?!) aufrufen, dass die Rast im Anschluß an das Gespräch auslöst. (Wie man sieht finde ich mich vor allem noch darin nicht zurecht, die existierenden Skripte zu kennen und zu finden :) gibt's da vielleicht eine Doku, oder ähnliches?).

Mit Grüßen,
Romin

P.S. Ich habe übrigens auch schon deine (Ascalons) "Regeln" bzgl. NPCs und wie sie sein sollten gelesen... sehr wahr, was du da schreibst.
 

Ascalon

Senior Member
Registriert
08.04.2008
Beiträge
2.730
Jetzt wollte ich dich gerade zu der großartigen gibberlings3 seite weiterleiten, aber die scheint down zu sein - da ist nämlich jeder Befehl aufgelistet. Und der Befehl um die Party schlafen zu schicken lautet RESTPARTY()
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Ah, danke!

Ja, dass Gib3 down ist habe ich (voller Entsetzen... kriegt man Bissspuren irgendwie aus der Tastatur wieder raus?!) heute auch schon festgestellt. Wollte eigentlich schon hier nachfragen ob bekannt ist warum, aber wie es scheint nicht (Gestern war alles noch fein, aber da war ich noch nicht soweit mit diesen Skripten :)). Na ich hoffe die kommen wieder.
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Danke für den Link, werd's gleich mal ansteuern.

@dt Modprojekt: Nun ja, momentan schreibe ich in englischer Sprache, aber ich werds wohl gleich zweisprachig machen, wenn es mir nicht zuviel Arbeit ist (und ich das .tra-Datei Prinzip mal verstehe :) ) andererseits sollte ich mir nicht zuviel vornehmen... viele Hobbys, wenig Zeit ;).

Spaß habe ich schonmal...

EDIT: gelöscht - jetzt eigenständige Antwort
 
Zuletzt bearbeitet:

Ascalon

Senior Member
Registriert
08.04.2008
Beiträge
2.730
Spaß ist die Hauptsache. Kannst du denn schon ein bisschen verraten was das für ein Charakter wird?
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Hi Ascalon, hier die Antwort auf deine Frage, hatte ich gerade oben als Edit hinzugefügt noch bevor ich deine Frage gesehen habe. Jetzt ists verlagert, als eigenständiger Beitrag. ;)

Ich bin mir eigentlich nicht einmal sicher, ob mein Mod so wahnsinnig nötig ist, denn es soll handelt sich um einen männlichen Paladin, der - wie kann es anders sein - eine Romanze haben kann (evtl. sogar mit männlichem MAINCHAR, bin mir dessen noch nicht sicher).
ABER (bevor die Hinweise kommen, dass es das so oder so ähnlich schon vielfach gibt) er soll sich deutlich von den Anomens, Gavins und Ajantis' abheben (wobei z.B. Gavin eigentlich ein guter Mod ist - nur finde ich, Achtung: persönliche Meinung - seinen Charakter etwas langweilig und leider auch Inkonsistent). Jedenfalls kamen mir von weiblicher Spielerseite zu diesen Romanzen einige Einwände zu Ohren (das sind jetzt mehr oder weniger akurate Zitate - ich will keinen Mod abwerten!): Gavins Charakter "ist einerseits langweilig, manchmal zu pompös und andererseits nicht wirklich nachvollziehbar; Ajantis (BG1 - Romanze) ist ein "Sexist, dem man als MAINCHAR nicht vernünftig Kontra geben kann ohne das die Romanze abbricht" (dazu ist zu sagen, dass besagte Spielerin das derart gestört hat, dass sie nie so lange gespielt hat bis sich das ändert - falls sich das überhaupt ändert?! Anmerkung: Sexistendasein wäre nicht das Problem, wenn man sich wenigstens wehren könnte, siehe Edwin-Romance).

Ziel meines Mods soll also ein Paladin sein, der mit einigermaßen vielschichtigem Charakter (Anomen war da nicht so schlecht) Ajantis, Gavin und/oder anderen GoodDoern ähnelt, dabei aber den Witz von Edwins Romanze mitbringt (zitierte Spielerin fand die super :) und nicht nur wegen der MontyPython-Anspielungen). Anderes großes Romanzen-Vorbild ist sicherlich noch Xan. Natürlich soll das Ganze aber keine Kopie werden, sondern wirklich etwas Neues!.

Tja, viel vorgenommen, ich weiß; Meinungen dazu sind gerne gelesen :)

EDIT: Interpunktions- und Sinnkorrektur eines Satzes.
EDIT2: Übrigens sind mir über-tragische und ultra-exotische NPCs ein Greuel, also keine Sorge :).
 
Zuletzt bearbeitet:

Ascalon

Senior Member
Registriert
08.04.2008
Beiträge
2.730
Oh ja, ein Romanzen-Mod. Daran wollte ich mich auch mal setzen, mit einer Romanze die mal glaubwürdig ist - auch von psychologischen Standpunkt her - und vor allem nicht dadurch "ausgelöst" wird, dass man sich zankt und dann wieder verträgt. Viel Erfolg dabei!
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Ja, ja eine "glaubwürdige Romaze" (ich nenne das auch gerne mal "erwachsen" - das gilt ja bei weitem nicht für alle Romazen - Tsujatha war mir persönlich ein besonderes Greuel - aber das ist nur meine Meinung!)...

Na, ich werde mir Mühe geben, versprochen! Stelle aber gerade fest, es ist ein schmaler Grad zwischen "Adult Content" und "Lächerlichkeit".

Ach, und noch so ein No-Go: Dem Spieler wird vorgeschrieben was er denkt und fühlt (und ich meine damit, der Spieler hat keine Wahl was er für Antworten anklicken kann...).

Interessant wäre allerdings auch ein "gefallener Paladin"; die Ansprüche an so einen noblen Ritter sind schließlich hoch genugt, dass man daran scheitern kann ohne gleich böse zu sein. Aber mal sehen, ich widme mich mal wieder meinem .d-file ;)

EDIT: Rechtschreibung...

EDIT2: Jetzt hab ich noch eine andere Frage: Wie schreibt ihr (Profi-Modder) Dialoge? Bringt ihr die erst zu Papier (ihr wisst schon, wie früher, mit nem Stift und so) damit ihr Übersicht über die Verzweigungen habt und tippt, oder skizziert ihr nur die Verzweigungen selbst auf Papier (ohne Text quasi). Ich suche nämlich noch nach dem rechten "Workflow" ohne die Übersicht zu verlieren (als Beispiel mein erstes Gespräch: Check ob MAINCHAR ist weibl.+CH>12, weibl+CH<13, männlich, dann etwas später Check ob BraegarExists und/oder BookQuest usw. ...später soll das Ganze dann auch wieder zu einem Kernpunkt der Konversation zusammengeführt werden...)
 
Zuletzt bearbeitet:

Romin

Member
Registriert
24.10.2011
Beiträge
43
Erneut einen guten Tag!

Zum einen wollte ich auf EDIT2 meines letzten Beitrags verweisen, nicht dass das untergeht :)

Zum anderen noch eine Design-Frage zum NPC (habe den Thread-Titel auch schon angepasst):

So ein NPC sollte ja auch irgendwie - neben Romanze und/oder Freundschaft - seitens seiner Attribute attraktiv sein. Andererseits mag ich weder optimierte, noch allzu klassische Werteverteilungen. Daher wollte ich die folgenden Werte hinsichtlich der Fragen: "Nimmt man den mit?! Ist er zu gut/schlecht?" mal zur Diskussion stellen:

Klasse: Geisterjäger (Paladin)
STR 16
DEX 18
CON 11
INT 14
WIS 13
CHR 17

Dabei sind die "ungewöhnlichen" Werte CON, INT, WIS mit einem Hintergrund versehen (aber natürlich nicht unbedingt in Stein gemeißelt); STR und DEX habe ich eher willkürlich gewählt.

Ich entbiete meine Grüße,
Romin

EDIT: Oh, wie es scheint ist der Thread-Titel gar nicht angepasst, sondern nur der Titel des ersten Posts, naja...
 

Sir Darian

Ritter des Helm
Registriert
01.04.2000
Beiträge
33.909
Hmmm... *grübel*

@ Romin:

Nur zur Benutzung des Forums im Allgemeinen, damit es Dir den Umgang hier leichter macht.

Die Forensoftware hier funktioniert leider nicht so, daß ein Beitrag als "neu" angezeigt wird, wenn ein Edit eingefügt wurde.
Daher kann natürlich die Situation entstehen, daß ein Edit wie Deiner übersehen wird - niemand wird benachrichtigt, daß da was neues steht.
Daher sind Doppelposts in diesem Forum ausdrücklich erlaubt - Du kannst damit das Vorhandensein einer neue Information "mitteilen". :)

Den Threadtitel kannst Du nicht selber anpassen.
Ich hoffe, ich habe das zu Deiner Zufriedenheit erledigt.
Wenn Du solche Änderungen wünscht, kannst Du Dich jederzeit zum Beispiel per PM an mich wenden. :)
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Fragen über Fragen ... diesmal Areas und drum rum

Hallo zusammen!

Ich habe wieder mal eine Frage und zwar ob (und natürlich: wie, in etwa) sich das folgende realisieren lässt:

Mein NPC Mod soll für über alle Teile BG laufen und demnach in Kerzenburg anfangen. Meine grundsätzliche Idee war, dass MC den NPC bereits kurz vor seinem Weggang aus Kerzenburg kennenlernt - je nach Lust und Laune des Spielers in einem mehr oder weniger langen Gespräch. Nun ist am Prolog-Tag, also an dem Tag an dem das Spiel beginnt aus meiner Sicht aber nicht die in-game Zeit für ein gemütliches Gespräch in der Taverne bei einem Bier/Wein, also wollte ich eine Rückblende einbauen. Dies soll so ablaufen, dass man z.B. bei Winthrops dem NPC begegnet und dann eine Dialog-Option "NPC hast du vor ein 2 Tagen in Winthrops Gasthaus kennengelernt ... (sich erinnern)" bekommt, die, wenn man sie wählt, den Hauptcharakter auf eine neue(?) Gasthauskarte (von Winthrops) teleportiert, auf der sich aber natürlich noch nicht die ganzen Questgeber aus dem Prolog rumtreiben (Breagar, der gute Elfenhaar, auch Winthrop soll nicht seinen üblichen Spruch sagen, etc.). Dann tratscht man etwas und am Ende des Gesprächs geht es zurück in Winthrops Gasthaus des Prologs...

Ist sowas gut machbar, ohne dass man Ärger mit anderen Mods bekommt (Ich dachte natürlich v.a. an Breagar und die Dame die ihrem Liebling den Arm abgetrennt hat, da beide in Winthrops herumhängen.), wie gehe ich an die Sache mit der "frischen" Gasthauskarte heran? Muss ich die alte "kopieren" und ohne "Kreaturen" neu einbinden?

Vielleicht kann Ascalon etwas verraten. Die Sachen die mit Breagar in Taeroms Schmiede stattfinden laufen doch so ähnlich, richtig? Habe auch schon ganz ungeniert diverse Files aus diesem Mod angeschaut, aber nichts handfestes gefunden, dass mir weitergeholfen hat (m.a.W. ich hab nichts verstanden) :)

Mit Grüßen,
Romin
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Da hast du dir auf jeden Fall ordentlich was vorgenommen. Machbar ist das, aber es wird einigen Aufwand bedeuten.

Wie du schon richtig vermutest, müsstest du die Kerzenburgkarte unter eigenem Namen kopieren. Damit würden auch Probleme mit anderen Mods umgangen. Und dann per Action 110 LeaveAreaLUA(S:Area*,S:Parchment*,P:Point*,I:Face*) dahin teleportieren.
Die Frage ist, ob diese "gedankliche Erinnerung" auf diese Weise atmsophärisch gut rüberkommt, zumal sowas bei BG sonst nicht vorkommt. Der Spieler kennt sowas nur von den Traum-Sequenzen und wird das vielleicht befremdlich finden.
Du könntest den Spielanfang auch in Winthrops Wirtshaus "verlagern" und den Dialog mit deinem NPC an den Anfang von BG1 stellen, dann brauchst du nicht dieses Zeitsprung in die Vergangenheit.

Aber da hast du natürlich künstlerische Freiheit ;)

Gruß Jarl
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Da hast du dir auf jeden Fall ordentlich was vorgenommen.
Hach ja ... :rolleyes:

Der Spieler kennt sowas nur von den Traum-Sequenzen und wird das vielleicht befremdlich finden.
Hm, das ist natürlich richtig und ich hatte ehrlich nicht daran gedacht, dass es befremdlich rüberkommen könnte. Aber stimmt natürlich ...

Du könntest den Spielanfang auch in Winthrops Wirtshaus "verlagern" und den Dialog mit deinem NPC an den Anfang von BG1 stellen
Wie meinst du das? Spawn in der Spelu... ähm, Schenke direkt neben dem NPC?

Meine Sorge war/ist eigentlich, dass ich niemandem etwas aufdrängen wollte und der Erzähler ja bereits im "Über den Klippen ..." Intro sagt, Gorion habe MC gesagt er solle sich reisefertig machen.
Nun sollte das erste Treffen sozusagen noch frei von diesem Druck stattfinden, damit man sich darauf einlassen kann, wenn man das möchte. Es kann, so wie der Dialog bislang steht auch dazu kommen, dass MC einen über den Durst trinkt und betrunken einschläft (Skript forciert sozusagen). Das würde MC aber in den seltensten Fällen machen, wenn Gorion wartet... oder seh' ich das zu eng??

EDIT: Gruß, natürlich
EDIT2: und danke für den Action... Befehl :)
 
Zuletzt bearbeitet:

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Ja, das wäre wirklich sehr aufdringlich, ich finde meine eigene Idee auch nicht gut :D
Ich wollte nur aufzeigen, was theoretisch alles möglich wäre. In Kerzenburg was aufzuziehen ist insgesamt schwierig, weil es quasi schon für die Gorion-HC-Story "belegt" ist und die meisten Spieler sich mit dem "Kleinkram" dort nicht mehr aufhalten.

Ja, der HC wird eigentlich nie bei Winthrop schlafen oder auch nur was trinken... Lustig wäre es natürlich, wenn er/sie sich mit dem NPC betrinkt und dann langsam der Bildschirm schwarz wird - der klassische Filmriss :D
Der Befehl dafür wäre übrigens: 202 FadeToColor(P:Point*,I:Blue*)

Muss es denn Kerzenburg sein? Der Freundliche Arm kommt doch auch recht früh dran.

Gruß Jarl
 

Romin

Member
Registriert
24.10.2011
Beiträge
43
Lustig wäre es natürlich, wenn er/sie sich mit dem NPC betrinkt und dann langsam der Bildschirm schwarz wird - der klassische Filmriss
Ja, genau das hatte ich mir auch als Gesprächsverlaufmöglichkeit vorgestellt (wobei der Dialog nicht nur diesen Zweck haben soll :)).

Muss es denn Kerzenburg sein? Der Freundliche Arm kommt doch auch recht früh dran.
Mein Gründe: Der bislang stehende Dialog ist ziemlich losgelöst und steht unter dem "Small-Talk"-Zeichen (habe mich kreativ gespielt - sozusagen). Soll heißen, viele Gesprächsoptionen/Dinge die der NPC so plappert wirken ein bisschen unstimmig, wenn in der Nacht davor der gute alte Ziehvater Gorion vom fiesen schwarzen Ritter (mit Leuchte-Augen) erschlagen worden ist. Z.B. soll Romanzen-interessierten HCs gerne und häufig die Möglichkeit gegeben werden, den hübschen Herrn Paladin anzubaggern (salopp ausgedrückt).
Das Problem ist eigentlich auch, dass ich es eigentlich nett finde wenn man (also HC) - zumindest sehr kurz - ein wenig Normalität hat, bevors so richtig losgeht.

Aber vielleicht erweitere ich den Dialog einfach derart, dass man so gut wie in jedem Moment die Chance hat zu sagen "Sorry, muss weg" und wenn man es denn nicht macht, dann macht man's halt nicht (es soll ja Ziehkinder geben, die grundsätzlich nicht das machen, was die Eltern wollen :) ). Das Ganze Gespräch soll eigentlich auch hauptsächlich ein optionaler Bonus des Charakters sein und nicht über die Maßen auf alles was noch kommen kann Einfluß nehmen...

Puh, das wurde jetzt ganz schön lange...
 
Oben