Construction Set Skriptthread zum Construction Set

Theoretisch klappt das doch über die lvl; Nämlich mit Abfragen.
Ich würde das so machen: 4 Schwerter erstellen, mit jeweils stärkerer Verzauberung. Danach 4 einfache Anfragen:

Code:
if player.GetActorValue <Leichte/schwere Rüstung> > 0 && player.GetActorValue <Leichte/schwere Rüstung> <= 24 
  player.addItem <Schwert1>
endif

if player.GetActorValue <Leichte/schwere Rüstung> >= 25 && player.GetActorValue <Leichte/schwere Rüstung> <=49
    if player.GetItemCount <Schwert1> >= 1
      player.removeItem <Schwert1>
    endif
  player.addItem <Schwert2>
endif

if player.GetActorValue <Leichte/schwere Rüstung> >= 50 && player.GetActorValue <Leichte/schwere Rüstung> <= 74
    if player.GetItemCount <Schwert2> >= 1
      player.removeItem <Schwert2>
    endif
  player.addItem <Schwert3>
endif

if player.GetActorValue <Leichte/schwere Rüstung> >=75 && player.GetActorValue <Leichte/schwere Rüstung> <=100
    if player.GetItemCount <Schwert3> >= 1
      player.removeItem <Schwert3>
    endif
  player.addItem <Schwert4>
endif

Theoretisch könnteste das mit einem Begin OnEquip auf jedes der Schwerter legen oder oder per Begin GameMode immer laufen lassen.

So würde ich es zumindest machen ^.^
 
Hat einer von euch eine Ahnung, warum das Script hier nicht geht? Es funktioniert nur bis zur ersten Message, danach geht es nicht mehr weiter. Woran könnte das liegen? Ich habe auch schonmal versucht, alles bis auf das GetSecondsPassed in den OnTrigger-Block zu verfrachten -> Geht trotzdem nicht. Auch wenn ich die == durch > austausche geht es nicht. Ich könnte verzweifeln. Solche TimerScripts gehen bei mir nie...

Code:
scn HouseTriggerQuest03

float Timer

Begin OnTriggerActor Player
           DisablePlayerControls
           Message "Blub..."
End

Begin GameMode
           if timer > 0
           set timer to timer - GetSecondsPassed
           if Timer == 3
           Crate.Disable
           Message "BlubBlub..."
           if Timer == 10
           IllusionCrate.Enable
           if Timer == 15
           EnablePlayerControls
           endif
           endif
           endif           
           endif
End
 
Zuletzt bearbeitet:
Code:
scn HouseTriggerQuest03

float Timer
short step
sort start

Begin OnTriggerActor Player
           DisablePlayerControls
           Message "Blub..."
           Set start to 1
End

Begin GameMode
If start == 1
           set timer to timer [COLOR="Red"]+[/COLOR] GetSecondsPassed

           if Timer >= 3 && Step == 0            ;Der Timer wird [U]nie[/U] genau Drei sein
           IllusionCrate.Disable
           Set timer to 3
           Set Step to 1
           Message "BlubBlub..."
           if Timer >= 10 && step == 1
           Crate.Enable
           Set timer to 10
           Set step to 2
           if Timer >= 15 && step == 2
           EnablePlayerControls
           Set step to 3
           Set start to 2
           endif
           endif
           endif           
           endif
endif
End

Versuchs mal so blacky
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Blacklands
Geht leider immer noch nicht. Das Script sieht jetzt genauso aus wie das, das AjaeXx gepostet hat (nur ohne die Schreibfehler) und ich habe die Kistennamen vertauscht. Aber trotzdem geht es nicht vollständig. Es geht bis zu der Stelle, wo die erste Kiste verschwindet. Danach geht es nicht mehr weiter.
 
Code:
scn HouseTriggerQuest03

float Timer
short step
sort start

Begin OnTriggerActor Player
           DisablePlayerControls
           Message "Blub..."
           Set start to 1
End

Begin GameMode
If start == 1
           set timer to timer + GetSecondsPassed

           if Timer >= 3 && Step == 0            ;Der Timer wird nie genau Drei sein
           IllusionCrate.Disable
           Set timer to 3
           Set Step to 1
           Message "BlubBlub..."
           if Timer >= 10 && step == 1
           Crate.Enable
           Set timer to 10
           Set step to 2
           if Timer >= 15 && step == 2
           EnablePlayerControls
           Set step to 3
           Set start to 2
           endif
           endif
           endif           
           endif
