Ingame Programierung-ONOFF Abfrage-Hilfe

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Ingame Programierung-ONOFF Abfrage-Hilfe

      Hallo,
      habe mich entschieden euer Forum zu Rat zu ziehen,
      Ich versuche grad eine Schleuse zu automatisieren und möchte ein Zustand speichern indem ich ein "Interior Light" ein und ausschalte und diesen Zustand später abfrage.
      Bei einer Tür kann ich sagen:
      if (Door1.open) {} ...

      Ich möchte aber gerne den Zustand der mit toggle ONOFF gesetzt wird abfragen, ist das möglich und wenn wie?

      Das ."door" wird als "field" bezeichnet gibt es auch einen anderen Begriff unter dem ich suchen kann sollte mir hier keiner helfen können?

      D.Strought
    • Tipp #1: Finde das richtige Forum. Ich habe den Thread mal hier her verschoben, da das wohl kaum eine Diskussion werden soll.
      Tipp #2: Lerne Programmieren. Entweder mach es oder lasse es, aber mit Halbwissen wirst du in der SE Programmierung keinen Spaß haben. Leider, ich will das nicht mies machen, aber es ist nicht so einfach, dass man ohne Kenntnisse gut zurecht kommt.
      Tipp #3: Installiere dir zum Entwickeln eine geeignete Umgebung. Ich empfehle Visual Studio.
      Tipp #4: Wenn du eine Entwicklungsumgebung hast, siehe dir die API mal im Objekt Browser an, um zu wissen welches Interface welche Felder hat. Alternativ kann man auch mit der Autovervollständigung der Entwicklungsumgebung herausfinden, ob das existiert, was man braucht.


      Genug der Tipps, ab hier die Beantwortung der eigentlichen Frage:
      Jeder Blocktyp, den du an- und ausschalten kannst, implementiert in der API das Interface "IMyFuncitonalBlock". Dieses Interface besitzt das Feld "Enabled", welches angibt ob der Block ein- oder ausgeschaltet ist. Mit der Methode "RequestEnable(bool enable)" kann dieser Zustand verändert werden.
      Beispielsweise kannst du so abfragen ob deine Tür eingeschaltet ist:

      C#-Quellcode

      1. if (Door1.Enabled)
      2. // do stuff

      Das gleiche funktioniert selbstverständlich auch mit Lichtern oder ähnlichem. Alles, was du auch ingame ein- oder ausschalten kannst.

      Ansonsten muss "door" nicht zwangsweise ein Feld sein, außer du definierst es als solches. :P Musste nur kurz klugscheißen. Tut mir leid. ;)
    • Vielen Dank für die schnelle Antwort,
      hatte schon befürchtet das ich den Thread an der falschen Stelle gepostet habe >,< Danke fürs verschieben.
      ​Lerne Programmieren. Entweder mach es oder lasse es

      Das tue ich gerne aber leicht autodidaktisch, nach schulischen Basics in Delphi(tot wie Latein aber Objektorientiert), HTML, JavaScript,PHP,FUP und Graph macht es mir ziemlich Spaß mal mit dieser ingame C# Umgebung zu spielen.
      ​ Installiere dir zum Entwickeln eine geeignete Umgebung. Ich empfehle Visual Studio.

      Es gibt dazu doch bestimmt einen Thread im Forum oder? Da ich mich hier noch nicht so auskenne währe es Klasse wenn mir jemand nen Link dalassen würde.

      Danke, nach dem Enabled habe ich lange gesucht, kann ja mal mein Script posten sobald es fertig ist (es wird aber eine stilistische Katastrophe :P ).
      J.D.Strought

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von D.Strought ()

    • Gibt keinen Thred. Hier der Link. Nimm die Community Edition, die ist kostenfrei. ;)
      Musst dann, sobald du ein Projekt (am besten eine Bibliothek oder "Library") erstellt hast, rechts bei "References" die .dll-Dateien von SE hinzufügen, die du im Bin Ordner von deiner SE-Installation findest. Du brauchst vor allem Sandbox.Common, Sandbox.Game, VRage, VRage.Game und VRage.Math. Dann erstellst du ein .cs File, in dem du eine Klasse in etwa so definierst:

      C#-Quellcode

      1. public class MyScript : MyGridProgramm

      Den Inhalt der Klasse kannst du dann direkt in deinen programmierbaren Block kopieren. ;)