HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Addaction probleme (https://hx3.de/editing-scripting-167/addaction-probleme-22892/)

Gonzo1690 08.09.2013 15:57

Addaction probleme
 
undzwar habe ich einem Laptop eine funktion mit (this addAction ["Übung Schiessbahn 1","bahn.sqf"]) in die init-zeile des laptops geschrieben. (ohne die klammern)

Ich habe auch die funktion ingame zum anwählen.Das problem ist das der irgendwie das script nicht ausführt!


Code:

TitleTextFormat ["%1 Sekunden","Plain Down",_Zeit];
_inc    = 0;
_count  = 0;
_targets = [scheibe1,scheibe1_1,scheibe1_2,scheibe1_3,scheibe1_4,scheibe1_5,scheibe1_6];
_many    =  count _targets;
nopop=true;
{_x  animate["terc",1]} forEach _targets;

hint "Schiessbahn wird vorbereitet";
sleep 2;
hint "Fertig";
sleep 2;


while {_inc<12} do
{
_rnumber = random _many-1;
_rtarget = _targets select _rnumber;
_rtarget animate["terc", 0];
sleep 3;
 if (_rtarget animationPhase "terc" > 0.1) then
{
                _count = _count+1;
                    };
  hint format ["targets :%1 hits :%2",_inc+1,_count];
_rtarget animate["terc", 1];
_inc = _inc + 1;
};
sleep 5;
hint "Schiessuebung fertig";


könnt ihr euch das evtl. mal angucken? ich weiss nich was da falsch ist.Er sagt auch nicht das er die datei nicht findet.
Klicke auf die funktion aber nix passiert.


mfg gonzo

Vienna 08.09.2013 18:50

Lösche die erste Zeile (so eine Textausgabe gibt es nicht) und schau ob dann beim Aufruf der erste hint-Text angezeigt wird.

Gonzo1690 08.09.2013 19:57

werde ich mal versuchen

Gonzo1690 11.09.2013 15:14

hat geklappt danke!

aber nun habe ich noch ein problem.

Undzwar geht es darum das ich 3 Schiessbahnen habe.
Ich habe nun einfach das script im ordner dupliziert und umbenannt und die targets angepasst.
Aber nun ist das problem wieder , das wenn ich es anklicke es nur laggt und nichts passiert auf der bahn2. Bahn1 funktioniert soweit.

this addAction ["Übung Schiessbahn 2","bahn2.sqf"

Hoffe man versteht was ich meine.

Vienna 11.09.2013 15:53

Ich nehme an, dass du -außer dem neuen Skriptnamen und darin die neuen Zielenamen- auch in der neuen Aktion den neuen Skriptnamen verwendest. Dann müsste das funktionieren, wenn du alles korrekt gemacht hast.

Im Skript gibt es die globale Variable nopop, die gilt für beide Skripte. Ich habe keine Ahnung wofür die gebraucht wird, aber hier könnte vielleicht der Fehler liegen.


Verwendest du beim Starten vom ArmA nicht den Parameter -showScriptErrors ? Ich frage, weil dir anscheinend Skriptfehler nicht angezeigt werden.

Darüber findest du was in dieser Anleitung auf Seite 10. http://hx3.de/editing-scripting-167/...79/#post458219

Gonzo1690 11.09.2013 17:13

ich verwende den arma2Luncher . ich weiss leider nicht wo ich diese parameter in dem luncher angeben kann ^^

Gonzo1690 11.09.2013 17:19

schon gefunden ^^

Gonzo1690 11.09.2013 17:24

das schmeisst er mir raus!

http://s1.directupload.net/images/130911/ogwd8zu7.jpg

Gonzo1690 11.09.2013 17:27

hab den fehler gefunden ^^

hatte ausversehen 2 "]" am ende der targets

Gonzo1690 11.09.2013 17:32

so nun sagt er mir während des scriptes das hier:

http://s14.directupload.net/images/130911/w38k3fjj.jpg


was ist das fürn fehler?

AHTNTEPPOP 11.09.2013 17:34

@Gonzo1690
Bitte die editier Funktion benutzen.

[GNC]JamesRyan 12.09.2013 00:22

Dann müsstest du nochmal das aktuelle Skript posten, ich blicke nicht mehr durch, was jetzt noch mit dem oben geposteten übereinstimmt. Scheinbar kann er den select-Befehl nicht ausführen, da wohl ein ungültiger Index genutzt wird, dieser ist aber in der Variable _many enthalten bzw. in _rnumber. Das kann man so schwierig nachvollziehen, daher lieber nochmal das Skript mit deinen letzten Änderungen. An sich sieht alles gut aus: es wird mit count gezählt, mit random zufällig mit -1 eine Zahl ausgewählt und dann aus dem Array selektiert.

Gonzo1690 12.09.2013 00:55

hier noch einmal das script:

Code:

_inc    = 0;
_count  = 0;
_targets = [scheibe3,scheibe3_1,scheibe3_2,scheibe3_3,scheibe3_4,scheibe3_5,scheibe3_6];
_many    =  count _targets;
nopop=true;
{_x  animate["terc",1]} forEach _targets;

hint "Schiessbahn wird vorbereitet";
sleep 4;
hint "Fertig";
sleep 4;
hint "Fertig machen zum feuern";
sleep 3;

while {_inc<12} do
{
_rnumber = random _many-1;
_rtarget = _targets select _rnumber;
_rtarget animate["terc", 0];
sleep 2;
 if (_rtarget animationPhase "terc" > 0.1) then
{
                _count = _count+1;
                    };
  hint format ["targets :%1 hits :%2",_inc+1,_count];
_rtarget animate["terc", 1];
_inc = _inc + 1;
};
sleep 5;
hint "Schiessuebung fertig";


habe nur die erste zeile gelöscht (Siehe ersten beitrag)
Und nur einen neuen hint befehl geschrieben.

[GNC]JamesRyan 12.09.2013 06:57

Habe hier im Urlaub leider keinen ArmA-Rechner, aber ich denke, das Minus ist zu nah am vorherigen, sprich ohne Leerzeichen, probiers einfach mal:

Quatsch, das Problem ist random! Random erzeugt Fließkommazahlen, eben selbst im SQF-Handbuch noch erklärt. Du kannst aber mit select logischerweise nur ganze Zahlen verwenden, daher musst du random immer runden!

PHP-Code:

_rnumber random _many-1

sollte zu

PHP-Code:

_rnumber round (random (_many 1)); 

werden. Damit sind Zahlen von 0,1,2...bis eben eins weniger als Elemente in targets möglich.

Klammern optional, hier aber doch eigentlich schöner...;)

Vienna 12.09.2013 11:19

Hier ist ersichtlich wie man random für Arrays verwendet: http://hx3.de/editing-scripting-167/...26/#post431885


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 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