20.05.2012, 16:56 | #21 (permalink) |
Registriert seit: 31.03.2003
Beiträge: 2.533
|
Ghost Aut erwartet ja dass die Abarbeitung seines Programmes bis dahin geht, ansonsten würde er da ja nicht nochmal ein exitWith hinschreiben.
Ich habe das hier im netz gefunden: http://forums.bistudio.com/showthrea...-Exit-from-SQF Bon schreibt mit dem if(true)exitWith{}; kann man den scope des Scripts verlassen. So gesehen macht es sinn, ist aber überflüssig am Ende der Datei weil es automatisch endet. Zumindest gehen wir gerade davon aus. Wenn das Script tatsächlich manuell geschlossen werden muss dann müsste dass ja irgendwo stehen. Bei der exitWith Beschreibung steht es jedenfalls nicht. Ich kann mich errinern bei OFP hatte ich auch mal so einen Fall von SQS leichen die nicht geschlossen wurden. Aber ob das mangels exit war am Ende der Datei weiß ich nicht mehr. Die geöffneten SQS handles haben die Performance verschlechtert. Geändert von xezon (20.05.2012 um 17:06 Uhr). |
30.05.2012, 18:34 | #22 (permalink) |
Verstehe ich zwar jetzt nicht ganz, da meine Schleife wie ein counter agiert! Hier auf dieser Seite hättest du ein Beispiel!
__________________
Ghost_AUT |
|
31.05.2012, 12:01 | #25 (permalink) |
Registriert seit: 16.07.2010
Beiträge: 305
|
Der Befehl "Private" würde in diesen Beispiel doch verhindern, dass "if (_zahl >= 25)" jemals wahr werden würde, oder? Geändert von Rockhount (31.05.2012 um 12:08 Uhr). |
31.05.2012, 14:27 | #29 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Ohne Private könnte eine "Unter-Routine", welche den gleichen Variablennamen wie die "Haupt-Routine" verwendet, den Inhalt der Variablen der "Haupt-Routine" verändern. Das von dir genannte Beispiel besteht nur aus einer Routine. |
31.05.2012, 14:38 | #30 (permalink) |
Registriert seit: 16.07.2010
Beiträge: 305
|
Das heißt also, dass in der obersten Ebene eines Scripts der Befehl "Private" nur dann was nützt, wenn man in dieser Ebene auch "calls" benutzt andernfalls müsste man in den Unterebenen(for,while,...) den "Private" Befehl nochmal eintragen, damit die Variablen der obersten Ebene nicht verändert werden.
Geändert von Rockhount (31.05.2012 um 14:44 Uhr). |
31.05.2012, 16:23 | #31 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
while oder for sind keine "Unter-Routinen". Eine solche wäre eine Funktion, welche mit call aufgerufen wird.
Code:
temp = [] spawn { private ["_UR","_a"]; _UR = {_a = 20}; _a= 10; call _UR; hint str _a } Code:
temp = [] spawn { private ["_UR","_a"]; _UR = {private "_a";_a = 20}; _a= 10; call _UR; hint str _a } Stellt fest welches Ergebnis jeweils die hint-Ausgabe zeigt. |
31.05.2012, 22:39 | #32 (permalink) |
Registriert seit: 31.03.2003
Beiträge: 2.533
|
Siehe Referenzparameter ? Wikipedia |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|