Ja, habe ich ja. Steht ja auch so in der angehängten Datei.
In welcher angehängten Datei?
Sehe nur deinen (fehlerhaft) abgewandelten Code.
Ja, habe ich ja. Steht ja auch so in der angehängten Datei.
In welcher angehängten Datei?
Sehe nur deinen (fehlerhaft) abgewandelten Code.
Nach wie vor schlage ich dir vor es lokal in einer leeren Mission zu testen.
Dafür brauchst du die Altis Life defines, description.ext (für die Definition von Dialogen und Functions) und den Dialog und das Script selbst.
Geht 1000x schneller als es jedes mal auf dem Server zu testen.
Dafür kannst du sogar parts aus dem Altis Life Framework nehmen also fast copy&paste.
Mit freundlichen Grüßen
Joe Barbaro
Henne Jap, auch ohne das false tut sich da nichts. Die 1 ist in der Datei ja mit der 200 ersetzt ^^.
Sende doch einfach deinen aktuellen Code. Dann ist direkt klar wie es aktuell ist.
Wenn du wirklich nur das false entfernt hast, dann steht da immer noch ein Komma. Das sollte in der Log auf jeden Fall Fehler werfen.
Ich denke wir haben noch ein anderes Problem.
Die Syntax von dir scheint einen Fehler zu beinhalten, oder ich habe was verbockt.
20:12:08 Error in expression <Enable (_control lbValue _selectedIndex isEqualtTo 200);>
20:12:08 Error position: <isEqualtTo 200);>
20:12:08 Error Missing )
20:12:08 File functions\fn_meineFunktion.sqf [TAG_fnc_meineFunktion]..., line 5
20:12:08 Error in expression <Enable (_control lbValue _selectedIndex isEqualtTo 200);>
20:12:08 Error position: <isEqualtTo 200);>
20:12:08 Error Missing )
20:12:08 File functions\meineFunktion.sqf [TAG_fnc_meineFunktion]..., line 5
isEqualtTo
Ich lasse das einfach mal unkommentiert.
Sorry, aber beim Lesen können wir nicht helfen.
Btw: Generell ist es gut, damit man die Lesbarkeit deiner Skripte steigert, mit Klammern zu arbeiten.
Bsp.:
Die Klammer fehlen generell, sonst wäre der Error anders gewesen. Auf den Schreibfehler wäre ich gekommen, sobald die Syntax richtig gewesen wäre, aber vielen Dank für deine Hilfe.
Ich werde es gleich mal austesten.
Das Arma Wiki ist im Bezug auf die Kombination von eben solchen Sachen leider nicht gerade sehr hilfreich.
Ich denke wir haben noch ein anderes Problem.
Die Syntax von dir scheint einen Fehler zu beinhalten, oder ich habe was verbockt.
Wie bereits Basti0208 dir gezeigt hat, hast du "isEqualtTo" geschrieben.
Hättest du einfach meinen Code kopiert, so wie ich es dir gesagt habe, wäre der Fehler behoben gewesen.
Dies ist übrigens nicht der Code den du haben willst: _button ctrlEnable (_control lbValue (_selectedIndex isEqualTo 200));
Denn so wird erst "isEqualTo" aufgelöst und dann ein Boolean als Parameter für "lbValue" gesetzt. Somit gibt es nur wieder einen Syntaxfehler, da "lbValue" eine Number erwartet. Die inneren Klammern sind damit fehlplatziert.
Es werden auch keine weiteren Klammern benötigt, ansonsten hätte ich diese schon geschrieben.
Denn ohne den inneren Klammern, wird erst die "lbValue" aufgelöst und danach die Value mit "isEqualTo" verglichen.
Das Arma Wiki ist im Bezug auf die Kombination von eben solchen Sachen leider nicht gerade sehr hilfreich.
Das Wiki ist sehr hilfreich und bis auf wenige Außnahmen auch gut dokumentiert. Man muss es nur lesen und verstehen.
Was du jetzt aber mit "eben solche Sachen" meinst, ist mir nicht klar.
Naja, im Wiki ist die Syntax für Fälle wie diese unzureichend erläutert. Vor allen Dingen wundert es mich, dass wenn er mir den Fehler fehlende ( auswirft, trotzdem keine braucht.
Aber ich denke das liegt am Tippfehler.
Ich habe jetzt alles angepasst und erneut getestet. Es tut sich leider immer noch nichts.
Ich hänge euch alles , was benötigt wird, nochmal an.
Alles anzeigenNach wie vor schlage ich dir vor es lokal in einer leeren Mission zu testen.
Dafür brauchst du die Altis Life defines, description.ext (für die Definition von Dialogen und Functions) und den Dialog und das Script selbst.
Geht 1000x schneller als es jedes mal auf dem Server zu testen.
Dafür kannst du sogar parts aus dem Altis Life Framework nehmen also fast copy&paste.
Mit freundlichen Grüßen
Joe Barbaro
Mir hört ja keiner zu...
Joe Barbaro Doch, aber warum sollte ich den gleichen Code, der nicht funktioniert, noch mal in den Singleplayer übertragen? Die 2 Minuten, die der Server startet, gönne ich mir .
Joe Barbaro Doch, aber warum sollte ich den gleichen Code, der nicht funktioniert, noch mal in den Singleplayer übertragen? Die 2 Minuten, die der Server startet, gönne ich mir .
Naja weil du erstens andere Fehlerquellen dardurch ausschließen kannst und zweitens nicht mal einen Bruchteil der Zeit brauchst.
Abgesehen davon ist es doch mal ne Idee sowas zu probieren statt immer auf dem selben Fehler zu sitzen oder?
Naja, im Wiki ist die Syntax für Fälle wie diese unzureichend erläutert.
Stimmt, ist wirklich schlecht beschrieben.
Quelle: https://community.bistudio.com/wiki/ctrlEnable
Es tut sich leider immer noch nichts.
Wo wir wieder beim Thema lesen wären.
Mein Code, den du einfügen wolltest: onLBSelChanged = "[_this] call <TAG>_fnc_MeineFunktion";
Dein Code, den du eingefügt hast: onLBSelChanged = "[] call TAG_fnc_MeineFunktion;";
Dadurch fehlen natürlich die Parameter und der Code weiß nicht was er machen soll.
Zudem heißt deine Funktion vorhin ja noch so: XY_fnc_wanted_ListBox_check
Oder hast du sie jetzt zu TAG_fnc_MeineFunktion umbenannt?
Das ist absolut verwirrend, wenn du den Namen tauscht, oder mit Absicht nur den halben Code sendest.
In all dem Stress passiert das mal. Die Funktionen habe ich einfach nur anders benannt.
Nachdem _this eingefügt worden ist kommt nun folgende Fehlermeldung:
16:06:45 Error in expression <, "_selectedIndex"];
private _button = ctrlParent _control displayCtrl 1111;
_>
16:06:45 Error position: <ctrlParent _control displayCtrl 1111;
_>
16:06:45 Error ctrlparent: Typ Array, erwartet Control
zu diesem Code:
Nachdem _this eingefügt worden ist kommt nun folgende Fehlermeldung:
Sehe es gerade, der Code muss natürlich so aussehen: _this call <TAG>_fnc_MeineFunktion
Also ohne den Klammern um die Parameter (_this).
Jetzt läufts, nun kommen wir aber direkt ins nächste Becken von Problemen gerutsch.
Jetzt wird der Button beim anklicken des überwachten Elements deaktiviert, aber nicht mehr reaktiviert, sobald ich ein anderes, nicht überwachtest Element auswähle. Der Button soll sich ja nur bei bestimmten Elementen deaktiviert und bei den anderen aktiviert sein. Ich habe deshalb mal folgendes probiert:
if (_selectedIndex isEqualTo 200 || 201) then
{
_button ctrlEnable false;
};
else
{
_button ctrlEnable true;
};
{
_button ctrlEnable false;
};
else
{
_button ctrlEnable true;
};>
20:47:27 Error position: <{
_button ctrlEnable true;
};>
20:47:27 Error Missing ;
20:47:27 File functions\fn_wanted_ListBox_check.sqf [XY_fnc_wanted_ListBox_check]..., line 12
20:47:27 Error in expression <n
{
_button ctrlEnable false;
};
else
{
_button ctrlEnable true;
};>
20:47:27 Error position: <{
_button ctrlEnable true;
};>
20:47:27 Error Missing ;
Alles anzeigen
Wie in der Fehlermeldung zu sehen ist, mag er aber wohl die Syntax nicht. Wir hatte das Problem schon mal, es muss also mit an dem true, false liegen, doch wie deklariere ich sonst was zu tun ist? Habe ich was übersehen oder muss ich das anders ausdrücken?
Oder habe ich tatsächlich irgendwo noch was anderes übersehen?
Dann nimm doch vor dem Else das Semikolon weg
Ahhhh, das tat weh...
Ist das ansonsten so machbar? (Im Bezug auf true und false?).
Jetzt läufts, nun kommen wir aber direkt ins nächste Becken von Problemen gerutsch.
Jetzt wird der Button beim anklicken des überwachten Elements deaktiviert, aber nicht mehr reaktiviert, sobald ich ein anderes, nicht überwachtest Element auswähle. Der Button soll sich ja nur bei bestimmten Elementen deaktiviert und bei den anderen aktiviert sein. Ich habe deshalb mal folgendes probiert:
Tur mir leid, dass ich das jetzt so schreibe. Aber das sieht so aus, als ob dir die Grundlagen fehlen.
Das erste Problem habt ihr ja bereits gelöst. Da hast du vor dem else ein Semikolon gesetzt.
Das zweite Problem ist deine Bedingung der if-Abfrage.
Du vergleichst hier einmal _selectedIndex mit der Zahl 200. Also wenn in der Liste der 201ste Eintrag ausgewählt ist, ist diese Bedingung wahr.
Oder Zahl 201. Der PC weiß aber nicht was er mit der 201 machen soll.
Siehe dir daher nochmal umbedingt an, wie Bedingungen geschrieben werden.
Dann überlege, wann soll was passieren. Stelle dir dabei das ganze als Satz vor, z.B.: Wenn aus der Liste, die Value der selektierter Zeile gleich 200 ist.
Das wäre dann folgendes Ergebnis: _control lbValue _selectedIndex isEqualTo 200
Als weiterer Hinweis. Eine Bedingung ist immer ein Boolean, also ein Wahrheitswert (true/false). Warum willst du das dann in eine if-Abfrage setzen, um dann in der if-Abrage den Button zu de/aktivieren.
Du kannst die Bedingung bereits direkt dem Button übergeben, so wie ich es ja bereits getan habe.