Construction Set Skriptthread zum Construction Set

Nein, das mit der Variable habe ich nicht hingekriegt. Habe es auschließlich über ein Follow-Package mit dem Player als Target und über Stages gemacht, damit er mir nur zwischen Stage sowieso und Stage sowieso folgt. Ich weiß auch, dass es funktioniert, allerdings muss ich mich allein zum Ziel begeben, da wartet er auch schon auf mich. Das ließe sich beheben, wenn er mir gleich über die Strickleiter folgen würde, dann könnte ich mit ihm zusammen den Weg zum Ziel antreten.
 
Hab's grad ausprobiert. Mit Escort-Package genau das gleiche. Er läuft zwar vor, winkt mir, dass ich ihm folgen soll, bleibt aber ab einem gewissen Punkt stehen und läuft nicht weiter.
Hab mal ein wenig die Distance erhöht, vielleicht war sie zu gering eingestellt. Ich berichte dann, ob es was gebracht hat.
 
So soweit alles geklappt. Augenfarbe ändert sich und kann ich auch per Zauber wiederherstellen. Aber wie mache ich das jetzt das die Zauber ausgeführt werden wenn ich mich mit einer "Rüstung" ausrüste?
 
Also wenn du das mit einer Rüstung machen willst, wozu brauchst du denn dann überhaupt einen Zauber? Da kannst du doch einfach den Teil aus dem ersten Zauber als Begin onequip und den vom zweiten als Begin Onunequip machen...
 
Weil der Vampirismus effect sonst nicht entfernt wird. Zum ende des Skript muss er wieder enfernt werden. Und dies geht nicht mit den anlegen einer Rüstung.
 
Warum soll das nicht gehen? Der Vampirismus-Heileffekt besteht auch nur darin, dass die Eigenschaften entfernt werden und die Variable mit dem "isVampire" auf 0 gesetzt wird...
 
Weiß jemand wieso folgendes Script bei meinen umfangreichen Tests nur ein einziges mal funktioniert hat?
Code:
ScriptName EZZauberScript

ref actor

Begin ScriptEffectStart

set actor to getfirstref 69 1 1
while actor != 0
    if actor.getdead == 1 && actor != player
        actor.removeallitems player, 1
    endif
    set actor to getnextref 69 1 1
loop

End
Dieses eine mal war das erste nach start von Oblivion und bei einem, im Schlaf gestorben NPC. Nur wo ist der Grund?

edit:

Meinst Du, das Item dem Inventar des Spielers hinzuzufügen? Wenn ja, musst Du "activate" benutzen.
->
Code:
set item to getfirstref 70 1 1
while item != 0
    player.activate item
    set item to getnextref 70 1 1
loop
funktioniert leider nicht:?
auch nicht, wenn man eine konkrete Itemart angibt...
 
Zuletzt bearbeitet:
Hi.

Kann sein, dass ich das schon mal gefragt habe, aber
Mit welchen befehlen könnte ich den Bildschirm wackeln lassen, und währenddessen eine mp3 abspielen
und verhindern dass der Player sich bewegt, also seine komplette Steuerund disablen???
also auch kein inventar o.Ä.



und wie kann ich z.B. von der Decke fallenden Staub simulieren?


und mit welchem Befehl kann ich dem Player das Inventar leeren, und dessen Inhalt in z.B. eine Kiste legen?

Danke & LG

Creamy
 
@Schmelz:

Vorschläge:
1. Die Abfrage "if actor != 0" in "if actor" umwandeln. Sollte zwar das gleiche bewirken, aber vielleicht gibt es ja Probleme beim Vergleich von Referenzen mit Zahlen.
2. Bei "getNextRef" die zusätzlichen Parameter weglassen.

Beim zweiten Skript gibt es mehrere Fehler. Zum einen bewirkt "player.activate item", dass das Item den Spieler aktiviert und nicht umgekehrt. Zum anderen besitzen Inventar-Objekte keine richtigen Referenzen, bzw. gibt es da einige Probleme. Es müssen also spezielle Funktionen für Inventar-Objekte benutzt werden. Du könntest in dem Beispiel etwa "item.removeMeIR player" benutzen. Vorrausgesetzt, dass "getFirstRef" wirklich für das Inventar geeignet ist. Ansonsten müsstest du "forEach" benutzen.
 
  • Like
Reaktionen: Schmelz
beim zweiten geht es mir gar nicht um Inventar-Objekte (mein Fehler), sondern um alle Objekte die in der Welt rumliegen. Das muss ich dann einfach für alle Zahlen einzeln machen.

Danke für die Tips, werds mal testen.

edit: Jetzt funktioniert beides!!!
dafür hast du'nen Readme-Eintrag verdient!
Noch eine Frage: Wird es beim zweiten (beim ersten bin ich mir sicher) als gestolen gewertet, wenn es das normal auch währe?
 
Zuletzt bearbeitet:
Ich lasse jetzt statt dem Scannen, weil es komplizierter wäre, weil man nicht einfach Statics scannen kann, einfach die Distanz zwischen 2 Markern bestimmen, die zum Spieler teleportiert werden.
Wenn die Distanz sehr klein ist (im Skript "< 1/7" Meter), also theoretisch gesehen, wenn der Spieler gegen irgendetwas läuft, wird dem Spieler die Ausdauer entzogen.
Die 2 Marker müssen natürlich vorher in eine Dummy-Cell und die Ref ins Skript.

Code:
SCN Scriptname

Ref Marker1
Ref Marker2

Short Distance
Int i

Float fQuestDelayTime

Begin GameMode

if(i == 0)
    let fquestdelaytime := 0.01
    let marker1 := <Marker1Ref>
    let marker2 := <Marker2ref>
    let i += 1
endif

if(player.isrunning)
    if(player.isanimgroupplaying 7) || (player.isanimgroupplaying 8) || (player.isanimgroupplaying 9) || (player.isanimgroupplaying 10)
        if(i == 1)
           Marker1.moveTo player
           let i += 1
          return
        elseif(i == 2) 
           marker2.moveTo player
           let i -= 1
        endif
        let distance := marker1.getdistance marker2
        if(distance < 10)
            player.modav2 fatigue -5000
            let distance := 0
           return
        endif
    endif
endif

End
 
  • Like
Reaktionen: Meister von Cyrodiil
noch was, wie kann cih einen Timer machen, also dass nach 5 sek XX passiert? (beim Triggern)?

Und wie kann ich den Bildschirm abdunkeln?
oder verschwimmen lassen?
 
Zuletzt bearbeitet: