![]() |
#1 (permalink) |
![]() ![]() Registriert seit: 30.10.2009
Beiträge: 59
|
![]()
Hallo ich hoffe Ihr könnt mir bei einer Verständnisfrage weiterhelfen:
Ich habe eine setup.sqf angelegt, in der ich über verschiedene define-Schalter das Spiel entsprechend starten will. Im Moment sieht es so aus: coa_setup.sqf: Code:
coa_setup_done = false; // Debug-System // Einträge bestimmter Variablen-Werte in die Arma2OA.rpt zu Fehlersuche. #define __debug_log__ coa_setup_done = true; Code:
###################### # Initialisierung ###################### */ //#include "Scripts\coa_setup.sqf"; waitUntil{!(isNil "BIS_fnc_init")}; sleep 0.5; if (isNil "coa_setup_done") then { call compile preprocessFile "Scripts\coa_setup.sqf"; }; //waitUntil{!(isNil "coa_setup_done")}; #ifdef __debug_log__ diag_Log "++++++++++++++++++++++++++++++++++"; diag_log "Diagnose-Modus aktiv!"; diag_log "++++++++++++++++++++++++++++++++++"; #else diag_Log "++++++++++++++++++++++++++++++++++"; diag_log "Normal-Modus aktiv!"; diag_log "++++++++++++++++++++++++++++++++++"; #endif _do = execVM "Scripts\coa_IntroText.sqf"; So wenn ich in der init.sqf den #include auskommentiere, funktionieren die defines einwandfrei. wenn ich #include kommentiere, dann hätte ich erwartet, dass geprüft wird, ob die Variable coa_setup_done NIL ist (ist sie auch habe ich mit einem Hint vor der call compile -Zeile überprüft) - in diesem fall kommt call compile preprocessFile (call compile preprocessFileLineNumbers wurde auch versucht) zum Einsatz und compiliert coa_setup.sqf vor. Wenn ich es so ausführe (#include kommentiert) , dann wird zwar erkannt, dass coa_setup_done NIL ist aber es wird mir immer der Normal-Modus angezeigt. Und anschließend mit der Durchführung des nächsten Scripts fortgefahren. Also alles was zwischen der If-IsNIL-Abfrage und _do = excecVM... steht wird ignoriert. Selbst wenn ich da noch einen Hint ausgebe, wird dieser ignoriert und mit dem Ausführen des nächsten Scripts fortgefahren. In der RPT - keine Fehlermeldung Mache ich den #include - Aufruf in eine description.ext, dann crasht das Spiel mit dem Hinweis, dass der Member coa_setup_done schon definiert wurde (!?) Ich hoffe ich hab´s nicht zu kompliziert beschrieben und mir kann jemand den entscheidenden Tip geben. Das Vorgehen habe ich übrigens von xenos Dominations abgeguckt - fragt sich nur ob ich dabei was Entscheidendes übersehen hab. Danke für Eure Hilfe Grüße Wes |
![]() |
![]() |
#4 (permalink) |
![]() ![]() Registriert seit: 30.10.2009
Beiträge: 59
|
![]()
Hi Xeno,
danke erst mal - wobei so richtig begriffen hab ich´s noch nicht... ![]() Zu Erstens - die description.ext war ursprünglich erst mal aussen vor - die habe ich nur während meiner Fehlersuche angelegt und versucht mein coa_setup.sqf darüber einzubinden - Ergebnis war dann der BTD - aber nach Deiner Erklärung nachvollziehbar. Zu Zweitens - ich wollte eigentlich den #include raushalten, da ich doch sonst in jedem Script in dem ich eine ifdef -Abfrage mache; die coa_setup.sqf neu includen muss (oder?). zu Drittens - klaro heißt die coa_setup.sqf ![]() zu Viertens - werde ich versuchen zu Fünftens - kapiert Vielen Dank erst mal - kannst mir bitte noch sagen, ob ich bei "zu Zweitens" auf dem Holzweg bin? @ Vienna - Nein ich habe nur beim Kopieren des Scripts hier rein nicht den kompletten Header mitgenommen - also /* ist in der init vorhanden. Grüße Wes |
![]() |
![]() |
#5 (permalink) |
![]() ![]() Registriert seit: 03.01.2008
Alter: 83
Beiträge: 6.552
|
![]() *deleted* Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. Geändert von Xeno (03.01.2014 um 09:38 Uhr). |
![]() |
![]() |
#7 (permalink) |
![]() ![]() Registriert seit: 30.10.2009
Beiträge: 59
|
![]()
sry für Doppel-Post - edit nicht mehr möglich.
Okay nachdem ich jetzt endlich von meiner langen Leitung runter bin (und mein Alk-Pegel auch wieder etwas unten) weiß ich jetzt auch was (bla bla) blainclude ist ..... ![]() ![]() Grüße Wes Geändert von Wesley Pipes (08.01.2012 um 12:04 Uhr). |
![]() |
![]() |
#8 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]() Wo ist hier ein Problem? Man kann Testzeilen mit if-then und einer globalen Variablen in allen Skripten gleichzeitig ein- und ausschalten. Es ist aber sicher besser #ifdef-#endif zu verwenden, weil dann im normalen Programmlauf alle diese Abfragen vollständig entfernt sind. z.B., setzt man in der coa_setup.sqf die Variable: #define __debug_log__ und bindet in allen anderen Skripten dieses Skript mit: #include "coa_setup.sqf" ein. Nach dem Testen setzt man dann in der coa_setup.sqf die Zeile auf Kommentar: //#define __debug_log__ und alle Testzeilen sind bei der Ausführung aus den Skripts vollständig gelöscht. Will man nur ein einzelnes Skript testen, dann dort die Variable direkt definieren. |
![]() |
![]() |
#9 (permalink) |
![]() ![]() Registriert seit: 30.10.2009
Beiträge: 59
|
![]()
Servus Vienna,
danke für Deinen Input - im Endeffekt habe ich´s auch so gelöst. Ich dachte aber, dass es im normalen Spielablauf ein Problem sein könnte, wenn ich in "jedem zweiten" Script die coa_setup.sqf mittels #include "neu einlesen" muss. (so mein Verständnis) Ich bin noch ziemlich in der Lernphase was scripten betrifft und hab noch nicht so ganz den Backround bzw. das Verständnis zu manchen Sachen - aber dafür lerne (und fehlversuche) ich ja ![]() Und wenn ich wirklich auf gar keinen Nenner mehr komme bitte ich die Profis um Hilfe ![]() ![]() Grüße Wes |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Patrouille als Missionsziel | Anemia | Editing & Scripting | 18 | 07.03.2011 22:20 |
Luftabwehr Radar | Cyborg11 | Editing & Scripting | 26 | 07.02.2011 20:09 |
Probleme bei Norrin Revive Script 0.49b | Jekko | Editing & Scripting | 24 | 21.09.2010 20:39 |
Call Of Namalsk - SP Mini-Campaign | Wiggum | Usermade Missions | 4 | 21.09.2010 18:06 |
Befehlsübertragung in Multiplay mit Auslöser | Vienna | Editing | 15 | 30.05.2010 18:07 |