Construction Set Türen aus Sotha Sil...

Malcador

Reisender
Hallo Community,

mein neustes Problem bezieht sich auf diese runden, beweglichen Tore in Sotha Sil, die mit den Hebeln geöffnet werden.
Ich habe mich vorher im Spiel umgesehen und die Zugehörigkeiten von Hebeln und Türen abgecheckt.
Nun will ich diese Technik auch in einer Mod verwenden, allerdings bekomme ich es nicht hin, die Hebel und die Türen aufeinander einzustellen. Ich habe sie direkt aus dem Verzeichnis bei "Activators" herausgenommen. Ich habe alle relevanten Einstellungen überprüft und alles war schon so wie in der Stadt eingestellt.
Ich schaffe es nicht, dass sich die Tore auch in meiner Mod öffnen. Ich ziehe die Hebel, doch es passiert nichts.

Hilfeeeee!!! :cry:

mfg
 
Ich bin mir jetzt nicht ganz sicher aber es könnte sein das man das Script das auf den
Schaltern liegt anpassen muss.

Schau dir mal die Scripts an.

Mfg MadDin
 
Wie bereits angedeutet, sind die Scripts von Haus aus sowohl bei der Tür als auch bei den Schaltern bereits dieselben wie in Sotha Sil-Stadt.
 
Hast du neue Bezeichnungen für die Türe und den zugehörigen Hebel benutzt(was ich in diesem Fall auch empfehle)? In dem Fall muss auch das Script entsprechend angepasst werden und unter einer neuen Bezeichnung auf den Hebel gelegt werden, damit keine Konflikte mit den Türen in Sotha Sil auftreten.
 
ok, ganz versteh ich das nicht.

Ich verwende die Tür mit der ID act_sotha_pre_door3 und den beiden entsprechenden Hebel mit den ID's act_sotha_lever3a und act_sotha_lever3b.


Die Scripts bei der Tür sind LocalState und bei den Hebeln beide SothaLever3.


Wie genau muss ich vorgehen, ich bin noch eher Neuling im CS und wage mich an Scripts nur ungern ran.

mfg
 
Geht nicht. Dann sind die IDs ingame nicht mehr UNIQUE und das müssen sie bei Auswertung lokaler Variablen sein. Du bekommst zwar keine Fehlermeldung, aber "dein" neuer Hebel steuert nicht "Deine" Tür, sondern die in Sotha Sil :D

Wie bereits angedeutet, sind die Scripts von Haus aus sowohl bei der Tür als auch bei den Schaltern bereits dieselben wie in Sotha Sil-Stadt.
Mach es so:

1. Nimm einen bestehenden Türeintrag im CS z.B. act_sotha_pre_door1...
ändere die ID ab auf eine ID deiner Wahl, MY_ClockDoor_01
-> bei "Create new Object" <JA> wählen.

2. such einen der zugehörigen Schalter, in dem Fall act_sotha_lever1a
ändere seine ID ab auf MY_ClockDoorLever_01
-> wieder eine neue Referenz anlegen.

3. jetzt öffnest du im Script Editor das Script LocalState
Von dem legst du auch eine Kopie an. Das ist wichtig, weil du ja nicht willst, dass irgendeine Drittmod dir ins Konzept pfuscht und ggfs. das Vanilla Script anpaßt... ich nenne es mal MY_LocalState_SCR
-> Dieses Script platzierst du auf deiner Tür, damit ist dieser Activator fertig.

4. Der Hebel (anders als in Tribunal benötigst du nur eine Hebelreferenz) muß nun noch verscriptet werden - öffne den ScriptEditor und mach ein neues Script - kopiere dann dieses hinein:
Code:
begin MY_ClockDoor01Lever_SCR

short State
short Move

IF ( OnActivate == 1 )
 Set Move to 1
EndIF 

IF ( Move == 1 )

 IF ( State == 0 )
  PlayGroup "idle2"
  Set State to 1
 Else
  PlayGroup "idle3"
  Set State to 0
 EndIF

 IF ( "MY_ClockDoor_01".State == 0 )
  MY_ClockDoor_01->PlayGroup "idle2"
  Set MY_ClockDoor_01.State to 1
 Else
  MY_ClockDoor_01->PlayGroup "idle3"
  Set MY_ClockDoor_01.State to 0
 EndIF

 Set Move to 0

