Moin.
Ich habe in letzter Zeit einige Sachen versucht zu scripten und bin bei vielen Sachen gescheitert. Daher erstelle ich hier einen Sammelthread, in dem ich alle meine nicht funktionstüchtigen Versuche darlege und um Hilfe bitte.
Problem: Die erstellte Scripttextur wird nicht dargestellt und es wird statdessen die Textur des Matrixkastens verwendet, die nicht als Platzhaltertextur auf dem Schriftfeld ausgewählt war.
Script:
- {PUBLIC_VARS
- Font_Dest: integer;
- Font_Line: integer;
- texID_draw_Line: integer;
- texID_draw_Dest: integer;
- }
- procedure Initialize;
- begin
- Font_Dest := TexGetFontIndex(Self, 5752495, 97566318);
- Font_Line := TexGetFontIndex(Self, 5752495, 160903976);
- TexSelTex(Self, 1);
- TexSetColor(Self, Color(71,114,75,255));
- TexSetBlendMode(Self, 1);
- //TexWriteLn(Self, 'TEST', 5, 5, Font_Dest, true, 0);
- TexClear(Self);
- end;
- end.
Bilder:
Materialeinstellungen des Planes für die Schriftdarstellung:
Einstellungen der Scripttextur in den Objekteinstellungen:
Darstellung der fremden Textur auf dem Schriftfeld:
Problem: Das Auslesen der Zusatz-Strings einer speziellen FIS-Datei funktioniert nicht, die zugehörige Variable wird im Variablentestfenster im Simulator auf keinen Wert gesetzt.
- {PUBLIC_VARS
- [...]
- Test42: string;
- }
- procedure RollerBlindSimStep;
- begin
- [...]
- Test42 := PISSP_GetGroupString(Self, 1);
- [...]
- end;
- procedure SimStep;
- begin
- RollerBlindSimStep;
- end;
- procedure Initialize;
- var
- Temp: Integer;
- begin
- previousUpperIndex := -1;
- Temp := PISSP_GetIndexByClass(Self, 'SBFKA_Zielfilm');
- PISSP_SetByIndex(Self, Temp);
- end;
- end.
Problem: Die Script-Kommunikation von Modul (Dashboard) zu untergeordnetem Modul (Tacho) funktioniert nicht, es wird kein Wert empfangen.
Script:
- {PUBLIC_VARS
- TimeOfDay: single;
- M_M_TachoSpeed_mps: single;
- ToFast: single;
- }
- procedure ReceiveBroadcastSingle(busId: string; id: string; value: single);
- begin
- if id = 'TACHOSPEED_M' then
- M_M_TachoSpeed_mps := value;
- end;
- procedure SimStep;
- begin
- if M_M_TachoSpeed_mps > 24.16 then ToFast := 1;
- end;
- end.
- {PUBLIC_VARS
- [...]
- M_TachoSpeed_mps: single;
- [...]
- }
- procedure ReceiveMessageFromParentSingle(indexOfClass: integer; id: string; value: single);
- var
- M_TachoSpeed_mpsOld: single;
- begin
- M_TachoSpeed_mpsOld := M_TachoSpeed_mps;
- case id of
- [...]
- 'TACHOSPEED': M_TachoSpeed_mps := value;
- [...]
- end;
- if M_TachoSpeed_mps <> M_TachoSpeed_mpsOld then SendBroadcastSingle(Self, 'DASH', 'TACHOSPEED_M', M_TachoSpeed_mps);
- end;
- [...]
- end.
Problem: Das Setzen eines Moduls via Script, welches einem Modul untergeordnet ist, funktioniert nicht.
Script:
- {PUBLIC_VARS
- [...]
- M_Tacho: integer;
- }
- [...]
- procedure ReceiveMessageFromParentInteger(indexOfClass: integer; id: string; value: integer);
- begin
- case id of
- [...]
- 'TACHO_VARIANTE': M_Tacho := value;
- end;
- end;
- procedure SimStep;
- begin
- if M_Tacho = 0 then SetModule(self, 2, 5752495, 158798787)
- else if M_Tacho = 1 then SetModule(self, 2, 5752495, 650854343)
- else if M_Tacho = 2 then SetModule(self, 2, 5752495, 158798787)
- end;
- [...]
- end.
Bitte schlagt mich nicht, wenn irgendwo eine wichtige Angabe fehlen sollte
LG