Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 03.12.2013, 14:12   #1 (permalink)
Newbie
 
Registriert seit: 03.11.2013
Beiträge: 23
Icon5 BrettVormKopf: Namen einer x-beliebigen Variable ausgeben

Hallo zusammen,

ich steh gerade auf dem Schlauch und bekomm´s nicht auf die Reihe.
Ich möchte einen Hint ausgeben mit einem Variablennamen und dessen Wert.

Beispiel:

_a = 2;
_varname_a = ????
...

hint silent format ["%1 = %2", _varname_a, _a];

Also im Hint soll dann auch ausgegeben werden "_a = 2".

Wie kann ich den den Namen der Variable abfragen und ausgeben - egal ob sich eine Zahl, ein Objekt, ein Text oder sonst was dahinter verbirgt?
SmokyJoey ist offline  
Alt 03.12.2013, 16:57   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

Du gibts aus, je nach dem wie etwas definiert ist.
a = 2;
hint format ["%1", a];

Das gibt dann 2 aus, weil a den Wert 2 bekommen hat

Oder du baust Text mit ein: hint format [" a = %1",a];

Und der Befehl heiß nicht hint silent, sondern hintsilent

Geändert von Drunken Officer (03.12.2013 um 16:59 Uhr).
Drunken Officer ist offline  
Alt 03.12.2013, 17:44   #3 (permalink)
Newbie
 
Registriert seit: 03.11.2013
Beiträge: 23
Standard

ja soweit klar (auch hintSilent ;-) - hab ich nur im Post falsch geschrieben)

aber ich will eben den Text nicht jedes mal dazu schreiben wie die variable heißt.

Mein Ziel ist, dass ich mir während eines laufenden Scriptes via Funktion von verschiedenen Variablen die aktuellen Werte als Hint ausgebe.

in etwa so:

[_var1, _var2, _var3,......_varN] call meine_funktion;

Soweit funktionierts auch - mir werden aber nur die aktuellen Werte der Variablen ausgegeben - nicht aber der dazugehörige Variablen-Namen.

Wenn ich dann 10 Variablen gleichzeitig abfrage und mir nur deren Werte geliefert werden, wird die Zuordnung schnell unübersichtlich.
SmokyJoey ist offline  
Alt 03.12.2013, 18:13   #4 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Wie wäre es mit:
Code:
_a = 2;
_varname_a = "_a";


hint format ["%1 = %2", _varname_a, _a];
Ergibt "_a = 2"

Obwohl ich jetzt nicht verstehe, warum du nicht gleich
Code:
hint format ["_a = %1", _a];
draus machst.

Denn wenn du im Script oder in der Hintmeldung "_varname_a" haben möchtest, weißt du ja schon dass es sich um die Variable _a handelt. Dann kannst du ja gleich mit dem entsprechenden Namen abfragen da sich "_varname_a" ja gar nicht ändern kann weil diese fest definiert ist.

Geändert von JanIs (03.12.2013 um 18:22 Uhr).
JanIs ist offline  
Alt 04.12.2013, 10:30   #5 (permalink)
Newbie
 
Registriert seit: 03.11.2013
Beiträge: 23
Standard

Zitat von JanIs Beitrag anzeigen

....
Denn wenn du im Script oder in der Hintmeldung "_varname_a" haben möchtest, weißt du ja schon dass es sich um die Variable _a handelt. Dann kannst du ja gleich mit dem entsprechenden Namen abfragen da sich "_varname_a" ja gar nicht ändern kann weil diese fest definiert ist.

da ist ja mein eigentliches Problem - wie kann ich den entsprechenden namen abfragen.
Also wie ich den hint generell anlege ist nicht das Problem.
Ich möchte aber eine Funktion machen, der ich verschiedenste Variablen übergeben kann und die mir dann deren Werte liefert. Also wenn ich mir aus irgendeinem script die Werte verschiedener Variablen anzeigen lassen will, dann soll blos noch die Funktion mit den Variablen "gefüttert" werden

