AddAction für ein bestimmte Person

  • Moinsen.
    Wie es der Titel sagt, benötige ich einen AA-Eintrag, der nur für eine Person gilt. Die Spieler heißen A1 - A8. Da meine letzte Loadout-Variante bei 6 von 8 Spielern funktioniert hat und bei 2 Spieler nicht, möchte ich an leere Munitionskisten den unten angeführten addaction -Eintrag hängen. Die Kisten sind leer, damit der Spieler ggf etwas ablegen kann, was er gedenkt später zu benötigen.


    Wenn ich den AA-Eintrag in die Init der Kiste schreibe haut es einfach nicht hin:
    weaponchoose = this addAction ["<t color='#FF0000'>Waffen und Ausrüstung empfangen</t>", "scripte\client\s_loadout.sqf",nil,6,false,true,"","((_target distance _this)<1.5 ) && _target == A1 "];


    Entferne ich den roten Teil, ist der Eintrag da, logischerweise für jeden Spieler sichtbar. Ersetze ich _target == A1 mit player == A1 haut es wieder hin. Kann man in dem Fall mit player arbeiten? Ich will nicht schonwieder eine Bruchlandung mit meiner Mission an einem Samstagabend hinlegen X(



    Edit: Ich Kloppholz. Wer lesen kann ist im Vorteil. Es muss nicht _target sondern _this sein !

  • Die Variable _target enthält das Objekt dem die addAction hinzugefügt wird (nachzulesen im Biki). Wenn du also _target == A1 überprüfst checkst du ob die Kiste ein Spieler ist - klar dass du damit nicht weit kommst.


    Du kannst hier player verwenden oder auch _this (_this enthält die aufrufende Einheit), das sollte keinen Unterschied machen, da addAction nur lokalen Effekt hat und somit die aufrufende Einheit der Spieler ist (was außer bei Zeus kontrollierten Einheiten und UAVs immer der Fall ist).


    Wenn du keine 8 addActions machen willst würde ich dir folgendes empfehlen:

    Code
    1. player in [A1, A2, A3, A4, A5, A6, A7, A8]

    Ist ein wenig schöner. Du kannst das selbe auch stattdessen in einem if außenrum abfragen, und nur dann die addAction hinzufügen, was dann noch minimal performanter ist.

  • Du kannst auch den Radius als Parameter Nummer 9 angeben.


    Ich persönlich würde aber den Player erst in der .sqf auslesen.


    In etwa wie folgt:

  • leider muss ich sagen das das keinen sinn macht was du schreibst Dorbedo


    1. Distance ist erst ab 1.63(also 1.64) verfügbar
    2. du führt dort mit execVM etwas aus die frage ist wofür gibt es dort den code tag bzw war trägst du nich gleich einfach den script pfad nur ein das hat den selben efffect
    3. warum baust du so einen großen switch case denn was er wollte war das nur bestimmte spieler diese action über haubt ausführen können


    C
    1. weaponchoose = this addAction ["<t color='#FF0000'>Waffen und Ausrüstung empfangen</t>", "scripte\client\s_loadout.sqf",nil,6,false,true,"","((_target distance _this)<1.5 ) && _this in [A1,A2,A3,A4]"];


    das heißst die Lösung die BlauBear gegeben hat war vollkommen richtig und deine verkompieziert das ganze.
    wenn du das ganze in einer ".sqf" haben willst dann schreibst du halt den addaction befehl mit dem rest da rein und hast es nicht in der mission