endif
End

Sorry, hab mich oben zweimal verschrieben ....
 
Code:
scn HouseTriggerQuest03

float Timer
short step
sort start

Begin OnTriggerActor Player
           DisablePlayerControls
           Message "Blub..."
           Set start to 1
End

Begin GameMode
If start == 1
           set timer to timer + GetSecondsPassed

           if Timer >= 3 && Step == 0            ;Der Timer wird nie genau Drei sein
           IllusionCrate.Disable
           Set timer to 3
           Set Step to 1
           Message "BlubBlub..."
           endif
           if Timer >= 10 && step == 1
           Crate.Enable
           Set timer to 10
           Set step to 2
           endif
           if Timer >= 15 && step == 2
           EnablePlayerControls
           Set step to 3
           Set start to 2           
           endif
endif
End
Das sollte funktionieren. Das Problem war nur, dass das erste if nur bei Step = 0 wahr sein würde und alle anderen ifs darin verschachtelt waren, step jedoch nach verschwinden der Illusioncrate auf 1 gesetzt wurde
 
  • Like
Reaktionen: Blacklands
Code:
scn HouseTriggerQuest03

float Timer
short step
sort start

Begin OnTriggerActor Player
           DisablePlayerControls
           Message "Blub..."
           Set start to 1
End

Begin GameMode
If start == 1
           set timer to timer + GetSecondsPassed

           if Timer >= 3 && Step == 0            ;Der Timer wird nie genau Drei sein
           IllusionCrate.Disable
           Set timer to 3
           Set Step to 1
           Message "BlubBlub..."
           endif
           if Timer >= 10 && step == 1
           Crate.Enable
           Set timer to 10
           Set step to 2
           endif
           if Timer >= 15 && step == 2
           EnablePlayerControls
           Set step to 3
           Set start to 2           
           endif
endif
End
Das sollte funktionieren. Das Problem war nur, dass das erste if nur bei Step = 0 wahr sein würde und alle anderen ifs darin verschachtelt waren, step jedoch nach verschwinden der Illusioncrate auf 1 gesetzt wurde

Ach mist, du hast ja recht. Sorry Black, ich hab das einfach überlesen ;)
 
  • Like
Reaktionen: Blacklands
Code:
scn HouseTriggerQuest03

float Timer
short step
sort start

Begin OnTriggerActor Player
           DisablePlayerControls
           Message "Blub..."
           Set start to 1
End

Begin GameMode
If start == 1
           set timer to timer + GetSecondsPassed

           if Timer >= 3 && Step == 0            ;Der Timer wird nie genau Drei sein
           IllusionCrate.Disable
           Set timer to 3
           Set Step to 1
           Message "BlubBlub..."
           if Timer >= 10 && step == 1
           Crate.Enable
           Set timer to 10
           Set step to 2
           if Timer >= 15 && step == 2
           EnablePlayerControls
           Set step to 3
           Set start to 2
           endif
           endif
           endif           
           endif
endif
End

Sorry, hab mich oben zweimal verschrieben ....

Leider geht das Script immer noch nicht. Es bleibt noch immer an genau der selben Stelle hängen. :cry:

das kann so auch nicht (richtig) funktionieren, ich mach mal den relevanten teil etwas übersichtlicher:

Code:
[COLOR="Blue"]if Timer >= 3 && Step == 0
  IllusionCrate.Disable
  Set timer to 3
  Set Step to 1
  Message "BlubBlub..."[/COLOR]
[COLOR="Green"]  if Timer >= 10 && step == 1
    Crate.Enable
    Set timer to 10
    Set step to 2[/COLOR]
[COLOR="DarkRed"]    if Timer >= 15 && step == 2
      EnablePlayerControls
      Set step to 3
      Set start to 2
    endif[/COLOR]
