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: 22 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

    [Frage/Hilfe] Geändertes Lockpickscript - keinen Schlüssel dafür Türen direkt öffnen

    • Alice Kingsleigh
    • 14. Juni 2018 um 16:09
    • Erledigt
    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 14. Juni 2018 um 16:09
      • #1

      Specs:

      Altis Life Version 5.0

      vServer 2 Cores, 8 GB Ram (Testserver)

      Windows Server 2016

      non modded

      Hallo,

      ich habe mich an einem Nothammer probiert. Hierzu habe ich das Lockpick Script genommen. Ich möchte, dass das Script am Ende keinen Schlüssel übergibt, das Fahrzeug dennoch öffnet und einen leichten Karosserieschaden verursacht.

      Um den Schlüssel nicht mehr zu erhalten habe ich folgendes aus dem Script genommen:

      Spoiler anzeigen


      life_vehicles pushBack _curTarget;

      Dafür habe ich dann in der fn_keyHandler.sqf geschaut, wie sich ein Fahrzeug öffnen lässt und habe folgendes eingetrage, die _curTarget Variable hab ich im gesamten Script zu _veh gemacht:

      Spoiler anzeigen

      _locked = locked _veh;

      if (_veh in life_vehicles && {player distance _veh < 20}) then {

      if (_locked isEqualTo 2) then {

      if (local _veh) then {

      _veh lock 0;

      _veh animateDoor ["door_back_R",1];

      _veh animateDoor ["door_back_L",1];

      _veh animateDoor ['door_R',1];

      _veh animateDoor ['door_L',1];

      _veh animateDoor ['Door_L_source',1];

      _veh animateDoor ['Door_rear',1];

      _veh animateDoor ['Door_rear_source',1];

      _veh animateDoor ['Door_1_source',1];

      _veh animateDoor ['Door_2_source',1];

      _veh animateDoor ['Door_3_source',1];

      _veh animateDoor ['Door_LM',1];

      _veh animateDoor ['Door_RM',1];

      _veh animateDoor ['Door_LF',1];

      _veh animateDoor ['Door_RF',1];

      _veh animateDoor ['Door_LB',1];

      _veh animateDoor ['Door_RB',1];

      _veh animateDoor ['DoorL_Front_Open',1];

      _veh animateDoor ['DoorR_Front_Open',1];

      _veh animateDoor ['DoorL_Back_Open',1];

      _veh animateDoor ['DoorR_Back_Open ',1];

      } else {

      [_veh,0] remoteExecCall ["life_fnc_lockVehicle",_veh];

      _veh animateDoor ["door_back_R",1];

      _veh animateDoor ["door_back_L",1];

      _veh animateDoor ['door_R',1];

      _veh animateDoor ['door_L',1];

      _veh animateDoor ['Door_L_source',1];

      _veh animateDoor ['Door_rear',1];

      _veh animateDoor ['Door_rear_source',1];

      _veh animateDoor ['Door_1_source',1];

      _veh animateDoor ['Door_2_source',1];

      _veh animateDoor ['Door_3_source',1];

      _veh animateDoor ['Door_LM',1];

      _veh animateDoor ['Door_RM',1];

      _veh animateDoor ['Door_LF',1];

      _veh animateDoor ['Door_RF',1];

      _veh animateDoor ['Door_LB',1];

      _veh animateDoor ['Door_RB',1];

      _veh animateDoor ['DoorL_Front_Open',1];

      _veh animateDoor ['DoorR_Front_Open',1];

      _veh animateDoor ['DoorL_Back_Open',1];

      _veh animateDoor ['DoorR_Back_Open ',1];

      };

      };

      };

      Tja was soll ich sagen einen Schlüssel gibt es nicht mehr, das Fahrzeug bleibt aber weiterhin verschlossen. Das Script wird aber angesprochen (habe es ja mit den Schlüsselvariante erfolgreich probiert) und ich habe weder im Server noch im Clientlog Fehler.

      Das zweite Problem ist der Karosserieschaden. Dafür habe ich schon zwei Varianten probiert.

      Einmal

      Spoiler anzeigen


      [_veh "HitHull", 0.5] call BIS_fnc_getHitPointDamage;

      So bekomme ich die Aussage, dass eine ] fehlt.

      Und ein mal:

      Spoiler anzeigen

      //in fn_emergencyHammer.sqf
      [_veh] remoteExecCall ["BIS_fnc_getHitPointDamage", [HitHull, 0.5],0];

      //in CfgRemoteExec.hpp

      F(BIS_fnc_getHitPointDamage,SERVER)

      Da sagt er nicht definierte Variable.

      Ich weiß nicht ob ich zu kompliziert denke aber ich komme da nicht drauf, wie es funktioniert. Totales Brett vor dem Kopf grade. Ich würde mich freuen, wenn ihr mir sagen könntet wo evtl. die Fehler sind oder mir mein Brett einhaut und zumindest zielführend Richtung richtige Variable und Aufruf helft. Anbei hab ich euch noch mal meine komplette fn_emergencyHammer.sqf gepackt.

      Lieben Dank.

      Dateien

      fn_emergencyHammer.sqf 5,4 kB – 180 Downloads

      Einmal editiert, zuletzt von Alice Kingsleigh (14. Juni 2018 um 16:48)

    • shoXy
      Nerd
      Reaktionen
      161
      Trophäen
      10
      Beiträge
      726
      • 14. Juni 2018 um 17:47
      • #2

      Dein erstes Problem:

      Also du hast als erstes entfernt das derjenige den Schlüssel bekommt, jetzt brauchst du nur noch das Fahrzeug aufschließen.

      Entweder

      cursorObject lock 0; -> Zeile 90

      Oder du setzt das hier rein:

      _veh = cursorObject; -> Zeile 85

      Zweites Problem:

      Du fragst den Fahrzeugschaden ab, aber setzt ihn nicht?

      Eigentlich brauchst du nur den Schaden setzen, und nicht abfragen

      _veh setHitPointDamage ["hitHull",0.5];

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 17. Juni 2018 um 19:06
      • #3

      Danke dir erst mal für deine Antwort, auch wenn meine jetzt später kommt. Das mit dem _veh lock 0; hab ich mir noch mal angeschaut und da kams mir dann. Danke. Allerding funktioniert das mit dem Damage auf deine Art ja nur Clientseitig und das Fahrzeug bekommt lediglich einen optischen Damage. So zumindest bei mir.

    • shoXy
      Nerd
      Reaktionen
      161
      Trophäen
      10
      Beiträge
      726
      • 17. Juni 2018 um 19:42
      • #4

      Versuch es mal so:

      _veh setHit ["karoserie",0.5];

      Nicht wundern warum da karoserie steht, so nennen sich die HitPoints für die Fahrzeuge

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 18. Juni 2018 um 22:39
      • #5

      Also lange durchgetestet und nun so lala hinbekommen. Mit _veh setHitPointDamage ["HitHull", 0.6]; wird nun endlich ein leichter Karosserieschaden gesetzt, der nicht nur als Änderung der Textur gesetzt wird. Dies war, wieso auch immer, bei _veh setHit ["karoserie",0.5]; der Fall. Nun wäre es noch mega, wenn das Fahrzeug schon einen Schaden hat, z. B. kaputte Reifen, dass der Karosserieschaden dazu kommt. Das tut er mit dieser Sache so nämlich nicht. Ich habe eine Idee wie die Abfrage dazu sein müsste, aber nicht, wie ich nun den Damage eben auf den vorhandenen "draufaddiere".

      Code
      if ((damage _veh )> 0) then {
          "Hier bitte Hilfe";
      } else {
          _veh setHitPointDamage ["HitHull", 0.6];
      };
    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 19. Juni 2018 um 11:40
      • #6

      Soo ich weiß nicht ganz ob du da hin möchtest aber probier das mal.

      Code
      if ((getDammage _veh )>= 10) then { 
       _veh setHitPointDamage ["HitGlass1",0.5]; 
      } else { 
       _veh setHitPointDamage ["HitHull", 0.6]; 
      };

      Bei Schadensabfragen einfach getDammage nehmen.

      Diese Abfrage hab ich mal so geschrieben das er wie du siehst ab 90hp des Fahrzeugs nur die Scheibe einen Hit bekommt.

      Anderenfalls ist die Karosserie dran.

      HitGlass1 ist ein Schaden an der Windschutzscheibe.

      Hab das jetzt an einem SUV getestet.

      Sollte was nicht klappen einfach nochmal melden.


      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 19. Juni 2018 um 17:28
      • #7

      Hey,

      erstmal lieben Dank. Es ging nicht darum, Teil A oder Teil B einen Schaden hinzuzufügen, sondern egal wo ein Schaden am Fahrzeug evtl. schon vorhanden ist, die Karosserie zusätzlich kaputt zu haben. Wenn ich nur _veh setHitPointDamage ["HitHull", 0.6]; nehme funktioniert das ausschließlich bei Fahrzeugen, die noch keinen Schaden haben. Wenn ein Schaden vorbesteht macht er nur kurz einen optischen Karosserieschaden, der wenn man einsteigt oder wegguckt direkt weg ist. Und genau das würde ich eben nicht wollen. Deshalb die Überlegung der Abfrage, ob das Fahrzeug überhaupt irgendeinen Damage hat. Aber klar getDmmage ist da schon mal die bessere Variante.

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 19. Juni 2018 um 19:37
      • #8
      Zitat von Joe Barbaro

      if ((getDammage _veh )>= 10) then {

      >= 10 - bei nem Command der Werte zwischen 0 und 1 ausgibt? Und warum nicht bei damage belassen? getDammage war ein Tippfehler von BI, den sie für Backwards-Compatibility drin gelassen haben


      Zitat von Alice Kingsleigh

      Hey,

      erstmal lieben Dank. Es ging nicht darum, Teil A oder Teil B einen Schaden hinzuzufügen, sondern egal wo ein Schaden am Fahrzeug evtl. schon vorhanden ist, die Karosserie zusätzlich kaputt zu haben. Wenn ich nur _veh setHitPointDamage ["HitHull", 0.6]; nehme funktioniert das ausschließlich bei Fahrzeugen, die noch keinen Schaden haben. Wenn ein Schaden vorbesteht macht er nur kurz einen optischen Karosserieschaden, der wenn man einsteigt oder wegguckt direkt weg ist. Und genau das würde ich eben nicht wollen. Deshalb die Überlegung der Abfrage, ob das Fahrzeug überhaupt irgendeinen Damage hat. Aber klar getDmmage ist da schon mal die bessere Variante.

      Ich glaube das hat mit der ursprünglichen Frage nicht mehr viel zu tun, mach dazu am Besten mal nen neuen Thread auf ;)

      #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!

      ______________________

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 19. Juni 2018 um 19:50
      • #9

      Danke für den Hinweis, das meins dann doch die richtige Idee der Abfrage war. Und doch genau die Sache war eine meiner zwei Fragen aus dem Eingangspost :)

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 19. Juni 2018 um 22:15
      • #10
      Zitat von blackfisch

      >= 10 - bei nem Command der Werte zwischen 0 und 1 ausgibt? Und warum nicht bei damage belassen? getDammage war ein Tippfehler von BI, den sie für Backwards-Compatibility drin gelassen haben


      Ich glaube das hat mit der ursprünglichen Frage nicht mehr viel zu tun, mach dazu am Besten mal nen neuen Thread auf ;)

      Ja sorry ich hab da wohl gepennt dash

      Entwickler vom Arma 3 Batch Generator


    Registrieren oder Einloggen

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

    Registrieren

    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™