Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 30.10.2011, 15:06   #21 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 01.06.2009
Beiträge: 103
Standard

Zitat von Drunken Officer Beitrag anzeigen

Wenn ich es im Statement aufrufe, dann wird die Farbe sofort gewechselt. Also würde es schon grün sein, wenn es im Begriff ist zu öffnen. Diesen Versuch habe ich schon hinter mir.

Ich schraube mal noch bissel dran rum. Versuch macht klug.


Das ist auch kein Problem. Du startest beim statement für das öffnen des Tors halt ein Script. Für das schliessen des Tors brauchst Du ja keines, da es dort ja erwünscht ist, dass die Ampel gleich auf rot springt.

Bei der Class zum öffnen des Tors:
Code:
statement = "this execVM "Name_Deines_Addons_ohne_.pbo_am_Schluss\Torauf.sqf"";
Du musst unbedingt beim Script- Aufruf den exakten Pfad zum Script angeben! Und die Syntax sollte so funktionieren, auch wenn ich innerhalb der ersten "Gänsefüsschen" nochmals die Gänsefüsschen verwende und bloss einen ";" am Ende des Statement setze (sollte innerhalb configs erlaubt sein im Gegensatz zu Scripten). Wenn es nicht klappt, weisst Du ja was Du ändern musst.

Torauf.sqf
Code:
_this animate ["door_pb_aussenhof", 1];
waitUntil {(_this animationPhase "door_pb_aussenhof") == 1};
 _this setobjecttexture [0, "\polizei\grafik\lichtgruen.paa"];
@ Vienna
Natürlich müsst die Textausgabe auch in einem von einer Objekt- Config aus aufgerufenem Script ohne Einschränkungen funktionieren. Wieso meinst Du dass das nicht klappt?
Asso-Loki ist offline  
Alt 30.10.2011, 17:14   #22 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

Es funktioniert!
Danke Asso-Loki.

Deinen Gedankengang hatte ich schon ne Weile, nur hatte ich in der *.sqf mit "_this select 0;" gearbeitet. Das war mein Fehler.
Im EventHandler ja, im statement nein.
Dank deinem Post habe ich meinen Fehler gefunden.

Also
- Selection wird auf rotgesetzt
- *.sqf im statement warte bis animation 1 ist und setzt dann grün
- beim schliessen wird sofort mit setobjecttexture-befehl auf rot gesetzt.

Geändert von Drunken Officer (30.10.2011 um 17:54 Uhr).
Drunken Officer ist offline  
Alt 30.10.2011, 19:12   #23 (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 Asso-Loki Beitrag anzeigen

@ Vienna
Natürlich müsst die Textausgabe auch in einem von einer Objekt- Config aus aufgerufenem Script ohne Einschränkungen funktionieren. Wieso meinst Du dass das nicht klappt?

Ich habe das angenommen weil Drunken Officer sagte, dass ein Test nach Post #4 nicht läuft.
Vienna ist offline  
Alt 31.10.2011, 22:34   #24 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

Ich habe noch ne Frage.

Kann man irgendwie mehr als 10 selektionen nehmen?
Ich habe das erlernte gleich mal als Anzeige genommen, ob die Zellen zu oder auf sind. Leider benötige ich jetzt genau 11 selektionen.

Allerdings handelt es sich um 2 Ojekte. Beide haben in der config.cpp eine eigene Klasse. Ebenso in der Model.CFG.

Ich habe versucht mit "_this select 1" zu arbeiten. Igendwie habe ich den Befehl noch nicht ganz verstanden.
Die Teile von 1 - 10 funktionieren.

Gruß
Drunken Officer ist offline  
Alt 01.11.2011, 08:27   #25 (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

_this enthält üblicher Weise Daten aus einer Programmroutine oder die Übergaben in eine Programmroutine. Es kann eine einzelner Wert oder mehrere Werte in einem Array sein.

Wenn du wissen willst was in _this enthalten ist, dann lasse es dir anzeigen.

z.B. in einem Skript mit: player groupChat format["%1",_this];

Einen einzelnen Wert übernimmst du in eine Variable mit:

_Variable = _this;

Sind mehrere Werte in einem Array vorhanden dann mit:

_Variable = _this select 0;

0 ist hier der Zeiger auf den ersten Wert im Array.
Vienna ist offline  
Alt 06.11.2011, 11:22   #26 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 01.06.2009
Beiträge: 103
Standard