[COLOR="#008000"]  endif[/COLOR]
[COLOR="#0000ff"]endif[/COLOR]
das problem ist, der grüne block befindet sich innerhalb der bedingung des blauen blocks, der rote innerhalb des grünen. das heißt, NUR wenn der timer größer-gleich 3 ist, UND step gleich 0 ist, wird die grüne bedingung überhaupt überprüft. beim timer ist das noch kein problem, wenn der größer-gleich 10 ist, ist er logischerweise auch größer-gleich 3. allerdings kann step nicht sowohl 0 sein, um die erste bedingung zu erfüllen und gleichzeitig 1 sein, um durch das 2. if zu kommen (das 3. if wird dann logischerweise auch nie ausgeführt). jetzt gibts 2 möglichkeiten, die eigentlich beide funktionieren müssten.
1. möglichkeit, die verschachtelung rausnehmen, und mit den steps arbeiten:
Code:
[COLOR="Blue"]if Timer >= 3 && Step == 0
  IllusionCrate.Disable
  Set timer to 3
  Set Step to 1
  Message "BlubBlub..."
endif[/COLOR]
[COLOR="Green"]if Timer >= 10 && step == 1
  Crate.Enable
  Set timer to 10
  Set step to 2
endif[/COLOR]
[COLOR="DarkRed"]if Timer >= 15 && step == 2
  EnablePlayerControls
  Set step to 3
  Set start to 2
endif[/COLOR]

2. möglichkeit, die verschachtelung lassen, aber die steps wegnehmen:
Code:
[COLOR="Blue"]if Timer >= 3
  IllusionCrate.Disable
  Message "BlubBlub..."[/COLOR]
[COLOR="Green"]  if Timer >= 10
    Crate.Enable[/COLOR]
[COLOR="DarkRed"]    if Timer >= 15
      EnablePlayerControls
      Set start to 2
    endif[/COLOR]
[COLOR="#008000"]  endif[/COLOR]
[COLOR="#0000ff"]endif[/COLOR]
hmm, wobei mir da grad auffällt, daß das BlubBlub immer wieder ausgegeben wird, solange bis die 15 sec komplett abgelaufen sind...
 
  • Like
Reaktionen: Blacklands
Moinsen..

joar ich mal wieder^^

Ich Bräuchte nun ein Sript der einen SEHR dichten, schwarzen Nebel in eine Exterior Cell legt..

ausserdem suche ich die Landschaft einer Exteiorcell zu Verstecken.. und diese per script wieder zu "aktivieren"..

Obse ist auch Möglich..
 
Dafür würdest du erstmal einen sehr dichten schwarzen Nebel brauchen. Diesen gibt es so nicht in Oblivion.

Zur der anderen Frage: Was versuchst du? Ich versteh nicht ganz, was du möchstest.
 
@AjaeXx, Jens Mader und Naboradd
OMG, das war aber eine komplzierte Lösung. Auf das mit der Verschachtelung wäre ich nie gekommen. Aber dank euch funktioniert es jetzt endlich!!! :hah:
Ihr kriegt euer Danke sobald ich den Beitrag hier fertig geschrieben habe. ;)

@k.haosprinz
Also das einizige was mir zu dem Nebel einfällt ist das du SEHR oft das Objekt Static/Fire/FlameNode09 so plazierst, dass du Feuer und dem Boden ist und der Player nur den Rauch sieht. Das ist aber sehr aufwändig und ich weiß nicht wie sich das auf die Performance auswirkt. Kannst du ja mal ausprobieren...
Was das mit dem Boden angeht...frag mich nicht. :(
 
Also das mit dem Rauch würde ich lassen, dass ist Performancelastig.
Ich würde die Textur des Nebels mal mit Gimp oder so einfärben oder die Helligkeit und den Kontrast verändern. Das dann einer Nebel-Mesh per Nif-Scope zuordnen und im Ordner Meshes speichern. (Die Textur vorher natürlich im Ordner Textures speichern) Dann noch im CS einfügen.

Das mit dem Land geht glaube ich nicht direkt. Zumindest, wenn du eine Landschaft haben willst und darüber noch eine andere. Das geht nur, wenn das obere Worlditems sind. Die kannst du dann per Script disablen.
Ich kenne allerdings die OBSE-Befehle nicht wirklich, kann sein, dass da was bei ist.
 
Ich bezweifel das das Möglich ist, es gibt, soweit ich weiß, keine Möglichkeit das Land ingame irgendwie zu beeinflussen.


Sag doch mal, was du genau machen willst, vielleicht fällt uns was anderes ein.