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
So: 18 Mai 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
    6. Archiv

    Problem bei vInteractionmenu

    • xDreamzZ
    • 18. November 2015 um 16:36
    • Geschlossen
    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 18. November 2015 um 16:36
      • #1

      Hallo,

      ich hatte vor beim ADAC Funktionen wie bei der Polizei einzubaun also zum beispiel Fahrzeughalter prüfen und Impounden. Ich habe dann die Funktionen der Cops kopiert aus der fn_vInteractionMenu.sqf was folgend aussieht:

      if(playerSide == west) then {
      _Btn2 ctrlSetText localize "STR_vInAct_Registration";
      _Btn2 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction;";

      _Btn3 ctrlSetText localize "STR_vInAct_SearchVehicle";
      _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_vehInvSearch;";

      _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
      _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction;";
      if(count crew _curTarget == 0) then {_Btn4 ctrlEnable false;};

      _Btn5 ctrlSetText localize "STR_vInAct_Impound";
      _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction;";

      etc...

      Und wollte dies dann in meine fn_adacVInteractionMenu.sqf einbinden was wie folgt aussieht:

      //Button 3 - Fahrzeughalter
      _Btn3 ctrlSetText localize "STR_vInAct_Registration";
      _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction;";


      //Button 4 - Aus Fahrzeug ziehen
      _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
      _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction;";
      if(count crew _curTarget == 0) then {_Btn4 ctrlEnable false;};


      //Button 5 - Impounden
      _Btn5 ctrlSetText localize "STR_vInAct_Impound";
      _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction;";

      Das Problem ist jetzt wen ich beim ADAC Windowstaste drücke, sehe ich kurz beschlagnahmen etc aber die Felder die ich einfügen wollte verschwinden sofort.

      Was habe ich vergessen oder falsch gemacht?

      Danke

    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 18. November 2015 um 16:37
      • #2

      Bitte KOMPLETTE FILES mit beilegen... Und verwende die "Code-Funktion"!

    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 18. November 2015 um 16:38
      • #3
      Code
      /*
      	File: fn_vInteractionMenu.sqf
      	Author: Bryan "Tonic" Boardwine
      
      	Description:
      	Replaces the mass addactions for various vehicle actions
      */
      #define Btn1 37450
      #define Btn2 37451
      #define Btn3 37452
      #define Btn4 37453
      #define Btn5 37454
      #define Btn6 37455
      #define Btn7 37456
      #define Title 37401
      private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7"];
      if(!dialog) then {
      	createDialog "vInteraction_Menu";
      };
      disableSerialization;
      _curTarget = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
      if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
      _isVehicle = if((_curTarget isKindOf "landVehicle") OR (_curTarget isKindOf "Ship") OR (_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;
      _Btn7 = _display displayCtrl Btn7;
      life_vInact_curTarget = _curTarget;
      
      
      
      
      //Set Repair Action
      _Btn1 ctrlSetText localize "STR_vInAct_Repair";
      _Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck;";
      
      
      
      
      if("ToolKit" in (items player) && (damage _curTarget < 1)) then {_Btn1 ctrlEnable true;} else {_Btn1 ctrlEnable false;};
      
      
      
      
      if(playerSide == west) then {
      
      	_Btn2 ctrlSetText localize "STR_vInAct_Registration";
      	_Btn2 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction;";
      
      	_Btn3 ctrlSetText localize "STR_vInAct_SearchVehicle";
      	_Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_vehInvSearch;";
      
      	_Btn4 ctrlSetText localize "STR_vInAct_PullOut";
      	_Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction;";
      	if(count crew _curTarget == 0) then {_Btn4 ctrlEnable false;};
      
      	_Btn5 ctrlSetText localize "STR_vInAct_Impound";
      	_Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction;";
      
      	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} && {count crew _curTarget == 0}) then { _Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
      	} else {
      		if(typeOf (_curTarget) in ["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"] ) then {
      			_Btn6 ctrlSetText localize "STR_vInAct_GetInKart";
      			_Btn6 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
      			if(count crew _curTarget == 0 && {canMove _curTarget} && {locked _curTarget == 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(count crew _curTarget == 0 && {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(_curTarget isKindOf "Ship" && {local _curTarget} && {count crew _curTarget == 0}) then { _Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false};
      	} else {
      		if(typeOf (_curTarget) in ["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"] ) then {
      			_Btn2 ctrlSetText localize "STR_vInAct_GetInKart";
      			_Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
      			if(count crew _curTarget == 0 && {canMove _curTarget} && {locked _curTarget == 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(count crew _curTarget == 0 && {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")} OR !local _curTarget && {_curTarget in life_vehicles}) then {
      			_Btn3 ctrlEnable false;
      		} else {
      			_Btn3 ctrlEnable true;
      		};
      	} else {
      		_Btn3 ctrlShow false;
      	};
      
      	_Btn4 ctrlShow false;
      	_Btn5 ctrlShow false;
      	_Btn6 ctrlShow false;
      };
      
      
      
      
      if(playerSide == west) then {
      	_Btn7 ctrlShow true;
      	_Btn7 ctrlEnable true;
      	_Btn7 ctrlSetText "Verschrotten";
      	_Btn7 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_copCrush;";
      } else {
      	_Btn7 ctrlShow false;
      };
      Alles anzeigen
      Code
      /*
      	File: fn_adacVInteractionMenu.sqf
      	Author: Bryan "Tonic" Boardwine
      
      	Description:
      	Replaces the mass addactions 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"];
      if(!dialog) then {
      	createDialog "vInteraction_Menu";
      };
      disableSerialization;
      _curTarget = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
      if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
      _isVehicle
      = if((_curTarget isKindOf "landVehicle") OR (_curTarget isKindOf
      "Ship") OR (_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;
      //Button 1 - Set vehicle repair action
      _Btn1 ctrlSetText localize "STR_vInAct_Repair";
      _Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck;";
      if("ToolKit" in (items player) && (damage _curTarget < 1)) then {_Btn1 ctrlEnable true;} else {_Btn1 ctrlEnable false;};
      
      
      
      
      //Button 2 - Set pushboat action if curTarget is a boat else if curTarget is a kart displays some kart actions
      if(_curTarget isKindOf "Ship") then 
      {
      	_Btn2 ctrlSetText localize "STR_vInAct_PushBoat";
      	_Btn2 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
      	if(_curTarget isKindOf "Ship" && {local _curTarget} && {count crew _curTarget == 0}) then 
      	{ 
      		_Btn2 ctrlEnable true;
      	} else {
      	    _Btn2 ctrlEnable false
      	};
      } else {
      	if(typeOf (_curTarget) in ["C_Kart_01_Blu_F","C_Kart_01_Red_F","C_Kart_01_Fuel_F","C_Kart_01_Vrana_F"]) then 
      	{
      		_Btn2 ctrlSetText localize "STR_vInAct_GetInKart";
      		_Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
      		if(count crew _curTarget == 0 && {canMove _curTarget} && {locked _curTarget == 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(count crew _curTarget == 0 && {canMove _curTarget}) then 
      		{ 
      			_Btn2 ctrlEnable false;
      		} else {
      			_Btn2 ctrlEnable true;
      		};
      	};
      };
      //Button 3 - Fahrzeughalter
      _Btn3 ctrlSetText localize "STR_vInAct_Registration";
      _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction;";
      //Button 4 - Aus Fahrzeug ziehen
      _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
      _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction;";
      if(count crew _curTarget == 0) then {_Btn4 ctrlEnable false;};
      //Button 5 - Impounden
      _Btn5 ctrlSetText localize "STR_vInAct_Impound";
      _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction;";
      //Button 6 - undefined
      _Btn6 ctrlShow false;
      Alles anzeigen
    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 18. November 2015 um 16:47
      • #4

      Also das Menü öffnet sich, bleibt auch bestehen, die Balken allerdings sind weder "aktivierbar" noch steht was in den Balken drin?

    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 18. November 2015 um 16:49
      • #5

      Man sieht die Balken ab Button 3 nur 1 Sec und dann verschwindet der Balken mit der Inschrift.

      Das Menü mit den vorherigen Funktionen bleibt bestehen

    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 18. November 2015 um 16:50
      • #6

      Dann bitte den Action-Key-Handler noch :)

    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 18. November 2015 um 16:53
      • #7
      Code
      private ["_handled","_shift","_alt","_code","_ctrl","_alt","_ctrlKey","_veh","_locked","_interactionKey","_mapKey","_interruptionKeys"];
      _ctrl = _this select 0;
      _code = _this select 1;
      _shift = _this select 2;
      _ctrlKey = _this select 3;
      _alt = _this select 4;
      _speed = speed cursorTarget;
      _handled = false;
      
      
      
      
      _interactionKey = if(count (actionKeys "User10") == 0) then {219} else {(actionKeys "User10") select 0};
      _mapKey = actionKeys "ShowMap" select 0;
      //hint str _code;
      _interruptionKeys = [17,30,31,32]; //A,S,W,D
      
      
      
      
      //Vault handling...
      if((_code in (actionKeys "GetOver") || _code in (actionKeys "salute")) && {(player getVariable ["restrained",false])}) exitWith {
      	true;
      };
      
      
      
      
      if(life_action_inUse) exitWith {
      	if(!life_interrupted && _code in _interruptionKeys) then {life_interrupted = true;};
      	_handled;
      };
      
      
      
      
      //Hotfix for Interaction key not being able to be bound on some operation systems.
      if(count (actionKeys "User10") != 0 && {(inputAction "User10" > 0)}) exitWith {
      	//Interaction key (default is Left Windows, can be mapped via Controls -> Custom -> User Action 10)
      	if(!life_action_inUse) then {
      		[] spawn 
      		{
      			private["_handle"];
      			_handle = [] spawn life_fnc_actionKeyHandler;
      			waitUntil {scriptDone _handle};
      			life_action_inUse = false;
      		};
      	};
      	true;
      };
      
      
      
      
      switch (_code) do
      {
      	//Space key for Jumping
      	case 57:
      	{
      		if(isNil "jumpActionTime") then {jumpActionTime = 0;};
      		if(_shift && {animationState player != "AovrPercMrunSrasWrflDf"} && {isTouchingGround player} && {stance player == "STAND"} && {speed player > 2} && {!life_is_arrested} && {(velocity player) select 2 < 2.5} && {time - jumpActionTime > 1.5}) then {
      			jumpActionTime = time; //Update the time.
      			[player,true] spawn life_fnc_jumpFnc; //Local execution
      			[[player,false],"life_fnc_jumpFnc",nil,FALSE] call life_fnc_MP; //Global execution 
      			_handled = true;
      		};
      	};
      
      	//Map Key
      	case _mapKey:
      	{
      		switch (playerSide) do 
      		{
      			case west: {if(!visibleMap) then {[] spawn life_fnc_copMarkers;}};
      			case independent: {if(!visibleMap) then {[] spawn life_fnc_medicMarkers;}};
      		};
      	};
      
      	//Num1
      	case 79:
      	{
      	if(_shift) then {_handled = true;};
      		if ((_shift) && (vehicle player == player)) then
      		{
      			cutText [format["Taekwondo"], "PLAIN DOWN"];
      			player playMove "AmovPercMstpSnonWnonDnon_exerciseKata";
      		};
      	};
      
      
      
      
      	//Num2
      	case 80:
      	{
      	if(_shift) then {_handled = true;};
      		if ((_shift) && (vehicle player == player)) then
      		{
      			cutText [format["Kniebeuge"], "PLAIN DOWN"];
      			player playMove "AmovPercMstpSnonWnonDnon_exercisekneeBendA";
      		};
      	};
      
      
      
      
      	//Num3
      	case 81:
      	{
      	if(_shift) then {_handled = true;};
      		if ((_shift) && (vehicle player == player)) then
      		{
      			cutText [format["Hastige Kniebeuge"], "PLAIN DOWN"];
      			player playMove "AmovPercMstpSnonWnonDnon_exercisekneeBendB";
      		};
      	};
      
      
      
      
      	//Num4
      	case 75:
      	{
      	if(_shift) then {_handled = true;};
      		if ((_shift) && (vehicle player == player)) then
      		{
      			cutText [format["Liegestütze"], "PLAIN DOWN"];
      			player playMove "AmovPercMstpSnonWnonDnon_exercisePushup";
      		};
      	};
      
      	//Holster / recall weapon.
      	case 35:
      	{
      		if(_shift && !_ctrlKey && currentWeapon player != "") then {
      			life_curWep_h = currentWeapon player;
      			player action ["SwitchWeapon", player, player, 100];
      			player switchcamera cameraView;
      		};
      
      		if(!_shift && _ctrlKey && !isNil "life_curWep_h" && {(life_curWep_h != "")}) then {
      			if(life_curWep_h in [primaryWeapon player,secondaryWeapon player,handgunWeapon player]) then {
      				player selectWeapon life_curWep_h;
      			};
      		};
      	};
      
      	case 18:
      	{
      		if(playerSide in [west,independent,civilian,opfor]) then {
      			if(vehicle player != player && (typeOf vehicle player) in [
      			"C_SUV_01_F",
      			"C_Hatchback_01_F",
      			"C_Hatchback_01_sport_F",
      			"C_Offroad_01_F",
      			"B_G_Offroad_01_F",
      			"B_G_Offroad_01_armed_F",
      			"C_Offroad_01_repair_F",
      			"B_Quadbike_01_F",
      			"B_MRAP_01_F",
      			"B_MRAP_01_gmg_F",
      			"B_MRAP_01_hmg_F",
      			"C_Van_01_transport_F",
      			"B_G_Van_01_fuel_F",
      			"C_Van_01_box_F",
      			"O_MRAP_02_F",
      			"O_MRAP_02_hmg_F",
      			"O_MRAP_02_gmg_F",
      			"I_MRAP_03_F",
      			"I_MRAP_03_hmg_F",
      			"I_MRAP_03_gmg_F",
      			"I_Truck_02_transport_F",
      			"I_Truck_02_covered_F",
      			"O_Truck_02_fuel_F",
      			"B_Truck_01_mover_F",
      			"B_Truck_01_transport_F",
      			"B_Truck_01_covered_F",
      			"B_Truck_01_ammo_F",
      			"B_Truck_01_medical_F",
      			"B_Truck_01_fuel_F",
      			"B_Truck_01_box_F",
      			"O_Truck_03_transport_F",
      			"O_Truck_03_covered_F",
      			"O_Truck_03_device_F",
      			"O_Truck_03_ammo_F"
      			]) then {
      				if(!isNil {vehicle player getVariable "bRight"}) then {
      					[vehicle player] call life_fnc_blinkingRight;
      					_handled = true;
      				if(!isNil {vehicle player getVariable "bLeft"}) then {
      					[vehicle player] call life_fnc_blinkingLeft;
      					_handled = true;
      				};
      			};
      		};
      	};
      };
      
      	//Interaction key (default is Left Windows, can be mapped via Controls -> Custom -> User Action 10)
      	case _interactionKey:
      	{
      		if(!life_action_inUse) then {
      			[] spawn 
      			{
      				private["_handle"];
      				_handle = [] spawn life_fnc_actionKeyHandler;
      				waitUntil {scriptDone _handle};
      				life_action_inUse = false;
      			};
      		};
      	};
      
      	//Restraining (Shift + R)   Cops = Instantrestrain  // Civs = Knockout to restrain  
      	// www.warjunkies.de
      	case 19:
      	{	
      		//Cops -> Civs
      		if(_shift) then {_handled = true;};
      		if(_shift && playerSide == west && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && (side cursorTarget == civilian) && alive cursorTarget && cursorTarget distance player < 3.5 && !(cursorTarget getVariable "Escorting") && !(cursorTarget getVariable "restrained") && speed cursorTarget < 1) then
      		{
      			[] call life_fnc_restrainAction;
      		};
      		// Civs - > Civs
      		if(_shift) then {_handled = true;};
      		if(_shift && playerSide == civilian && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && alive cursorTarget && cursorTarget distance player < 3.5 && isPlayer cursorTarget && animationState cursorTarget == "Incapacitated" && !(cursorTarget getVariable "Escorting") && !(cursorTarget getVariable "restrained") && speed cursorTarget < 1) then
      		{
      			[] call life_fnc_restrainAction; //www.warjunkies.de
      		};
      		// Civs - > Cops
      		if(_shift) then {_handled = true;};
      		if(_shift && playerSide == civilian && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && (side cursorTarget == west) && alive cursorTarget && cursorTarget distance player < 3.5 && isPlayer cursorTarget && animationState cursorTarget == "Incapacitated" && !(cursorTarget getVariable "Escorting") && !(cursorTarget getVariable "restrained") && speed cursorTarget < 1) then
      		{
      			[] call life_fnc_restrainAction;
      		};
      
      	};
      
      	// O, police gate opener
      	case 24:
      	{
      		if (!_shift && !_alt && !_ctrlKey && (playerSide == west) && (vehicle player != player)) then {
      			[] call life_fnc_copOpener;
      			};
      				if (_shift && !_alt && !_ctrlKey && (playerSide == west)) then { 
      				[] call life_fnc_atmMenu;
      				if (_shift && !_alt && !_ctrlKey && (playerSide == independent)) then {
      				[] call life_fnc_atmMenu;
      				if (_shift && !_alt && !_ctrlKey && (playerSide == east)) then {
      				[] call life_fnc_atmMenu;
      			};
      		};
      	};
      };
      	//Knock out, this is experimental and yeah...
      	case 34:
      	{
      		if(_shift) then {_handled = true;};
      		if(_shift && playerSide == civilian && !isNull cursorTarget && cursorTarget isKindOf "Man" && isPlayer cursorTarget && alive cursorTarget && cursorTarget distance player < 4 && speed cursorTarget < 1) then
      		{
      			if((animationState cursorTarget) != "Incapacitated" && (currentWeapon player == primaryWeapon player OR currentWeapon player == handgunWeapon player) && currentWeapon player != "" && !life_knockout && !(player getVariable["restrained",false]) && !life_istazed) then
      			{
      				[cursorTarget] spawn life_fnc_knockoutAction;
      			};
      		};
      	};
      
      	//Ö
          case 39:
          {    
              if((!life_action_inUse) && (vehicle player == player) ) then
              {
                  {
                      _str = [_x] call life_fnc_varToStr;
                      _val = missionNameSpace getVariable _x;
                      if(_val > 0 ) then
                      {
                          if( _str == "Spitzhacke" || _str == "pickaxe" ) then
                          {
                              [] spawn life_fnc_pickAxeUse;
      						hint composeText [ image "icons\items\pickaxe.paa", "  Du baust Ressourcen ab." ];
      						//player say3D "pickaxe"; //www.ragecore.de
      						//sleep 3.9;
                          };
                      };
                  } foreach life_inv_items;
              }
      	};
      Alles anzeigen
    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 18. November 2015 um 16:54
      • #8

      NICHT den Keyhandler... ACTIONKEYHANDLER! :D

    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 18. November 2015 um 16:56
      • #9
      Code
      #include <macro.h>
      /*
      	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["_curTarget","_isWater","_turtle"];
      _curTarget = cursorTarget;
      _turtle = ((nearestObjects[getPos player,["Turtle_F","Hen_random_F","Cock_random_F","Goat_random_F","Sheep_random_F","Rabbit_F"],3]) select 0); 
      if(life_action_inUse) exitWith {}; //Action is in use, exit to prevent spamming.
      if(life_interrupted) exitWith {life_interrupted = false;};
      _isWater = surfaceIsWater (getPosASL player);
      if(isNull _curTarget) exitWith {
      	if(_isWater) then {
      		private["_fish"];
      		_fish = (nearestObjects[getPos player,["Fish_Base_F"],3]) select 0;
      		if(!isNil "_fish") then {
      			[_fish] call life_fnc_catchFish;
      		};
      	} else {
      		if(playerSide == civilian && !life_action_gathering) then {
      			_handle = [] spawn life_fnc_gather;
      			waitUntil {scriptDone _handle};
      			life_action_gathering = false;
      		};
      	};
      };
      if(_curTarget isKindOf "House_F" && {player distance _curTarget < 12} OR ((nearestObject [[16019.5,16952.9,0],"Land_Dome_Big_F"]) == _curTarget OR (nearestObject [[16019.5,16952.9,0],"Land_Research_house_V1_F"]) == _curTarget)) exitWith {
      	[_curTarget] call life_fnc_houseMenu;
      };
      if(_curTarget isKindOf "Animal" && {!alive _curTarget}) exitWith {
      	[_turtle] spawn life_fnc_gutAnimal;
      }; 
      if(dialog) exitWith {}; //Don't bother when a dialog is open.
      if(vehicle player != 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(_curTarget isKindOf "Man" && {!alive _curTarget} && {playerSide in [west,independent]}) exitWith {
      	//Hotfix code by ins0
      	if(((playerSide == blufor && {(call life_revive_cops)}) || playerSide == independent) && {"Medikit" in (items player)}) then {
      		[_curTarget] call life_fnc_revivePlayer;
      	};
      };
      //If target is a player then check if we can use the cop menu.
      /*
      if(isPlayer _curTarget && _curTarget isKindOf "Man") then {
      	if((_curTarget getVariable["restrained",false]) && !dialog && playerSide == west) then {
      		[_curTarget] call life_fnc_copInteractionMenu;
      	};
      	*/
      if(isPlayer _curTarget && _curTarget isKindOf "Man") then {
      if(!dialog && playerSide == west) then {
      		[_curTarget] call life_fnc_copInteractionMenu;
      	};
      if(!dialog && playerSide == civilian) then {
      		[_curTarget] call life_fnc_civInteractionMenu;
      	};
      } else {
      	//OK, it wasn't a player so what is it?
      	private["_isVehicle","_miscItems","_money"];
      	_isVehicle = if((_curTarget isKindOf "landVehicle") OR (_curTarget isKindOf "Ship") OR (_curTarget isKindOf "Air")) then {true} else {false};
      	_miscItems = ["Land_BottlePlastic_V1_F","Land_TacticalBacon_F","Land_Can_V3_F","Land_CanisterFuel_F","Land_Suitcase_F"];
      	_animalTypes = ["Salema_F","Ornate_random_F","Mackerel_F","Tuna_F","Mullet_F","CatShark_F","Turtle_F"];
      	_money = "Land_Money_F";
      	//It's a vehicle! open the vehicle interaction key!
      	if(_isVehicle) then {
      		if(!dialog) then {
      		if(playerSide == east && player distance _curTarget < 
      		(((boundingBox _curTarget select 1) select 0) + 2)) then {
      	    [_curTarget] call life_fnc_adacVInteractionMenu;
      			};
      			if(player distance _curTarget < ((boundingBox _curTarget select 1) select 0) + 2) then {
      				[_curTarget] call life_fnc_vInteractionMenu;
      			};
      		};
      	} else {
      		//Is it a animal type?
      		if((typeOf _curTarget) in _animalTypes) then {
      			if((typeOf _curTarget) == "Turtle_F" && !alive _curTarget) then {
      				private["_handle"];
      				_handle = [_curTarget] spawn life_fnc_catchTurtle;
      				waitUntil {scriptDone _handle};
      			} else {
      				private["_handle"];
      				_handle = [_curTarget] spawn life_fnc_catchFish;
      				waitUntil {scriptDone _handle};
      			};
      		} else {
      			//OK, it wasn't a vehicle so let's see what else it could be?
      			if((typeOf _curTarget) in _miscItems) then {
      				//OK, it was a misc item (food,water,etc).
      				private["_handle"];
      				_handle = [_curTarget] spawn life_fnc_pickupItem;
      				waitUntil {scriptDone _handle};
      			} else {
      				//It wasn't a misc item so is it money?
      				if((typeOf _curTarget) == _money && {!(_curTarget getVariable["inUse",false])}) then {
      					private["_handle"];
      					_curTarget setVariable["inUse",TRUE,TRUE];
      					_handle = [_curTarget] spawn life_fnc_pickupMoney;
      					waitUntil {scriptDone _handle};
      				};
      			};
      		};
      	};
      };
      Alles anzeigen

      Sorry

    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 18. November 2015 um 17:13
      • #10

      schreib mal zu jedem Btn am Ende

      _Btn4 ctrlShow true;
      bzw.
      _Btn 5 usw.

    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 18. November 2015 um 17:21
      • #11

      keine veränderung.

      Code
      /*
      	File: fn_adacVInteractionMenu.sqf
      	Author: Bryan "Tonic" Boardwine
      
      	Description:
      	Replaces the mass addactions 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"];
      if(!dialog) then {
      	createDialog "vInteraction_Menu";
      };
      disableSerialization;
      _curTarget = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
      if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
      _isVehicle
      = if((_curTarget isKindOf "landVehicle") OR (_curTarget isKindOf
      "Ship") OR (_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;
      //Button 1 - Set vehicle repair action
      _Btn1 ctrlSetText localize "STR_vInAct_Repair";
      _Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck;";
      if("ToolKit" in (items player) && (damage _curTarget < 1)) then {_Btn1 ctrlEnable true;} else {_Btn1 ctrlEnable false;};
      
      
      
      
      //Button 2 - Set pushboat action if curTarget is a boat else if curTarget is a kart displays some kart actions
      if(_curTarget isKindOf "Ship") then 
      {
      	_Btn2 ctrlSetText localize "STR_vInAct_PushBoat";
      	_Btn2 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
      	if(_curTarget isKindOf "Ship" && {local _curTarget} && {count crew _curTarget == 0}) then 
      	{ 
      		_Btn2 ctrlEnable true;
      	} else {
      	    _Btn2 ctrlEnable false
      	};
      } else {
      	if(typeOf (_curTarget) in ["C_Kart_01_Blu_F","C_Kart_01_Red_F","C_Kart_01_Fuel_F","C_Kart_01_Vrana_F"]) then 
      	{
      		_Btn2 ctrlSetText localize "STR_vInAct_GetInKart";
      		_Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
      		if(count crew _curTarget == 0 && {canMove _curTarget} && {locked _curTarget == 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(count crew _curTarget == 0 && {canMove _curTarget}) then 
      		{ 
      			_Btn2 ctrlEnable false;
      		} else {
      			_Btn2 ctrlEnable true;
      		};
      	};
      };
      //Button 3 - Fahrzeughalter
      _Btn3 ctrlSetText localize "STR_vInAct_Registration";
      _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction;";
      _Btn3 ctrlShow true;
      //Button 4 - Aus Fahrzeug ziehen
      _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
      _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction;";
      _Btn4 ctrlShow true;
      if(count crew _curTarget == 0) then {_Btn4 ctrlEnable false;};
      //Button 5 - Impounden
      _Btn5 ctrlSetText localize "STR_vInAct_Impound";
      _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction;";
      _Btn5 ctrlShow true;
      //Button 6 - undefined
      _Btn6 ctrlShow false;
      Alles anzeigen
    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 18. November 2015 um 17:31
      • #12

      Entweder blind, blöd oder beides. Seh jetzt auch nix

    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 18. November 2015 um 17:39
      • #13

      okay schade. wen andere Leser eine Idee haben bitte posten!

    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 20. November 2015 um 13:43
      • #14

      Vorhandenen ActionKeyHandler mit folgenden ersetzen, dann sollte es gehn:

      Code: fn_ActionKeyHandler.sqf
      #include <macro.h>
      /*
      	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["_curTarget","_isWater","_turtle"];
      _curTarget = cursorTarget;
      _turtle = ((nearestObjects[getPos player,["Turtle_F","Hen_random_F","Cock_random_F","Goat_random_F","Sheep_random_F","Rabbit_F"],3]) select 0); 
      if(life_action_inUse) exitWith {}; //Action is in use, exit to prevent spamming.
      if(life_interrupted) exitWith {life_interrupted = false;};
      _isWater = surfaceIsWater (getPosASL player);
      if(isNull _curTarget) exitWith {
      	if(_isWater) then {
      		private["_fish"];
      		_fish = (nearestObjects[getPos player,["Fish_Base_F"],3]) select 0;
      		if(!isNil "_fish") then {
      			[_fish] call life_fnc_catchFish;
      		};
      	} else {
      		if(playerSide == civilian && !life_action_gathering) then {
      			_handle = [] spawn life_fnc_gather;
      			waitUntil {scriptDone _handle};
      			life_action_gathering = false;
      		};
      	};
      };
      if(_curTarget isKindOf "House_F" && {player distance _curTarget < 12} OR ((nearestObject [[16019.5,16952.9,0],"Land_Dome_Big_F"]) == _curTarget OR (nearestObject [[16019.5,16952.9,0],"Land_Research_house_V1_F"]) == _curTarget)) exitWith {
      	[_curTarget] call life_fnc_houseMenu;
      };
      if(_curTarget isKindOf "Animal" && {!alive _curTarget}) exitWith {
      	[_turtle] spawn life_fnc_gutAnimal;
      }; 
      if(dialog) exitWith {}; //Don't bother when a dialog is open.
      if(vehicle player != 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(_curTarget isKindOf "Man" && {!alive _curTarget} && {playerSide in [west,independent]}) exitWith {
      	//Hotfix code by ins0
      	if(((playerSide == blufor && {(call life_revive_cops)}) || playerSide == independent) && {"Medikit" in (items player)}) then {
      		[_curTarget] call life_fnc_revivePlayer;
      	};
      };
      //If target is a player then check if we can use the cop menu.
      /*
      if(isPlayer _curTarget && _curTarget isKindOf "Man") then {
      	if((_curTarget getVariable["restrained",false]) && !dialog && playerSide == west) then {
      		[_curTarget] call life_fnc_copInteractionMenu;
      	};
      	*/
      if(isPlayer _curTarget && _curTarget isKindOf "Man") then {
      if(!dialog && playerSide == west) then {
      		[_curTarget] call life_fnc_copInteractionMenu;
      	};
      if(!dialog && playerSide == civilian) then {
      		[_curTarget] call life_fnc_civInteractionMenu;
      	};
      } else {
      	//OK, it wasn't a player so what is it?
      	private["_isVehicle","_miscItems","_money"];
      	_isVehicle = if((_curTarget isKindOf "landVehicle") OR (_curTarget isKindOf "Ship") OR (_curTarget isKindOf "Air")) then {true} else {false};
      	_miscItems = ["Land_BottlePlastic_V1_F","Land_TacticalBacon_F","Land_Can_V3_F","Land_CanisterFuel_F","Land_Suitcase_F"];
      	_animalTypes = ["Salema_F","Ornate_random_F","Mackerel_F","Tuna_F","Mullet_F","CatShark_F","Turtle_F"];
      	_money = "Land_Money_F";
      	//It's a vehicle! open the vehicle interaction key!
      	if(_isVehicle) then {
      		if(!dialog) then {
      		if(playerSide == east && player distance _curTarget < 
      		(((boundingBox _curTarget select 1) select 0) + 2)) exitWith {
      	    [_curTarget] call life_fnc_adacVInteractionMenu;
      			};
      			if(player distance _curTarget < ((boundingBox _curTarget select 1) select 0) + 2) then {
      				[_curTarget] call life_fnc_vInteractionMenu;
      			};
      		};
      	} else {
      		//Is it a animal type?
      		if((typeOf _curTarget) in _animalTypes) then {
      			if((typeOf _curTarget) == "Turtle_F" && !alive _curTarget) then {
      				private["_handle"];
      				_handle = [_curTarget] spawn life_fnc_catchTurtle;
      				waitUntil {scriptDone _handle};
      			} else {
      				private["_handle"];
      				_handle = [_curTarget] spawn life_fnc_catchFish;
      				waitUntil {scriptDone _handle};
      			};
      		} else {
      			//OK, it wasn't a vehicle so let's see what else it could be?
      			if((typeOf _curTarget) in _miscItems) then {
      				//OK, it was a misc item (food,water,etc).
      				private["_handle"];
      				_handle = [_curTarget] spawn life_fnc_pickupItem;
      				waitUntil {scriptDone _handle};
      			} else {
      				//It wasn't a misc item so is it money?
      				if((typeOf _curTarget) == _money && {!(_curTarget getVariable["inUse",false])}) then {
      					private["_handle"];
      					_curTarget setVariable["inUse",TRUE,TRUE];
      					_handle = [_curTarget] spawn life_fnc_pickupMoney;
      					waitUntil {scriptDone _handle};
      				};
      			};
      		};
      	};
      };
      Alles anzeigen

      Fehler liegt hier:

      Code
      if(_isVehicle) then {
      		if(!dialog) then {
      		if(playerSide == east && player distance _curTarget < 
      		(((boundingBox _curTarget select 1) select 0) + 2)) then {
      	    [_curTarget] call life_fnc_adacVInteractionMenu;
      			};
      			if(player distance _curTarget < ((boundingBox _curTarget select 1) select 0) + 2) then {
      				[_curTarget] call life_fnc_vInteractionMenu;
      			};


      Die nächste "If"-Abfrage überschreibt die erste... Lösung somit:

      Code
      if(playerSide == east && player distance _curTarget < 
      		(((boundingBox _curTarget select 1) select 0) + 2)) exitWith {
      	    [_curTarget] call life_fnc_adacVInteractionMenu;
      			};
      			if(player distance _curTarget < ((boundingBox _curTarget select 1) select 0) + 2) then {
      				[_curTarget] call life_fnc_vInteractionMenu;
      			};


      Mit exitWith kommt er erst gar nicht zur nächsten Abfrage sondern beendet die "if"-Schleifen

    • xDreamzZ
      Anfänger
      Reaktionen
      21
      Trophäen
      11
      Beiträge
      81
      • 20. November 2015 um 19:28
      • #15

      Klappt! Vielen Dank! :)

    • Motombo
      Fortgeschrittener
      Reaktionen
      177
      Trophäen
      11
      Beiträge
      307
      • 20. November 2015 um 19:29
      • #16

      Bedankten tut man sich mit nem "THUMBSUP!" :D

      Gerne :)

    • nox 25. März 2023 um 00:43

      Hat das Thema aus dem Forum Hilfeforum - ArmA 3 nach Archiv verschoben.

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von Native-Servers.com? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Benutzerkonto erstellen

    Ähnliche Themen

    • Ausweis Script funktioniert nicht

      • DucMaster
      • 16. Juli 2017 um 17:23
      • Hilfeforum
    • vinteractionmenü

      • SelfTanoa
      • 7. März 2017 um 09:28
      • Hilfeforum
    • SOS-Knöpfe für Cops

      • RobPlayzTV
      • 5. November 2016 um 21:55
      • Hilfeforum

    Benutzer online in diesem Thema

    • 1 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™