31.03.2014, 20:13 | #1 (permalink) |
Registriert seit: 31.03.2014
Beiträge: 5
|
addaction - removeAllActions
Hallo zusammen,
ich bin gerade dabei eine Art Menü (addaction) zu schreiben. Nun bin ich dabei angelang, dass ich 4 Gruppen habe (addAction["weaponmenu", "weaponmenu.sqf"] usw), nun möchte ich, dass wenn ich auf eines dieser Gruppendrücke, alle von meinen bisherigen (die anderen Gruppen) gelöscht werden und nur noch der inhalt dieser Gruppe dort steht. Der Inhalt besteht aus weiteren addactions die dann das entgültige script aufrufen. Nun habe ich ein Problem ALLE addactions die ich vorher als gruppen hatte zu löschen. Habt ihr ne Idee wie ich das machen kann? Bsp.: Code:
player addAction ["<t color=""#E8BE6F"">" +"_WeaponMenu", "scripts\arma2weaponmenu.sqf"]; player addAction ["<t color=""#D99800"">" +"_PlayerMenu", "scripthis\arma2playermenu.sqf"]; => Gruppe 1 und 2 wenn man auf sie drückt: Code:
player addAction ["<t color=""#E8BE6F"">" +"_CivClass", "scripts\arma2civclass.sqf"]; player addAction ["<t color=""#E8BE6F"">" +"_AssaultClass", "scripts\arma2assaultclass.sqf"]; player addAction ["<t color=""#E8BE6F"">" +"_SniperClass", "scripts\arma2sniperclass.sqf"]; |
31.03.2014, 22:49 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
In diesem Beispiel wird so ein Menü-System verwendet: Unterstützungen durch Helikopter und Flugzeuge
|
01.04.2014, 14:34 | #3 (permalink) |
Registriert seit: 31.03.2014
Beiträge: 5
|
Das script sieht an sich nach genau dem aus was ich such. Doch da ich leider noch nicht so bewandert bin in der arma 2 programmierung ist es schwer für mich solch ein script zu verstehen. Ich bräuchte halt so ne mustlösung wie in den wikis die Beispiele. Aber danke für deine Mühe!
|
01.04.2014, 18:42 | #4 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Du müsstes für deine Zwecke die HQ-Aktionen.sqf anpassen. Etwas Hilfe bringt dabei die Datei Info.txt. Aber wie du bereits erkannt hast, ist die Anwendung ohne Kenntnis der Skript-Sprache schwierig. Das "Verschachteln" von Aktionen ist nicht einfach zu lösen.
|
01.04.2014, 22:41 | #5 (permalink) |
Registriert seit: 31.03.2014
Beiträge: 5
|
Ich dachte zuerst das die Sprache so aufgebaut ist wie C/C# usw. Ich wollte halt einfach ne Variable _actionNumber übergeben und alle die in dieser Liste stehen werden gelöscht. Wie in c# halt: void loeschen(array _actionNumber){} usw. Arma 2 ist erstaunlich unterschiedlich zu allen Sprachen die ich bisher kenne.
|
02.04.2014, 10:08 | #6 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Ist schon ähnlich C: https://community.bistudio.com/wiki/Control_Structures
Zuerst muss du dich mit dem Befehl https://community.bistudio.com/wiki/addAction vertraut machen. Der gibt für jede Aktion eine Identifikationsnummer zurück, um eine Aktion wieder gezielt löschen zu können |
02.04.2014, 13:12 | #7 (permalink) |
Registriert seit: 31.03.2014
Beiträge: 5
|
Naja C ähnlich ist schon was anderes als nur if/else und switch ;D
Das mit den Ids hatte ich auch schon vermutet, aber ich dachte, dass am nur die Id von der Action aufrufen kann, wenn man in dem script ist also: Action.sqf Code:
player addAction["script", "aufrufen.sqf"] Code:
_caller this select 0; _id this select 2; removeAction _caller id; |
02.04.2014, 15:41 | #8 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Du kannst die IDs in einer globalen Variablen speichern, die in allen Skripten sichtbar ist. Mehrere IDs in einem Array.
http://hx3.de/editing-scripting-167/sqf-handbuch-22579/ https://community.bistudio.com/wiki/Variables https://community.bistudio.com/wiki/Array https://community.bistudio.com/wiki/...Commands_ArmA2 |
03.04.2014, 13:02 | #10 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
"Private" Variable sind die lokalen Variablen in Skripten welche mit einem Unterstrich beginnen.
z.B. _AktionID1 = player addAction [...]; player removeAction _AktionID1; Die ID der Aktion wird auch dem Skript der Aktion als Parameter übergeben. Die Aktion kann somit auch im Skript entfernt werden. Oder mit globaler Variabler (ohne beginnenden Unterstrich) in jedem Skript: AktionID1 = Tank1 addAction [...]; Tank1 removeAction AktionID1; |
Stichworte |
addaction |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Animate im AddAction funzt bei Select 0 nicht | Drunken Officer | Editing & Scripting | 1 | 01.12.2013 13:34 |
addaction und waypoints | McLaine | Editing & Scripting | 2 | 01.11.2013 19:03 |
Addaction für alle die im Flugzeug sind! | SniperIce | Editing | 7 | 25.08.2013 13:26 |
addaction für player (wenn mehrere beieinander stehen) | Wolkenbeisser | Editing & Scripting | 34 | 30.01.2013 06:27 |
addAction und hint im Multiplayer | spaccy | Editing & Scripting | 7 | 18.07.2012 20:10 |