Gespräche mit NPC erstellen

  • Hi ich hab ne frage, wie kann man Gespräche erstellen, also mit einem eigenen NPC den man Erstellt hat und in eine Karte gesetzt hat. bin echt ratlos ?(


    Ich danke schonmal im Vorraus (ein zweites Danke gibt es wenn es funzt ;) )

  • So nach langer Abstinenz von SoA, habe ich das gute Stück mal wieder installiert.


    Und mich auch gleich wieder an ChaptEd rangesetzt.
    Doch ohne das ich eine Frage stelle geht es ja nicht ;)


    Also die Frage/Problem ist folgendes:
    Ich habe ein Dialog mit einem neuen NPC erstellt, in dem Dialog bekommt man einen Quest.


    Doch wenn ich den NPC anspreche, sagt er nicht das was er sagen soll.
    (Fängt mit den völlig falschen Dialog an)


    Den Dialog und ein Bild des falschen Dialogs gibts im Anhang.


    Vllt. kann ja mal jemand über den Dialog drüberschauen und mir sagen was eventuell alles falsch ist.
    Ich habe natürlich schon selber drübergeschaut, aber für mich sieht das alles richtig aus....


    (PS. Vllt. kann ja auch jemand sich die Quest/bzw. die script-sachen anschauen. kann sein das sich da Fehler eingeschlichen haben.)

  • Dein Problem ist meinermeinung der Punkt [root].


    Weil Standart mäßig wird immer der Text der bei Default= gesprochen, außer es wird ein anderer Text getriggert.


    Es müsste Reichen say1=All(ttl(!PlayerKnown)); zu setzten. Das ist soweit ich weiß der Trigger der beim ersten Ansprechen gebraucht wird.
    Um Später von einem anderen Punkt zu starten musst du dich entsprechend mit den Triggern auseinander setzen. Ich weiß nicht ob irgendwer das hier wirklich gemacht hat^^ ich zumindestens nicht :D.


    Bei den beiden Weitern Punkten geh ich aus meinem Gedächtnis. D.h. es können auch Fehler sein :D und sind daher mit Vorsicht zu genießen. Nimm im Zweifelsfall deine Erfahrung für Richtiger :D.


    Weiter im Text ;)


    warum du unter [paul] das script1 UNTER den RxpTxt2 gesetzt hast weiß ich nicht. vllt. ein fehler der Nummerierung? Um fehler zu vermeiden sollten zusammen gehörende Teile untereinander und die Selbe nummer haben. (Mein ich zu errinern)


    Du fügst auch ständig Titels (Addtitel) hinzu zum Char ohne das du sie Triggerst, also benutzt, oder wieder entfernst. Warum? zumindestens das Entfernen sollte man machen, sonst könnte SOA stress machen

    • Offizieller Beitrag

    zum einen, scheinst du deinen NCP in chapted nicht korrekt benannt zu haben so das er keine CNV läd. Er müsste den Namen Paul haben damit es klappt.


    Zu deiner CNV:


    du hast denke ich einfach dinge vertauscht.


    Code
    [paul]Say=Hallo, mein Guter!RspTxt1=Hallo wie geht es euch?NxtLn1=paul1RxpTxt2=Tut mir Leid, aber ich habe wirklich kein Interrese mit euch zu sprechen.script1=player.addtitle(paul-bad0);Nxtln2=defaultRspDflt=Ich muss weiter.


    Code
    [paul-bad0]Say=Was wollt ihr denn noch. Ich will euch nicht bei euren achso wichtigen Tätigkeiten aufhalten.Rsptxt1=Das war nicht so gemeint, ich bitte euch um Entschuldigung.script1=player.addtitle(paul);NxtLn1=defaultRspTxt2=Das stimmt und deshalb werde ich jetzt auch gehen.script2=playeraddtitle(paul-badx);Nxtln2=default2



    du willst eigentlich zu paul-bad0 weiter, setzt aber nen title statdessen und der dialog geht weiter zu


    Code
    [default]
    Say=Achso ist das, dann gehabt euch wohl.
    RspDflt=tschüss



    ich kann dir nur wärmstens empfehlen cnv's mit dem dazugehörigen tool im vorfeld zu testen :)

  • Ok danke Vol. werde demnächst die Sache mit den CNV-Tool testen.


    Ich denke ich habe mich ein wenig mit den scripten übernommen ;)
    Und wollte viele Gut-Böse Sachen einbauen.


    Im ChaptEd-Ordner liegt ja ein Worddokument und da sind alle scriptbefehle eingetragen.
    In so einem Dialog kann man ne menge toller sachen einbauen ;)


    Muss mich nochmal intensiv damit beschäftigen :)


    MfG

    Siege of Avalon- The next Chapter
    (Scripter für SoA-Mod gesucht)

  • Ok ich habe das ganze nochmal vereinfacht versucht.
    Ich habe einen Dialog erstellt, am Ende des Dialogs soll der NPc von seiner jetzigen Position zu einer anderen position laufen.


    Folgendes habe ich getan:


    Hier der Dialog:



    [FileID]
    Author=
    Coding=
    Approved=
    version=1


    [CharacterID]
    Name=Paul
    GUID=paul


    [Titles]
    Set=
    Checked=
    Removed=


    [Quest]
    Added=
    Removed=


    [Items]
    Given=
    Taken=
    Checked=
    Added=


    [SyntaxCheck]


    [Problems]
    1=


    [Questions]
    1=


    [root]
    Count=6
    Else=
    Default=Danke, Paul.
    say1=Hallo!;
    goto1=Paul1


    [paul1]
    say=Hallo, darf ich Fragen wer ihr seid, und woher ihr kommt?
    RspTxt1=Hallo, natürlich. mein Name ist %playername% und ich bin gerade mit dem Schiff angekommen.
    NxtLn1=paul2
    RspDflt=Bis Bald!


    [paul2]
    say=Also %playername%, was führt euch den hierher? Niemand geht freiwlillig in diesen schweren Tagen nach Avalon!
    RspTxt1=Das stimmt aber ich hörte was hier vor sich geht und wollte unbedingt helfen. Aber nun zu euch, wer seid ihr und was ist eure Aufgabe.
    NxtLn1=paul3


    [paul3]
    say=Mein Name ist Paul, ich komme aus Taberland. Und als der krieg bekann hat man mich mit einer Garnision als verstärkung geschickt. Aber inzwischen sind fast alle aus meiner Truppe tot.
    RspTxt1=Tut mir leid das zu hören!
    NxtLn1=paul4


    [paul4]
    say=Ja es ist ein Jammer, das waren viele gute Soldaten die nicht zu ihren Frauen zurück kehren werden. Aber der Kampf geht trotzdem weiter.
    RspTxt1=Ihr habt eine gesunde Einstellung Paul, was wollt ihr als nächstes tun?
    script1=player.addtitle(xpaul1);
    NxtLn1=paul5


    [paul5]
    say=Ich denke ich werde wieder mal auf meinen alten Posten vorbei schauen. Würde gerne wissen wer da noch alles lebt. Wir sehen uns wieder %playername%.
    script1=Siege2CA20BF75001719.moveto(PathCorner2CA20BF750346D5);
    RspDflt=Dann will ich euch nicht länger aufhalten. Gehabt euch wohl Paul.




    Dann habe ich dem NPc einen Namen gegeben- in dem fall Paul.


    Dann habe ich einen PathCorner erstellt und unter GroupName den Namen Paul gesetzt.


    In ChaptEd habe ich unter der Option Events-OnActivate des NPC folgendes:
    converse(paul)


    In ChaptEd habe ich unter der Option Events-OnLoad des NPC folgendes:
    player.iftitle(xpaul1); Siege2CA20BF75001719.moveto(PathCorner2CA20BF750346D5);


    So nur bewegt sich der NPC kein Stück.



    Edit.
    Ok ich habe dann nochwas versucht:
    Zusätzlich zu dem was ich oben gemacht habe, habe ich:


    Einen PathCorner direkt vor dem NPC gesetzt, und unter OnLoad folgendes:
    Siege2CA20BF75001719.setpos(PathCorner2CA20BF752867D6);
    um die Position des NPC zu bestimmen ?


    Dann habe ich unter der Option AI-Idle beim NPC folgendes:


    Unter PathStart: PathCorner2CA20BF752867D6
    Unter PathEnd: PathCorner2CA20BF750346D5


    Unter PathEndSCR: Siege2CA20BF75001719.setpos(PathCorner2CA20BF752867D6);


    Unter PathStartSCR: converse(paul)


    Ich weiß nicht ob das was direkt damit zutun hat, aber ich habe bei anderen NPC geschaut. Die auch nach einem Gespräch ihre Position wechseln.


    Hat übrigens auch nichts gebracht :motz:

    Siege of Avalon- The next Chapter
    (Scripter für SoA-Mod gesucht)

    Einmal editiert, zuletzt von Odin ()

  • Zitat

    Original von voldemort13
    gucks dir bei anderen ncp's ab, die nach nem dialog weglaufen. so viele sind das imho auch nicht


    Ja das habe ich versucht,a ber leider ohne Erfolg.


    Ich habe das Script im Script-editor prüfen lassen und da war alles in Ordnung.
    Auch die CNv. habe ich im CNV-editor prüfenlassen und da war auch alles in Ordung.


    Folgende Schritt habe ich gemacht.


    1. den NPC neu gesetzt und die alten PathCorners gelöscht.
    2. einen neuen PathCorner gesetzt
    3. Dem NPC bei Events OnLoad folgendes Script zugewiesen:
    player.iftitle(xpaul1);
    moveto(pathCornerXY);
    endif;


    4. einen weiteren PathCorner direkt vor dem NPC gesetzt
    5. den beiden PathCorner GroupName und EditName zugewiesen.
    6. Dasselbe beim NPC
    7. Beim NPC AI_IDLE->PathStart->name des pathcorners der vor dem NPC ist.
    8. PathStartSCR->converse(paul) eingetragen
    9. PathEnd->name des pathcorners der am ziel gesetzt ist
    10. Script->das script=GUIDXY.converse(paul)-->guid steht für den namen des NPC`s unter GameObject


    Und natürlich habe ich in der CNV. unter einer Zeile folgendes:


    [paul5]
    say=Ich denke ich werde wieder mal auf meinen alten Posten vorbei schauen. Würde gerne wissen wer da noch alles lebt. Wir sehen uns wieder %playername%.
    script1=player.addtitle(xpaul1);
    RspTxt1=Dann will ich euch nicht länger aufhalten. Gehabt euch wohl Paul.
    NxtLn1=xpaul1
    RspDflt=none


    die CNV. läuft ohne probleme


    Ich weiß langsam echt nicht was ich falsch mache.

    Siege of Avalon- The next Chapter
    (Scripter für SoA-Mod gesucht)

  • Ein Trigger ist doch schon vorhanden->script1=player.addtitle(xpaul1);


    oder meinst du einen Trigger im Editor->gsOnTrigger ?


    mfg

    Siege of Avalon- The next Chapter
    (Scripter für SoA-Mod gesucht)

  • Habe ich getan aber es funktioniert noch nicht.


    Aber vllt. habe ich es ja wieder falsch gemacht ;)


    ich habe einen sOnTrigger erstellt und unter OnTrigger folgendes definiert:


    IfPlayer;
    player.iftitle(xpaul);
    SiegeXY.moveto(PathCornerXY);
    endif;

    Siege of Avalon- The next Chapter
    (Scripter für SoA-Mod gesucht)