Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 07.09.2017, 19:45   #1 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.02.2014
Beiträge: 100
Standard Script Vereinfachung, wie angehen?

Hallo Leute,

ich bräuchte da mal einen Tipp von euch.

Folgendes:

Ich habe eine Grund Datei in mein Script durch läuft. Nun nutze ich eine weitere die mit #include hinzugefügt wird und Arrys enthaltet.

In meiner Grund Datei habe ich ein Switch laufen und in diesem Switch so einen Code:

Code:
		if (_gewand == "mtp") then {_arry1 = _aC1 select 0; _arry2 = _aC1 select 1; _arry3 = _aC1 select 2; _arry4 = _aC1 select 3; _arry5 = _aC1 select 4; _arry6 = _aC1 select 5;};
		if (_gewand == "wtp") then {_arry1 = _aC1 select 6; _arry2 = _aC1 select 7; _arry3 = _aC1 select 8; _arry4 = _aC1 select 9; _arry5 = _aC1 select 10; _arry6 = _aC1 select 11;};
		if (_gewand == "jtp") then {_arry1 = _aC1 select 12; _arry2 = _aC1 select 13; _arry3 = _aC1 select 14; _arry4 = _aC1 select 15; _arry5 = _aC1 select 16; _arry6 = _aC1 select 17;};
		if (_gewand == "tda") then {_arry1 = _aC1 select 18; _arry2 = _aC1 select 19; _arry3 = _aC1 select 20; _arry4 = _aC1 select 21; _arry5 = _aC1 select 22; _arry6 = _aC1 select 23;};
Am Ende vom Case läuft das dann so ab:

Code:
	player forceAddUniform _arry1; 
	player addVest		_arry2;
	player addHeadgear	_arry3;
	player addBackpack	_arry4;
	player addGoggles	_arry5;
	player linkItem		_arry6;

Meine Überlegung nun war ob man den oberen Code nicht vereinfachen kann? Also das man im case die variable _aC1 ändert und später unten ausgibt?

In etwa so im case:
Zitat:

_v = format ["_a%1", _player];

und danach unten in etwa so:
Code:
		if (_gewand == "mtp") then {_arry1 = _v select 0; _arry2 = _v select 1; _arry3 = _v select 2; _arry4 = _v select 3; _arry5 = _v select 4; _arry6 = _v select 5;};
		if (_gewand == "wtp") then {_arry1 = _v select 6; _arry2 = _v select 7; _arry3 = _v select 8; _arry4 = _v select 9; _arry5 = _v select 10; _arry6 = _v select 11;};
		if (_gewand == "jtp") then {_arry1 = _v select 12; _arry2 = _v select 13; _arry3 = _v select 14; _arry4 = _v select 15; _arry5 = _v select 16; _arry6 = _v select 17;};
		if (_gewand == "tda") then {_arry1 = _v select 18; _arry2 = _v select 19; _arry3 = _v select 20; _arry4 = _v select 21; _arry5 = _v select 22; _arry6 = _v select 23;};
Mein Problem das er dann nicht den Inhalt mit übernimmt wie ich es gerne hätte, gibt es da eine Möglichkeit das select von meinem Arry dort rein zu tragen?

Mein Gedanke war das ich mir das ganze im Case vereinfachen würde falls mal was dazu kommt oder änderungen kommen.

Danke schon mal für eure Hilfe und Gedanken Gänge

Mfg
Sajiki
Sajiki ist offline  
Alt 09.09.2017, 17:42   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

Alles arg kompliziert.

Was soll am Ende rauskommen und was sind die Startparameter?
__________________
Bewegende Momente bei ArmA 3
Drunken Officer ist offline  
Alt 10.09.2017, 19:00   #3 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.02.2014
Beiträge: 100
Standard

Hi danke erstmal!

Also es startet ja mit einem Switch:

