HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   format String in der Description.ext (https://hx3.de/editing-scripting-167/format-string-description-ext-22781/)

Gouge_away 06.08.2013 22:31

format String in der Description.ext
 
Hi Leute!

Bin neu hier und hab direkt eine etwas spezielle Frage. Wär super, wenn ihr mir helfen könnt! :D

Und zwar versuche ich, eine Variable, die ich bereits in der init definiert habe, als Dialog (Text) anzeigen zu lassen. Die Variable heißt "Cash" und besteht aus einer Zahl. Soweit ich weiß, muss ich dieser ja mithilfe von format in einen String verwandeln.

Bis jetzt sieht die Subklasse in meiner Description.ext so aus:

class Cashanzeige: RscText
{
idc = -1;
style = ST_LEFT;
text = (format ["%1",Cash]);
x = 0;
y = 0;
w = 0.75;
h = 1;
};

Aber das gibt lediglich '(format ["%1",Cash])' aus, und nicht die Variable an sich... :(

Pfandgiraffe 07.08.2013 11:42

Hi,

ganz so einfach ist es nicht. In der description.ext definierst du lediglich deine Ressource, kannst hier aber nicht direkt die Variable abfragen bzw. Anzeigen lassen.

Da du keine statische Anzeige hast sondern dir einen veränderlichen Wert ausgeben lassen möchtest musst du der Ressource auch einen idc höher -1 zuweisen um diese ansprechen zu können. Wichtig ist, dass jeder idc nur einmal vorhanden ist. Dann könnte deine Definition z.B. so aussehen:

Code:

class Cashanzeige {
    idd = 5000;
    movingEnable = true;
    enableSimulation = true;
    onLoad = "[] execVM 'update_my_var.sqf'";

    class controlsBackground {};

    class controls {
        class Cashanzeige_text: RscText {
                  idc = 5001;
                  style = ST_LEFT;
                  text = "platzhalter";
                  x = 0;
                  y = 0;
                  w = 0.75;
                  h = 1;
          };
    };
};


Wenn du deine Ressource jetzt öffnen, also anzeigen lassen willst startest du diese per
Code:

openDialog "Cashanzeige";

Der Inhalt des Scriptes update_my_var.sqf sorgt jetzt dafür das deine Variable abgefragt und in den "platzhalter" eingesetzt wird. Das Script wird automatisch bei Aufruf des Dialoges gestartet.

update_my_var.sqf:
Code:

disableSerialization;
_dialog = findDisplay 5000;
_cash = _dialog displayCtrl 5001;

if (!isNil "Cash") then {_cash ctrlSetText (str(Cash))} else {_cash ctrlSetText "Var Cash nicht definiert!"};


Keine Gewähr auf Funktionalität des Dialoges da aus dem Bauch raus geschrieben! Auch die Grunddefinitionen werden noch fehlen. Siehe hierzu:

http://community.bistudio.com/wiki/Dialogs


Ein schwieriges Thema für einen Neuling.



Grüße

Gouge_away 07.08.2013 19:05

Danke!! :D
Funktioniert einwandfrei, genau wie ich's mir vorgestellt hab. Großes Lob an dich! Bin erstaunt, wie schnell mir hier geholfen wurde. Dachte schon, ich hätte ewig vor diesem Script versäuern müssen... ;)

Pfandgiraffe 07.08.2013 22:40

Das erstaunt mich sogar selbst dass das auf Anhieb funktioniert. Ich hasse es Dialoge zu schreiben.


Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr.

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 120