Construction Set Skriptthread zum Construction Set

hoi ich suche en script der folgendes erledigen soll:

Nach Aktivierung eines bestimmten Objects sollen mehrere objekte (circa 4) nach zeitverzögerung enabled werden^^ is das machbar ?
Ich hoffe es hilft mir jemand

MFG Raist
 
Schau mal ob der geht:

scn Wasweisich

short timer

Begin OnActivate
set timer to 30 (der wert wie lang die verzögerung sein soll)
set timer to -GetSecondsPassed
If timer == 0
[ObjektId1].enable
[ObjektId2].enable
[ObjektId3].enable
usw.
endif
end
 
Wenn die Teile zu unterschiedlichen Zeiten auftauchen sollen, dann fügst du halt noch weitere Timerabfragen ein.

Code:
Begin OnActivate
set timer to 30 
set timer to -GetSecondsPassed 
If timer == 25
[ObjektId1].enable
if timer == 20
[ObjektId2].enable
if timer == 15
[ObjektId3].enable
usw.
endif
end
 
Wird so nicht funktionieren, da ein Activate-block nur ein mal bei Aktivierung ausgefährt wird. Außerdem ist der timer falsch.
Code:
scn ScriptName

short doonce
float timer

Begin OnActivate
If doonce == 0
set timer to 30
set doonce to 1
Endif
End

Begin GameMode

If doonce != 1
Return
Else

If timer >= 0
set timer to timer -GetSecondsPassed 
Endif

If timer <= 25
[REF1].enable
elseif timer <= 20
[REF2].enable
elseif timer <= 15
[REF3].enable
elseif timer <= 10
[REF4].enable
set doonce to -1
endif

Endif
end
Etwas komplizierter, dafür aber auch nicht so performancelastig und wichitg: funktionierend.
 
Code:
scn ScriptName

short doonce
float timer

Begin OnActivate
If doonce == 0
activate
set timer to 30
set doonce to 1
Endif
End

Begin GameMode

If doonce != 1
Return
Else

If timer >= 0
set timer to timer -GetSecondsPassed 
Endif

If timer <= 25
[REF1].enable
Endif

If timer <= 20
[REF2].enable
Endif

If timer <= 15
[REF3].enable
Endif

If timer <= 10
[REF4].enable
set doonce to -1
Endif

Endif
end
 
  • Like
Reaktionen: Raistlin
Wieso geht dieses Skript nicht?

Code:
scn adlksadlk

begin Gamemode
float Timer


if player.cast 000A97CB player
set timer to 30
if timer > 0
set timer to timer -GetSecondsPassed
else
setstage MEINEQuest 15
player.moveto IDMeinesObjektces
endif
endif

end
 
Du musst die EditorID angeben und nicht die FormID.
scn adlksadlk

begin Gamemode
float Timer


if player.cast 000A97CB player
set timer to 30
if timer > 0
set timer to timer -GetSecondsPassed
else
setstage MEINEQuest 15
player.moveto IDMeinesObjektces
endif
endif

end
 
Liegt daran, dass Cast nur dafür zuständig ist jemanden zum zaubern zu bewegen und nicht für eine Abfrage geeignet ist.
Was willst du eigentlich damit bewirken?
 
Ich möchte gerne, dass, wenn der Zauber zu Ende ist, der Spieler zu einem Punkt bewegt wird und eine Stage erhöht wird...
 
Dann würde ich das über ein ScriptEffectFinish versuchen. Das Script dann halt zu dem Zauber hinzufügen.
Code:
scn adlksadlk

float Timer

begin ScriptEffectStart
set timer to 30
end

begin ScriptEffectFinish
if timer > 0
set timer to timer -GetSecondsPassed
else
setstage MEINEQuest 15
player.moveto IDMeinesObjektces
endif
endif

end

Weiß nicht genau, ob das so klappt, aber kannst ja mal probieren, wenn hier nicht irgendjemand sofort ein Fehler oder was besseres einfällt.
 
  • Like
Reaktionen: elveon
Dann mach das doch im ScriptEffectFinish-Block des Zaubers.

Code:
scn SpellScript

Begin ScriptEffectFinish
 if ( GetIsReference Player )
  SetStage [QuestID] [Stage]
  MoveTo [ID der Zielreferenz]
 endif
End
Wenn der Zauber nur einmal den Effekt haben soll (und sonst einen anderen) kannst du ja auch noch eine Variable als Überprüfung dazuschreiben.
 
  • Like
Reaktionen: elveon
Hm - seltsam, dass ich auch mal auf der Seite der Fragenden stehe^^.

Ich habe hier ein Script, bei dem ich mir nicht sicher bin, ob es funktioniert. Könntet ihr mal bitte einen Blick drauf werfen?

Code:
scn NEPshowdowngatescript

Begin OnActivate
	if player.getitemcount NEPEctoplasm << 4
		MessageBox "Ihr besitzt nicht die benötigten Opfergaben, um durch dieses Portal zu schreiten."
	else
		player.moveto NEPshowdowntelemarker
		setstage NEPhq15 5
	endif
end
 
Hallo

Ich benötige ein Script

Skriptanfrage:
-Was soll durch das Script bewirkt werden?

Wenn man mit einen Mann auf einen Schiff spricht, soll ein Gesprächsthema wie in Morrowind mit Reisen kommen und wenn man die Stadt ausgewählt hat, soll man da hin teleportiert werden

danke im vorraus.