EndIF

end
5. Öffne deine HebelReferenz und leg das obige Script drauf.

Verbau die Tür und es sollte funktionieren. Du brauchst nur einen Hebel und kannst ihn zweimal setzen. Vor und hinter der Tür halt.

Jede weitere Tür braucht dann eine zusätzliche ID, eine eigene Hebelreferenz und ein eigenständiges Script. Immer schön nummerieren, damit es kein Chaos gibt und dann funktioniert das auch.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Malcador
Okay. Könnte man dann einen Kollektivschalter einrichten, mit dem man dann alle Türen auf einmal öffnet? Parallel neben den anderen?? Das wäre interessant zu wissen xD

mfg
 
Okay. Könnte man dann einen Kollektivschalter einrichten, mit dem man dann alle Türen auf einmal öffnet? Parallel neben den anderen?? Das wäre interessant zu wissen xD

mfg
Kein Problem - du mußt nur immer brav abprüfen, wie die jeweilige Position der zu öffnenden Tür ist und die Aktivatoren dann zusammen anstossen - also die, wo nicht offen sind. Du willst ja nicht Türen nochmal öffnen, die schon offen sind - die würden dann einach übersprungen. Das Grundprinzip eines solchen Scripts entspricht dem obigen, nur wäre dann der Part mit den Türen ein wenig anders, etwa so:

Code:
begin MY_ClockDoorMasterLever_SCR

short State
short Move

IF ( OnActivate == 1 )
 Set Move to 1
EndIF 

IF ( Move == 1 )

 IF ( State == 0 )
  PlayGroup "idle2"
  Set State to 1
 Else
  PlayGroup "idle3"
  Set State to 0
 EndIF

 IF ( State == 1 )

  IF ( "MY_ClockDoor_01".State == 0 )
   MY_ClockDoor_01->PlayGroup "idle2"
   Set MY_ClockDoor_01.State to 1
  EndIF
  IF ( "MY_ClockDoor_02".State == 0 )
   MY_ClockDoor_02->PlayGroup "idle2"
   Set MY_ClockDoor_02.State to 1
  EndIF
  IF ( "MY_ClockDoor_03".State == 0 )
   MY_ClockDoor_03->PlayGroup "idle2"
   Set MY_ClockDoor_03.State to 1
  EndIF
  IF ( "MY_ClockDoor_04".State == 0 )
   MY_ClockDoor_04->PlayGroup "idle2"
   Set MY_ClockDoor_04.State to 1
  EndIF

 Else

  IF ( "MY_ClockDoor_01".State == 1 )
   MY_ClockDoor_01->PlayGroup "idle3"
   Set MY_ClockDoor_01.State to 0
  EndIF
  IF ( "MY_ClockDoor_02".State == 1 )
   MY_ClockDoor_02->PlayGroup "idle3"
   Set MY_ClockDoor_02.State to 0
  EndIF
  IF ( "MY_ClockDoor_03".State == 1 )
   MY_ClockDoor_03->PlayGroup "idle3"
   Set MY_ClockDoor_03.State to 0
  EndIF
  IF ( "MY_ClockDoor_04".State == 1 )
   MY_ClockDoor_04->PlayGroup "idle3"
   Set MY_ClockDoor_04.State to 0
  EndIF

 EndIF

 Set Move to 0

EndIF

end
Dieses Script würde bei Betätigen des Hebels vier Türen prüfen und entweder alle geschlossenen öffnen oder alle offenen schliessen... davon sollte es aber aus Handlingsgründen nur einen geben :D
 
  • Like
Reaktionen: Malcador
Ich denke mal schon. Du musst dann nur im Script der Türen angeben, dass sie auch auf diesen Hebel reagieren müssen.


EDIT: Zu spät.


Gruß: TakoTatsujin
 
  • Like
Reaktionen: Malcador
Vielen Dank an euch alle, ihr seid Klasse!!! Ich hoffe nur, dass das nun richtig hinhaut, ich muss das alles noch verarbeiten xDDD
 
