Construction Set Skriptthread zum Construction Set

Probiere es mal hiermit:

Code:
scn SotANFollowerScript

short working
short button

Begin OnActivate
MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden"
	set working to 1
end

Begin GameMode
if working == 1
set button to GetButtonPressed

if button == 0
			set working to 100
		else if button == 1
			set working to 200
		else if button == 2
			set working to 300
		else if button == 3
			set act to 0
		endif
[...]
End
 
Hallo mal wieder, ich hätte dann auch noch eine Frage..

Ich möchte, dass der Spieler, nachdem er einen beliebigen Speicherstand geladen hat, in ein Dungeon "teleportiert" wird. Das heißt, nachdem das Spiel gestartet ist, soll der Spieler sofort an einen bestimmten Ort in einer bestimmten Cell gebracht werden.

Wie genau funktioniert das? :D

Danke schonmal jetzt,

MadHatter :)
 
Machs mal so:

Code:
SCN ...
 
Short Move
 
Begin OnLoad
 
If Move == 0
        set Move to 0
        Player.MoveTo <MarkerRef>
 
    Endif
 
 
End

Ich nehme mal an, du weist wie man einen Marker platziert und ihm eine Referenz zuweist. ;)

mfg
Kahmul
 
  • Like
Reaktionen: MadHatter16
Nun, de benötigst eine Zielreference, die du am Zielort platzierst. Das kann beispielsweise ein XMarker oder ein XMarkerHeading sein.
Auf den klciskt du im RenderWindow doppelt und gibst ihm oben eine Reference Editor ID.

Dann schreibst du ein Script, als Quest-Script:

Code:
scn xyz

short once

begin GameMode
if (once == 0)
    set once to 1
    stopquest ABC
    player.moveto REF-ID
endif
end

Dazu brauchst du noch eine Quest ABC (natürlich irgendeinen anderen Namen wählen, dient nur als Beispiel), auf die du dann das Script legst.
Wenn du schon eine Quest hast, kannst du das Script darauf legen oder ein eventuell vorhandenes Script ergänzen.
Die Quest muss ein Haken bei StartGameEnabled haben.
 
  • Like
Reaktionen: MadHatter16
scn bla

short doonce

Begin Gamemode

if doonce == 0
set doonce to 1
player. moveto xy.ref


Endif
End

Es muss ein Questscript sein, also oben rechts im Scriptfenster Quest auswählen. xy.ref sollte ein X-Marker (findest du unter Static), dem du eine Refferenz-ID gibst und statt xy.ref in das Script einsetzt.

Dann noch oben im CS in der Leiste auf das Q für Quest klicken, rechtsklick auf die Liste der Quests. New auswählen, beliebige ID geben, überprüfen ob ein Haken bei StartGameEnabled ist und noch das zuvor erstellte Script zuweisen.


Edit: Mist, ich bin immer zu langsam.

Edit: Skriptfehler verbessert :)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: MadHatter16
@ MvC:

Ein kleiner Tipp:

"MoveTo"-Befehle muessen immer am Schluss stehen, da alle Befehle nach diesem Befehl nicht ausgeloest werden. ;)

mfg
Kahmul
 
Nachdem ich mich für die Lösung von Meister von Cyrodiil entschieden habe, und alles so erledigt hatte wie erklärt, passierte folgendes:

Ich starte also das Spiel, und lade einen Spielstand. Dieser wird geladen, ich bin für ungefär eine Sekunde dort, wo der alte Spielstand mich normalerweise wieder hingebracht hätte. Dann wird der Bildschirm schwarz. Anschließend erscheint ein neuer Ladebildschirm. Ich denke: Juhu! Jetzt komme ich im Dungeon raus.
Aber leider wollte der Ladebildschirm nicht mehr verschwenden.

Was ist da passiert? :(

Edit: War zu langsam - Habe also die Hinweise auf einen Fehler nicht mehr gesehen. So, jetzt wird Möglichkeit 2 ausprobiert.. :)
 
Zuletzt bearbeitet:
Welcher den jetzt? Habe ich player vergessen? Wie peinlich:oops:

Edit: Achso, hab da was vorhin falsch verstanden. :lol: OK, danke das mit dem Moveto wusste ich noch garnicht.
 
Was ich mich bei deinem Script frage, Kahmul:
Worauf soll den das liegen?
Auf dem Marker geht nicht, weil OnLoad nur läuft, wenn sich der Spieler in der Zelle befindet, in der das Model ist.

Edit:
Schön:)

Edit2:
@MvC
Nein, Problem bei deinem Script ist das mit der Reihenfolge. Wie oben geschrieben wirkt moveto in Kombination mit player wie ein return-Befehl. Das doonce bei dir wird also nicht auf 1 gesetzt, das Script läuft also immer wieder durch und hängt in einer Endlosschleife.
 
Zuletzt bearbeitet:
So, ich mische mich dann nochmal kurz ein.. Gibt es eine Möglichkeit, an bestimmten Orten das Spiel selbst schnellspeichern zu lassen? Zum Beispiel, wenn ein Spieler durch einen Trigger läuft?
Das würde mich auch interessieren.. :D
 
Ja ich hab das mal mit Autosave gemacht. Für Quicksave weiß ich nicht den passenden Befehl.

Begin OnTrigger player

Autosave

End

Ich glaub da fehlt noch was, aber es könnte auch so funzen.

Dieses Script (Objekt Skript) musst du einer Triggerbox zuweisen. Ist halt für nen Autosave.
 
Probiere es mal hiermit:

Code:
scn SotANFollowerScript

short working
short button

Begin OnActivate
MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden"
	set working to 1
end

Begin GameMode
if working == 1
set button to GetButtonPressed

if button == 0
			set working to 100
		else if button == 1
			set working to 200
		else if button == 2
			set working to 300
		else if button == 3
			set act to 0
		endif
[...]
End


Danke für deine Antwort!

Leider hat es nicht funktioniert. Nach der ersten MB kommt nichts mehr, egal welche Option ich auswähle!

Jemand noch ne Idee?

Vielen Dank und LG
tach810i
 
Denk ich auch nicht. Gut zu wissen, dass man es auch auseinander schreiben darf, so wie in allen anderen ("richtigen") Programmiersprachen!
 
In dem Tutorial ist es aber sehr unsauber programmiert!

Das Script ändert das Wetter ununterbrochen auf deine Auswahl - in jedem Frame! Besser wäre da noch ein done untergekommen ;-).

Prinzipiell hab ichs ja auch so, nur, dass ich halt 2 boxen nacheinander brauche...