Nach meinem Info-Stand kann ein Modell nur 10 Selektionen haben. Wenn Dein "Knast" aus zwei Modellen besteht, können Beide jeweils 10 Selektionen haben.

Es gibt verschiedene Variablen- Typen (z.B. Zahl, Text, Object usw.). Alle diese Variablen- Typen können jeweils nur einen einzelnen Wert des entsprechenden Daten- Types enthalten.
Mit Ausnahme des Variablen- Typ "Array". Dieser Variablen- Typ kann mehrere Werte enthalten, welche jeweils durch Kommas getrennt sein müssen. Ein Array muss immer von eckigen Klammern umschlossen sein "[]". Die einzelnen Werte in einem Array dürfen verschiedenen Daten- Typen angehören (Zahlen, Text, Objecte, usw.). Auch Arrays dürfen als Werte innerhalb eines Arrays verwendet werden.

Beispiel für ein Array:
Code:
TestArayy= [1,"text",Location,[x,y,z],Objekt];
Die Einzelnen Werte innerhalb eines Array können mittels "select" gefolgt von ihrer Index- Nr. angesprochen werden. Der erste Wert innerhalb eines Arrays erhält die Index- Nr. 0, der zweite Wert die Index- Nr. 1 usw.

Variablen werden definiert / initialisiert, indem man einen beliebigen Namen vergibt und diesem einen Wert zuweist. Es gibt globale Variablen welche - egal wo sie definiert / initialisiert wurden - von überall innerhalb des Spiels angesprochen werden können
Code:
meineVariable= 10
. Und es gibt lokale Variablen welche man normalerweise nur innerhalb eines Scripts / einer Funktion verwendet und welche auch nur innerhalb dieses Scripts / dieser Funktion angesprochen werden können. Die Namen von lokalen Variablen müssen mit einen Unterstrich beginnen
Code:
_meineVariable= 10
"this" und "_this" sind spezielle Variablen- Namen. Das globale "this" referenziert normalerweise das Objekt in welchem es verwendet wird. In Deinen configs enthält "this" also jeweils jenes Objekt, in dessen class oder sub-class es gesetzt wird.

Das lokale "_this" kommt wieder eigentlich nur in Scripten und Funktionen vor und enthält den Parameter der beim Aufruf des Scriptes / der Funktion übergeben wird.
Wird dem Script / der Funktion nur ein einzelner Wert übergeben so lautet die (effizienteste) Schreibweise
Code:
Übergabewert execVM "script.sqf";
. Das "_this" innerhalb des aufgerufen Scripts enthält dann diesen Übergabewert.
Sollen dem Script mehrere Werte übergeben werden, so muss man diese Werte in einem Array übergeben und die Schreibweise lautet
Code:
[Übergabewert1, Übergabewert2] execVM "script.sqf";
. Das "_this" innerhalb des Scripts enthält dann natürlich auch wieder ein Array. Um dann an die einzelnen Übergabewerte zu kommen muss man also mit
Code:
_this select Index-Nr.
den gewünschten Wert aus dem Array auslesen.

Bei vielen Leuten hat es sich eingebürgert, beim Aufruf eines Scripts / einer Funktion den Parameter immer als Array zu übergeben, auch wenn es sich nur um einen einzelnen Wert handelt
Code:
[Übergabewert] execVM "script.sqf";
, welcher dann im Script eben satt direkt mit "_this" mit "_this select 0" angesprochen werden muss.

Mit Viennas Tipp kannst Du meinen Theorie- Roman wunderbar in der Praxis überprüfen.

Wenn Du in einem Script nicht nur wissen möchtest, welche Daten übergeben wurden, sondern auch welchen Daten- Typen diese Daten entsprechen, so kannst Du Dir das z.B. so im Script ausgeben lassen:
Code:
player groupChat format["%1", (typeName _this)];
Asso-Loki ist offline  
Alt 06.11.2011, 13:26   #27 (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 Asso-Loki Beitrag anzeigen

Das lokale "_this" kommt wieder eigentlich nur in Scripten und Funktionen vor und enthält den Parameter der beim Aufruf des Scriptes / der Funktion übergeben wird.

Diese Werte werden auch aus Arma Routinen über _this in Skripte oder Code übergeben.
z.B. in addAction oder addEventHandler

Es gibt auch Arma Routinen die namentliche lokale Variable übergeben.
z.B. bei onMapSingleClick die Variablen _pos, _units, _shift und _alt.
Vienna ist offline  
 


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


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 117 118 119