![]() |
#1 (permalink) |
![]() Registriert seit: 21.04.2009
Beiträge: 24
|
![]()
Hi.
Ich versuche gerade im Editor mittels eines UAV Terminal Backpacks die Drohne oder auch eine ULB zu steuern. Haut aber nicht hin. Wenn ich einen leeren UAV Rucksack platziere, den das Modul und den Player damit sync klappt das nur, wenn ich mich direkt neben dem Rucksack befinde. wenn ich den Rucksack aufsetze verschwindet im Actionmenü der Punkt UAV. Vermutlich weil dann die synchronization nicht mehr stimmt. Hat damit schon jemand experimentiert, der mir sagen könnte wie das funktioniert? Wenn ich mir mit player addBackpack "US_UAV_Pack_EP1"; den Rucksack direkt aufsetze klappts auch nicht... |
![]() |
![]() |
#3 (permalink) |
![]() ![]() ![]() Registriert seit: 26.03.2008
Beiträge: 2.822
|
![]()
Also für das ULB:
Platzier ganz normal das ULB Modul und einen AH6-X. Beides synchronisierst du. Das Modul nennst du ULB_module_1. Sooo ... jetzt kannst du den Rest auch über einen Trigger machen oder über ein Skript. Machen wir mal die Triggervariante ![]() Die unitList müsstest du eventuell eben erweitern, wenn weitere Einheiten wie zum Beispiel ein AH64D auf das ULB Zugriff haben sollen. Mehr zum ULB Modul => ULB - Bohemia Interactive Community Das UAV Modul funktioniert im Prinzip genauso. Platziere deine MQ9 Drohne und dein UAV Modul (Name: UAV_module_1) und synchronisiere diese. Danach erstellst du wieder einen Trigger, der folgendermaßen aussieht. Mehr zum UAV Modul => UAV - Bohemia Interactive Community Skriptvariante ist aber sowieso die schönste: Dauert aber noch etwas! Ich poste das hier erstmal und werde dann das Skript in den nächsten paar Stunden hinzufügen ![]() Aber weiß noch nicht wie es im MP ausschaut.
__________________
|
![]() |
![]() |
#4 (permalink) |
![]() Registriert seit: 21.04.2009
Beiträge: 24
|
![]()
Erst mal Danke euch beiden für die Hilfe.
Ich habe das gerade mal mit dem Auslöser probiert. Sieht gut aus. Funktioniert aber leider nicht. Bei der Bedingung gibt er mir eine Fehlermeldung aus. Liegt wohl an den Anführungszeichen um den Backpacknamen. Ich habe die mal weg gemacht und auch einfach auf this gemacht, dann müsste ja jeder darauf zugriff haben. Leider auch so kein Erfolg. meinen Player habe ich auch noch mal mit dem Modul gesynct. Auch nix. Kann das daran liegen, dass ich erst das Backpack entferne und dann das UAV Pack hinzufüge? Ich habe das auch noch mal mit der UAV probiert. Geht leider auch nicht... Ich habe auch schon probiert die Auslöserbefehle in die Init-Zeile des Boduls zu packen. Auch hier leider kein Erfolg. Funktoniert das bei dir mit den Auslösern oder war das eine Art Trockenübung? danke auf jeden Fall schon mal für die schnelle Hilfe. |
![]() |
![]() |
#5 (permalink) |
![]() ![]() ![]() Registriert seit: 26.03.2008
Beiträge: 2.822
|
![]()
Als ich die Lösung geschrieben habe, wusste ich noch nicht, dass man so den Backpack nicht überprüfen kann. Habe da aber ein andere Lösung
![]() Mein Skript ist fertig. Nur funktioniert das mit dem UAV nicht, da man das UAV nur an einem Fahrzeug / leeren Objekt aktivieren kann. Ich schau einfach mal, ob ich es doch irgendwie hinbekomme. Wir werden sehen. Ich poste dann einfach das neue Skript, wenn ich Erfolg hatte ![]() Aber hier die Skriptlösung für das ULB: Code:
/* =============================================================================================== TerminalBackpack - by Cyborg11 Version: 1.0 Date: 01.07.2010 Description: A unit with a UAV Terminal Backpack has access to an ULB 1. Synchronize the ULB to the ULB module 2. Execute the script on the soldier that should have the action Parameter: nul = [unit, ULB module] execVM "TerminalBackpack.sqf"; _unit = object which should have access to UAV/ULB _ulbm = name of ULB module Example: nul = [this, ULBM1] execVM "TerminalBackpack.sqf"; =============================================================================================== */ private ["_unit", "_ulbm", "_unitList", "_newUnitList"]; _unit = _this select 0; _ulbm = _this select 1; If (isNil "_ulbm") exitWith{ hint "ERROR in script TerminalBackpack.sqf!!\n\nULB module is NIL, cancel script!!!!"; diag_log text format ["**** ERROR in Script 'TerminalBackpack.sqf' in mission %1!!!", missionName]; diag_log text format ["**** Module _ulbm is NIL!!!"]; }; // [98,97,99,107,112,97,99,107,95,117,115,95,97,117,118,46,112,51,100] - backpack_us_auv.p3d - Classname: US_UAV_Pack_EP1 While {alive _unit} do { _condition = toArray(str(unitBackpack _unit)); If (117 IN _condition && 118 IN _condition && 46 IN _condition) then { If (!isNil "_ulbm") then { _unitList = _ulbm getVariable "unitList"; _newUnitList = _unitList + [_unit]; _ulbm setVariable ["unitList", _newUnitList, true]; }; } else { If (!isNil "_ulbm") then { _newUnitList = _newUnitList - [_unit]; _ulbm setVariable ["unitList", _newUnitList, true]; }; }; sleep 2; }; ![]()
__________________
|
![]() |
![]() |
#6 (permalink) |
![]() Registriert seit: 21.04.2009
Beiträge: 24
|
![]()
Super. Danke dir für das Skript.
Bei mir klappt es leider nicht. Vielleicht mal wieder nen Denkaussetzer meinerseits ![]() Bei meinem Player in der Init-Zeile: removeBackpack player; player addBackpack "US_UAV_Pack_EP1"; nul = [this, ULBM1] execVM "TerminalBackpack.sqf"; Skript liegt im Missionsordner und wird auch aufgerufen, das ULB Modul heißt ULBM1 und der/die ULB ist mit dem Modul gesynct und hat den Namen ULB. Mit dem Player ist nichts gesynct. Das sollte doch alles sein. Fügt der automatisch die die Funktion ins Acrionmenü ein? Vielleicht ist es das ja.... |
![]() |
![]() |
#7 (permalink) |
![]() ![]() ![]() Registriert seit: 26.03.2008
Beiträge: 2.822
|
![]()
Wenn du den AH6-X mit dem ULB Modul synchronisiert hast und das ULB Modul wirklich ULBM1 genannt und auch mit dem richtigen Namen aufgerufen hast, dann sollte es funktionieren.
Kann natürlich sein, dass ich gerade das Skript iwie zerschossen habe, da ich nämlich den UAV Teil aus dem Skript entfernt hatte und vllt. hab ich da noch ein paar ULB Zeilen erwischt. ![]() Kannst du mal bitte in die arma2OA.rpt schauen, ob da irgendwas wegen meinem Skript steht? Eigentlich solltest du eine Action bekommen mit ULB und dann Zugriff auf das ULB haben. ![]() ------------------------------------------------------------------ Hm ... hab das Skript gerade nochmal bei mir getestet. Initzeile meines Spielers: Code:
player addBackpack "US_UAV_Pack_EP1"; nul = [this, ULBM1] execVM "TerminalBackpack.sqf"; Ich hab die Action ULB gleich von Beginn an und kann das ULB steuern. Wenn ich den Rucksack ablege, ist die Action auch wieder weg.
__________________
|
![]() |
![]() |
#8 (permalink) |
![]() Registriert seit: 21.04.2009
Beiträge: 24
|
![]()
Mhh.. Also die rpt Datei sagt dies:
B 1-1-C:3: Getting out while IsMoveOutInProgress B 1-1-C:2: Getting out while IsMoveOutInProgress ULBg: Getting out while IsMoveOutInProgress ULBg: Getting out while IsMoveOutInProgress Mein Fehler... Ich hatte am anderen Ende der Karte ein 2. ULB mit Apache plaziert. Jetzt klappt es auch. Jetzt muss ich nur noch schaffen, dass ich als player eine Rakete von einem Apache abschießen kann... Vielleicht reichts ja den Apache mit dem ULB zu syncen. Auch nicht schlecht wäre, wenn man am Laserziel eine Bombe einfliegen lassen könnte... |
![]() |
![]() |
#9 (permalink) |
![]() ![]() ![]() Registriert seit: 26.03.2008
Beiträge: 2.822
|
![]()
Als Spieler kannst du keine Rakete abfeuern. Da müsstest du mal versuchen dem Spieler die Hellfirewaffe + Hellfireraketen per addWeapon zu geben
![]() Hier übrigens eine neue Version. Die funktioniert jetzt auf jeden Fall richtig und besser. UAV Code ist auch mit enthalten, ist aber nicht aktiviert. Muss da erst noch ein bisschen testen. Dem Skript ist es jetzt auch egal, ob das ULB module schon Einheiten synchronisiert hat wie einen Apache oder keine Einheit. Code:
/* =============================================================================================== TerminalBackpack - by Cyborg11 Version: 1.1 Date: 01.07.2010 Description: A unit with a UAV Terminal Backpack has access to an UAV and ULB 1. Synchronize the ULB to the ULB module and the UAV to the UAV module 2. Execute the script on the soldier that should have the action UAV does not work atm! It is nil by default. Parameter: nul = [unit, ULB module, UAV module] execVM "TerminalBackpack.sqf"; _unit = object which should have access to UAV/ULB _ulbm = name of ULB module - if you don't have a ULB module use nil _uavm = name of UAV module - if you don't have a UAV module use nil Example: nul = [this, ULBM1, nil] execVM "TerminalBackpack.sqf"; nul = [this, nil, UAVM1] execVM "TerminalBackpack.sqf"; =============================================================================================== */ private ["_unit", "_uavm", "_ulbm", "_terminal", "_terminalArray", "_unitList", "_newUnitList", "_rules", "_newRules"]; _unit = _this select 0; _ulbm = _this select 1; _uavm = nil; // Funktioniert im Moment nicht If (isNil "_ulbm" && isNil "_uavm") exitWith{ hint "ERROR in script TerminalBackpack.sqf!!\n\nBoth modules are NIL, cancel script!!!!"; diag_log text format ["**** ERROR in Script 'TerminalBackpack.sqf' in mission %1!!!", missionName]; diag_log text format ["**** Both module values (_ulbm / _uavm) are NIL!!!"]; }; // [98,97,99,107,112,97,99,107,95,117,115,95,97,117,118,46,112,51,100] - backpack_us_auv.p3d - Classname: US_UAV_Pack_EP1 While {alive _unit} do { _condition = toArray(str(unitBackpack _unit)); If (117 IN _condition && 118 IN _condition && 46 IN _condition) then { If (!isNil "_ulbm") then { _unitList = _ulbm getVariable "unitList"; If (!(_unit IN _unitList)) then { _newUnitList = _unitList + [_unit]; _ulbm setVariable ["unitList", _newUnitList, true]; }; }; If (!isNil ("_uavm")) then { _rules = _uavm getVariable "rules"; If (!(_unit IN _rules)) then { _newRules = _rules + [_unit]; _uavm setVariable ["rules", _newRules, true]; }; }; } else { If (!isNil "_ulbm") then { _unitList = _ulbm getVariable "unitList"; If (_unit IN _unitList) then { _newUnitList = _unitList - [_unit]; _ulbm setVariable ["unitList", _newUnitList, true]; }; }; If (!isNil ("_uavm")) then { _rules = _uavm getVariable "rules"; If (_unit IN _rules) then { _newRules = _newRules - [_unit]; _uavm setVariable ["rules", _newRules, true]; }; }; }; sleep 2; };
__________________
|
![]() |
![]() |
#10 (permalink) |
![]() Registriert seit: 21.04.2009
Beiträge: 24
|
![]()
Perfekt.... Hehe. dem Spieler ne Hellfire zuordnen ;-)
Wenn man nen Apache hat und aus der ULB bei "Feuerbefehl" dem Apache per Skript sagt doFire und die Position des Laserstrahls ausliest könnte das funktionieren oder? Mit dem Laserstrahl lässt sich bestimmt aus der original sqf von BI nehmen. Das wäre die perfekte Lösung sonst muss man ja immer zu nem Piloten wechseln, der dann in das ULB "springt". so Spielchen würd ich gerne bei meiner Mission vermeiden. Dank deiner Hilfe kann ich das ULB schon mal als still stehenden Drohnenersatz nutzen, was ja auch schon einiges ist. |
![]() |
![]() |
#11 (permalink) |
![]() ![]() ![]() Registriert seit: 26.03.2008
Beiträge: 2.822
|
![]() Theoretisch ja. Das Abfeuern der Hellfire musst dann eben skripten, da es normalerweise so nicht vorgesehen ist. Ach btw: ULB Modul funzt nicht im MP. Der 2. Spieler sitzt dann iwie im ULB drinnen, kann aber nichts machen außer die Kamera zu ändern. Kann auch nicht mehr aus dem ULB raus. ![]()
__________________
Geändert von Cyborg11 (02.07.2010 um 15:00 Uhr). |
![]() |
![]() |
#12 (permalink) |
![]() Registriert seit: 20.05.2009
Beiträge: 605
|
![]()
Hey Cyborg , habe dein Skript mal hier verbaut ....
Hoffe das ist ok so ?! =NAG= - Thema anzeigen - [OA] Rucksäcke verwenden + UAV Backpack/Classnames |
![]() |
![]() |
#14 (permalink) |
![]() Registriert seit: 20.05.2009
Beiträge: 605
|
![]()
Vielleicht sollte man das noch irgendwie festlegen im Script ?! oder halt in der erklärung. Bzw. lässt sich den der Heli mit KI steuern ?! |
![]() |
![]() |
#16 (permalink) |
![]() ![]() |
![]() Hast Du schon ein Script mit dem auch UAV funktioniert? Gruß Tod
__________________
![]() Langsam ist präzise.....und präzise ist schnell.... http://www.astore.de http://www.astore-shop.de http://www.voodoo-puppe.net |
![]() |
![]() |
#17 (permalink) |
![]() ![]() ![]() Registriert seit: 26.03.2008
Beiträge: 2.822
|
![]() Hab jetzt endlich rausgefunden, wie es funktioniert. Anemia, bitte im Forum updaten! ![]() Code:
/* =============================================================================================== TerminalBackpack - by Cyborg11 Version: 1.2 Date: 15.07.2010 Description: A unit with a UAV Terminal Backpack has access to an UAV and ULB 1. Synchronize the ULB to the ULB module and the UAV to the UAV module 2. Name the modules 3. Execute the script on the soldier that should have the action Parameter: nul = [unit, ULB module, UAV module] execVM "TerminalBackpack.sqf"; _unit = object which should have access to UAV/ULB _ulbm = name of ULB module - if you don't have a ULB module use nil _uavm = name of UAV module - if you don't have a UAV module use nil Example: nul = [this, ULBM1, nil] execVM "TerminalBackpack.sqf"; nul = [this, nil, UAVM1] execVM "TerminalBackpack.sqf"; nul = [this, ULBM1, UAVM1] execVM "TerminalBackpack.sqf"; =============================================================================================== */ private ["_unit", "_uavm", "_ulbm", "_terminal", "_terminalArray", "_unitList", "_newUnitList", "_rules", "_newRules"]; _unit = _this select 0; _ulbm = _this select 1; _uavm = _this select 2; _oa = isClass (configFile >> "cfgPatches" >> "ca_E"); If (!_oa) exitWith{hint "OA is not installed on your system or is not running! Cancel Script!"}; If (isNil "_ulbm" && isNil "_uavm") exitWith{ hint "ERROR in script TerminalBackpack.sqf!\n\nBoth modules are NIL, cancel script!"; diag_log text format ["**** ERROR in Script 'TerminalBackpack.sqf' in mission '%1'!", missionName]; diag_log text format ["**** Both module values (_ulbm / _uavm) are NIL!"]; }; // [98,97,99,107,112,97,99,107,95,117,115,95,97,117,118,46,112,51,100] - backpack_us_auv.p3d - Classname: US_UAV_Pack_EP1 While {alive _unit} do { _backpack = unitBackpack _unit; _condition = toArray(str(_backpack)); If (115 IN _condition && 95 IN _condition && 97 IN _condition && 117 IN _condition && 118 IN _condition && 46 IN _condition ) then { If (!isNil "_ulbm") then { _unitList = _ulbm getVariable "unitList"; If (!(_unit IN _unitList)) then { _newUnitList = _unitList + [_unit]; _ulbm setVariable ["unitList", _newUnitList, true]; }; }; If (!isNil "_uavm") then { _rules = _uavm getVariable "rules"; If (!(_unit IN _rules)) then { _newRules = _rules + [_unit]; _uavm setVariable ["rules", _newRules, true]; _uavm synchronizeObjectsAdd [_backpack, _unit]; }; }; } else { If (!isNil "_ulbm") then { _unitList = _ulbm getVariable "unitList"; If (_unit IN _unitList) then { _newUnitList = _unitList - [_unit]; _ulbm setVariable ["unitList", _newUnitList, true]; }; }; If (!isNil "_uavm") then { _rules = _uavm getVariable "rules"; If (_unit IN _rules) then { _newRules = _newRules - [_unit]; _uavm setVariable ["rules", _newRules, true]; _uavm synchronizeObjectsRemove [_backpack, _unit]; }; }; }; sleep 2; };
__________________
|
![]() |
![]() |
#18 (permalink) |
![]() Registriert seit: 18.07.2009
Alter: 34
Beiträge: 90
|
![]() ![]() Also: ich hab einen schützen mit dem uav backpack bestückt und in seine init zeile das reingeschrieben: Code:
qwe addbackpack "US_UAV_Pack_EP1"; nul = [qwe, nil, UAVM1] execVM "TerminalBackpack.sqf"; daraufhin habe ich ein UAV Manager modul auf die karte gesetzt und diesen UAVM1 benannt. dann eine fliegende MQ-9 und diese mit dem modul synchronisiert. jetzt habe ich den script von dieser seite kopiert und ihn als TerminalBackpack.sqf in den missions ordner gespeichert. bestimmt ist irgendwo ein fehler aber ich versuchs jetzt schon seit einer stunde und komme nicht drauf. |
![]() |
![]() |
#19 (permalink) |
![]() Registriert seit: 20.05.2009
Beiträge: 605
|
![]()
Hab das skript im forum angepasst -> =NAG= - Thema anzeigen - [OA] Rucksäcke verwenden + UAV Backpack/Classnames Aber was genau hast du geändert bzw. was funktioniert nun ?! @miromanu Versuch mal so Code:
qwe addbackpack "US_UAV_Pack_EP1"; nul = [this, nil, UAVM1] execVM "TerminalBackpack.sqf"; Geändert von Anemia (16.07.2010 um 07:13 Uhr). |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
ARMA 2 und ARMA 2.5 ( Opa ) 3 mal auf einem Computer installieren? | det99 | Technische Fragen & Probleme | 5 | 29.06.2010 21:44 |
Deutsche Addons für ArmA II | Marseille77 | Mods & Addons | 2 | 19.06.2010 09:00 |
Arma 1 Guide mit arma 2 kompatibel ? | Bakker | Editing & Scripting | 5 | 18.06.2010 20:41 |
ofp, arma 1 oder doch arma 2? | grievous | Die Litfaßsäule | 20 | 24.05.2010 10:16 |