Script um Pylone der Jets ausrüsten läuft nicht.

  • Multiplayer

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Script um Pylone der Jets ausrüsten läuft nicht.

    Hallo,
    in einer Mission möchte ich den Spielern die Möglichkeit geben, ihre Flugzeuge mit Waffen nach ihrer Wahl auszustatten.
    Jedes Waffensystem kostet einen bestimmten Betrag, der dem Spieler dann abgezogen wird.
    Mein Problem ist, dass mein Script z.B. bei der F-18 funktioniert, die Wipeout aber kein Loadout erhällt.
    In meinem Testscript sollten nur die Pylons 1 + 2 mit GBU12 ausgestattet werden.

    Quellcode

    1. if (local player) then {
    2. _list = ["B_Plane_Fighter_01_F","I_Plane_Fighter_04_F","O_Plane_Fighter_02_F","B_Plane_CAS_01_dynamicLoadout_F","B_Plane_CAS_02_dynamicLoadout_F","I_Plane_Fighter_03_dynamicLoadout_F"];
    3. _price= 400;
    4. _geld = Her_L_Money;
    5. if ((typeOf vehicle player in _list) && (_geld > _price)) then {
    6. Her_L_Money = Her_L_Money - _price;
    7. (vehicle player) setPylonLoadOut ["pylon1", "PylonMissile_Bomb_GBU12_x1"];
    8. (vehicle player) setPylonLoadOut ["pylon2", "PylonMissile_Bomb_GBU12_x1"];
    9. sleep 1;
    10. hint "Flugzeug wurde mit 2 GBU12 Bomben aufgerüstet";
    11. }
    12. else
    13. {
    14. hint "Das Waffensystem wird von ihrem Fahrzeug nicht unterstützt oder sie haben zu wenig Geld dabei!";
    15. };
    16. };
    Alles anzeigen
    Das Script läuft korrekt durch, die Abfrage der Fahrzeuge stimmt und auch die hint Ausgabe wird bestätigt.
    Nur die Pylons werden bei einigen Flugzeugen nicht ausgestattet.

    Gibt es eine Möglichkeit leere Pylone abzufragen und diese dann auszurüsten oder gibt es allgemein einen anderen Weg diese anzusprechen?
    Ich stehe im Moment etwas auf dem Schlauch ?(

    LG Mind
  • Der "mürrische alte Mann" hat mal dies gebastelt. Kannst du vielleicht was abschauen.

    Beim ersten hinsehen fällt mir "B_Plane_CAS_02_dynamicLoadout_F" auf, die gibt es nicht in Vanilla.

    Du meinst bestimmt "O_Plane_CAS_02_dynamicLoadout_F".


    Wirf mal ein Blick auf: configfile >> "CfgVehicles" >> "B_Plane_Fighter_01_F" >> "Components" >> "TransportPylonsComponent" >> "pylons" >> "pylon1" >> "maxweight"

    Vielleicht ist die Bombe für diesen Slot zu schwer.

    setPylonLoadOut gibt einen bool'schen Wert zurück, teste mal mit:

    C-Quellcode

    1. _p1 = (vehicle player) setPylonLoadOut ["pylon1", "PylonMissile_Bomb_GBU12_x1"];
    2. _p2 = (vehicle player) setPylonLoadOut ["pylon2", "PylonMissile_Bomb_GBU12_x1"];
    3. systemChat format ["p1: %1 - p2: %2",_p1,_p2];

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Lukullus ()

  • Das GOM_fnc_aircraftLoadout habe ich mir schon angesehen aber da steige ich absolut nicht durch.
    "B_Plane_CAS_02_dynamicLoadout_F" ist der Classname der Wipeout aus der Jet DLC.

    Mir ist aufgefallen, dass einige Waffen für die Pylone bei diversen Jets unterschiedliche Classname haben, das war auch der Grund warum das mit den GBU's nicht funktioniert hat.

    Bei meinem letzten Versuch wollte ich abfragen, ob ein Pylon leer ist oder nicht um dann die Waffe daran zu hängen.
    Quasi damit man von vorne bis hinten durch einfach aufmunitionieren kann ohne die Pylone einzeln auszuwählen.

    Aber da komme ich von A-Z durcheinander.
    Zum einen spricht man bei manchen Jets die Pylone mit pylon1, pylon2 usw. an, bei anderen wiederum mit pylons1, pylons2 etc.
    Ich könnte die Maschinen über Listen trennen und diese dann Abfragen, in _list_1 kommen dann die Classnames der Maschinen die mit "pylon1..." angesprochen werden in _list_2 eben der Rest.
    Jetzt kommt aber der Teil wo mein Wissen leider am Ende ist.
    Wie Frage ich ab ob Pylon1 bestückt ist oder nicht und wie mache ich es, dass wenn da etwas dran hängt automatisch auf pylon2 gewechselt wird?
  • Hab mal was gebastelt...

    C-Quellcode

    1. tag_fnc_PylonArray =
    2. { // Rückgabewert vordefinieren
    3. private _returnArray = [];
    4. // alle vorhandenen Magazine in den Pylonen auslesen
    5. _arrPylonMagazines = getPylonMagazines _this;
    6. // das Return-Array mit Hilfe der Config erstellen
    7. { _returnArray pushback
    8. [ // Pylonname
    9. _x,
    10. // Pylonmagazin
    11. _arrPylonMagazines select _forEachIndex,
    12. // Anzahl Munition
    13. _this ammoOnPylon _x
    14. ]
    15. } forEach ("true" configClasses (configFile>>"CfgVehicles">>typeOf _this>>"Components">>"TransportPylonsComponent">>"pylons") apply {configName _x});
    16. _returnArray
    17. };
    Alles anzeigen
    Aufruf z.B. mit: vehicle player call tag_fnc_PylonArray;


    Die Funktion gibt dir z.B. folgendes Array zurück:

    C-Quellcode

    1. [ ["Pylons1","PylonRack_1Rnd_Missile_AA_04_F",1],
    2. ["Pylons2","PylonRack_7Rnd_Rocket_04_HE_F",7],
    3. ["Pylons3","PylonRack_3Rnd_Missile_AGM_02_F",3],
    4. ["Pylons4","PylonMissile_1Rnd_Bomb_04_F",1],
    5. ["Pylons5","PylonMissile_1Rnd_Bomb_04_F",1],
    6. ["Pylons6","PylonMissile_1Rnd_Bomb_04_F",1],
    7. ["Pylons7","PylonMissile_1Rnd_Bomb_04_F",1],
    8. ["Pylons8","PylonRack_3Rnd_Missile_AGM_02_F",3],
    9. ["Pylons9","PylonRack_7Rnd_Rocket_04_AP_F",7],
    10. ["Pylons10","PylonRack_1Rnd_Missile_AA_04_F",1]
    11. ]
    Alles anzeigen
    [ ["Pylonname","Pylonmagazin",Anzahl Munition], ...]

    Dann kommst du auch nicht mit den ganzen verschiedenen Namen durcheinander.

    Anhand des Arrays kannst du schnell erkennen welche Munition aufgefüllt werden muß.
    Aufmunitionieren einfach mit setAmmoOnPylon .

    Mit setPylonLoadOut kannst du die Waffensysteme der Pylonen verändern.
    getCompatiblePylonMagazines gibt dir eine Whitelist.
    Deine GBU12 ist für den Außenbereich der Tragfläche zu schwer.


    PS: Deine "B_Plane_CAS_02_dynamicLoadout_F" hab ich immer noch nicht gefunden...