Nächster Wert aus Array
Hallo zusammen.
Ich hab leider wenig Ahnung von scripts. Bisher bestand mein kontakt mit scripts immer nur aus copy+paste. Aber jetzt brauch ich was das ich noch nirgends finden konnte. Ich will zwei Action Menu Einträge, mit denen ich durch verschiedene Texturen auf einem Objekt vorwärts und rückwärts durchschalten kann. Das hab ich bis jetzt für vorwärts (nextpic.sqf): Zitat:
Mir ist klar dass mein Script wahrscheinlich großer quatsch ist und dass hier wohl eine Schleife angebracht ist. Leider kenn ich mit damit noch viel weniger aus und deswegen frag ich euch nach Hilfe. |
probier so in der art
http://community.bistudio.com/wiki/for Code:
for "_x" from 0 to 4 do |
Aufruf wie gehabt über addAction. Die Action muß dafür dem Schild angehangen werden. Das Script blättert nur vorwärts. Schreibe ein 2. für rückwärts und ändere entsprechend.
Code:
private ["acc_pic","_schild"]; Grüße |
@Xezon:
Da wird nur das letzte Bild angezeigt, sonst passiert nix. @Psychobastard: Super! Aber es erscheint ein Script Error: Lokale Variable in Globalem Bereich Line 1 Trotzdem funktionierts einwandfrei! |
...Tippfehler. Ersetze die erste Zeile mit dieser:
Code:
private ["_acc_pic","_schild"]; |
Zitat:
Is jetzt hier als C++, aber das Prinzip ist das selbe. Das wichtige hierbei ist dass ein Array immer ein Zeiger (pointer) ist. Mit der variable selbst, wie z.B. dein "_Bilder" kannst du nichts machen. Aber du kannst die Objekte auf die dein "_Bilder" zeigt ansprechen. Das sind hier in dem Fall deine "1.paa" usw Zeichenketten (strings). Und das machste mit einem string = _Bilder select zahl |
Du brauchst zwei globale Variable die du z.B. in der init.sqf initialisierst:
MeineBilder = ["1.paa","2.paa","3.paa","4.paa","5.paa"]; MeinIndex = 0; In den Aktionen stellst du den Index rauf oder runter: Rauf: MeinIndex = MeinIndex + 1; if (MeinIndex > count MeineBilder - 1 ) then {MeinIndex = count MeineBilder - 1}; Schild setObjectTexture [0,MeineBilder select MeinIndex]; Runter: MeinIndex = MeinIndex - 1; if (MeinIndex < 0) then {MeinIndex = 0}; Schild setObjectTexture [0,MeineBilder select MeinIndex]; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 Uhr. |
Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias