Missionsziele

  • Zitat

    Warum hast Du goal_type_4, 1 wenn alles andere goal_*_0 … ist?


    Omg!


    Stimmt, da ist ja der Fehler, jetzt funktioniert es^^

  • Könnte man unter Umständen für eine Mission "miss20.mis" pauschal zwei Folgemissionen "miss21.mis" und "miss22.mis" angeben , sodass z.B. je nachdem welches Ziel zuerst erfüllt wird, entweder "miss21.mis" oder "miss22.mis" folgt?

  • Was mir dazu einfällt:


    1. man trägt miss21 normal als Nachfolger für miss20 in der missflag.str ein
    2. man schreibt eine *.cmd Datei (ReplaceMissflag.cmd), die diese missflag gegen eine andere austauscht (missflag_2.str), in der miss22 als Nachfolger für miss20 steht
    3. in miss20 erschafft man einen Marker mit folgenden Einstellungen:


    S -> Script: CommandControl


    Editor -> Design Note: on="run ReplaceMissflag.cmd"


    4. Diesen Marker nach Erfüllen eines Ziels via ControlDevice triggern


    Das funktioniert allerdings nur dann, wenn Thief nach dem Beenden einer Mission bestimmt, welche Mission als nächste geladen wird.
    Für den Fall dass das bereits zu Spielbeginn geschieht, könnte man immer noch die *.mis-Dateien via *.cmd-Datei vertauschen/umbenennen.

  • Zitat

    Für den Fall dass das bereits zu Spielbeginn geschieht, könnte man immer noch die *.mis-Dateien via *.cmd-Datei vertauschen/umbenennen.


    Wenn ich das richtig verstehe, könnte man verschiedenen Markern dieses Script zuweisen und sogar mit unsichtbaren Zielen triggern, somit vordefinierte "ReplaceMis.cmd" starten, um im Hintergrund entsprechende Folgemissionen auszutauschen? Dann könnten Spielverlauf und Story auch mit dieser Methode gesteuert werden, weil die Story sich z.B. an das Verhalten des Spielers anpassen würde. Zudem wäre es auch erweiterbar auf Folgemissionen. Gute Idee! Vielen Dank Intruder! =)


    Sofern ich etwas herausfinden sollte, teile ich dies mit! :D Hier ein funktionierender Code (replace_a.cmd)


    Zitat

    @echo off
    echo.
    xcopy "mis\miss21.mis" /e /Y /Q
    echo.
    end


    Vorraussetzung:
    "replace_a.cmd" befindet sich im selben Verzeichnis, wie die ursprüngliche (zu ersetzende) "miss21.mis" und die neue "miss21.mis" in einem Unterverzeichnis "mis".


    Kann man ja erstmal mit Textdateien ausprobieren. ;)

  • Wichtiger wäre es jedoch zuerst zu testen, ob der "run"-Befehl auch mit der Thief2.exe funktioniert. Manche (z.B. fog_r, fog_dist, etc.) funktionieren leider nur in DromEd und nicht in Thief selber.

  • Yep! Das schrierigste zuerst. Vielleicht probiert es jemand aus, bevor ich es schaffe? Man könnte somit auch einige DromEd-Limits umgehen. Verschiedene Sky-Texturen, grössere Distanzen, Wettereinflüsse, halt alles, was mit Teleporttraps alleine nicht möglich wäre. Um Ladezeiten mache ich mir die wenigsten Sorgen (2012). Camvators oder andere Filmsequenzen könnten zudem entschädigen und für Aufklärung sorgen. Mich begleitet immerwieder der Gedanke eines optionalen Spielverlaufs, seit jeher. So wie jemand entscheidet, soll das Spiel erfolgen. Mit verschiedenen Schwierigkeitsgraden alleine lässt sich kein neuer Himmel zaubern. Wer gewaltlos bleibt, soll auf weniger Gegner stoßen und andere Wege zur Verfügung haben als jemand, der den Kampf nicht scheut. Wer anderen hilft, dem wird geholfen werden, etc... Der Spieler soll eben nicht im Vorfeld wissen, welche primären Ziele es gibt. Er bekommt eine Mission, in der er sich selbst finden oder erfinden soll, führt eigene Regie, ohne es zu merken. Das wahre Ziel/Ende bleibt hier verborgen, damit das Spiel wie auch ein Traum schlagartig endet. Über die Güte oder Qualität des Traums entscheidet der/die jeweilige(r) Spieler(in) selbst.


    Intruder? Weisst du bereits, dass es nicht funktionieren wird oder ist es nur umständlich, aber dennoch möglich? Was ich vermute ist, dass Thief2.exe in erster Linie die Mission und alle dazugehörigen Komponenten lädt. Weder erstellt sie zur laufzeit einen Prüfsummenwert, noch merkt sie, wenn zur Laufzeit eine von ihr nicht geladenen Datei ausgetauscht wird. Also dürfte es dadurch schonmal keine Konflikte gegen. Fehlt nur noch die Anbindung! Ob durch dieses Script wirklich ein Austausch stattfinden könnte? Ich bekomme zur Zeit mit eigenen Kräften nichteinmal eine akzeptable Sky-Textur geladen. Was mich auch interessieren würde, was SinisterShadow dazu meint?

  • Ich hab's nie ausprobiert, daher kann ich nicht viel dazu sagen.


    Was intruder aber wohl meint ist, dass Thief ja z.B. nicht nach jedem Wechsel der Mission nachschauen muss, was in der missflag.str drin steht, wenn die Programmierer von Thief nie davon ausgegangen sind, dass sich die Datei während der Laufzeit ändern könnte (wie es im original Spiel ja auch nie vorkommt). In dem Falle könnte Thief die Datei einmal zu Programmstart laden und den Inhalt im Speicher behalten. Dann kannst Du auf der missflag.str rumschreiben und hin und her kopieren so viel wie Du willst, es würde sich am Ablauf der Missions-Reihenfolge bis zum nächsten Programmstart nichts ändern.


    Wenn allerdings allein schon Dateioperationen-Kommandos wie Kopieren und Löschen in den cmd-Dateien innerhalb von Thief funktionieren würden, könnte man damit sehr einfach eine Menge Schaden im System des Spielers anrichten (Systemdateien löschen/überschreiben/gegen trojanisierte Versionen austauschen etc.) Halt ein klassischer Fall eines trojanischen Pferdes. Es wäre die Büchse der Pandorra, die sich damit öffnen ließe.

  • Von mir aus kann die Mission "Büchse der Pandorra" heissen! In erster Linie würde sich doch nur die Folgemission ändern und mit dieser automatisch eine neue "missflag.str" geladen werden, oder verstehe ich etwas falsch? Es geht darum, ob "DromEd" und "Thief2.exe" ein Script akzeptieren, welches über den Kommandozeileninterpreter einen Austausch der Folgemission vornimmt. Teilen sich mehrere Missionen eine "missflag.str"?

  • Ich hab schon verstanden, was Du machen willst.


    Was ich meine ist folgendes: Sollte es funktionieren während des Spielens einer FM ein Systemkommando vom Betriebssystem zu starten, ließen sich damit nicht nur Thief Dateien austauschen, sondern mit der selben Technik auch sehr leicht trojanisierte FMs bauen, die die Systeme der Spieler stören oder zerstören können. Eine Thief FM hätte dann das Potenzial den Rechner des Spielers komplett lahm zu legen, eine Backdoors und Keylogger zu installieren, …


    Garrett wäre damit aus seinem Sandkasten (dem Spiel) ausgebrochen und könnte realen Schaden anrichten.


    Ob das aber letzten Endes wirklich ein Problem werden könnte, lässt sich nur durch ausprobieren herausfinden.

  • Ganz ehrlich, ich finde diese Diskussion etwas übertrieben. Jede FM stellt eine solche potentielle Bedrohung dar. Man weiß schließlich nie, was z.B. in Custom Scripts steckt ;)
    Es muss ja nur jemand etwas zur NVScript.osm oder tnhScript.osm hinzufügen, z.b. irgendwelche Funktionsaufrufe dazwischenschalten. Das Spiel funktioniert dann immer noch, tut dann aber weiß der Teufel was nebenbei.

  • Habs gerade mal ein paar Test mit manuelle Veränderungen in der missflags gemacht.


    Es scheint bedingt möglich, wobei ich die Bedingung noch nicht gestolpert bin und es auch nicht reproduzieren kann ich kann nur sagen ich hab es 3 mal hin bekommen, 3 mal hab ich einen Absturz bekommen und viele andere Male hat die Änderung an der missflag nichts bewirkt.


    Ich hatte jetzt gerade ein paar Theorien aufgestellt, die manchmal funktioniert haben und manchmal nicht(kommt mir zumindest so vor - vielleicht findet ja jemand anderes ja doch einen sicheren Weg), deswegen hab ich die hier erst mal wieder raus gelöscht und komme gleich zu einem Alternativ Vorschlag.



    Die missflag Strategie scheint irgendwie haarig zu sein, wenn es also möglich ist den Namen einer Datei zu verändern, dann ändere doch einfach den Namen der Folgemission, evtl kann man es ja hin bekommen den Namen der Folgemission zu ändern und es so auszuwählen.


    Das ist dann evtl etwas blöd mit Speicherständen, wenn man z.B. versucht beide Wege gleichzeitig zu spielen.
    Aber dass ist dann wohl eher ein fehlendes Feature.

  • Zitat

    Eine Thief FM hätte dann das Potenzial den Rechner des Spielers komplett lahm zu legen, eine Backdoors und Keylogger zu installieren, …


    Wer legt sich schon mit den Hütern an? ?(

    Script: CommandControl>Thief2.exe>Kommandozeileninterpreter


    Editor -> Design Note: on="run ReplaceMissflag.cmd"
    Editor -> Design Note: on="run ReplaceMiss21.cmd"


    DromEd packt's! "dump_cmds cmds.txt"




    Zitat

    Das ist dann evtl etwas blöd mit Speicherständen, wenn man z.B. versucht beide Wege gleichzeitig zu spielen.


    Das wäre wirklich etwas verwirrend. Es würden nämlich viele Wege möglich sein. Sogar soviele, dass es fast unmöglich wäre, zweimal den gleichen zu gehen. Wer dann einen Spielstand lädt, der weiter zurückliegt und anschliessend einen anderen Weg einschlägt...das wird kompliziert! Selbst wenn die einzelnen Missionen linear verlaufen, würde durch die jeweilige Verästelung ziemliches Chaos in den Spielständen entstehen. Es würde daher auch nichts nützen, jeweils den Rückweg bis zur letzten wichtigen Verzweigung bereits nach dem Betreten zu versperren. Die Idee eines optionalen Spielverlaufs ist es, finde ich, dennoch wert, weiter darüber nachzudenken. :)


    Ob Thief2.exe mitspielt, wird Telliamed dann wohl am besten wissen und auch wie es funktionieren könnte. Ich werde ihn damit jedoch nicht nerven. Entweder wir schaffen das hier oder es liegt auf Eis.


    Wie ist es möglich, eine Folgemission während der Laufzeit gegen eine andere auszutauschen?