Construction Set Skriptthread zum Construction Set

Nur das :
Code:
 FNLadorasGate01.enable 
          enableplayercontrols
Soll passieren nach ablaufen des Timers.
 
ich bin mir nicht ganz sicher aber versuch es damit einmal:



scn FNLadorasGatetoFN

float timer
short triggered

begin GameMode

if triggered == 0
set timer to 10


set init to 1

disablePlayerControls
FNLadorasDoor02.enable
FNLasdoralazloBiroEntryDoorLOCK.disable
FNLadorasOpenGateAnimation01.playgroup forward 0


else


if timer > 0
set timer to timer - getSecondsPassed

FNLadorasGate01.enable
enableplayercontrols
else

endif
endif
end
 
Und wann denkst wird das Passieren:
Und warum stellt der den Timer wenn er beo 0 ist wieda auf 10?
Code:
scn FNLadorasGatetoFN

float timer
short triggered

begin GameMode

if triggered == 0
set timer to 10


set init to 1

[COLOR="Red"]disablePlayerControls
FNLadorasDoor02.enable
FNLasdoralazloBiroEntryDoorLOCK.disable
FNLadorasOpenGateAnimation01.playgroup forward 0
[/COLOR]

else


if timer > 0
[COLOR="Red"]set timer to timer - getSecondsPassed[/COLOR]

FNLadorasGate01.enable
enableplayercontrols
else

endif
endif
end
 
Zuletzt bearbeitet:
So fehlt allerdings der Teil, der das ganze auslöst;)
So würde das Script starten, wenn man die Zelle betritt und DisablePlayerControls würde nicht an der gewünschten Stelle passieren.
Der Teil mit begin OnTrigger muss schon sein.

Vielleicht klappt es, wenn du den Teil verkleinerst bzw Teile in den GameMode-Block schiebst.

Code:
scn FNLadorasGatetoFN


short triggered
float timer
short timerset

Begin onTrigger player

     if triggered == 0
        disablePlayerControls
        set triggered to 1
     endif

End

begin GameMode

     if (triggered == 0)
        return
     endif

     if (triggered == 1) && (timerset == 0)
          FNLadorasDoor02.enable
          FNLasdoralazloBiroEntryDoorLOCK.disable
          FNLadorasOpenGateAnimation01.playgroup forward 0
          set timer to 10
          set timerset to 1
     endif

     if (timer >= 0) && (triggered == 1) && (timerset == 1)	
        set timer to timer - getSecondsPassed
     endif

     if (timer <= 0) && (triggered == 1) && (timerset == 1)
        FNLadorasGate01.enable 
        enableplayercontrols
        set timerset to 2
     endif

end

EDIT:
Habs nochmal etwas geändert. Vielleicht gehts so.
 
Zuletzt bearbeitet:
Nun Passiert aber gar nichts :?

Sonst hab ich auch imma so gemacht:
Code:
scn FNLadorasGatetoFN


short triggered
float timer

Begin onTrigger player

	if triggered == 0
          disablePlayerControls
		set timer to 10
          FNLadorasDoor02.enable
          FNLasdoralazloBiroEntryDoorLOCK.disable
          FNLadorasOpenGateAnimation01.playgroup forward 0
          set triggered to 1

	endif

End

begin GameMode

	if triggered == 0
		return

	endif

	if timer >= 0 && triggered == 1
		set timer to timer - getSecondsPassed

	endif

     if timer <= 0
          FNLadorasGate01.enable 
          enableplayercontrols

	endif

end
Udn hat auch bis jetz imma Funktioniert.
Nur daswenn dert timer bei 0 ist funktioiert nicht.
 
Zuletzt bearbeitet:
Hab es sebst behoben:
Code:
scn FNLadorasGatetoFN

short triggered
float timer

Begin onTrigger player

	if triggered == 0

          FNLadorasDoor02.enable
          FNLasdoralazloBiroEntryDoorLOCK.disable
          FNLadorasOpenGateAnimation01.playgroup forward 0	
          set triggered to 1
          set timer to 10


	endif

endif

End

begin GameMode

	if triggered == 0
		return

	endif

	if timer >= 0 && triggered == 1
		set timer to timer - getSecondsPassed

	endif

	if timer <= 0
          FNLadorasGate01.enable 
          enableplayercontrols

	endif

