Listbox Dialog, Sting zu Objekt

  • Vanilla

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

  • Listbox Dialog, Sting zu Objekt

    Moinsen.

    Ich habe eine kleine Konsole für den Admin eingebaut, in welcher er minimale Eingriffe vornehmenn kann, falls die Mission hackt oder ein Spieler ein DC hatte. Dazu nutze ich einen Dialog und die Spieler werden in den Dialog beim Öffnen eingetragen
    Der Eintrag in die Listbox erfolgt so:

    Quellcode

    1. disableSerialization;
    2. createDialog "Dialog_Admin";
    3. waitUntil {dialog};
    4. {
    5. if (isPlayer _x) then {
    6. _index = lbAdd [1500, name _x];
    7. };
    8. } forEach allUnits;
    9. // setzt Cursor immer auf die oberste Position
    10. lbSetCurSel [1500, 0];
    Alles anzeigen

    Will ich z.B. den aktuell gewählten Spieler "teleportieren" weil er einen DC hatte, brauche ich das Objekt. Jetz gab es diverse Themen die BIS_Fnc_NetID usw. aufgriffen.

    Aber irgendwie kapiere ich das nicht. Könnte mir mal einer ein kleines Beipsiel posten, wie ich das verwenden muss. Nehmen wir einfach mal setDammage.
    Wie müsste es die Übergabe am Knopf und im Script aussehen? Ich meine damit muss ich
    lbText [1500,(lbCurSel 1500)] spawn ... oder ldData etc pp nehmen?
    Gehirn ist keine Seife. Es wird nicht weniger, wenn man es benutzt!

    Beste Band der Welt
  • Für diejenigen, die es interessiert, hier meine Ansatz:
    Der Dialog wird geöffnet und es wir der Name sowie die NetId hinterleget

    Quellcode

    1. disableSerialization;
    2. createDialog "Dialog_Admin";
    3. waitUntil {dialog};
    4. {
    5. if (isPlayer _x) then {
    6. _index = lbAdd [1500, name _x];
    7. _data = lbSetData [1500, _index, _x call BIS_fnc_netId];
    8. };
    9. } forEach allUnits;
    10. // setzt Cursor immer auf die oberste Position
    11. lbSetCurSel [1500, 0];
    Alles anzeigen

    Im Dialog habe ich auf einen Knopf folgendes hinterlegt:
    action = " (lbCurSel 1500) spawn fnc_RemoveAllFromSelectedPlayer";

    Die Funktion lautet:

    Brainfuck-Quellcode

    1. fnc_RemoveAllFromSelectedPlayer=
    2. {
    3. Params ["_selectedOne"];
    4. _netID = lbData [1500,_selectedOne];
    5. _object = _netID call BIS_fnc_objectFromNetId;
    6. _object setUnitLoadout [[],[],[],[],[],[],"","",[],["","","","","",""]];
    7. };
    Gehirn ist keine Seife. Es wird nicht weniger, wenn man es benutzt!

    Beste Band der Welt