HX3 Foren

HX3 Foren (https://hx3.de/)
-   Hilfe (https://hx3.de/hilfe-54/)
-   -   UAV-Operator Fähigkeit ( Hacken) einer Einheit hinzufügen (https://hx3.de/hilfe-54/uav-operator-faehigkeit-hacken-einheit-hinzufuegen-24904/)

MajorBlunderbuss 18.06.2015 17:13

UAV-Operator Fähigkeit ( Hacken) einer Einheit hinzufügen
 
Hallo Leute !

Ich kenne euer Forum schon lange, aber habe mich heute auch mal aus einem persönlichen Anliegen hier angemeldet, da ich davon ausgehe dass hier eine recht gro0e Kompetenz unterwegs ist wenn es ums editieren geht.

Ich bastele zur Zeit an einer DUWS-Umsetzung für die BWMod, aber auch lediglich zum privaten Amüsement für mich und zwei Kollegen sofern man sich mal zusammenfindet.

Falls euch DUWS was sagt, umso besser, falls nicht, erkläre ich sowieso gleich worum es geht, denn ich habe ein kleines Problemchen.

Ich möchte in dieser Mission/Kampagne Drohnen einfügen, was ich auch kann und getan habe, Drohnen welche man im Hauptmenü des HQ als leeres Fahrzeug kaufen kann. Was ich bis dato nicht wusste, ist das leere UAV's/UGV's, im gegensatz zum montierbaren A2-Darter, 'immun' gegen das UAV-Terminal sind, da sie keine aktive Einheit sind.

Ich hätte natürlich aktive UAV/UGV-Einheiten auf der Karte an bestimmten Orten platzieren können, mit simplen Respawn-Script, damit man, wenn man will, darauf zugreifen kann. Das war mir aber etwas zu billig. Ich will die UAV's nämlich mit den credits kaufen.

Jetzt kommen wir zu meiner Frage: Weiß einer von euch, wie man einer Einheit, bzw. allen spielbaren Einheiten - welche auch im Editor selbst als solche platziert sind - die Fähigkeit eines UAV-Operators hinzufügt, nämlich diese, dass er leere Drohnen hacken kann und sie somit zu einer aktiven, steuerbaren Einheit macht?

Ich bin vorhin schon per Google auf diese Zeilen gestoßen:


Code:

class CfgVehicles {
    class B_Soldier_F;
    B_SuperMan_F: B_Soldier_F {
        displayName = "SuperMan";
        uavHacker = 1;
        engineer = 1;
        attendant = 1;
    };
};


Das wäre für mich eine Möglichkeit. Jedoch, verzeiht bitte,
ich kenne mich zwar schon ein wenig aus da ich mir manches autodidaktisch beigebracht habe, aber wie genau müsste ich diese Zeile denn einfügen damit sie auf alle Einheiten im Editor zutrifft und auch Aktiv wird? Dafür reichen meine eigenen Kenntnise nicht gänzlich aus. Die Einheiten im Editor tragen die Namen "player1" bis "player21", Beispielsweise.

Was mir aber noch viel lieber wäre, was aber nicht zwingend nötig wäre, wäre, wenn man die Fähigkeit als solche im Hauptmenü des HQ unter dem Abschnitt "Unterstützungen" als Fähigkeit kaufen könnte, dort wo man auch z.B. die Waffenkammer, Artillerieschläge, Fallschirmspringer und Fahrzeug-Wartung freischaltet. Mir wäre es in diesem Fall nicht wichtig, das jeder einzeln diese Fähigkeit kaufen muss, wenn es nach Aktivierung für alle Einheiten zählt, wäre ich vollends zufrieden.

Hier ein kleiner Einblick in die request_support.sqf, damit ihr ungefähr wisst wie die Unterstützungen aufgebaut sind:

Code:

    case 5:
    {
        if (!support_armory_available) then
            {
              if (commandpointsblu1>=4) then
                {
                  commandpointsblu1 = commandpointsblu1 - 4;
                  ctrlSetText [1000, format["%1",commandpointsblu1]];
                  hq_blu1 addaction ["<t color='#ff0066'>Waffenkammer Menü</t>","VAS\open.sqf", "", 0, true, true, "", "_this == player"];
                  hq_blu1 addaction ["<t color='#ff0066'>Waffenkammer 3D</t>","va.sqf", "", 0, true, true, "", "_this == player"];
                  lbSetColor [2103, 6, [0, 1, 0, 1]];
                  support_armory_available = true;
                 
                {_x addaction ["<t color='#ff0066'>Waffenkammer Menü</t>","VAS\open.sqf", "", 0, true, true, "", "_this == player"]} forEach (Array_of_FOBS);
                {_x addaction ["<t color='#ff0066'>Waffenkammer 3D</t>","va.sqf", "", 0, true, true, "", "_this == player"]} forEach (Array_of_FOBS);
                 
                  playSound "g36reload";
                // publicVariable "support_armory_available";
                  ["armory",["Waffenkammer freigeschaltet","Greife über das HQ oder Versorgungskisten auf die Waffenkammer zu"]] call bis_fnc_showNotification;
               
                 
                }
              else
                {
                  hint "Nicht genügend CP";
                };
            }
          else
            {
              hint "Du kannst diese Unterstützung nicht erstatten lassen";
            };
    };   
   
    case 6:
    {
        if (commandpointsblu1 >= 20) then
            {
              if (!support_PFLIR_available) then
                {
                  commandpointsblu1 = commandpointsblu1 - 20;
                  ctrlSetText [1000, format["%1",commandpointsblu1]];
                  pFLIRenable = player addaction ["<t color='#a9ff59'>Activate FLIR</t>","pflir\livefeed.sqf","", 0,false,true,"","_target == _this"];
                  lbSetColor [2103, 6, [0, 1, 0, 1]];
                  support_pflir_available = true;
                  playSound "boots";
                  ["pflir",["Persönliche FLIR ANzeige ","Wähle deine FLIR Anzeige im Funkmenü aus"]] call bis_fnc_showNotification;
                }
              else
                {
                  hint "Diese Unterstützung ist bereits aktiv";
                };
            }
          else
            {
              hint "Nicht genügend CP";
            };
    };
   
    case 7:
    {
        if (commandpointsblu1 >= 10) then
            {
              if (!support_uav_recon_available) then
                {
                  commandpointsblu1 = commandpointsblu1 - 10;
                  ctrlSetText [1000, format["%1",commandpointsblu1]];
                  _uav_recon = [player,"uav_recon"] call BIS_fnc_addCommMenuItem;
                  lbSetColor [2103, 7, [0, 1, 0, 1]];
                  playSound "boots";
                  support_uav_recon_available = true;
                }
              else
                {
                  hint "Diese Unterstützung ist bereits aktiv";
                };
            }
          else
            {
              hint "Nicht genügend CP";
            };
    };



Einer in die support_init.hpp:



Code:

support_supplydrop_available = false;
support_paradrop_available = false;
support_jdam_available = false;
support_mortar_available = false;
support_arty_available = false;
support_pFLIR_available = false;
support_uav_recon_available = false;
support_veh_refit_available = false;
support_helotaxi_available = false;
support_boattaxi_available = false;
support_cluster_available = false;



    if (isNil "support_specialized_training_available") then
    {
    support_specialized_training_available = false;
    };

    if (isNil "support_armory_available") then
    {
    support_armory_available = false;
    };




Und einer in die request.sqf:


Code:

// Supports  !!! CHECK TO ADD AT INIT
              index_support_supply = lbAdd [2103, "Versorgungsgüter (5CP)"];                            // 0
              index_support_arty = lbAdd [2103, "Artillerie (20CP)"];                                  // 1
              index_support_mortar = lbAdd [2103, "Mörser (10CP)"];                                    // 2
              index_support_paradrop = lbAdd [2103, "Fallschirmspringer (20CP)"];                      // 3
              index_support_jdam = lbAdd [2103, "JDAM Schlag (15CP)"];                                  // 4
              index_support_armory = lbAdd [2103, "Waffenkammer (4CP)"];                                // 5
              index_support_pFLIR = lbAdd [2103, "Persönliche FLIR Anzeige (20CP)"];                    // 6
              index_support_uavrecon = lbAdd [2103, "UAV Kundschafter (10CP)"];                        // 7
              index_support_refit = lbAdd [2103, "Fahrzeug Wartung (3CP)"];                            // 8
              index_support_helotaxi = lbAdd [2103, "Helikopterabholung (3CP)"];                        // 9
              index_support_cluster = lbAdd [2103, "Mk.20 II CBU (25CP)"];                              // 10
              index_support_training = lbAdd [2103, "Spezialisierte Infanteristenausbildung (20CP)"];  // 11
              index_support_boattaxi = lbAdd [2103, "Seetransport (2CP)"];                                // 12         
           
//  lbSetCurSel [2103, 0];


        if (support_supplydrop_available) then
            {
              lbSetColor [2103, 0, [0, 1, 0, 1]];
            };
        if (support_arty_available) then
            {
              lbSetColor [2103, 1, [0, 1, 0, 1]];
            };               
        if (support_mortar_available) then
            {
              lbSetColor [2103, 2, [0, 1, 0, 1]];
            };         
        if (support_paradrop_available) then
            {
              lbSetColor [2103, 3, [0, 1, 0, 1]];
            };             
        if (support_jdam_available) then
            {
              lbSetColor [2103, 4, [0, 1, 0, 1]];
            };
        if (support_armory_available) then
            {
              lbSetColor [2103, 5, [0, 1, 0, 1]];
            };
        if (support_pflir_available) then
            {
              lbSetColor [2103, 6, [0, 1, 0, 1]];
            };
        if (support_uav_recon_available) then
            {
              lbSetColor [2103, 7, [0, 1, 0, 1]];
            };
        if (support_veh_refit_available) then
            {
              lbSetColor [2103, 8, [0, 1, 0, 1]];
            };             
        if (support_helotaxi_available) then
            {
              lbSetColor [2103, 9, [0, 1, 0, 1]];
            };
        if (support_cluster_available) then
            {
              lbSetColor [2103, 10, [0, 1, 0, 1]];
            };
        if (support_specialized_training_available) then
            {
              lbSetColor [2103, 11, [0, 1, 0, 1]];
            };             
          if (support_boattaxi_available) then
            {
              lbSetColor [2103, 12, [0, 1, 0, 1]];
            };



Wie schon gesagt wäre die Variante mit dem Unterstützungsmenü um eine "Hacker-Ausbildung" zu "absolvieren" lediglich ein Bonus, die Variante Global allen Einheiten diese Fähigkeit zuzuschreiben würde mir ebenso ausreichen.

Wäre euch äußerst verbunden falls ihr helfen könntet, sofern Zeit und Kenntnis vorhanden um mir auszuhelfen !

Beste Grüße,

MajorBlunderbuss.

MajorBlunderbuss 19.06.2015 06:22

EDIT: Selbsthilfe rockt auch
 
EDIT:

Keinen Grund zur Panik, ich habe es gerade selbst bewerkstelligt mein Problem zu lösen

Auf normalem Wege ist es nicht möglich meinem Wunsch nach zu kommen, dies musste ich nach Stundenlanger Recherche feststellen. Jedoch durch einen kleinen Trick ist es gelungen, allen einheiten diese Fähigkeit zu geben - durch ein kleines, selbsterstelltes Addon.

Für alle die daran interessiert sind:

1. Config.cpp erstellen.

2. Diesen Code in die Config.cpp einfügen:

Code:

class CfgPatches
{
  class hackerSchool {
    units[] = {};
    weapons[] = {};
    requiredVersion = 1.26;
    requiredAddons[] = {};
  };
};

class CfgVehicles
{
  class All {
    uavHacker = 1;
  };
};

3. Eigenen Addon-Ordner erstellen und die Config.cpp dort einfügen.

4. Über ArmA Tools AddonBuilder den Ordner binarizieren und PBO erstellen.

5. Eben erstelltes Addon einfügen.

Fertig, alle einheiten sind nun in der Lage UBF's/UAV's zu hacken und zu aktivieren.

Viel spaß noch, und bis bald Leutchen ! :confused:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr.

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