17.01.2010, 13:29 | #1 (permalink) |
Kistenabwurf - wie kriege ich Waffen in einen Container?
hallo liebe com,
ich würde gern versorgungscontainer mit ausrüstung abwerfen. das script dazu ist fertig und funktioniert auch wie es soll, aber es gibt zwei wesentliche probleme: 1. problem: anscheinend kann man in die container unter "military objects" kein weaponcargo einfügen - warum nicht? kann ich es doch irgendwie hinbekommen? die ammoboxen sind zu hässlich für den abwurf und hängen auch nach viel probieren mit den positionswerten nicht ordnungsgemäß am schirm. 2. problem: gegenstände, die an einem frachtschirm hängen, tauchen unten angekommen völlig in den boden ein (BIS - ihr seid so schlecht... ). gibt es eine möglichkeit - außer den schirm vielleicht vorher zu deleten, dass die gegenstände ordnungsgemäß abgesetzt werden? fahrzeuge sind nicht so das problem, denn sie springen kurz darauf wieder aus dem boden heraus und stellen sich hin. aber kisten und container z.b. bleiben verschwunden. hänge ich die gegenstände an einen gleitschirm, tauchen sie bei bodenkontakt nur minimal ein und sind weiter benutzbar. der frachtschirm wär mir manchmal aber lieber. ein m1 an einem kleinen gleitschirm sieht einfach... das muss ich nicht zu ende schreiben. am vordergründigsten aber ist problem 1. wie kriege ich die military container cargofähig? da gibt es sogar abwurfcontainer mit netz drumherum, aber bislang krieg ich nix rein. danke für eure hilfe. gruß feuerwerker
__________________
Lasst mich durch - ich bin Privatpatient!!
Geändert von Feuerwerker (17.01.2010 um 13:32 Uhr). |
|
17.01.2010, 13:38 | #2 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
1. Problem:
Versuche das: Code:
munikiste attachTo [Fallschirm, [0,0,-2]]; 2. Problem: Wenn hier einer schlecht ist, dann du. Frag halt einfach die Höhe zum Boden ab und wenn sie nur noch 1 oder 2 Meter beträgt, dann detache einfach die Kiste wieder. Fertig. Dann bleibt der Fallschirm bestehen, aber die Kiste wird detacht.
__________________
|
17.01.2010, 14:16 | #3 (permalink) |
Cyborg11 - ich möchte mich mit dir nicht streiten, aber darüber, dass BIS seit OFP das schlechte kollisionssystem nicht entscheidend verändert hat, brauchen wir wirklich nicht weiter zu diskutieren...
natürlich ist auch der befehl attachto bestandteil meines scripts, aber der wert -2 hilft mir nicht weiter. auch damit hängt die kiste etwa 2-3 meter unter dem fallschirm und das sieht nicht gut aus. ich sagte ja - das spielen mit den werten hat bei mir nichts gebracht. den detach-befehl kann man natürlich nehmen, wird aber nie ganz perfekt sein, da das objekt ja sofort in der umgebung anhält, wenn es detacht wird. also auch z.b. 10 cm über dem boden oder im boden. besser wäre hier, das objekt würde natürlicherweise vom boden gestoppt. dann würde es sich auch dem vorherrschenden winkel anpassen. so steht es entweder etwas in der luft oder eben mit den ecken im boden. also werde ich vorerst mit dem detach-befehl arbeiten müssen. dennoch danke für die schnelle antwort. ach - und dass die com aus den bereits vorhandenen abwurfcontainern erst ein addon basteln muss, damit man ausrüstung darin platzieren kann... passt mal wieder ins bild. gruß feuerwerker
__________________
Lasst mich durch - ich bin Privatpatient!!
Geändert von Feuerwerker (17.01.2010 um 14:27 Uhr). |
|
23.01.2010, 13:35 | #4 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Nochmal zwecks Kollisionsproblem. Dieses entsteht ja dadurch, dass attachTo die Kollision des Objektes ausschaltet, dass an ein anderes attached wird.
Man könnte es ja so machen, dass man das Objekt auf die Höhe des Fallschirmes per setPos beamt und dann den Fallschirm an das Objekt attached. Dadurch sollte eigentlich die Kollision wieder stimmen und das Objekt auf dem Boden richtig liegen bleiben. Man bräuchte dann nur eine Abfrage, ob getPosATL == 0 ist, um den Fallschirm zu detachen + zu löschen. Werde mal ein paar Versuche starten. Ok mal so getestet. Das funktioniert prima! Nur fällt das Auto ganz schnell runter, wie wenn man keinen Fallschirm hätte Die beste Möglichkeit wäre es so zu skripten, dass das Auto bis zu <5m Höhe (getPosATL) an den Fallschirm attached ist und dann wird das Auto detached und der Fallschirm an das Auto attached. Und am Boden wird dann dann wieder der Fallschirm detached.
__________________
|
23.01.2010, 17:08 | #5 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Und ich sag doch es funktioniert so!
Aufruf über: Code:
nul = [vehicle, parachute] execVM "vehicle-parachute.sqf" Code:
/* ========================================================================= Vehicle-Parachute by Cyborg11 Version: 1.0 @ 23.01.2010 Parameter: nul = [vehicle, parachute, debug] execVM "vehicle-parachute.sqf"; _vehicle = vehiclename which is on the parachute _parachute = parachutename _debug = true / false (optional - default is false) Example: nul = [ammocrate1, para1] execVM "vehicle-parachute.sqf"; ========================================================================= */ private ["_vehicle","_parachute","_debug","_static","_onground","_paraattach"]; _vehicle = _this select 0; _parachute = _this select 1; If ((count _this) > 2) then {_debug = _this select 2} else {_debug = false}; _static = _vehicle isKindOf "Static"; _vehicle attachTo [_parachute, [0,0,-1]]; sleep 0.5; _height = (getPosATL _vehicle) select 2; While {alive _vehicle} do { _height = (getPosATL _vehicle) select 2; If (_height < 5 && !(_static)) then { If (_paraattach) exitWith{}; detach _vehicle; _parachute attachTo [_vehicle, [0,0,1]]; _paraattach = true; }; If (_height <= 1 && !(_static)) then { detach _parachute; _parachute setPos [(getposATL _vehicle) select 0, (getposATL _vehicle) select 1, ((getposATL _vehicle) select 2) + 0.1]; _onground = true; } else { If (_height <= 1) then { detach _vehicle; _onground = true; }; }; If (_debug) then {hint format ["Parachute: %4\n\nVehicle: %5\nStatic: %7\nHeight: %1\nType: %6\n\nOnGround: %2\nParaAttach: %3", _height, _onground, _paraAttach, _parachute, _vehicle, typeOf _vehicle, _static]}; If (_onground) exitWith{ If (_static) then { _vehicle setPosATL [(getPosATL _vehicle) select 0, (getPosATL _vehicle) select 1, 0]; sleep 0.5; _vehicle setVectorDirAndUp [[0,0,0],[0,0,0]]; }; }; sleep 0.5; }; sleep 5; deleteVehicle _parachute;
__________________
|
24.01.2010, 21:39 | #6 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Soooo ... nun habe ich ein Skript für das Container Problem geschrieben. Mit diesem Skript könnt ihr einem Container die Gear/Ausrüstung Option hinzufügen und dort Waffen / Magazine nehmen / verladen.
Code:
/* ====================================================================================================== Add Gear option - by Cyborg11 Version: 1.0 Date: 24.01.2010 Description: Use this script to give a container a Gear option which is not enabled at default Information: If you want to add weapons and magazines to the container then go to line 54 and write your addWeaponCargo/addMagazineCargo after the createVehicle code. !!!! Don't remove the FakeWeapon/FakeMagazine !!!! And don't forget to write the Classnames of the Weapons/Magazines in "" "" or ' '. Example: CYBP_weaponh addWeaponCargo ['M16A2', 5]; CYBP_weaponh addMagazineCargo ['M136', 5]; Good in combination with my vehicle-parachute Script: http://hx3.de/editing-scripting-167/kistenabwurf-kriege-waffen-container-18499/#post292216 Parameter: container addAction ["Gear", "gear.sqf", [debug]]; _container = object which doesn't have a gear option at default _debug = true / false (optional - default is false) Example: this addAction ["Gear", "gear.sqf", [true]]; Example 2: container1 addAction ["Gear", "gear.sqf"]; ====================================================================================================== */ private ["_container","_unit","_action","_array","_debug","_distance","_type","_conarray","_maxdistance"]; _container = _this select 0; _unit = _this select 1; _action = _this select 2; _array = _this select 3; _distance = _unit distance _container; _type = typeOf _container; If ((count _array) > 0) then {_debug = _array select 0} else {_debug = false}; switch (_type) do { case "Misc_Cargo1B_military" : {_maxdistance = 5}; case "Misc_Cargo1Bo_military" : {_maxdistance = 5}; case "Misc_cargo_cont_tiny" : {_maxdistance = 2.8}; default {_maxdistance = 3.5}; }; If (_distance >= _maxdistance) exitWith{ If (_debug) then {hint format ["EXIT!!!\n\nAlive: %1\nDistance: %2\nMaxDistance: %3", alive CYBP_weaponh, _distance, _maxdistance];}; _unit groupChat format ["Distance to Object > %1 Meter! Move closer to the object!", _maxdistance]; }; If (isNil ("CYBP_varweaponholder")) then { _container setVehicleInit " CYBP_weaponh = 'WeaponHolder' createVehicle (_unit modelToWorld [0,0,0]); CYBP_weaponh addWeaponCargo ['FakeWeapon', 1]; CYBP_weaponh addMagazineCargo ['FakeMagazine', 1]; "; processInitCommands; CYBP_varweaponholder = true; publicVariable "CYBP_varweaponholder" }; WaitUntil {alive CYBP_weaponh}; If (_debug) then {hint format ["Alive: %1\nDistance: %2\nMaxDistance: %3", alive CYBP_weaponh, _distance, _maxdistance]}; CYBP_weaponh setPos (_unit modelToWorld [0,2.5,0]); _unit action ["GEAR", CYBP_weaponh]; sleep 2; WaitUntil {!(ctrlVisible 1101)}; // ctrlVisible 1101 is the gear menu CYBP_weaponh setPos (_container modelToWorld [0,0,0]);
__________________
|
25.01.2010, 16:36 | #7 (permalink) |
Registriert seit: 21.06.2009
Alter: 51
Beiträge: 158
|
Hallo
Aktivierung durch den Heli Drop.sqs ?!local server: exit s1 = "ParachuteMediumWest" createVehicle (position heli); s1 setpos [(getpos heli select 0),(getpos heli select 1), (getpos heli select 2)-3]; kiste attachTo [s1,[0,0,0]] exit und dann ein Auslöser Name Auslöser :aue Aktivierung: Keine Bedingung : if ((getpos s1 select 2) < 3) then {detach Kiste;} bei Aktivierung: Kiste setPos [ getPos Kiste select 0, getPos this select 1, (getPos aue select 2)]
__________________
http://dessau-rosslau.square7.ch/ Geändert von TraX (25.01.2010 um 16:41 Uhr). |
29.01.2010, 17:16 | #9 (permalink) |
Registriert seit: 03.08.2005
Alter: 58
Beiträge: 4
|
super
Joa echt super Sache.
Allerdings hab ich da nen dickes Problem. @Cyborg11: bei Benutzung Deines Scripts kann ich nach Landung der Kiste nix heraus nehmen. Weder mit noch ohne "gear" Script. Also habe ich am Boden das Objekt gegen ein "orginal" ausgetauscht und gut is. Aber nun hab ich nen online Problem ich Scriptnoob. Wie erstelle ich denn den Cargoschirm so das er nur einmal erstellt wird bei einer coop ? Habe einen Schirm per "bla=create ..." im Trigger erstellt und nun fliegen immer 2 Schirme bei einer 2 Mann coop. Dann habsch createlokal versucht da seh nur ich nen Schirm. Was mach ich falsch, brauch dringend Hilfe Jungs. Danke mal im voraus. Gruß Thunder |
30.01.2010, 11:58 | #10 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Wann rufst du denn das Skript auf um das Gear für den Container hinzuzufügen? Der Waffenhalter wird eigentlich erst erstellt, wenn man zum ersten Mal die Action auslöst. Also warte einfach bis der Container gelandet ist und dann gehst du hin und löst eben die Action aus.
Ich hoffe die Version funktioniert jetzt im MP. Kann es leider nicht testen Danke Buliwyf! Code:
/* ====================================================================================================== Add Gear option - by Cyborg11 Version: 1.0 Date: 24.01.2010 Description: Use this script to give a container a Gear option which is not enabled at default Information: If you want to add weapons and magazines to the container then go to line 54 and write your addWeaponCargo/addMagazineCargo after the createVehicle code. !!!! Don't remove the FakeWeapon/FakeMagazine !!!! And don't forget to write the Classnames of the Weapons/Magazines in "" "" or ' '. Example: CYBP_weaponh addWeaponCargo ['M16A2', 5]; CYBP_weaponh addMagazineCargo ['M136', 5]; Good in combination with my vehicle-parachute Script: http://hx3.de/editing-scripting-167/kistenabwurf-kriege-waffen-container-18499/#post292216 Parameter: container addAction ["Gear", "gear.sqf", [debug]]; _container = object which doesn't have a gear option at default _debug = true / false (optional - default is false) Example: this addAction ["Gear", "gear.sqf", [true]]; Example 2: container1 addAction ["Gear", "gear.sqf"]; ====================================================================================================== */ private ["_container","_unit","_action","_array","_debug","_distance","_type","_conarray","_maxdistance"]; _container = _this select 0; _unit = _this select 1; _action = _this select 2; _array = _this select 3; _distance = _unit distance _container; _type = typeOf _container; If ((count _array) > 0) then {_debug = _array select 0} else {_debug = false}; switch (_type) do { case "Misc_Cargo1B_military" : {_maxdistance = 5}; case "Misc_Cargo1Bo_military" : {_maxdistance = 5}; case "Misc_cargo_cont_tiny" : {_maxdistance = 2.8}; default {_maxdistance = 3.5}; }; If (_distance >= _maxdistance) exitWith{ If (_debug) then {hint format ["EXIT!!!\n\nAlive: %1\nDistance: %2\nMaxDistance: %3", alive CYBP_weaponh, _distance, _maxdistance];}; _unit groupChat format ["Distance to Object > %1 Meter! Move closer to the object!", _maxdistance]; }; If (isNil ("CYBP_varweaponholder")) then { CYBP_container = _container; CYBP_container setVehicleInit " CYBP_weaponh = 'WeaponHolder' createVehicle (_unit modelToWorld [0,0,0]); CYBP_weaponh addWeaponCargo ['FakeWeapon', 1]; CYBP_weaponh addMagazineCargo ['FakeMagazine', 1]; "; publicVariable "CYBP_container"; processInitCommands; CYBP_varweaponholder = true; publicVariable "CYBP_varweaponholder"; }; WaitUntil {alive CYBP_weaponh}; If (_debug) then {hint format ["Alive: %1\nDistance: %2\nMaxDistance: %3", alive CYBP_weaponh, _distance, _maxdistance]}; CYBP_weaponh setPos (_unit modelToWorld [0,2.5,0]); _unit action ["GEAR", CYBP_weaponh]; sleep 2; // Wait 2 seconds till gear menu is open WaitUntil {!(ctrlVisible 1101)}; // id 1101 is gear menu CYBP_weaponh setPos (_container modelToWorld [0,0,0]);
__________________
|
30.01.2010, 20:16 | #11 (permalink) |
Registriert seit: 03.08.2005
Alter: 58
Beiträge: 4
|
nee
Nee keine Chance .
Habe also Trigger hinzufügt wenn ich näher 2m an Munikiste und ich "in thisList". Dann extra gewartet bis Munikiste am Boden, ab zur Kiste und kam auch wieder "Gear" Menü aber man kann nüx nehmen . Sorry bei mir funzt das net. Brauche aber auch dringend Hilfe zu dem Schirm create Problem, kannst mir möglicherweise nen Tip geben ? THX und Grüße |
31.01.2010, 02:05 | #12 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Code:
_para = createVehicle ["ParachuteClass", position player, [], 0, "FLY"] createVehicle array - Bohemia Interactive Community Testest du das Skript im MP? Oder im Editor? Außerdem brauchst du keinen eigenen Trigger. Schreib den addAction Befehl einfach in die Initzeile deines Containers. Da wird automatisch nach der Distanz geprüft!
__________________
Geändert von Cyborg11 (31.01.2010 um 02:10 Uhr). |
01.02.2010, 14:27 | #14 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Schreib folgendes in die Aktivierungszeile deines Auslösers:
Code:
para = createVehicle ["ParachuteClass", position player, [], 0, "FLY"]; container = createVehicle ["Misc_cargo_cont_tiny", [0,0,0], [], 0, "NONE"]; nul = [container, para] execVM "vehicle-parachute.sqf"; container addAction ["Gear", "gear.sqf"]; Sollte so funktionieren. Habe es aber nicht ausprobiert, deswegen keine Gewährung, dass es funktioniert
__________________
|
14.02.2010, 13:56 | #17 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Was kommt denn für eine Fehlermeldung (arma2.rpt)?
Es geht auch nicht, weil du natürlich "ParachuteClass" mit dem Classname deines Fallschirms ersetzen musst! http://www.armatechsquad.com/ArmA2Class/vehicles/air/ Das funktioniert: Code:
para = createVehicle ["ParachuteWest", position player, [], 0, "FLY"]; container = createVehicle ["Misc_cargo_cont_tiny", [0,0,0], [], 0, "NONE"]; nul = [container, para] execVM "vehicle-parachute.sqf"; container addAction ["Gear", "gear.sqf"];
__________________
Geändert von Cyborg11 (14.02.2010 um 14:06 Uhr). |
16.02.2010, 17:43 | #19 (permalink) |
User gesperrt
Registriert seit: 02.01.2010
Beiträge: 80
|
haha jetzt klappt es aber mit den waffen einfügen noch net XD hab einpaar reingeschrieben aber nun lässt sich die kiste net mehr öffnen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
kriege addon nicht zum laufen... :/ | d4wn | Technische Fragen & Probleme | 1 | 18.08.2009 16:41 |
Wo kriege ich die ganze Musik von ArmA her? | Jois[GER] | Community | 6 | 24.05.2008 21:52 |
Wo kriege ich Patches her | CHRIS15 | Technische Fragen & Probleme | 13 | 20.04.2008 00:25 |
Suche einen bus | Mondkalb | Mod und Addon Ecke | 4 | 18.04.2005 18:47 |