end
Funktioniert einbandfrei :)

Doch noch eine Frage:

Wie kann ich hier einbauene das wenn DREI Actors tot sind entwas passiert.
Kann ich das mit einem Script regeln?

Code:
scn FNCastelBarierre

short triggered

Begin Ontrigger Player

     if Triggered == 0

          FNCastelBarierre01.enable
          FNCastelBarierre02.enable
          set triggeret to 1

     endif

End

Mfg yves
 
Zuletzt bearbeitet:
Dafür bastelst du dir eine Abfrage mit GetDead.

Dafür weist du den Actors jeweils eine Ref-ID zu und schreibst das dann so:

if ([Ref-ID 1].GetDead == 1) && ([Ref-ID 2].GetDead == 1) && ([Ref-ID 3].GetDead == 1)
 
Ungefähr so?:

Code:
scn FNCastelBarierre

short triggered

Begin Ontrigger Player

     if Triggered == 0

          FNCastelBarierre01.enable
          FNCastelBarierre02.enable
          set triggeret to 1

     endif

End

Begin GameMode

     if (FNCastelBear01.GetDead == 1) && (FNCastelBear02.GetDead == 1) && (FNCastelBear03.GetDead == 1) 
   
           FNCastelBarierre01.disable
           FNCastelBarierre02.disable

     endif

End
 
Zuletzt bearbeitet:
Hmm, ne, das klappt nicht.
begin OnDead funktioniert nur, wenn der Actor, auf dem das Script liegt, stirbt.

Nein, du musst einfach nur die Abfrage in den OnTrigger-Block einbauen oder aus dem begin OnDead ein begin GameMode machen.
 
  • Like
Reaktionen: Yves
da ist noch ein Fehler drin. Du schreibst i zeile 9:
set triggeret to 1
es sollte aber triggered heissen
 
Hab auch nochmal ne Frage:
Es gibt ja einen OBSE-Befehl der einen NPC auf "Essential" setzt und da wollte ich mal fragen, ob es auch einen Befehl gibt, der einen NPC auf "Respawn" setzt.
 
das wusste ich auch noch nicht. Dann kann ich ja demnächst ganz Anvil oder sonstwas abschlachten ohne respawnende Wachen...
 
hat den mittlerweile jemand eine lösung für mein problem gefunden auf der letzten oder vorletzten seite hatte ich es erklärt :?
 
Hi Leute,ich bräuchte wider mal 2 Scripte! :D

Der ein oder der andere von euch kennt ja sicherlich die Hist-Saft Produktion im Keller der Schwarzwald Rotte.Dort steht unter anderem auch eine Pumpe,eine solche habe ich auch bei mir unter gebracht!;) Nur leider musste ich feststellen das sie einen ziehmlichen Lärm macht.:lol: Also dachte ich mir das man diese Pumpe villeicht per Script über einen Schalter ein und aus schalten können sollte!:D


Dann habe ich mich noch an mein erstes Schwimmbad gewagt, ist auch ganz nett geworden.8) Nur den Wassereinlass (mehrere Wasserfälle) würde ich auch gerne per Schalter ein und aus schalten können!:D

schon mal danke !;)
 
Dann habe ich mich noch an mein erstes Schwimmbad gewagt, ist auch ganz nett geworden.8) Nur den Wassereinlass (mehrere Wasserfälle) würde ich auch gerne per Schalter ein und aus schalten können!:D

schon mal danke !;)

Den Wasserfällen muss zuerst eine Reference Editor ID zugewiesen werden,
z.B. Wasserfall A, Wasserfall B, je nachdem wie viele es sind. Haken bei Persistent Reference nicht vergessen. Und wenn die Wasserfälle standardmäßig ausgeschaltet sein sollen, Initially Disabled verwenden.

Die Scripte können dann so aussehen und müssen den Schaltern zugewiesen werden:

Aktivierungsschalter
Code:
scn WasserA

begin onactivate

WasserfallA.enable
WasserfallB.enable
WasserfallC.enable
WasserfallD.enable
WasserfallE.enable
WasserfallF.enable

end
Deaktivierungsschalter
Code:
scn WasserB

begin onactivate

WasserfallA.disable
WasserfallB.disable
WasserfallC.disable
WasserfallD.disable
WasserfallE.disable
WasserfallF.disable

end