1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Do: 19 Juni 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Spieler können Eskorte nicht abbrechen

    • ___
    • 2. Mai 2018 um 18:34
    • Erledigt
    • ___
      Fortgeschrittener
      Reaktionen
      28
      Trophäen
      8
      Beiträge
      335
      Dateien
      1
      • 2. Mai 2018 um 18:34
      • #1

      Hey^^

      Spieler können, insofern sie einen Spieler gefesselt haben und die Eskorte gestartet haben, die Eskorte nicht mehr abbrechen bzw. können das Interaction Menü nicht mehr öffnen.

      Meine "civInteractionMenu.sqf":

      Code
      #include "..\..\script_macros.hpp"
      /*
       File: fn_vInteractionMenu.sqf
       Author: Bryan "Tonic" Boardwine
       Description:
       Replaces the mass add actions for various vehicle actions.
      */
      #define Btn1 37450
      #define Btn2 37451
      #define Btn3 37452
      #define Btn4 37453
      #define Btn5 37454
      #define Btn6 37455
      #define Title 37401
      private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_dlcVehicles"];
      if (!dialog) then {
       createDialog "vInteraction_Menu";
      };
      disableSerialization;
      _curTarget = param [0,objNull,[objNull]];
      if (isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
      _isVehicle = if ((_curTarget isKindOf "landVehicle") || (_curTarget isKindOf "Ship") || (_curTarget isKindOf "Air")) then {true} else {false};
      if (!_isVehicle) exitWith {closeDialog 0;};
      _display = findDisplay 37400;
      _Btn1 = _display displayCtrl Btn1;
      _Btn2 = _display displayCtrl Btn2;
      _Btn3 = _display displayCtrl Btn3;
      _Btn4 = _display displayCtrl Btn4;
      _Btn5 = _display displayCtrl Btn5;
      _Btn6 = _display displayCtrl Btn6;
      life_vInact_curTarget = _curTarget;
      _dlcVehicles = ["C_Kart_01_Blu_F","C_Kart_01_Red_F","C_Kart_01_Fuel_F","C_Kart_01_Vrana_F","B_Heli_Transport_03_F","B_Heli_Transport_03_unarmed_F","O_Heli_Transport_04_F","O_Heli_Transport_04_ammo_F","O_Heli_Transport_04_bench_F","O_Heli_Transport_04_box_F","O_Heli_Transport_04_covered_F","O_Heli_Transport_04_fuel_F","O_Heli_Transport_04_medevac_F","O_Heli_Transport_04_repair_F"];
      //Set Repair Action
      _Btn1 ctrlSetText localize "STR_vInAct_Repair";
      _Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck; closeDialog 0;";
      if ("ToolKit" in (items player) && {alive life_vInact_curTarget} && {([life_vInact_curTarget] call life_fnc_isDamaged)}) then {_Btn1 ctrlEnable true;} else {_Btn1 ctrlEnable false;};
      if (playerSide isEqualTo west) then {
       _Btn2 ctrlSetText localize "STR_vInAct_Registration";
       _Btn2 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction; closeDialog 0;";
       _Btn3 ctrlSetText localize "STR_vInAct_SearchVehicle";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_vehInvSearch; closeDialog 0;";
       _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
       _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction; closeDialog 0;";
       if (crew _curTarget isEqualTo []) then {_Btn4 ctrlEnable false;};
       _Btn5 ctrlSetText localize "STR_vInAct_Impound";
       _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction; closeDialog 0;";
       if (_curTarget isKindOf "Ship") then {
       _Btn6 ctrlSetText localize "STR_vInAct_PushBoat";
       _Btn6 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
       if (_curTarget isKindOf "Ship" && {local _curTarget} && {crew _curTarget isEqualTo []}) then { _Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
       } else {
       if ((typeOf (_curTarget) in _dlcVehicles) && !(288520 in getDLCs 1)) then {
       if (_curTarget isKindOf "Air") then {
       _Btn6 ctrlSetText localize "STR_vInAct_GetInHeli";
       } else {
       _Btn6 ctrlSetText localize "STR_vInAct_GetInKart";
       };
       _Btn6 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
       if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
       } else {
       _Btn6 ctrlSetText localize "STR_vInAct_Unflip";
       _Btn6 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn6 ctrlEnable false;} else {_Btn6 ctrlEnable true;};
       };
       };
      } else {
       if (_curTarget isKindOf "Ship") then {
       _Btn2 ctrlSetText localize "STR_vInAct_PushBoat";
       _Btn2 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
       if (alive _curTarget && {_curTarget isKindOf "Ship"} && {local _curTarget} && {crew _curTarget isEqualTo []}) then { _Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false};
       } else {
       if ((typeOf (_curTarget) in _dlcVehicles) && !(288520 in getDLCs 1)) then {
       if (_curTarget isKindOf "Air") then {
       _Btn2 ctrlSetText localize "STR_vInAct_GetInHeli";
       } else {
       _Btn2 ctrlSetText localize "STR_vInAct_GetInKart";
       };
       _Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
       if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false};
       } else {
       _Btn2 ctrlSetText localize "STR_vInAct_Unflip";
       _Btn2 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn2 ctrlEnable false;} else {_Btn2 ctrlEnable true;};
       };
       };
       if (typeOf _curTarget == "O_Truck_03_device_F") then {
       _Btn3 ctrlSetText localize "STR_vInAct_DeviceMine";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_deviceMine";
       if (!isNil {(_curTarget getVariable "mining")} || !local _curTarget && {_curTarget in life_vehicles}) then {
       _Btn3 ctrlEnable false;
       } else {
       _Btn3 ctrlEnable true;
       };
       } else {
       _Btn3 ctrlShow false;
       if (typeOf (_curTarget) in ["C_Van_01_fuel_F","I_Truck_02_fuel_F","B_Truck_01_fuel_F"] && _curTarget in life_vehicles) then {
       if (!isNil {_curTarget getVariable "fuelTankWork"}) then {
       _Btn3 ctrlSetText localize "STR_FuelTank_Stop";
       _Btn3 buttonSetAction "life_vInact_curTarget setVariable [""fuelTankWork"",nil,true]; closeDialog 0;";
       _Btn3 ctrlShow true;
       } else {
       if (count (nearestObjects [_curTarget, ["Land_FuelStation_Feed_F","Land_fs_feed_F"], 15]) > 0) then {
       _Btn3 ctrlSetText localize "STR_FuelTank_Supply";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_fuelSupply";
       _Btn3 ctrlShow true;
       }else{
       {
       if (player distance (getMarkerPos _x) < 20) exitWith {
       _Btn3 ctrlSetText localize "STR_FuelTank_Store";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_fuelStore";
       _Btn3 ctrlShow true;
       };
       } forEach ["fuel_storage_1","fuel_storage_2"];
       };
       };
       };
       };
       _Btn4 ctrlShow false;
       _Btn5 ctrlShow false;
       _Btn6 ctrlShow false;
      };
      if (playerSide isEqualTo Independent) then {
       _Btn2 ctrlSetText localize "STR_vInAct_Unflip";
       _Btn2 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn2 ctrlEnable false;} else {_Btn2 ctrlEnable true;};
       
       _Btn3 ctrlSetText localize "STR_vInAct_Impound";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction; closeDialog 0;";
       _Btn3 ctrlShow true;
       _Btn4 ctrlSetText localize "STR_vInAct_Registration";
       _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction; closeDialog 0;";
       _Btn4 ctrlShow true;
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn5 ctrlEnable false;} else {_Btn5 ctrlEnable true;};
       if (!isNil "_id") then {
       if !(_id in getDLCs 1) then {
       _Btn6 ctrlSetText localize "STR_vInAct_GetInVehicle";
       _Btn6 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
       if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
       };
       } else {_Btn6 ctrlShow false;};
       };
      Alles anzeigen

      Und noch der Eintrag in der keyHandler wobei diese nicht von nutzen sein sollte:

      Code
      //Restraining (Shift + R)
          case 19: {
              if (_shift) then {_handled = true;};
              if(_shift && playerSide isEqualTo civilian && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then{
                  if([false,"zipties",1] call life_fnc_handleInv) then {//Removes the zipties from the inventory
                          [] call life_fnc_RestrainAction;
                          hintSilent "Du hast diese Person erfolgreich gefesselt!";
                      } else {
                          hintSilent "Dafür brauchst du Kabelbinder!";
                      };
                      };
              if (_shift && playerSide isEqualTo west && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then {
                  [] call life_fnc_restrainAction;
              };
          };
      Alles anzeigen

      Am besten wäre auch noch, dass der Spieler sich zu ergeben hat, oder niedergeschlagen werden muss, um ihn mit Shift & R zu fesseln. Momentan muss man nur hinter dem Spieler stehen. Wäre froh, wenn jemand mir dazu was sagen kann :saint:

      oblivionsurvivorspic_Scaled125x125.png  Oblivion Survivors - Wir leben Gaming

      Website & Forum

      Discord Server

      Steamgruppe

    • Virus_
      Anfänger
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      63
      • 2. Mai 2018 um 20:42
      • #2

      Du hast da leider das VEHICLE Interkationszeug gepostet. Das hilf uns nix ;)

      Zum Niederschlagen: In der Grundvariante, die im Netz so am meisten vertreten ist, mega buggy, weil abhängig von Animationen und.... tu es einfach nicht.

      Fürs nur Ergebene festnehmen:

      && {cursorObject getVariable["playerSurrender", false]}
      in dieses völlig überfrachtete If packen. Eventuell heißt es nicht playerSurrender sondern irgendwie anders. Schau einfach was in deinem "ergeben"-skript steht...

      wenn du es wirklich mit Niederschlagen willst:

      && ({cursorObject getVariable["playerSurrender", false]} || {cursorObject getVariable["incapacitated", false]})

      Dann gehste in dein Niederschlagenskript und musst halt dafür sorgen, dass die incapacitated - Variable ordentlich gesetzt und wieder gelöscht wird...

    • ___
      Fortgeschrittener
      Reaktionen
      28
      Trophäen
      8
      Beiträge
      335
      Dateien
      1
      • 2. Mai 2018 um 21:10
      • #3

      Virus_ Oh, entschuldige :D Hier das civInteractionMenu:

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_civInteractionMenu.sqf
          Author: jmuirhead(help from AlaskaVet)
          
          Description:
          Replaces the mass addactions for various cop actions towards another player.
      */
      #define Btn1 37450
      #define Btn2 37451
      #define Btn3 37452
      #define Btn4 37453
      #define Btn5 37454
      #define Btn6 37455
      #define Btn7 37456
      #define Btn8 37457
      #define Title 37401
      
      private ["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7","_Btn8"];
      
      disableSerialization;
      _curTarget = param [0,objNull,[objNull]];
      
      if (player getVariable ["Escorting", false]) then {
          if (isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
          if (!isPlayer _curTarget && side _curTarget isEqualTo civilian) exitWith {closeDialog 0;}; //Bad side check?
          if (player distance _curTarget > 4 ) exitWith {closeDialog 0;}; // Prevents menu accessing from far distances.
      };
      
      if (!dialog) then {
          createDialog "pInteraction_Menu";
      };
      
      _display = findDisplay 37400;
      _Btn1 = _display displayCtrl Btn1;
      _Btn2 = _display displayCtrl Btn2;
      _Btn3 = _display displayCtrl Btn3;
      _Btn4 = _display displayCtrl Btn4;
      _Btn5 = _display displayCtrl Btn5;
      _Btn6 = _display displayCtrl Btn6;
      _Btn7 = _display displayCtrl Btn7;
      _Btn8 = _display displayCtrl Btn8;
      life_pInact_curTarget = _curTarget;
      
      if (player getVariable ["isEscorting",false]) then {
          { _x ctrlShow false; } forEach [_Btn2,_Btn5,_Btn6,_Btn7,_Btn8];
      };
      
      //Set Unrestrain Button
      _Btn1 ctrlSetText localize "STR_pInAct_Unrestrain";
      _Btn1 buttonSetAction "[life_pInact_curTarget] call life_fnc_unrestrain; closeDialog 0;";
      
      //Set Escort Button
      
      
          _Btn2 ctrlSetText localize "STR_pInAct_Escort";
          _Btn2 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;";
      
          _Btn3 ctrlSetText localize "STR_pInAct_StopEscort";
          _Btn3 buttonSetAction "[life_pInact_curTarget] call life_fnc_stopEscorting; [life_pInact_curTarget] call life_fnc_civInteractionMenu;closeDialog 0;";
          
      _Btn4 ctrlSetText localize "STR_pInAct_PutInCar";
      _Btn4 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar;closeDialog 0;";
      
      
      _Btn5 ctrlShow false;
      _Btn6 ctrlShow false;
      _Btn7 ctrlShow false;
      _Btn8 ctrlShow false;
      Alles anzeigen

      Naja, das mit den Vorgaben wie ein Spieler zu sein hat, ist erst mal unwichtig.

      Primär ist, das sich das Menü während der Eskorte öffnen lässt :saint:

      oblivionsurvivorspic_Scaled125x125.png  Oblivion Survivors - Wir leben Gaming

      Website & Forum

      Discord Server

      Steamgruppe

    • Virus_
      Anfänger
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      63
      • 2. Mai 2018 um 21:19
      • #4

      Sieht soweit ok aus. Kann nichts erkennen. Eventuell mal in die "exitWith"s mal aussagekräftige "diag_log"s reinmachen und schauen, ob er an einer dieser Abbruchbedingungen scheitert.

      Ich gehe mal davon aus, dass bis jetzt kein Fehler in den Logs auftaucht, da du uns den sonst gezeigt hättest?!

      Falls wir weiter schauen sollen brauchen wir folgende Files:

      keyHandler und actionKeyHandler

      Beide unter core/functions/

    • Mike Black
      Anfänger
      Reaktionen
      6
      Trophäen
      9
      Beiträge
      73
      • 3. Mai 2018 um 11:19
      • #5

      Hey,

      Hatte ich auch...

      Du musst im actionKeyhandler oben die Abfrage für das Escorten hinzufügen.

      Unten müsstest du ja die für restrained schon gemacht haben... sonst könntest du ja gar nicht erst Escortieren.

      Schick sonst mal deinen actionKeyHandler...

      Mike

      Wer fehler findet darf sie behalten....8o

      Einmal editiert, zuletzt von Mike Black (3. Mai 2018 um 11:31)

    • ___
      Fortgeschrittener
      Reaktionen
      28
      Trophäen
      8
      Beiträge
      335
      Dateien
      1
      • 3. Mai 2018 um 14:15
      • #6

      Virus_ und Mike Black Hier einmal die actionKeyHandler und die normale keyHandler ^^

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_actionKeyHandler.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Master action key handler, handles requests for picking up various items and
          interacting with other players (Cops = Cop Menu for unrestrain,escort,stop escort, arrest (if near cop hq), etc).
      */
      private ["_curObject","_isWater","_CrateModelNames","_crate","_fish","_animal","_whatIsIt","_handle"];
      _curObject = cursorObject;
      if (life_action_inUse) exitWith {}; //Action is in use, exit to prevent spamming.
      if (life_interrupted) exitWith {life_interrupted = false;};
      _isWater = surfaceIsWater (visiblePositionASL player);
      
      if (playerSide isEqualTo west && {player getVariable ["isEscorting",false]}) exitWith {
          [] call life_fnc_copInteractionMenu;
      };
      if (playerSide isEqualTo civilian && {player getVariable ["isEscorting",false]}) exitWith {
          [] call life_fnc_civInteractionMenu;
      };
      
      
      if (LIFE_SETTINGS(getNumber,"global_ATM") isEqualTo 1) then{
          //Check if the player is near an ATM.
          if ((call life_fnc_nearATM) && {!dialog}) exitWith {
              [] call life_fnc_atmMenu;
          };
      };
      
      if (isNull _curObject) exitWith {
          if (_isWater) then {
              _fish = (nearestObjects[player,(LIFE_SETTINGS(getArray,"animaltypes_fish")),3]) select 0;
              if (!isNil "_fish") then {
                  if (!alive _fish) then {
                      [_fish] call life_fnc_catchFish;
                  };
              };
          } else {
              _animal = (nearestObjects[player,(LIFE_SETTINGS(getArray,"animaltypes_hunting")),3]) select 0;
              if (!isNil "_animal") then {
                  if (!alive _animal) then {
                      [_animal] call life_fnc_gutAnimal;
                  };
              } else {
                  private "_handle";
                  if (playerSide isEqualTo civilian && !life_action_gathering) then {
                _whatIsIt = [] call life_fnc_whereAmI;
                      if (life_action_gathering) exitWith {};                 //Action is in use, exit to prevent spamming.
                      switch (_whatIsIt) do {
                          case "mine" : { _handle = [] spawn life_fnc_mine };
                          default { _handle = [] spawn life_fnc_gather };
                      };
                      life_action_gathering = true;
                      waitUntil {scriptDone _handle};
                      life_action_gathering = false;
                  };
              };
          };
      };
      
      if ((_curObject isKindOf "B_supplyCrate_F" || _curObject isKindOf "Box_IND_Grenades_F") && {player distance _curObject < 3} ) exitWith {
          if (alive _curObject) then {
              [_curObject] call life_fnc_containerMenu;
          };
      };
      
      private _vaultHouse = [[["Altis", "Land_Research_house_V1_F"], ["Tanoa", "Land_PillboxBunker_01_big_F"]]] call TON_fnc_terrainSort;
      private _altisArray = [16019.5,16952.9,0];
      private _tanoaArray = [8435.88,1346.1,4.46115];
      private _pos = [[["Altis", _altisArray], ["Tanoa", _tanoaArray]]] call TON_fnc_terrainSort;
      
      if (_curObject isKindOf "House_F" && {player distance _curObject < 12} || ((nearestObject [_pos,"Land_Airport_01_hangar_F"]) isEqualTo _curObject || (nearestObject [_pos,_vaultHouse]) isEqualTo _curObject)) exitWith {
          [_curObject] call life_fnc_houseMenu;
      };
      
      if (dialog) exitWith {}; //Don't bother when a dialog is open.
      if !(isNull objectParent player) exitWith {}; //He's in a vehicle, cancel!
      life_action_inUse = true;
      
      //Temp fail safe.
      [] spawn {
          sleep 60;
          life_action_inUse = false;
      };
      
      //Check if it's a dead body.
      if (_curObject isKindOf "Man" && !(_curObject isKindOf "Animal") && {!alive _curObject} && !(_curObject getVariable ["Revive",false])) exitWith {
          //Hotfix code by ins0
          if ((playerSide isEqualTo west && {(LIFE_SETTINGS(getNumber,"revive_cops") isEqualTo 1)}) || {(playerSide isEqualTo civilian && {(LIFE_SETTINGS(getNumber,"revive_civ") isEqualTo 1)})} || {(playerSide isEqualTo east && {(LIFE_SETTINGS(getNumber,"revive_east") isEqualTo 1)})} || {playerSide isEqualTo independent}) then {
              if (life_inv_defibrillator > 0) then {
                  [_curObject] call life_fnc_revivePlayer;
              };
          };
      };
      
      //If target is a player then check if we can use the cop menu.
      if(isPlayer _curObject && _curObject isKindOf "Man") then {
          if((_curObject getVariable ["restrained",false]) && !dialog && playerSide isEqualTo west) then {
              [_curObject] call life_fnc_copInteractionMenu;
          };
          if((_curObject getVariable ["restrained",false]) && !dialog && playerSide isEqualTo civilian) then {
              [_curObject] call life_fnc_civInteractionMenu;
          };
      } else {
          //OK, it wasn't a player so what is it?
          private ["_isVehicle","_miscItems","_money","_list"];
      
          _list = ["landVehicle","Ship","Air"];
          _isVehicle = if (KINDOF_ARRAY(_curObject,_list)) then {true} else {false};
          _miscItems = ["Land_BottlePlastic_V1_F","Land_TacticalBacon_F","Land_Can_V3_F","Land_CanisterFuel_F","Land_Suitcase_F"];
      
          //It's a vehicle! open the vehicle interaction key!
          if (_isVehicle) then {
              if (!dialog) then {
                  if (player distance _curObject < ((boundingBox _curObject select 1) select 0)+2 && (!(player getVariable ["restrained",false])) && (!(player getVariable ["playerSurrender",false])) && !life_isknocked && !life_istazed) then {
                      [_curObject] call life_fnc_vInteractionMenu;
                  };
              };
          } else {
              //OK, it wasn't a vehicle so let's see what else it could be?
              if ((typeOf _curObject) in _miscItems) then {
                  [_curObject,player,false] remoteExecCall ["TON_fnc_pickupAction",RSERV];
              } else {
                  //It wasn't a misc item so is it money?
                  if ((typeOf _curObject) isEqualTo "Land_Money_F" && {!(_curObject getVariable ["inUse",false])}) then {
                      [_curObject,player,true] remoteExecCall ["TON_fnc_pickupAction",RSERV];
                  };
              };
          };
      };
      Alles anzeigen

      Die keyHandler musste ich als Dateianhang hinzufügen :|

      Dateien

      fn_keyHandler.txt 20,35 kB – 184 Downloads

      oblivionsurvivorspic_Scaled125x125.png  Oblivion Survivors - Wir leben Gaming

      Website & Forum

      Discord Server

      Steamgruppe

    • Mike Black
      Anfänger
      Reaktionen
      6
      Trophäen
      9
      Beiträge
      73
      • 3. Mai 2018 um 20:01
      • #7

      ___

      Der actionKeyHandler ist soweit ok. Das war das Problem bei mir....

      Ansonsten weiß ich jetzt auch gerade nichts :(

      Wer fehler findet darf sie behalten....8o

    • ___
      Fortgeschrittener
      Reaktionen
      28
      Trophäen
      8
      Beiträge
      335
      Dateien
      1
      • 3. Mai 2018 um 20:02
      • #8

      Mike Black, okay trotzdem danke :)

      Hat sonst noch wer ne Idee? :|

      oblivionsurvivorspic_Scaled125x125.png  Oblivion Survivors - Wir leben Gaming

      Website & Forum

      Discord Server

      Steamgruppe

    • Tass
      Fortgeschrittener
      Reaktionen
      103
      Beiträge
      408
      Bilder
      3
      • 4. Mai 2018 um 08:50
      • #9

      irgendwo muss das script ja nen exitWith machen oder gar nicht erst starten

      ich würde mich jetzt schritt für schritt ran turteln mit hints

      in den entsprchenden dateien ,an mehreren stellen verschiedene hints, damit ich sehen kann welches script an welcher stelle geht oder halt nicht mehr

      evtl wird auch das eskorting an sich nicht erkannt^^

      hast du deine fn_escortAction.sqf mal gespostet oder hab ich die nur übersehen ?

      Ich bin keine Signatur... ich putz hier nur ;d

      Einmal editiert, zuletzt von Tass (4. Mai 2018 um 08:57)

    • Virus_
      Anfänger
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      63
      • 4. Mai 2018 um 12:10
      • #10
      Zitat von Mike Black

      ___

      Der actionKeyHandler ist soweit ok. Das war das Problem bei mir....

      Ansonsten weiß ich jetzt auch gerade nichts :(

      Ähm. Ich hätte da schon eine Theorie. Vielleicht kannst du mich ja aufklären, wo mein Denkfehler ist Mike Black .

      Im ActionKeyHandler stehen zwei mögliche Aufrufe für das civ_InteractionMenu.

      Code
      if (playerSide isEqualTo west && {player getVariable ["isEscorting",false]}) exitWith {
       [] call life_fnc_copInteractionMenu;
      };
      if (playerSide isEqualTo civilian && {player getVariable ["isEscorting",false]}) exitWith {
       [] call life_fnc_civInteractionMenu;
      };

      und

      Code
      if(isPlayer _curObject && _curObject isKindOf "Man") then {
       if((_curObject getVariable ["restrained",false]) && !dialog && playerSide isEqualTo west) then {
       [_curObject] call life_fnc_copInteractionMenu;
       };
       if((_curObject getVariable ["restrained",false]) && !dialog && playerSide isEqualTo civilian) then {
       [_curObject] call life_fnc_civInteractionMenu;
       };

      Nur beim zweiten, wird das aktuelle Objekt übergeben. Das zweite wird aber nur aufgerufen, wenn das erste NICHT aktiviert wurde und die Bedingungen erfüllt sind (Zivi und gefesselt). Der erste Aufruf findet allerdings statt, wenn man jemanden Abführt.

      Dann ein Blick in das civInteractionMenu:

      Code
      _curTarget = param [0,objNull,[objNull]];
      if (player getVariable ["Escorting", false]) then {
       if (isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
       if (!isPlayer _curTarget && side _curTarget isEqualTo civilian) exitWith {closeDialog 0;}; //Bad side check?
       if (player distance _curTarget > 4 ) exitWith {closeDialog 0;}; // Prevents menu accessing from far distances.
      };

      _curTarget wird aus dem übergebenen Parameter gewonnen. Doof, dass wir niemanden übergeben.

      Und dann kommen unsere exitWiths ins Spiel. Wir führen ja jemanden ab(Escorting-> true) aber alle checks würden scheitern, da _curTarget nicht gesetzt ist.

      Der schnelle Weg für einen Fix wäre _curObject auch beim ersten Aufruf zu übergeben. [_curObject] call life_fnc_civInteractionMenu; und entsprechend auch für die Cops.

      Lieben Gruß und ein schönes Wochenende

    • ___
      Fortgeschrittener
      Reaktionen
      28
      Trophäen
      8
      Beiträge
      335
      Dateien
      1
      • 4. Mai 2018 um 13:36
      • #11

      Tass Oh, hatte ich gar nicht angehängt :D Hier mal meine fn_escortAction.sqf:

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_escortAction.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description: Attaches the desired person(_unit) to the player(player) and "escorts them".
      */
      private ["_unit"];
      _unit = [_this,0,objNull,[objNull]] call BIS_fnc_param;
      
      if (!isNull(player getVariable ["escortingPlayer",objNull])) exitWith {};
      if (isNil "_unit" || isNull _unit || !isPlayer _unit) exitWith {};
      if (!(side _unit in [civilian,independent])) exitWith {};
      if (player distance _unit > 3) exitWith {};
      
      _unit attachTo [player,[0.1,1.1,0]];
      player setVariable ["escortingPlayer",_unit];
      player setVariable ["isEscorting",true];
      _unit setVariable ["transporting",false,true];
      _unit setVariable ["Escorting",true,true];
      player reveal _unit;
      
      [_unit] spawn {
          _unit = _this select 0;
          waitUntil {(!(_unit getVariable ["Escorting",false]))};
          player setVariable ["escortingPlayer",nil];
          player setVariable ["isEscorting",false];
      };
      Alles anzeigen

      oblivionsurvivorspic_Scaled125x125.png  Oblivion Survivors - Wir leben Gaming

      Website & Forum

      Discord Server

      Steamgruppe

    • ___
      Fortgeschrittener
      Reaktionen
      28
      Trophäen
      8
      Beiträge
      335
      Dateien
      1
      • 4. Mai 2018 um 13:38
      • #12

      Virus_ Okay, ich stelle mich ein bisschen blöd an :|

      [_curObject] call life_fnc_civInteractionMenu; soll ich wo einfügen/ersetzen? ^^

      oblivionsurvivorspic_Scaled125x125.png  Oblivion Survivors - Wir leben Gaming

      Website & Forum

      Discord Server

      Steamgruppe

    • Virus_
      Anfänger
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      63
      • 4. Mai 2018 um 15:50
      • #13
      Zitat von MMOEmpire

      Virus_ Okay, ich stelle mich ein bisschen blöd an :|

      [_curObject] call life_fnc_civInteractionMenu; soll ich wo einfügen/ersetzen? ^^

      Ich hoffe für dich, dass du darüber gestolpert bist, dass du mir einfach irgendwann nicht mehr folgen konnste, von welchem Abschnitt ich rede und nicht über so Begriffe wie "Parameter übergeben"... falls doch... Bohemia Wiki Params

      Aber nochmal ganz klar: Im folgenden Code, welcher in deinem ActionKeyHandler ist musst du in Zeile 2 und 5 jeweils in die eckigen Klammern _curObjecteinfügen. Zeilenangaben beziehen sich natürlich auf den von mir im folgenden zitierten Codeausschnitt. Nicht auf die gesamte Datei. Da findest du den Abschnitt schon selbst...

      Code
      if (playerSide isEqualTo west && {player getVariable ["isEscorting",false]}) exitWith {
       [] call life_fnc_copInteractionMenu;
      };
      if (playerSide isEqualTo civilian && {player getVariable ["isEscorting",false]}) exitWith {
       [] call life_fnc_civInteractionMenu;
      };

      Kannst ja mal danach berichten, ob das Problem vollständig behoben wurde.

    • ___
      Fortgeschrittener
      Reaktionen
      28
      Trophäen
      8
      Beiträge
      335
      Dateien
      1
      • 4. Mai 2018 um 16:07
      • #14

      Virus_ Okay, da war ich einfach ein bisschen Brain AFK, das ist ja easy ^^

      Auf jeden Fall erstmal vielen Dank, so funktioniert es! Nur habe ich diesbezüglich noch ein Problem...

      Ich kann den betreffenden Spieler in ein Fahrzeug setzen, nur kann ich ihn nicht mehr herausziehen :/

      Ich hänge einmal meine vInteractionMenu.sqf an:

      Code
      #include "..\..\script_macros.hpp"
      /*
       File: fn_vInteractionMenu.sqf
       Author: Bryan "Tonic" Boardwine
       Description:
       Replaces the mass add actions for various vehicle actions.
      */
      #define Btn1 37450
      #define Btn2 37451
      #define Btn3 37452
      #define Btn4 37453
      #define Btn5 37454
      #define Btn6 37455
      #define Title 37401
      private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_dlcVehicles"];
      if (!dialog) then {
       createDialog "vInteraction_Menu";
      };
      disableSerialization;
      _curTarget = param [0,objNull,[objNull]];
      if (isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
      _isVehicle = if ((_curTarget isKindOf "landVehicle") || (_curTarget isKindOf "Ship") || (_curTarget isKindOf "Air")) then {true} else {false};
      if (!_isVehicle) exitWith {closeDialog 0;};
      _display = findDisplay 37400;
      _Btn1 = _display displayCtrl Btn1;
      _Btn2 = _display displayCtrl Btn2;
      _Btn3 = _display displayCtrl Btn3;
      _Btn4 = _display displayCtrl Btn4;
      _Btn5 = _display displayCtrl Btn5;
      _Btn6 = _display displayCtrl Btn6;
      life_vInact_curTarget = _curTarget;
      _dlcVehicles = ["C_Kart_01_Blu_F","C_Kart_01_Red_F","C_Kart_01_Fuel_F","C_Kart_01_Vrana_F","B_Heli_Transport_03_F","B_Heli_Transport_03_unarmed_F","O_Heli_Transport_04_F","O_Heli_Transport_04_ammo_F","O_Heli_Transport_04_bench_F","O_Heli_Transport_04_box_F","O_Heli_Transport_04_covered_F","O_Heli_Transport_04_fuel_F","O_Heli_Transport_04_medevac_F","O_Heli_Transport_04_repair_F"];
      //Set Repair Action
      _Btn1 ctrlSetText localize "STR_vInAct_Repair";
      _Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck; closeDialog 0;";
      if ("ToolKit" in (items player) && {alive life_vInact_curTarget} && {([life_vInact_curTarget] call life_fnc_isDamaged)}) then {_Btn1 ctrlEnable true;} else {_Btn1 ctrlEnable false;};
      if (playerSide isEqualTo west) then {
       _Btn2 ctrlSetText localize "STR_vInAct_Registration";
       _Btn2 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction; closeDialog 0;";
       _Btn3 ctrlSetText localize "STR_vInAct_SearchVehicle";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_vehInvSearch; closeDialog 0;";
       _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
       _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction; closeDialog 0;";
       if (crew _curTarget isEqualTo []) then {_Btn4 ctrlEnable false;};
       _Btn5 ctrlSetText localize "STR_vInAct_Impound";
       _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction; closeDialog 0;";
       if (_curTarget isKindOf "Ship") then {
       _Btn6 ctrlSetText localize "STR_vInAct_PushBoat";
       _Btn6 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
       if (_curTarget isKindOf "Ship" && {local _curTarget} && {crew _curTarget isEqualTo []}) then { _Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
       } else {
       if ((typeOf (_curTarget) in _dlcVehicles) && !(288520 in getDLCs 1)) then {
       if (_curTarget isKindOf "Air") then {
       _Btn6 ctrlSetText localize "STR_vInAct_GetInHeli";
       } else {
       _Btn6 ctrlSetText localize "STR_vInAct_GetInKart";
       };
       _Btn6 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
       if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
       } else {
       _Btn6 ctrlSetText localize "STR_vInAct_Unflip";
       _Btn6 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn6 ctrlEnable false;} else {_Btn6 ctrlEnable true;};
       };
       };
      } else {
       if (_curTarget isKindOf "Ship") then {
       _Btn2 ctrlSetText localize "STR_vInAct_PushBoat";
       _Btn2 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
       if (alive _curTarget && {_curTarget isKindOf "Ship"} && {local _curTarget} && {crew _curTarget isEqualTo []}) then { _Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false};
       } else {
       if ((typeOf (_curTarget) in _dlcVehicles) && !(288520 in getDLCs 1)) then {
       if (_curTarget isKindOf "Air") then {
       _Btn2 ctrlSetText localize "STR_vInAct_GetInHeli";
       } else {
       _Btn2 ctrlSetText localize "STR_vInAct_GetInKart";
       };
       _Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
       if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false};
       } else {
       _Btn2 ctrlSetText localize "STR_vInAct_Unflip";
       _Btn2 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn2 ctrlEnable false;} else {_Btn2 ctrlEnable true;};
       };
       };
       if (typeOf _curTarget == "O_Truck_03_device_F") then {
       _Btn3 ctrlSetText localize "STR_vInAct_DeviceMine";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_deviceMine";
       if (!isNil {(_curTarget getVariable "mining")} || !local _curTarget && {_curTarget in life_vehicles}) then {
       _Btn3 ctrlEnable false;
       } else {
       _Btn3 ctrlEnable true;
       };
       } else {
       _Btn3 ctrlShow false;
       if (typeOf (_curTarget) in ["C_Van_01_fuel_F","I_Truck_02_fuel_F","B_Truck_01_fuel_F"] && _curTarget in life_vehicles) then {
       if (!isNil {_curTarget getVariable "fuelTankWork"}) then {
       _Btn3 ctrlSetText localize "STR_FuelTank_Stop";
       _Btn3 buttonSetAction "life_vInact_curTarget setVariable [""fuelTankWork"",nil,true]; closeDialog 0;";
       _Btn3 ctrlShow true;
       } else {
       if (count (nearestObjects [_curTarget, ["Land_FuelStation_Feed_F","Land_fs_feed_F"], 15]) > 0) then {
       _Btn3 ctrlSetText localize "STR_FuelTank_Supply";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_fuelSupply";
       _Btn3 ctrlShow true;
       }else{
       {
       if (player distance (getMarkerPos _x) < 20) exitWith {
       _Btn3 ctrlSetText localize "STR_FuelTank_Store";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_fuelStore";
       _Btn3 ctrlShow true;
       };
       } forEach ["fuel_storage_1","fuel_storage_2"];
       };
       };
       };
       };
       _Btn4 ctrlShow false;
       _Btn5 ctrlShow false;
       _Btn6 ctrlShow false;
      };
      if (playerSide isEqualTo Independent) then {
       _Btn2 ctrlSetText localize "STR_vInAct_Unflip";
       _Btn2 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn2 ctrlEnable false;} else {_Btn2 ctrlEnable true;};
       
       _Btn3 ctrlSetText localize "STR_vInAct_Impound";
       _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction; closeDialog 0;";
       _Btn3 ctrlShow true;
       _Btn4 ctrlSetText localize "STR_vInAct_Registration";
       _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction; closeDialog 0;";
       _Btn4 ctrlShow true;
       if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn5 ctrlEnable false;} else {_Btn5 ctrlEnable true;};
       if (!isNil "_id") then {
       if !(_id in getDLCs 1) then {
       _Btn6 ctrlSetText localize "STR_vInAct_GetInVehicle";
       _Btn6 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
       if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
       };
       } else {_Btn6 ctrlShow false;};
       };
      Alles anzeigen

      oblivionsurvivorspic_Scaled125x125.png  Oblivion Survivors - Wir leben Gaming

      Website & Forum

      Discord Server

      Steamgruppe

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Tags

    • Spieler
    • Player
    • menu
    • interaction
    • Zipties

    Benutzer online in diesem Thema

    • 5 Besucher

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™