Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 07.01.2012, 14:18   #1 (permalink)
50 Beiträge
 
Registriert seit: 30.10.2009
Beiträge: 55
Standard Verständnisproblem #include / call compile ....

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;
Meine init.sqf sieht wie folgt aus:
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";
Gestartet wird Arma2OA mit -showscripterrors

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
Wesley Pipes ist offline   Mit Zitat antworten
Alt 07.01.2012, 15:26   #2 (permalink)
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 77
Beiträge: 6.547
Standard

*deleted*

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.

Geändert von Xeno (03.01.2014 um 08:38 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 07.01.2012, 15:45   #3 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Kann es der Fehler sein, weil am Beginn der Init.sqf ein /* fehlt?
Vienna ist offline   Mit Zitat antworten
Alt 07.01.2012, 16:00   #4 (permalink)
50 Beiträge
 
Registriert seit: 30.10.2009
Beiträge: 55
Standard

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
Wesley Pipes ist offline   Mit Zitat antworten
Alt 07.01.2012, 17:18   #5 (permalink)
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 77
Beiträge: 6.547
Standard

Zitat von Wesley Pipes Beitrag anzeigen

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?).

*deleted*

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.

Geändert von Xeno (03.01.2014 um 08:38 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 07.01.2012, 18:19   #6 (permalink)
50 Beiträge
 
Registriert seit: 30.10.2009
Beiträge: 55
Standard

danke schön @ xeno

wobei dieses blainclude schon wieder Fragen aufwirft - aber das lass ich jetzt mal, da ich blainclude (was immer das auch ist ) noch nie benutzt habe.

Vielen Dank für die schnelle Hilfe

Grüße
Wes
Wesley Pipes ist offline   Mit Zitat antworten
Alt 08.01.2012, 11:02   #7 (permalink)
50 Beiträge
 
Registriert seit: 30.10.2009
Beiträge: 55
Standard

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 11:04 Uhr).
Wesley Pipes ist offline   Mit Zitat antworten
Alt 08.01.2012, 12:52   #8 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Zitat von Wesley Pipes Beitrag anzeigen

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?).

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.
Vienna ist offline   Mit Zitat antworten
Alt 08.01.2012, 20:56   #9 (permalink)
50 Beiträge
 
Registriert seit: 30.10.2009
Beiträge: 55
Standard

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 . Aber davor gehen einige dilletantische Fehlversuche voraus.

Grüße
Wes
Wesley Pipes ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Patrouille als Missionsziel Anemia Editing & Scripting 18 07.03.2011 21:20
Luftabwehr Radar Cyborg11 Editing & Scripting 26 07.02.2011 19:09
Probleme bei Norrin Revive Script 0.49b Jekko Editing & Scripting 24 21.09.2010 19:39
Call Of Namalsk - SP Mini-Campaign Wiggum Usermade Missions 4 21.09.2010 17:06
Befehlsübertragung in Multiplay mit Auslöser Vienna Editing 15 30.05.2010 17:07


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116