Construction Set Wie mache ich, dass NPCs miteinander reden?

Unter dem Reiter Conversations musst du einfach die verschiedenen "Antworten" der NPCs aneinanderreihen, jeweils mit der Bedingung GetIsID und GetQuestVariable.
Außerdem musst du ins Questscript eine Variable vorher einbringen, zB short ConversationVar. Diesen setzt du zu Beginn der Unterhaltung auf die Zahl der Antworten und mit jeder gesprochenen Anzahl eines nach unten. Als Bedingung wird dann eben diese jewielige Zahl genommen, sodass es sozusagen runtergezählt wird.

Aber Noch eine Frage:
Ich will, dass ich einen NPC mit einem zauber belegen muss, sodass dann der NPC zum einen Marker, der SPieler zu einem anderen transportiert wird. Soweit so gut. Allerdings soll der getroffene NPC jetzt eine Unterhaltung mit jemandem führen, der bereits auf einem Stuhl in der betreffenden Zelle ist. Wie schaffe ich es jetzt, dass zuerst der NPC von dem Stuhl aufsteht und zu einem dritten Marker geht und dann erst die Conversation beginnt?
 
Also als erstes wär noch wissenswert, ob der NPC in ene andere Cell "transportiert" wird oder ob er nur in einer Cell zu einem anderen Marker "transportiert" wird. Dann wär auch noch wichtig, ob der NPC per Move/Moveto - Befehl bewegt wird oder durch ein Package. Kannst du das noch mal detaillieren?
Danke

MfG Gildur
 
Der NPC, der per Zauber dahin transportiert wird (A), kommt aus einer anderen zelle und wird mit einem moveto Befehl zu einem XMarkerHeading in einem Käfig transportiert. Der Spieler danach zu einem zweiten XMarkerHeading, logischerweise aus der selben Zelle wie A.
Dort wartet schon ein anderer NPC (B) wartet in der Zielzelle auf einem Stuhl, soll dann nach der NAkunft des Spielers aber aufstehen und zu einem dritten Marker gehen. Dann erst soll die Conversation beginnen.
Das Hauptproblem ist, dass B aufsteht und zu seinem Marker geht.
 
Also als erstes musst du B auf jedenfall ein AI-Package geben. Und zwar, dass er zu dem besagten Marker geht. Und jetzt brauchst du noch verschiedene besondere Conditions. Es kommt darauf an, ob du es lieber über einen Quest-Script regeln willst (hilfreich, wenn es sowieso in einer Quest ist), oder einfach über einen Game-Mode-Script. Du kannst dir ja beide Möglichkeiten anschauen:

1.: QuestScript:
Du erstellst also einen Script für eine Quest. Der müsste dann ungefair so aussehen:
Code:
scn AaConversation1

Begin GameMode

If player.getincell [DieCellInDerDerSpielerTransportiertWird]
setStage [DieseQuest] [StageZahlY]
Endif

End
Bei dieser Lösung musst du der Condition des AI-Packages so einstellen:
GetStage [QuestID] [StageZahlY]

2.: GameMode-Script auf dem NPC
Am besten erstellst du jetzt eine Global.
Code:
scn AaConversation2

Begin GameMode
If player.getincell [DieCellInDerDerSpielerTransportiertWird]
set [Global] to 1
Endif

End
Hier machst du bei der Condition des AI-Packages am besten den GlobalValue, also:
GetGlobalValue [Global] 1

MfG Gildur
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Arcanum Antor
Dieser Thread ist zwar schon etwas alt, aber ich habe ein Problem mit einer Conversation:

Ich habe eine Konversation in meiner Quest erstellt, aber die Dialoge über eine Varibale miteinander verbunden. Und ich habe alles genauso gemacht, wie in der Quest MS29 zwischen Thoronir und Agarmir. Das Problem ist, das der 1.NPC die Unterhaltung startet, aber der zweite nicht antwortet. Nach einer kurzen Zeit sagt dieser nur "Auf wiedersehen". (Nebenbei gesagt, ich habe noch keinen Ton, nur Untertitel).

Und gibt es eine Möglichkeit, diese Verabschiedung am Ende der Konversation zu entfernen oder zu ändern? :huh:
 
Auch wenn es schon länger her ist, aber der Threadtitel passt für meine Frage perfekt:

Ich habe es schon mit Triggerboxen versucht, an der Zahl 3, und einem Questskript, aber die Conversation startet bei mir nicht einmal.
Hier mein Questskript:
Code:
scn MG20FluchzauberQuestScript

short TalkOnce
short True
short Convo
short MoveAway
short Doonce

begin gamemode

;Triggers conversation between Agarmir and Thoronir if player is near
if ( GetStage MG20Fluchzauber >= 10 ) && ( TalkOnce == 0 )
    if ( Player.GetDistance MG20RaminusBothielMeet <= 100 ) && ( RaminusPolusRef.GetDistance MG20RaminusMeet <= 200 ) && ( BothielRef.GetDistance MG20BothielMeet <= 200 )
        DisablePlayerControls
        BothielRef.StartConversation RaminusPolusRef, WaytoWitchTopic
        set TalkOnce to 1
    endif
endif

;Evp's both after Convo
if ( GetStage MG20Fluchzauber >= 10 ) && ( MoveAway == 1 ) && ( Doonce == 0 )
    EnablePlayerControls
    RaminusPolusRef.Evp
    BothielRef.Evp
    set Doonce to 1
endif
end
Dazu habe ich in der untersten Etage des Erzmagierturms zwei X-Marker Heading´s gemacht und einen normalen X-Marker. Aber das Gespräch startet einfach nicht. Ich habe auch das Prinzip von Agarmirs und Thoronirs Gespräch übernommen, aber es klappt nicht.

Das gewünschte Resultat:
- Ich finde ein Buch, das startet mein Quest.(erledigt)
- Ich bin auf dem Weg nach draußen und höre dann Bothiel und Raminus
Polus über die Belohnung meines Questes reden.

Bei dem letzten Punkt weiß ich eben nicht, wie ich das bewerkstelligen soll.

EDIT: Ich komme einfach nicht voran, sie reden nicht miteinander.
Noch eine Info:
Als ich im Spiel in der Konsole die Zeile
Code:
BothielRef.StartConversation RaminusPolusRef, WaytoWitchTopic
eingab, kam ein Fehler, dass nur Objektreferenzen zugelassen seien. Eine Frage wie soll man es denn sonst machen?
 
Zuletzt bearbeitet:
Das wüsste ich auch geren. Meine Reden auch nicht miteinander. Die Unterhaltung starte einfach nicht. Kann es sein, das das Near irgendwo definiert werden muss. Also wie nah man sein muss damit es los geht?
 
Die Entfernung wird ja mit GetDistance bekommen, aber meine Frage ist: In welcher Einheit wird die Entfernung angegeben? Was sind 100 oder 200 für Entfernungen?
 
Das frage ich mich auch. Habe ich noch nicht raus. Ich jetzte mal 250 sind ca 25 cm InGame Luftlinie so als Augenmass was ich so feststellte. Sicher bin ich aber nicht.