Zeige Ergebnis 1 bis 10 von 10

Thema: [CS3] Hilfe bei Dialogen im Construction Set

  1. #1
    Mitspieler
    Im Spiele-Forum seit
    Dec 04
    Beiträge
    10

    [CS3] Hilfe bei Dialogen im Construction Set

    Ich hab mir schon einige Tutorials zum Thema Dialoge bzw. Quests angesehen, aber irgendwie will und will es nicht funktionieren. Vielleicht kann mir ja einer von euch helfen, das ich die Dialoge richtig hinbekomme - mit der Begrüßung (und Charerstellung) klappt alles recht gut, es kommt aber ab und zu bei der Begrüßung, wenn ich sie im Spiel ausprobiere, eine Fehlermeldung, bei manchen Begrüßungen wird das Inventar beim Ansprechen des NPCs mit aufgerufen, kann mir nicht erklären, warum.
    Ich bekomme auch bei jedem Start von Morrowind mit meinem Plugin eine Fehlermeldung, das irgendein Script nicht kompiliert wurde, ich habe aber noch gar keinen Script gemacht. Und ich habe aus versehen einige Dialogoptionen gelöscht (wie z.B. "Südwall" o.ä.), kann ich das noch retten oder muss ich das ganze Plugin von vorne beginnen?

  2. #2
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Ja, das kann man noch retten. Benutze bitte TESAME und entferne die Dialogmodifikationen, die du nicht mehr haben willst damit. Damit läßt sich ebenfalls herausfinden, welches Script betroffen ist. Diesen Verweis löscht du ebenfalls, genau so wie die GMST-Referenzen, innerhalb des Plugins. Damit sollten schon mal einige Fehlerquellen beseitigt sein.

    Das andere... öh? Du öffnest den Dialog und das Inventar geht auf ?! o.O

    Das muß ein Bug sein... reinige erstmal wie beschrieben das Plugin, dann schau nach, ob es immer noch so ist. Wenn ja, sehen wir weiter.
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

  3. #3
    Mitspieler
    Im Spiele-Forum seit
    Dec 04
    Beiträge
    10
    Thx, hatte soweit funktioniert, aber da das mit dem Inventar ja scheinbar "neu" war und ich ohnehin noch nicht sehr weit gekommen war, habe ich das PlugIn jetzt gelöscht und von neuem angefangen.
    Also, viel mehr würde mich jetzt interessieren, wie ich einen Dialog machen kann (wie gesagt habe ich das mit der Begrüßung so weit verstanden - den Rest aber nicht ) - wie kann ich einen NPC dazu bringen, den Spieler anzusprechen? Wie kann ich einen (kleinen) Quest machen (z.B.: Hol' mir ein paar Flaschen Mazte)? Wie kann ich einen NPC dazu bringen, nach dem "Lebt wohl" wegzulaufen (um dann irgendwo zu verschwinden, wenn er außer Sichtweite ist)? Wie kann ein Händler seine Gegenstände verkaufen (ich habe einen Händler, gebe ihm seine Waren ins Inventar - und wenn ich ihn im Spiel anspreche, hat er keine Waren (außer den eingestellten Draken))? Wie kann ich einen NPC dazu bringen, einen bestimmten Ablauf (z.B. im Haus herumgehen) erst nach einem Gespräch beginnen (und "nie mehr enden") zu lassen?.......

  4. #4
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Uargh... so viele Fragen auf einmal...

    Also. Erstmal die einfachen:

    Händler verkaufen nur die bei sich eingestellten Gegenstände, d.h. du mußt bei der jeweiligen NPC das Einstellungsfenster öffnen und unten den Punkt "AI" anwählen. Dann öffnet sich ein Fenster, geh dort auf den Tabellenreiter "Service" und du wirst selbst sehen, was du da einstellen mußt, damit der NPC das verkauft, was du ihm ins Inventar oder per Besitz-Referenz in den Laden packst.

    wie kann ich einen NPC dazu bringen, den Spieler anzusprechen?

    Das geht nur über ein Script, welches auf der NPC liegen muß.
    Hier muß an einer Stelle der Befehl ForceGreeting eingebaut sein, am besten so:

    Code:
    IF ( doonce == 0 )
     IF ( GetDistance Player <= 1024 )
      IF ( GetLOS == 1 )
       ForceGreeting
       set doonce to 1 (Aktion nur einmal ausführen
       HIER WEITERE BEFEHLE EINFÜGEN
      ENDIF
     ENDIF
    ENDIF

    Wie kann ich einen (kleinen) Quest machen (z.B.: Hol' mir ein paar Flaschen Mazte)?

    Ich kann beim besten Willen keine Anleitung dafür posten, das würde den Rahmen sprengen. Mein Tip wäre, daß du dir mal ansiehst, wie sich der Dialog mit der NPC Ajira zum Topic "Mushrooms" aufbaut. Es ist im Grunde sehr einfach, aber ohne Bilder extrem umständlich zu erklären. Wichtig ist, daß du ein möglichst einzigartiges Topic erstellst, unter dem die Quest läuft und dies dann im Greeting erwähnst.


    Wie kann ich einen NPC dazu bringen, nach dem "Lebt wohl" wegzulaufen (um dann irgendwo zu verschwinden, wenn er außer Sichtweite ist)?

    Das ist komplizierter. Du mußt ein Script auf die NPC legen. In diesem Script mußt du über eine bestimmte Variable eine Kondition abfragen und dann die AI-Einstellungen des NPC modifizieren. Das Flüchten ist noch relativ einfach, hier würde im Dialogresult folgendes stehen:

    SetFight 0
    SetHello 0
    SetAlarm 100
    SetFlee 100
    Goodbye

    Das Verschwinden bei Sichtverlust geht z.B. mit Hilfe der Funktion GetLOS. Das Problem dabei ist, daß die Spielercharaktere meist schneller als die NPCs sind und du damit eventuell Probleme bekommst. Der Spieler könnte der NPC einfach hinterherlaufen und das wäre es dann. Besser wäre ein Teleport.

    Wie kann ich einen NPC dazu bringen, einen bestimmten Ablauf (z.B. im Haus herumgehen) erst nach einem Gespräch beginnen (und "nie mehr enden") zu lassen?

    Hier muß der NPC ein neues AI-Package "Wander" zugewiesen werden. Dies geht ebenfalls über ein Script, das Variablengesteuert ist, oder über einen DialogResult. Ich schlage dir also dringend vor, dir ein CS-Scriptingmanual zu besorgen. Im "Empfohlene Plugins"-Thread ist der Link zu einem solchen Manual. Das solltest du benutzen, um die Grundlagen des Scriptings zu lernen.

    Hoffe, dass ich dir erstmal weiterhelfen konnte
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

  5. #5
    Mitspieler
    Im Spiele-Forum seit
    Dec 04
    Beiträge
    10
    Danke für die Hilfe!

    Neues Problem: Wenn ich meinen Spielstand lade (Balmora, vor "meinem" Haus), dann kommen Messageboxen, die auch am Start des Spiels erscheinen, ich kann z.B. nicht mehr aus einem Haus herausgehen ("Du solltest [Name vergessen] erst nach deinen Pflichten Fragen.") oder wenn ich den Spielstand lade, kommt direkt die Meldung "Du bist jetzt auf dich allein gestellt, am besten suchst du zuerst Arilles Handelshaus zu deiner linken auf". Wie kann man das beheben, liegts am Spielstand oder am Plugin?

  6. #6
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Das liegt am Plugin... bitte jag es durch TESAME und filter die GMST-Referenzen und den anderen Müll raus. Möglicherweise setzt dein Plugin irgendwelche Variablen zurück.
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

  7. #7
    Meisterspieler Benutzerbild von [LoH]Q³-DoG
    Im Spiele-Forum seit
    Feb 04
    Ort
    Vorm PC
    Beiträge
    696
    es gibt zwei gründe, wenn das kommt hast du an dem PlugIn die Tür aus dem Seyda Neen Harfen genommen auf dem ein Script liegt....eigentlich sollte dieser nicht aktiv sein darum ändert wie Botox es schon sagte das PI offentsichtlich auchnoch Variablen (in dem fall die chargenstate variable)

  8. #8
    Mitspieler
    Im Spiele-Forum seit
    Dec 04
    Beiträge
    10
    Ja, ganz genau das ist es, die Tür vom Hafen habe ich als Lagertür genommen, werd sie dann ersetzen.

    Eigentlich wollte ich ein Plugin erstellen - in einer Taverne in Balmora (und diversen anderen Häusern über ganz Vvardenfell verteilt) gibt es eine Tür oder eine Person, die den Spieler in eine Welt "unter" Vvardenfell bringt. Keine große, unterirdische Stadt oder so etwas, eine "richtige" Welt, also kein unterirdisches Land sondern eine Welt wie in Vvardenfell, mit Wüstengebieten, Schneelandschaften, Regenwäldern mit Ureinwohnern und natürlich gemäßigtem Klima. Allerdings habe ich mir das "PlugIn-erstellen" weitaus einfacher vorgestellt, als es ist, zumindest was das scripten und Quests erstellen angeht...

  9. #9
    Mitspieler
    Im Spiele-Forum seit
    Dec 04
    Beiträge
    10
    Ich habe mir das jetzt so weit angesehen, aber werde immernoch nicht ganz schlau daraus. Ich habe jetzt einen Argonier, der von einem Mann "versklavt" wurde, er muss Tränke für ihn anfertigen, sonst wird er eingesperrt. Die Aufgabe soll darin bestehen, den Mann zu Boden zu schlagen (nicht zu töten!), zu überreden, damit aufzuhören etc. Der Dialog klappt eigentlich schon sehr gut, Topics anlegen und die Begrüßung des NPCs funktionieren einwandfrei. Jedoch habe ich es immer noch nicht geschafft, dass der NPC mich anspricht und nicht ich ihn. Außerdem, wenn ich sämtliche Topics, die ein NPC, in diesem Fall der Argonier, hat, lösche, lösche ich leider nicht nur die Topics des einzelnen NPCs, sondern banne ich das Topic komplett aus den Dialogen, also z.B. "kleines Geheimnis", "kurzer Ratschlag" oder "Slostheim" oder auch "mein Beruf" soll (eigentlich bei keinem meiner NPCs) bei diesem Argonier nicht vorhanden sein, sondern nur die Topics, die ich durch seine Begrüßung (in diesem Fall wehklagen darüber, dass der Mann ihn zur Arbeit zwingt und er Tag und Nacht arbeiten muss) erhalte.
    Wie kann ich eigentlich zu den Topics "verlinken", wenn ich eine Multiple-Choice-Wahl getroffen habe? Also wenn ich sage "Hoffentlich verdient er viel Geld mit der Sklaventreiberei!" sollte der Argonier mich hassen und nie wieder mit mir sprechen wollen, oder halt nur sagen "Verschwindet, mit euch will ich nichts mehr zu tun haben". Wenn ich jedoch die andere Wahl treffe, "Sagt mir den Namen von ihm, den werde ich mir vorknöpfen", dann müsste der Argonier einem seinen Dank aussprechen, einem den Namen des Mannes sagen und wenn man mit dem Mann fertig ist und wieder zum Argonier zurückgekehrt ist, mit 5 Heiltränken und Handel mit Tränken jeder Art beim Argonier belohnt werden....

  10. #10
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Also... im Falle der Globaltopics wie "mein Beruf" und so weiter mußt du zwangsläufig ein Script auf den NPC legen, welches folgende beiden Zeilen enthält:

    short nolore
    short notlocal


    Damit werden fast alle globalen Topics des Basisspiels unterdrückt, nicht jedoch die Topic "Solstheim" (Bloodmoon).

    Die Auswahl innhalb des Dialogs geht mit dem Befehl Choice, schau dir die beiden Anhänge an. So macht man das.

    Wenn du willst, daß der Argonier auf eine bestimmte Aktion zickig reagiert, dann mach das mit einem Journaleintrag, z.B. "MYJOURNAL_ARGO_SAUER" der z.B. gegeben wird, wenn du die Dialogoption 1 auswählst.

    Die Choice-Option ist im zweiten Anhang zu sehen, die Reaktionen auf einen Choice müssen zwangsläufig darüber stehen.
    Ist die Choice 1 und du willst, daß der Argonier danach nie wieder mit dir redet, setzt du im Result des Dialogs die Befehlszeilen:

    journal MYJOURNAL_ARGO_SAUER 1
    Goodbye

    Wobei im "MYJOURNAL_ARGO_SAUER" Tagebucheintrag dann stehen sollte: "Der Argonier war verärgert und wird nicht mehr mit mir sprechen". Da du nun ein Journal gesetzt hast, kannst du im Greeting 5 für deine NPC eine gesonderte Reaktion festlegen... die ganz oben stehen muß und sowas wie:

    "Ich hab gesagt, ich rede nicht mehr mit dir..." als Dialog und im Result des Greetings dann GOODBYE enthält.

    Damit kannst du nie wieder mit dem Argonier reden, egal was du tust (selbst ein Zauber hilft dann nicht weiter). Hoffe das war verständlich.

    Das andere, das Ding dass dich ein NPC anspricht... auch das geht nur mit einem Script... nehmen wir mal an, du hast einen Journaltopic MYJOURNAL_SLAVEMASTER und das hat die folgenden Topics:

    5: "Ich habe den Sklavenhalter getroffen..."
    10: "Der Sklavenhalter will den Argonier nicht frei lassen"
    20: "Der Sklavenhalter wird den Argonier frei lassen"


    Jetzt kannst du über einen Dialog oder was auch immer dich folgenden Topics setzen. Nehmen wir mal an, du willst, daß dich der Argonier anspricht, wenn du seine Freiheit erreicht hast, und nur dann. Für diesen Fall muß in seinem Script folgendes stehen:

    Code:
    short greetonce
    ...
    
    if ( greetonce == 0 )
    
     if ( GetDistance Player > 256 )
      return
     endif
    
     if ( GetJournalIndex "MYJOURNAL_SLAVEMASTER" != 20 )
      return
     endif
    
     ForceGreeting
     set greetonce to 1
    
    endif
    Mit diesem Code sagst du der NPC, dass sie:

    1x automatisch grüßen soll, wenn der Spieler ihr zu nahe kommt und zugleich das Journal MYJOURNAL_SLAVEMASTER anzeigt, daß der Spieler den Sklavenhalter zur Freilassung überredet hat.

    Nun kannst du auf Basis dieser Journaleinträge Dialogoptionen für den Argonier erstellen...

    Hoffe, das hat dir geholfen.
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt - 1.gif
Hits:	42
Größe:	30,7 KB
ID:	54953   Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt - 2.gif
Hits:	44
Größe:	31,0 KB
ID:	54954  
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

Ähnliche Themen

  1. [MW][CS3] TES Construction Set - Plugin aktivieren?
    Von Marc244 im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 1
    Letzter Beitrag: 6.2.06, 12:45
  2. [CS3] Suche Buch mit Hilfe des Construction Sets
    Von Britt im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 2
    Letzter Beitrag: 13.4.05, 23:09
  3. [CS3] Wo gibt's das deutsche Construction Set?
    Von sebi32 im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 4
    Letzter Beitrag: 24.3.05, 23:06
  4. [CS3] Fragen rund ums TES III - Construction Set
    Von König DAGOTH im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 262
    Letzter Beitrag: 20.1.05, 14:13

Lesezeichen

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •