14.05.2010, 14:13 | #1 (permalink) |
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 39
Beiträge: 2.666
|
Ultimative Waffenkiste
Servus miteinander,
Ich suche schon seit einer weile ein script oder sonstige loesung und eine Waffenkiste mit allen verfuegbaren Waffen darin zu erstellen um mir beim Testen solcher immer die 20 verschiedenen waffenkisten zu sparen. Alle einzeln adden kann sich glaub jeder vorstellen ist ein zu großer aufwand und alle classnames kenn ich ja auch nicht,vorallem wenn ich Mods wie ACE und Co aktiviert habe. In der Waffenkammer bekommt man ja alle Waffen angezeigt ( auch die von aktivierten Mods ) jetzt haett ich die nur noch gerne alle in einer einzigen Waffenkiste, das waere echt super wenn jemand dafuer eine loesung haette. Ich hatte das ganze so aehnlich schonmal bei ArmA 1, das war ne Snipertestmission von brh ( brh_sniperRange ) da konnte man an eine Waffenkiste ran und per Menue alle Waffen auswaehlen die es gab, das war echt super nur leider weiß ich nicht wie die das gemacht haben und selber habe ich auch nicht soviel ahnung von der Materie. aber vllt hilfts jemanden wenn ich denn Quellcode vom Script von welchem ich glaub damit es dafuer verantwortlich ist hier reinstelle, waere echt super wenn das jemand hinbekommt. addWeapon.sqf Code:
private ["_exceptions","_i","_name","_wepSel","_mags","_index"]; sleep 0.1; brh_dialog = createDialog "RscAddWeapon"; _exceptions = ["M134","M134_2","TwinM134","TwinVickers","GSh301"]; for "_i" from 1 to ((count (configFile >> "CfgWeapons"))-1) do { _name = configName ((configFile >> "CfgWeapons") select _i); if (((getNumber (configFile >> "CfgWeapons" >> _name >> "scope"))==2) && (!(_name in _exceptions))) then {_index = lbAdd[3101,(getText (configFile >> "CfgWeapons" >> _name >> "displayName"))];lbSetData[3101,_index,_name]}; }; ctrlEnable[3103,false]; buttonSetAction[3103,"ammobox1 addWeaponCargo [lbData[3101,lbCurSel 3101],1];ammobox1 addMagazineCargo [lbData[3102,lbCurSel 3102],30];closeDialog 3100;hint (localize ""STR_weaponCreated"")"]; buttonSetAction[3104,"closedialog 3100"]; _wepSel = -1; while{dialog} do { waitUntil{(!dialog) || (_wepSel!=(lbCurSel 3101))}; if (_wepSel!=(lbCurSel 3101)) then { _wepSel = lbCurSel 3101; if (_wepSel>-1) then {ctrlEnable[3103,true]} else {ctrlEnable[3103,false]}; _name = lbData[3101,_wepSel]; _mags = []; { if (_x=="this") then {_mags = _mags + (getArray (configFile >> "CfgWeapons" >> _name >> "magazines"))} else {_mags = _mags + (getArray (configFile >> "CfgWeapons" >> _name >> _x >> "magazines"))}; } forEach (getArray (configFile >> "CfgWeapons" >> _name >> "muzzles")); lbClear 3102; { _index = lbAdd[3102,getText (configFile >> "CfgMagazines" >> _x >> "displayName")]; lbSetData [3102,_index,_x]; } forEach _mags; lbSetCurSel[3102,0]; }; sleep 0.01; }; gruß Moerderhoschi |
18.05.2010, 12:37 | #2 (permalink) |
Registriert seit: 17.01.2008
Beiträge: 267
|
Versuchs mal hiermit.
Habs grad freihand aus einem anderen Script von mir zusammengeschnipselt, ungetestet. Sollte aber eigl. klappen. Ich persönlich finds besser die Waffen aus mehrere Kisten aufzuteilen weil es einfach verflucht viele sind. Code:
_rootclass = "cfgWeapons"; _count = count (configFile >> _rootclass); // ownbox <-- Name der Kiste for [{_x=0}, {_x<_count}, {_x=_x+1}] do { sleep 0.001; _obj=(configfile >> _rootclass) select _x; _weapon = configName _obj; _init = format ["this addWeaponCargo ['%1',10]",_weapon]; ownbox setVehicleInit _init; processInitCommands; _mags = (configfile >> _rootclass >> _weapon >> "magazines"); _mags=(getArray _mags); _mcount = count _mags; for [{_y=0}, {_y<_mcount}, {_y=_y+1}] do { sleep 0.001; _mag = _mags = select _y; _init = format ["this addMagazineCargo ['%1',20]",_mag]; ownbox setVehicleInit _init; processInitCommands; }; };
__________________
|
18.05.2010, 14:00 | #3 (permalink) |
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 39
Beiträge: 2.666
|
Erstmal danke fuer deine muehe!
Habe es gerade geteste nur leider klappt es bei mir nicht. Ich hab das geschriebene in eine " ownbox.sqs " gepackt die ich dann in meinen missionsordner eingefuegt habe. Ingame habe ich dann eine Waffenkiste mit namen " ownbox " und dem befehl bei Init " this exec "ownbox.sqs" " eingefuegt und auf vorschau geklickt. Beim laden der Mission bekomme ich eine fehlermeldung " no entry 'bin\config.bin/cfg.Magazines.array'. ". Wenn ich dann in der mission bin ist die waffenkiste ganz normal bestueckt, also spielstandart. Wenn ich bei der Initzeile vorher noch die parameter " clearweaponcargo this;clearmagazinecargo this; " eingebe, habe ich in der Mission bei der kiste außer ausruesten noch " nehmen " zur auswahl, dies hat aber keinen effect |
18.05.2010, 15:48 | #4 (permalink) |
Registriert seit: 04.01.2010
Beiträge: 63
|
vielleicht nicht sqs sondern sqf nehmen... dann halt mit execVM oder call/spawn aufrufen (letztere 2 müssen aber im vorraus compiliert werden)
ich bin mir nicht mehr sicher, ist ewig her als ich noch mit sqs gearbeitet hab, aber ich glaub mit klammern und so hats sqs nicht... |
18.05.2010, 16:12 | #5 (permalink) |
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 39
Beiträge: 2.666
|
habe sqs in sqf umbenannt, hat nichts gebracht, selbes spiel wie bei sqs. jetzt solltest du mir nur noch erklaeren was das auf deutsch heisst . wenn ich this execvm "ownbox.sqf" eingeben will kommt immer " Typ Script, erwartet Nichts " |
18.05.2010, 16:37 | #7 (permalink) |
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 39
Beiträge: 2.666
|
Danke fuer den tipp. Ich hab das jetzt so in die init zeile der waffenbox geschrieben und diesmal kahm auch keine fehlermeldung, jedoch nach wie vor nur standartequipment in der waffenkiste drin |
18.05.2010, 17:56 | #8 (permalink) |
Registriert seit: 17.01.2008
Beiträge: 267
|
Jo, mit sqs wird da garnix gehen. Ist ein SQF script.
Ich probiers nachher wenn ich zuhause bin selbst mal aus und stell dann unter Umständen ne korrigierte Version rein. Bis dahin hier nochmal im Detail: in die init von der Kiste schreibst du dashier: Code:
nul=[this] execVM "loadstuff.sqf"; Code:
_rootclass = "cfgWeapons"; _count = count (configFile >> _rootclass); _ownbox = _this select 0; clearMagazineCargo _ownbox; clearWeaponCargo _ownbox; player globalChat "test"; for [{_x=11}, {_x<_count}, {_x=_x+1}] do { sleep 0.001; _obj = (configFile >> _rootclass) select _x; _weapon = configName _obj; player globalChat format ["%1 ::: %2",_x,_weapon]; _init = format ["this addWeaponCargo ['%1',10]",_weapon]; _ownbox setVehicleInit _init; processInitCommands; if (_weapon != "" && _weapon != "access" && _weapon != "Default") then { _mags = getArray (configfile >> _rootclass >> _weapon >> "magazines"); _muzzles = getArray (configfile >> _rootclass >> _weapon >> "muzzles"); _mcount = count _mags; for "_i" from 0 to ((count _muzzles) - 1) do { _muzzle = _muzzles select _i; _muzzleClass = (configfile >> _rootclass >> _weapon >> _muzzle); _muzzleMags = getArray (_muzzleClass >> "magazines"); for "_k" from 0 to ((count _muzzleMags) - 1) do { _magazine = _muzzleMags select _k; if !(_magazine in _mags) then { _init = format ["this addMagazineCargo ['%1',20]",_magazine]; _ownbox setVehicleInit _init; processInitCommands; }; }; }; }; };
__________________
Geändert von Tajin (18.05.2010 um 20:19 Uhr). |
18.05.2010, 20:30 | #9 (permalink) |
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 39
Beiträge: 2.666
|
SAUBAER!!!
Das ganze funktioniert soweit ganz gut. Vielen dank fuer deine excellente hilfe Tajin, du hast es echt drauf. Auch dem Rest moechte ich fuer die Ratschlaege danken und wuensch euch allen noch einen schoenen Abend. Ich bin dann mal im Editor ein bisschen mit zielscheiben, weich&hardzielen und meiner neuen Ultimativen Waffenkiste rumtesten nochmal großes DANKE! gruß Moerderhoschi Anhang: nachdem ich jetzt ne weile im Editor getestet habe ist mir aufgefallen damit fuer saemtliche waffen die magazine leider noch fehlen. nur die granaten fuer die granatenwerfer sind vorhanden und ein magazin und zwar das des MG36. wenn du nochmal zeit findest koenntest du dann vllt. noch schauen ob du die anderen magazine noch mit reinscripten kannst, waere echt super. Geändert von Moerderhoschi (18.05.2010 um 23:15 Uhr). |
19.05.2010, 08:26 | #10 (permalink) |
Registriert seit: 17.01.2008
Beiträge: 267
|
Hmhm, is klar. Da hatte ich auf die Schnelle nen Denkfehler.
Hier nochmal. Code:
_rootclass = "cfgWeapons"; _count = count (configFile >> _rootclass); _ownbox = _this select 0; clearMagazineCargo _ownbox; clearWeaponCargo _ownbox; player globalChat "test"; for [{_x=11}, {_x<_count}, {_x=_x+1}] do { sleep 0.001; _obj = (configFile >> _rootclass) select _x; _weapon = configName _obj; player globalChat format ["%1 ::: %2",_x,_weapon]; _init = format ["this addWeaponCargo ['%1',10]",_weapon]; _ownbox setVehicleInit _init; processInitCommands; if (_weapon != "" && _weapon != "access" && _weapon != "Default") then { _mags = getArray (configfile >> _rootclass >> _weapon >> "magazines"); _muzzles = getArray (configfile >> _rootclass >> _weapon >> "muzzles"); _mcount = count _mags; for "_i" from 0 to ((count _muzzles) - 1) do { _muzzle = _muzzles select _i; _muzzleClass = (configfile >> _rootclass >> _weapon >> _muzzle); _muzzleMags = getArray (_muzzleClass >> "magazines"); for "_k" from 0 to ((count _muzzleMags) - 1) do { _magazine = _muzzleMags select _k; if !(_magazine in _mags) then { _mags = _mags + [_magazine]; }; }; }; for "_i" from 0 to ((count _mags) - 1) do { _init = format ["this addMagazineCargo ['%1',20]",_mags select _i]; _ownbox setVehicleInit _init; processInitCommands; }; }; };
__________________
|
08.08.2012, 10:30 | #13 (permalink) |
Registriert seit: 08.08.2012
Beiträge: 2
|
Moin moin ich hätte da mal eine frage und zwar wo muss ich das script reinschreiben bzw wie erstelle ich so eine datei wo das drin steht . Würde gerne auch so eine waffen box in einer coop mission einbauen wenn das möglich ist.
|
08.08.2012, 14:08 | #14 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Das Skript ist nicht brauchbar. Es ist zu viel "Müll" in der Munikiste.
Schau in diesem Thread nach: Kiste mit allen Waffen |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|