Waffe mit dauerfeuer in Thief 1 / 2 per script möglich?

  • Schau dir mal die NVScripts an. Da gibt es z. B. NVEmitWhileSelected für Emitter


  • Dein Stab, wie auch Garrett müssen Emitter sein, die an+und zuschaltbar sind (TrapTweqEmit, ReloadTweqEmit). Garrett übernimmt die Emitter-Eigenschaften des Stabs und feuert/emittiert ständig, solange der Stab ausgewählt ist. Der Stab braucht FrobInfo: Inv Action-->FocusScript.
    Ein bißchen viel Scriptkram auf Garrett, deshalb würde ich eine Metaproperty schreiben.
    Die Design Note ist okay (aber wieso 4? Was wird denn sonst noch emittiert? Ansonsten wäre 1 besser)


    Der Emitter könnte so aussehen


    Angehängt eine kleine Demo. Der Emitter ist die Flasche vor dir. Wenn man sie aufnimmt, emittiert Garrett ständig Pfeile. Legt man sie ab, hört es auf.

  • Wegen dem anderen Problem mit der Unsichbarkeit in T1, hier eine Demo
    Zunächst mußt du unter Editor-->Gamesys Variables-->Misc Dark Settings ein Häkchen machen
    Dann schau dir die Metaproperty "M-Speedyplayer" genau an. Mit S&R wird die Metaproperty "GetsKnockedOutEasily" (Diener haben sowas) übertragen.
    Der Speed Potion ist auch dein Unsichbarkeitstrank.
    Womöglich muß man das noch etwas verfeinern.
    Weißt du, dass ich inwischen Extra-Installationen Mit Namen T2/TG-Gecko auf einem Stick habe :D

  • Danke dir. Aber es gibt bereits das nächste Problem :D Und zwar ist es der Wert "Renderer: Invisible -1". Denn wenn der Trank seine wirkung verliert, wird Garrett dennoch nicht gerendert. Das heißt, der Wert Renderer: Invisible -1 muss anschließend wieder auf "0" gesetzt werden. Das klappt aber bei mir in keiner Form.


    Hier ein interessanter Beitrag zum Thema: http://www.ttlg.com/forums/showthread.php?t=138358&p=2112340&viewfull=1#post2112340.


    Die einfachste Lösung ist übrigends das gen.osm script von T2 umbenennen (z.B. gen2.osm) und in T1 laden. Dann muss man nur noch die zwei notwendigen "Metaproperty" erstellen (M-RendInvisible + M-Invisible) und es funktioniert alles ohne Aufwand wie in T2. Ich weiß nur nicht ob es weitere Auswirkungen hat wenn man die gen.osm von T2 in T1 läd, da ja T1 seine eigene gen.osm nutzt. Man sollte diese also auf keinen Fall überschreiben!

  • Die gen.osm für T2 funktioniert in TG nur, weil NewDark verwendet wird. Und das ist (eigentlich) die T2 Engine. In convict.osm (für T1/TG) sind die Befehlsscripte aus gen.osm (aber nicht T2) schon enthalten. Deshalb ist die gen.osm für T1/TG auch ein fetter Batzen von 1MB.
    Wie sich dein Vorgehen auswirkt, weiß ich auch nicht.
    Aber du kannst ja mal versuchsweise meinen Ansatz ganz ausklammern und dann mit den T2-gen.osm Scripten experimentieren



    Da "Renderer: Invisible -1" in diesem Fall eine Metaproperty ist, kannst du sie auch wieder eine Metaproperty "Renderer: Invisible 0", hinzufügen z. B. über eine NVRelaytrap und einen Timer.


    Mir fällt gerade ein, dass es diese Scripts (Invisible, InvisiPotion) auch in den Public Scripts für T1 gibt

    Also versuch das, das sollte einfacher sein.

  • Was funktioniert nicht? Du mußt die Metaproperty M-Invisible mit dem Script Invisible erstmal erstellen (du kannst es dir in einer beliebigen T2-mis abschauen).
    Ich habe es eben getestet. Es funktioniert mit dem Public Script in TG.

  • Das habe ich doch vorher schon selber geschrieben.

    Dann muss man nur noch die zwei notwendigen "Metaproperty" erstellen (M-RendInvisible + M-Invisible) und es funktioniert alles ohne Aufwand wie in T2.


    Ich habe alles wie in T2 erstellt. Auch das Trank-Objekt selbst. Und mit der T2 gen.osm funktioniert der Trank. Lade ich aber das Public Script von T1 (script-t1.osm) anstelle der T2 gen.osm....funktioniert es leider nicht...


    Frage mich wieso es bei dir funktioniert ?(

  • Jetzt verstehe ich. Das Script funktioniert, aber anders! Der Wert "Renderer: Invisible -1", sowie die Werte 1000 unter "Visibility Control" werden mit dem script-t1 nicht aktiviert. Das ist aber schlecht, da ich dann wieder selbst etwas basteln müsste. Mit der T2 gen.osm geht das alles automatisch.


    Ich dachte, es funktioniert nicht, da der Lichtstein nicht dunkel wurde...


    Die script-t1.osm funktioniert übrigends auch ohne die Dateien "dh2.osl" und "version.osm". Zumindest das Invisible script geht auch ohne.

  • Du kannst ja eine Metaproperty mit "Renderer: Invisible Wert -1" zum Trank hinzufügen, wenn du willst (wie z. B. auf der Metaproperty M-SpeedyPlayer in der Demo).
    Du kannst ja mal in dieser Demo dem Speed Potion vor dir das Script InvisiPotion hinzufügen. Der Lichtstein wird wieder hell, wenn der Effekt vorbei ist.

  • Das reicht aber nicht. Denn der Wert "Renderer: Invisible -1" wird, selbst wenn ich dem Trank das Script "InvisiPotion" verpasse, nicht wieder automatisch auf 0 gesetzt. Du kannst es selbst versuchen. Und genau das war ja mein Problem. Ich habe es nicht hinbekommen, dass der Spieler nach Ablauf der Zeit seine Waffen wieder sehen kann. Das macht nur das T2 script automatisch. Naja, der Rest funktioniert jedenfalls. Vielleicht verzichte ich dann einfach auf den -1 Wert.

  • Denn der Wert "Renderer: Invisible -1" wird, selbst wenn ich dem Trank das Script "InvisiPotion" verpasse, nicht wieder automatisch auf 0 gesetzt.


    Wie kommmst du darauf? Ich habs mit set game_mode_backup 0 getestet und die Metaproperty ist verschwunden, wenn der Effekt vorbei ist.

  • Du hast recht. Die Script-Beschreibung ist nicht vollständig. Einfache Lösung: Setze in M-SpeedyPlayer "Renderer: Invisible 0"
    Dann wird Garrett unsichtbar, der Playerarm und der Blackjack sind noch sichtbar. Ist zwar etwas anders, als in T2, aber was solls. Dann weiß man wenigstens, wohin man schlägt :D