[_var1, _var2, _var3,......_varN] call meine_funktion;

und im Spiel soll mir dann der Hint erscheinen "Variablenname = Wert ...."

klar kann ich jetzt in jedem Script den Variablen welche ich abfragen will noch eine extra "Namensvariable" generieren und sie in die hintabfrage mit einbauen bzw die Namen "hart" in den Hint-Text reinschreiben. Aber das ist nicht was ich will.

Ich hab´s soweit, dass ich eine beliebige Anzahl von Variablen an die Funktion übergeben kann und mir auch deren Werte schön ausgegeben werden - aber eben nicht ohne deren Namen.
Wenn ich jetzt beispielsweise 10 Variablen an die Funktion übergebe und mir im Spiel ein Hint mit zehn Werten angezeigt wird - könnte ich mir klar wieder herausfieseln welcher Wert jetzt zu welcher Variable gehört - ich hab die Variablen ja der Funktion übergeben.
Aber da ist es halt schon komfortabler, wenn dann gleich der Name der Variable im Hint mit ausgegeben wird.
SmokyJoey ist offline  
Alt 04.12.2013, 14:07   #6 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Sorry, aber ohne Beispiel steig ich nicht mehr durch ...

Was ich nicht begreife ist, dass du dir den Namen ausgeben lassen willst, den du bei einer HINT-Abfrage ohnehin wissen bzw. einen Variablenwert, den du ebenfalls vorher definieren musst.
In beiden Fällen sind die Bezeichnungen bekannt.

Vielleicht kannst du echt ein konkretes Beispiel verlinken, damit wir dir unter Umständen behilflich sein können oder es zumindest versuchen.
So wird das wahrscheinlich nichts werden ...
JanIs ist offline  
Alt 04.12.2013, 15:39   #7 (permalink)
Newbie
 
Registriert seit: 03.11.2013
Beiträge: 23
Standard

okay beispielsweise ich habe in einem Script Variablen, welche sich während des Spielverlaufs ändern - sagen wir mal Geschwindigkeit, Höhe, xpos, ypos, distanz.

Diese möchte ich beobachten

so jetzt kann ich mir schon in dem script einen Hint basteln:

hintSilent format ["Geschw =%1\nHöhe = %2\nXPos = %3\nYPos = %4\nDist = %5", _geschw, _zpos, _xpos, _ypos, _dist];

Das finde ich halt recht umständlich - noch dazu wenn man mehrere Variablen beobachten will und die Hint-Anweisung immer mehr einem Rattenschwanz gleicht.

Meine Wunchvorstellung ist:

In dem Script wo ich die Variablen beobachten möchte, mache ich nur einen Funktionsaufruf - den Hint basteln soll die Funktion erledigen.

[_geschw, _zpos, _xpos, _ypos, _dist] call meineFunktion

aber dann sieht die Ausgabe irgendwie so aus:
160
300
12345.678
87654.321
230

Anderes Beispiel - ich hab mir die bis_fnc_3dCredits angeschaut und will mir hier ein paar Werte abfragen - im Moment behelfe ich mir so:

Code:
_nameArray = ["", "_text", "_pos", "_minDis", "_fadeDis", "BIS_fnc_3dCredits_n", "_display", "_control", "_w", "_h"];
    [_nameArray, _text, _pos, _minDis, _fadeDis, BIS_fnc_3dCredits_n, _display, _control, _w, _h] call meineFunktion;
aber das ist noch nicht das Gelbe vom Ei, dass ich vorher das Name-Array generieren muss
aber so funktionierts und die Hint-Ausgabe ist wie ich sie möchte:

Variablenname = Wert
Variablenname2 = Wert
VariablennameN = Wert
SmokyJoey ist offline  
Alt 30.12.2013, 00:32   #8 (permalink)
Newbie
 
Registriert seit: 03.11.2013
Beiträge: 23
Standard

