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
Fr: 16 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. Tutorials & Releases

    [Tutorial] Notfallset zum öffnen von Autos für Medics

      • Altis Life
    • YiertexX
    • 12. Februar 2018 um 19:04
    • YiertexX
      Anfänger
      Reaktionen
      8
      Trophäen
      9
      Beiträge
      39
      • 12. Februar 2018 um 19:04
      • #1

      Notfallset zum Öffnen von Fahrzeugen für Medics

      Script Owner : ToxicRageTv und Tonic


      Dieses Script ermögtlich Medics das aufschließen von Fahrzeugen über die Windows Taste.

      Dann fangen wir mal an !


      Backup Machen !!!!


      1.| Als erstes gehe zu "Altis_Life.Altis\core\actions" und erstellen die Datei-----> "fn_jaws.sqf"

      In dieser Datei tragen wir folgendes ein :


      SQL
      #include "..\..\script_macros.hpp"
      /*
          File: fn_jaws.sqf
          Author: Bryan "Tonic" Boardwine
          redone by: Toxic
          
          Description:
          Main functionality for lock-picking.
      */
      private ["_curTarget","_distance","_isVehicle","_title","_progressBar","_cP","_titleText","_dice","_badDistance"];
      _curTarget = cursorObject;
      life_interrupted = false;
      
      if (life_action_inUse) exitWith {};
      if (isNull _curTarget) exitWith {}; //Bad type
      _distance = ((boundingBox _curTarget select 1) select 0) + 2;
      if (player distance _curTarget > _distance) exitWith {}; //Too far
      
      _isVehicle = if ((_curTarget isKindOf "LandVehicle") || (_curTarget isKindOf "Ship") || (_curTarget isKindOf "Air")) then {true} else {false};
      if (_isVehicle && _curTarget in life_vehicles) exitWith {hint localize "STR_ISTR_Lock_AlreadyHave"};
      
      //More error checks
      if (!_isVehicle && !isPlayer _curTarget) exitWith {};
      if (!_isVehicle && !(_curTarget getVariable ["restrained",false])) exitWith {};
      if (_curTarget getVariable "NPC") exitWith {hint localize "STR_NPC_Protected"};
      
      _title = format [localize "STR_ISTR_Jaws",if (!_isVehicle) then {"Handcuffs"} else {getText(configFile >> "CfgVehicles" >> (typeOf _curTarget) >> "displayName")}];
      life_action_inUse = true; //Lock out other actions
      
      //Setup the progress bar
      disableSerialization;
      "progressBar" cutRsc ["life_progress","PLAIN"];
      _ui = uiNamespace getVariable "life_progress";
      _progressBar = _ui displayCtrl 38201;
      _titleText = _ui displayCtrl 38202;
      _titleText ctrlSetText format ["%2 (1%1)...","%",_title];
      _progressBar progressSetPosition 0.01;
      _cP = 0.01;
      
      for "_i" from 0 to 1 step 0 do {
          if (animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then {
              [player,"AinvPknlMstpSnonWnonDnon_medic_1",true] remoteExecCall ["life_fnc_animSync",RCLIENT];
              player switchMove "AinvPknlMstpSnonWnonDnon_medic_1";
              player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1";
          };
      
          sleep 0.26;
      
          if (isNull _ui) then {
              "progressBar" cutRsc ["life_progress","PLAIN"];
              _ui = uiNamespace getVariable "life_progress";
              _progressBar = _ui displayCtrl 38201;
              _titleText = _ui displayCtrl 38202;
          };
          _cP = _cP + 0.05;
          _progressBar progressSetPosition _cP;
          _titleText ctrlSetText format ["%3 (%1%2)...",round(_cP * 100),"%",_title];
      
          if (_cP >= 1 || !alive player) exitWith {};
          if (life_istazed) exitWith {}; //Tazed
          if (life_isknocked) exitWith {}; //Knocked
          if (life_interrupted) exitWith {};
          if (player getVariable ["restrained",false]) exitWith {};
          if (player distance _curTarget > _distance) exitWith {_badDistance = true;};
      };
      
      //Kill the UI display and check for various states
      "progressBar" cutText ["","PLAIN"];
      player playActionNow "stop";
      
      if (!alive player || life_istazed || life_isknocked) exitWith {life_action_inUse = false;};
      if (player getVariable ["restrained",false]) exitWith {life_action_inUse = false;};
      if (!isNil "_badDistance") exitWith {titleText[localize "STR_ISTR_Lock_TooFar","PLAIN"]; life_action_inUse = false;};
      if (life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;};
      
      life_action_inUse = false;
      
      if (!_isVehicle) then {
          _curTarget setVariable ["restrained",false,true];
          _curTarget setVariable ["Escorting",false,true];
          _curTarget setVariable ["transporting",false,true];
      } else {
          titleText[localize "STR_ISTR_Jaws_Success","PLAIN"];
          life_vehicles pushBack _curTarget;
      };
      Alles anzeigen

      2.| Jetzt öffnen wir die Mission und dort die "Functions.hpp"

      dort suchen wir die Class "Actions" und fügen das folgende hinzu


      SQL
      class jaws {}; // einfach wie die anderen einfügen die in der class Actions schon vorhanden sind 


      3.| Als nächstes öffnen wir in der Mission die "Stringtable.xml" und fügen folgendes nach dem letzen Eintrag ein achtet nur darauf das die letzte Klammer vorhanden ist !

      SQL
      <Key ID="STR_ISTR_Jaws">
          <Original>Using Jaws Of Life On: %1</Original>
          <German>Nutze Notfallset bei: %1</German>
      </Key>
      <Key ID="STR_ISTR_Jaws_Success">
          <Original>The Jaws Of Life Where Successful!</Original>
          <German>Das Notfallset war Erfolgreich!</German>
      </Key>    
      <Key ID ="STR_vInAct_Jaws">
          <Original>Jaws Of Life</Original> 
          <German>Notfallset benutzen</German>       
      </Key>
      Alles anzeigen

      4.| Nun geh ihr zu "Altis_Life.Altis\core\vehicle" und öffnen die Datei "fn_vInteractionMenu.sqf" und fügen über

      Code
      if (playerSide isEqualTo west) then {

      das folgende ein

      Code
      if (playerSide isEqualTo independent) then {
      
          _Btn5 ctrlSetText localize "STR_vInAct_Jaws";
          _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_jaws; closeDialog 0;";    
          
          
          }

      Das sollte alles gewesen sein hoffe ich habe nichts vergessen ;D

      Wenn Fehler vorhanden sind bitte melden


      Ich wünsche viel Spaß mit dem Script

      Alles was lediglich wahrscheinlich ist, ist wahrscheinlich falsch.

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 23. März 2018 um 01:47
      • #2

      Funktioniert super :thumbup:

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 17. April 2018 um 20:55
      • #3

      Aufgefallen ist jetzt aber das man nur seine eigenen Fahrzeuge über das Notfallset öffnen kann (wenn man keine Schlüssel mehr hat). Andere aber nicht. Ansonsten funktioniert es tadellos ^^

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 18. April 2018 um 09:13
      • #4

      Moin,

      warum nicht einfach den Dietrich so modifizieren, dass er eine 100% Chance bei Cops und Medics hat? Ist zu mindestens meine Lösung für das Thema.

      hier mal die Änderung ;)

      C: fn_lockpick.sqf
      #include "..\..\script_macros.hpp"
      /*
          File: fn_lockpick.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Main functionality for lock-picking.
      */
      private ["_curTarget","_distance","_isVehicle","_title","_progressBar","_cP","_titleText","_dice","_badDistance"];
      _curTarget = cursorObject;
      life_interrupted = false;
      
      if (life_action_inUse) exitWith {};
      if (isNull _curTarget) exitWith {}; //Bad type
      _distance = ((boundingBox _curTarget select 1) select 0) + 2;
      if (player distance _curTarget > _distance) exitWith {}; //Too far
      
      _isVehicle = if ((_curTarget isKindOf "LandVehicle") || (_curTarget isKindOf "Ship") || (_curTarget isKindOf "Air")) then {true} else {false};
      if (_isVehicle && _curTarget in life_vehicles) exitWith {hint localize "STR_ISTR_Lock_AlreadyHave"};
      
      //More error checks
      if (!_isVehicle && !isPlayer _curTarget) exitWith {};
      if (!_isVehicle && !(_curTarget getVariable ["restrained",false])) exitWith {};
      if (_curTarget getVariable "NPC") exitWith {hint localize "STR_NPC_Protected"};
      
      _title = format [localize "STR_ISTR_Lock_Process",if (!_isVehicle) then {"Handcuffs"} else {getText(configFile >> "CfgVehicles" >> (typeOf _curTarget) >> "displayName")}];
      life_action_inUse = true; //Lock out other actions
      
      //Setup the progress bar
      disableSerialization;
      "progressBar" cutRsc ["life_progress","PLAIN"];
      _ui = uiNamespace getVariable "life_progress";
      _progressBar = _ui displayCtrl 38201;
      _titleText = _ui displayCtrl 38202;
      _titleText ctrlSetText format ["%2 (1%1)...","%",_title];
      _progressBar progressSetPosition 0.01;
      _cP = 0.01;
      
      for "_i" from 0 to 1 step 0 do {
          if (animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then {
              [player,"AinvPknlMstpSnonWnonDnon_medic_1",true] remoteExecCall ["life_fnc_animSync",RCLIENT];
              player switchMove "AinvPknlMstpSnonWnonDnon_medic_1";
              player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1";
          };
      
          uiSleep 0.26;
      
          if (isNull _ui) then {
              "progressBar" cutRsc ["life_progress","PLAIN"];
              _ui = uiNamespace getVariable "life_progress";
              _progressBar = _ui displayCtrl 38201;
              _titleText = _ui displayCtrl 38202;
          };
          _cP = _cP + 0.01;
          _progressBar progressSetPosition _cP;
          _titleText ctrlSetText format ["%3 (%1%2)...",round(_cP * 100),"%",_title];
      
          if (_cP >= 1 || !alive player) exitWith {};
          if (life_istazed) exitWith {}; //Tazed
          if (life_isknocked) exitWith {}; //Knocked
          if (life_interrupted) exitWith {};
          if (player getVariable ["restrained",false]) exitWith {};
          if (player distance _curTarget > _distance) exitWith {_badDistance = true;};
      };
      
      //Kill the UI display and check for various states
      "progressBar" cutText ["","PLAIN"];
      player playActionNow "stop";
      
      if (!alive player || life_istazed || life_isknocked) exitWith {life_action_inUse = false;};
      if (player getVariable ["restrained",false]) exitWith {life_action_inUse = false;};
      if (!isNil "_badDistance") exitWith {titleText[localize "STR_ISTR_Lock_TooFar","PLAIN"]; life_action_inUse = false;};
      if (life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;};
      if (!([false,"lockpick",1] call life_fnc_handleInv)) exitWith {life_action_inUse = false;};
      
      life_action_inUse = false;
      
      if (!_isVehicle) then {
          _curTarget setVariable ["restrained",false,true];
          _curTarget setVariable ["Escorting",false,true];
          _curTarget setVariable ["transporting",false,true];
      } else {
          if (playerSide isEqualTo civilian) then {
              _dice = random(100);
              if (_dice < 30) then {
                  titleText[localize "STR_ISTR_Lock_Success","PLAIN"];
                  life_vehicles pushBack _curTarget;
      
                  if (life_HC_isActive) then {
                      [getPlayerUID player,profileName,"487"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life];
                  } else {
                      [getPlayerUID player,profileName,"487"] remoteExecCall ["life_fnc_wantedAdd",RSERV];
                  };
      
              } else {
      
                  if (life_HC_isActive) then {
                      [getPlayerUID player,profileName,"215"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life];
                  } else {
                      [getPlayerUID player,profileName,"215"] remoteExecCall ["life_fnc_wantedAdd",RSERV];
                  };
      
                  [0,"STR_ISTR_Lock_FailedNOTF",true,[profileName]] remoteExecCall ["life_fnc_broadcast",west];
                  titleText[localize "STR_ISTR_Lock_Failed","PLAIN"];
              };
          } else {
              titleText[localize "STR_ISTR_Lock_Success","PLAIN"];
              life_vehicles pushBack _curTarget;
          };
      };
      Alles anzeigen

      Ich habe einfach in Zeile 83: if (playerSide isEqualTo civilian) then { das eingefügt und in Zeile 106 dann den else Block gesetzt.

      Code
      } else {
              titleText[localize "STR_ISTR_Lock_Success","PLAIN"];
              life_vehicles pushBack _curTarget;
      };

      Damit haben die Cops und Medics immer eine 100% Chance das Fahrzeug beim 1. Mal zu öffnen :P

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 18. April 2018 um 10:05
      • #5

      Du bist aber auch ein Fuchs ^^ so gehts natürlich auch.

    • BlueStrike3307
      Anfänger
      Trophäen
      9
      Beiträge
      32
      • 12. Juni 2018 um 14:15
      • #6

      Ist es auch möglich, dass cops dieses Tool haben?


      Inhaber der ONEMODS.DE Community

      Teamspeak³: onemods.de

      Discord: https://onemods.eu/go/discord

      Forum: https://onemods.de/forum

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 12. Juni 2018 um 16:28
      • #7
      Zitat von Dirk_Kloppe

      if (playerSide isEqualTo independent) then {

      _Btn5 ctrlSetText localize "STR_vInAct_Jaws";
      _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_jaws; closeDialog 0;";


      }

      Code
      if (playerSide in [west,independent]) then {
      
      _Btn5 ctrlSetText localize "STR_vInAct_Jaws";
      _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_jaws; closeDialog 0;"; 
      
      
      }

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    Registrieren oder Einloggen

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

    Benutzerkonto erstellen

    Tags

    • Hilfe
    • tutroial
    • Medicskins
    • Scrip
    • nothammer

    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. Verhaltensregeln
    3. Datenschutzerklärung
    4. Impressum
    5. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™