Construction Set Skriptthread zum Construction Set

Hallo,

nur mal so ins Blaue gefragt:

Wäre es eigentlich machbar, dass während man im Inventar ist oder während man etwas liest oder schreibt (hab so eine Mod, mit der man in Bücher schreiben kann), das Spiel nicht pausiert, sondern weiterläuft?

Wäre das sehr aufwendig umzusetzen?
 
Ob das so geht, weiß ich nicht, aber mir fiele nur ein, dass man im Menu Mode die Zeit stoppt und die im GameMode wieder auf die momentane Zeit draufzählt.

Das wär mir aber persönlich zu komplex.

@Kahmul:
Thx. :)
 
Das ist mit normalem Scripting nicht zu schaffen, und ob es per OBSE Plugin möglich ist, kann ich nicht sagen, da ich des Programmierens nicht mächtig bin.
 
Schade. So würden viele Hausmods und die Tavernen erst richtig Spaß machen, wenn man parallel zum fröhlichen Treiben ein paar Zeilen in sein Buch kritzeln könnte ;)
 
Du könntest es mal so probieren:
Code:
scn name

short doonce
float fQuestDelayTime

short inMenu
float timer


Begin MenuMode

if MenuMode 3
 return
endif

set timer to (timer + getSecondsPassed)
if inMenu
 return
endif
set inMenu to 1

end


Begin GameMode

if inMenu
 set GameHour to (GameHour + timer*TimeScale/3600)
 if GameHour >= 24   ;ist vielleicht nicht nötig
  set GameHour to (GameHour - 24)
 endif
 set inMenu to 0
 set timer to 0
endif

if doonce
 return
endif
set doonce to 1
set fQuestDelayTime to 0.1

end
 
Script

Hi ich wollte mal fragen ob man wenn man mit einem Character von einer bestimmten rasse ein bestimmtes LVL erreicht einen Zauber lernen könnte?
 
Hey,

vielen Dank!! Das werde ich sofort ausprobieren, wenn ich einkaufen war. Eine kleine Frage noch: Wo muss das ungefähr rein? Hab mir gestern erst das CS geladen und bin damit noch nicht besonders vertraut ;)

Ich hab mir vorhin eine Mod geladen (aber nicht ausprobiert), wo man beim Warten zuschauen kann, was passiert. Dann muss das ja auch möglich sein mit dem Menü oder einem Buch.
 
Dann müsstest du das per Questscript so schreiben, Devilheart.

Code:
scn ...

short DoOnce

Begin GameMode

If (player.GetRace == RassenID)
 If (player.GetLevel >= Stufe
  If (DoOnce == 0)
   player.AddSpell ZauberID
   Set DoOnce to 1
  Else
   Return
  Endif
 Endif
Endif
End

Anmerkung: GetRace ist ein OBSE-Befehl
 
  • Like
Reaktionen: Devilheart
Wenn du diesen Beitrag meinst, dann ja. Dafür musst du eine neue Quest erstellen und ihr dieses Skript zuweisen.


@DarkRuler: "StopQuest" bewirkt, dass die Quest ab dem nächsten Frame nicht mehr ausgeführt wird. Das heißt, das Quest-Skript läuft nicht mehr und auch Topics werden nicht mehr angezeigt. Der Befehl wird also verwendet, um die Performance etwas zu schonen.
 
Hat jemand einen Plan, warum RaShirar nicht zu mir kommen will, obwohl ich im Tamriel-WorldSpace bin:huh:

Code:
scn aaDRCyra00HQ01TeleportSCRIPT

;Dieser Script teleportiert einen NSC zum Spieler, sobald der sich im Tamriel-Worldspace befindet.
;Wenn er Cyrodiilmeister ist, kommt Adiemus
;Wenn er nicht Cyrodiilmeister ist, kommt Ra'Shirar
;Im Anschluss an das Gespräch verschwindet der Dialogpartner mit einem Zauber

Short Act
Short DoOnce
Long Day01	;Ohne HQ beendet
Long Day02	;Mit HQ beendet

Begin GameMode
	
If (Act == 0)
	Let Day01 := (GameDaysPassed + 2)
	Let Day02 := (GameDaysPassed + 1)
	Let Act := 1
Endif
	
If (GetStage aaDRCyra001 == 0)		;Der Spieler darf nirgendwo anders her eine Info gekriegt haben.
	If (Player.GetInWorldSpace Tamriel == 1)	;Spieler muss im Tamriel-Worldspace sein;Spieler ist NICHT der Meister Cyrodiils
		If (GameDaysPassed >= Day01)
			If (DoOnce == 0)
				DRCyra0RaShirarRef.MoveTo player
				Let DoOnce := 1
			Elseif (DoOnce == 1)
				DRCyra0RaShirarRef.StartConversation player 
				Let DoOnce := 2
			Elseif (DoOnce == 2)
				DRCyra0RaShirarRef.Cast aaDRCyra00HQ01RaShirarZauber DRCyra0RaShirarRef
				Let DoOnce := 3
			Else
				Return
			Endif
		Endif			
	Elseif (Player.GetInWorldSpace ICArboretumDistrict) || (Player.GetInWorldSpace ICTempleDistrict) || (Player.GetInWorldSpace ICMarketDistrict)
		If (Player.GetInFaction MQEndFaction == 1) && (Player.GetFactionRank MQEndFaction == 0)
			If (GameDaysPassed >= Day02)		
				If (DoOnce == 0)
					DRCyra0AdiemusRef.MoveTo player
					Let DoOnce := 1
				Elseif (DoOnce == 1)
					DRCyra0AdiemusRef.StartConversation player 
					Let DoOnce := 2
				Elseif (DoOnce == 2)
					DRCyra0AdiemusRef.Cast aaDRCyra00HQ01AdiemusZauber DRCyra0AdiemusRef
					Let DoOnce := 3
				Else
					Return
				Endif
			Endif
		Endif
			
	Elseif (Player.GetInCell CheydinhalSanctuary == 1)
		If (player.GetInFaction DarkBrotherhood == 1) && (Player.GetFactionRank DarkBrotherhood == 7)
			;Konversation einfügen.
		Else	;Spieler ist NICHT Zuhörer
			Return
		Endif
	Endif
Endif
End