Falls es jemand interessiert oder hilft - mit meinem letzten Lösungs-Ansatz bin ich am erfolgreichsten:

meine Funktion:

Code:
scriptName "wmp_showVars.sqf";

private ["_inArray", "_anzahl","_i", "_var", "_txt", "_text", "_varn"];

_inArray =  _this;
_anzahl = count _inArray;
_i = 0;
_var = nil;
_txt = "";
_text = "";

_NameArray = _inArray select _i;

_i = 1;


for "_i" from _i to (_anzahl -1) do
    {
        _var = _inArray select _i;
        _varn = _NameArray select _i;
        _txt = format ["%1 = %2\n\n", _varn, _var];
        _text = _text + _txt;
        hintSilent format ["%1", _text];
        
    };

_text;

//sleep 0.2;

_txt = "";
_text = "";
    
if (true) exitWith {};
"Grundstellung" ist:

_nameArray = [""];
[_nameArray] call wmp_ShowVars;


wenn ich mir jetzt von einem x-beliebigen Script die Werte abfragen will (beispiel Xpos, Ypos Zpos) dann mache ich in dem Script folgenden Aufruf:

Code:
_nameArray = ["", "Xpos", "Ypos", "Zpos"];
[_nameArray, Xpos, Ypos, ZPos] call wmp_ShowVars;
Ausgabe ist:

Xpos = Wert
Ypos = Wert
Zpos = Wert



Das ist zwar nicht 100%-ig gut - aber ich finde eine recht passable Lösung in x-beliebigen Scripten sich die verschiedensten Werte zum Prüfen auszugeben ohne einen ewig langen Hint generieren zu müssen.
SmokyJoey ist offline  
Alt 30.12.2013, 08:31   #9 (permalink)
10 Jahre hx3
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Saint
 
Registriert seit: 04.01.2008
Alter: 50
Beiträge: 314
Standard

wmp_ *hust*, dieser Tag kommt mir bekannt vor *hust*

btt.

Auch wenn es Zweifel gibt, ich arbeite noch immer am 8. Kapitel des Guides von Psycho. Im Thema "arrays" werde ich auf solche Dinge nochmal explizit eingehen.

wmp_, min Fründ, ich schau mal nach meiner Testmap, die ich zum erklären der Vektorfunktion setpitchbank gemacht habe. dort ändern sich permanent der Roll-Nick-Gier-Winkel und dieser wird als hint, wahlweise als funkmeldung ausgegeben. kann aber dauern, du weißt
__________________
"Um nirgends eine gähnende Leere zu lassen, wollen wir uns vorstellen, daß aller Orten und zu jeder Zeit etwas Wahrnehmbares vorhanden ist. Um nicht Materie oder Elektrizität zu sagen, will ich für dieses Etwas das Wort Substanz brauchen."

Hermann Minkowski
Saint ist offline  
Alt 30.12.2013, 09:54   #10 (permalink)
Newbie
 
Registriert seit: 03.11.2013
Beiträge: 23
Standard

Zitat:

wmp_ *hust*, dieser Tag kommt mir bekannt vor *hust*

he he - aber ich hab die Erlaubnis (von mich selbst ) den Tag zu nutzen
SmokyJoey ist offline  
Alt 30.12.2013, 10:23   #11 (permalink)
10 Jahre hx3
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Saint
 
Registriert seit: 04.01.2008
Alter: 50
Beiträge: 314
Standard

Hauptsache der Imperator hat nix gegen wmp_
__________________
"Um nirgends eine gähnende Leere zu lassen, wollen wir uns vorstellen, daß aller Orten und zu jeder Zeit etwas Wahrnehmbares vorhanden ist. Um nicht Materie oder Elektrizität zu sagen, will ich für dieses Etwas das Wort Substanz brauchen."

Hermann Minkowski
Saint 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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hint format: Variable ausgeben Egosa-U Editing & Scripting 3 30.12.2011 08:23


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