Okay. Jetzt bin ich bei den Scripts. Jetzt weiß ich aber nicht, wie ich den LocalState Script kopieren soll, oder halt wie das gemeint war. Was muss ich da tun?
(Und dummerweise gilt der Originalscript nun als verändert, nur weil ich mit dem offenen Script auf Save gedrückt habe. ich hab da nix verändert, das Sternchen im Namen ist trotzdem da. Ich hoffe, das ist nicht so schlimm)


ganz großes sry für den Doppelpost, aber ich habe befürchtet, dass sonst kaum einer wirklich von dem Edit etwas mitbekommen würde. Bitte verzeiht es einmal :(
 
Das Script localstate, welches an den Türen hinterlegt wurde, brauchst du nicht zu verändern. Das bewirkt nur, dass der jeweilige Status der Türe abgefragt wird.
£exa hat dir ja schon vorgegeben, wie das Script, welches du am Hebel hinterlegen musst, ungefähr auszusehen hat. Du musst nur deine Bezeichnungen für den Hebel und die zu öffnenden Türen in diesem Script hinterlegen, und zwar für jede tür, die in deiner Mod hinterlegt sind in der Zelle.
Beispiel: Der Hebel soll 6 Türen in dieser Zelle öffnen, dann müssen in dem script für den Hebel auch 6 Türen eingebunden werden, diese haben, evtl wie bei £exa die Bezeichnung my_clockwork_01 bis my_clockwor_06.

BTW: Das könnte hier eigentlich von einem Mod in den Script-Thread miteingebunden werden, oder?
 
  • Like
Reaktionen: Malcador
Ok, habe ich verstanden. Nur £exa meinte, ich solle eine Kopie anfertigen, damit andere Mods ect. nicht dazwischenfunken. Nun meinst du, ich brauch garnichts an der Tür machen. Mit dem ändern des Script meinte ich bloß, dass ich versehentlich auf "Save" geklickt habe.

Ich hoffe, ich habe jetzt nichts falsch verstanden. Also: Die Script von der Tür kann ich so lassen, wie es ist. Nur bei den Hebeln muss ich einen neuen machen, richtig?


mfg


:p
 
Genau. Was du auch noch machen musst, ist die von dir benutzte Tür + Hebel mit einer neuen ID anzulegen, beim speichern wirst du gefragt, ob du damit ein neues objekt anlegen willst, was du bejahst. Dann müssen nur noch die neuen IDs entsprechend im Hebel-Script hinterlegt werden.
 
  • Like
Reaktionen: Malcador
Wunderbar, habe ich gemacht. Nun funktioniert es endlich!! Jetzt bin ich glücklich!!!!!


Vielen lieben Dank für eure super Hilfe!!!!!
 
Du musst denke ich, den Script von der Tür auch auf den neuen Hebel beziehen. (Und die Objekte müssen natürlich eine neue ID haben.)
Hebel -> TürID
Tür -> HebelID
(um es zu verdeutlichen, ich hoffe das klappt)

Edit: Letzte Seite übersehen...
 
Zuletzt bearbeitet von einem Moderator:
Ich hoffe, ich habe jetzt nichts falsch verstanden. Also: Die Script von der Tür kann ich so lassen, wie es ist. Nur bei den Hebeln muss ich einen neuen machen, richtig?
Du kannst das so lassen, ja. Dann besteht aber das Risiko, dass eine andere Mod dieses Script verändert, so dass es (zusätzliche) Sachen macht, die du nicht beabsichtigt hast. Nun, bei dem da ist das Risiko gering, aber es gibt genug Leute, denen sauberes Modden nicht ganz so wichtig ist. Auf der absolut sicheren Seite ist man nur dann, wenn man ein eigenes Script benutzt. Das kann eine andere Mod dann nämlich nicht versehentlich verändern.
 
  • Like
Reaktionen: Malcador
Okay. Merk ich mir. Sollte ich eine Mod installieren, bei der es zu solchen Komplikationen kommen sollte, werde ich dann entsprechend vorgehen!!

mfg