Code:
switch (_player) do {
    case c1: {
		if (_debug) then {hint "FTL C1"; sleep 2;};
		if (_gewand == "mtp") then {_arry1 = _aC1 select 0; _arry2 = _aC1 select 1; _arry3 = _aC1 select 2; _arry4 = _aC1 select 3; _arry5 = _aC1 select 4; _arry6 = _aC1 select 5;};
		if (_gewand == "wtp") then {_arry1 = _aC1 select 6; _arry2 = _aC1 select 7; _arry3 = _aC1 select 8; _arry4 = _aC1 select 9; _arry5 = _aC1 select 10; _arry6 = _aC1 select 11;};
		if (_gewand == "jtp") then {_arry1 = _aC1 select 12; _arry2 = _aC1 select 13; _arry3 = _aC1 select 14; _arry4 = _aC1 select 15; _arry5 = _aC1 select 16; _arry6 = _aC1 select 17;};
		if (_gewand == "tda") then {_arry1 = _aC1 select 18; _arry2 = _aC1 select 19; _arry3 = _aC1 select 20; _arry4 = _aC1 select 21; _arry5 = _aC1 select 22; _arry6 = _aC1 select 23;};
		};
    case c2: {
c1, c2, usw sind meine Spieler also Unit Einheiten.

die Variable _gewand wird über einen Button gesetzt und dem entsprechend MTP, WTP, usw.

_aC1 ist in einer eigenen Datei als Arry gesetzt wo die Ausrüstung definiert wird die dann vergeben werden soll. Das sieht so aus:

Code:
_aC1 = [
	//MTP
	"MTP_V3_Neck",
	"milgp_v_marciras_teamleader_belt_RGR",
	"milgp_h_airframe_02_RGR_hexagon",
	"8th_Falcon_FTL_Green",
	"",
	"",
	//WTP
	"WTP_V1_Neck",
	"milgp_v_marciras_tl_cbelt_WTP",
	"OpsC_WTP_v1",
	"8th_Kitbag_FTL_WTP",
	"",
	"",
	//JTP
	"JTP_V1_Neck",
	"milgp_v_marciras_teamleader_belt_RGR",
	"milgp_h_airframe_02_RGR_hexagon",
	"8th_Falcon_FTL_JTP",
	"",
	"",
	//TDA
	"U_B_CombatUniform_mcam",
	"V_Rangemaster_belt",
	"TITAN_Beret_CPT",
	"",
	"G_Tactical_Black",
	""
];
Und zum schluss füge ich das dann hinzu:

Code:
	player forceAddUniform _arry1; 
	player addVest		_arry2;
	player addHeadgear	_arry3;
	player addBackpack	_arry4;
	player addGoggles	_arry5;
	player linkItem		_arry6;
So bekommt jeder Spieler die Ausrüstung die ich vorher definiert habe. Nur würde mich es interessieren ob es auch eine einfachere Möglichkeit dafür gibt was es sicher gibt nur bin ich nicht so gut genug ^^

Ne Idee?

Mfg
Sajiki
Sajiki ist offline  
Alt 11.09.2017, 19:57   #4 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

ja, gibt es.
Wenn du von Button schreibst, handelt es sich bestimmt um einen Dialog. Der läuft lokal.

Ich würde mir aus der onload heraus MTP, WTP, JTP usw. Blöcke erstellen.

also

WTP =
{
_this forceUniform "...";
_this addWeapon "..";
};

MTP = { ..... };
WTP = {... };

Dein Ausrüstungs-Loadout kannst du dann so aufrufen (im Button definiert [hier der MTP Button]): action = "player spawn MTP";
Wird der Dialog geschlossen kannst du die Variablen wieder löschen, indem du diese auf NIL setzt

Weißt du ungefähr was ich meine?
__________________
Bewegende Momente bei ArmA 3

Geändert von Drunken Officer (11.09.2017 um 20:02 Uhr).
Drunken Officer ist offline  
Alt 12.09.2017, 07:39   #5 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.02.2014
Beiträge: 100
Standard

Nicht 100% aber ein wenig verstehe ich dich schon.

Ja ein Dialog existiert mit dem setze ich als erstes nur die Uniformen und schalte dann weitere Button frei die für die Ausrüstung zuständig sind.

Mit den Uniformen Buttons liefere ich gerade eben das "MTP" usw mit.


Das mit den Blöcken verstehe ich schon aber hätte ich da nicht das Problem das ich dann die importierte Datei nicht mehr verwenden kann?

Beispiel:

WTP =
{
_this forceUniform _arry1;
_this addWeapon _arry2;
usw.
};

Dann müsste ich ja trotzdem in der case die arry's definieren.

Ich glaub ich habs doch nicht so ganz kapiert xD
Sajiki ist offline  
Alt 13.09.2017, 10:03   #6 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

du nimmst keine Arrays, sondern gibst in den Blöcken gleich das entsprechende Teil an.
Der Array würde Sinn machen, wenn zufällig etwas aus diesem genommen wird oder mehrere Zugriffe auf diesen erfolgen.

Du nimmst packst alles rein, und läßt das einzeln die Sachen zuweisen. Da kann man es auch gleich direkt zuweisen.
__________________
Bewegende Momente bei ArmA 3
Drunken Officer ist offline  
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Beta-Patch für OpA erschienen det99 Community 1429 18.07.2014 17:51
T8 Units - Einheiten Spawn Script T-800a Editing & Scripting 2 07.03.2014 21:46
Script wird nicht vollständig ausgeführt MagicStyle Editing & Scripting 20 04.09.2013 17:54
Day & Weather Script Moerderhoschi Editing & Scripting 13 02.12.2012 11:29
marker über script erzeugen hypercop Editing & Scripting 2 28.08.2010 23:40


Kontakt - HX3.de - Archiv - Nach oben

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