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
Di: 20 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

    Schießplatz-System

      • Altis Life
    • ProteusSpectrum
    • 29. April 2018 um 10:48
    • ProteusSpectrum
      Frischling
      Reaktionen
      30
      Trophäen
      10
      Beiträge
      10
      • 29. April 2018 um 10:48
      • #1

      Hallo Zusammen,

      hiermit möchte ich das Schießplatz-System für euch zugänglich machen.

      Mit diesem System ist es Spielern nur noch möglich, den Waffenschein zu erwerben, wenn diese das Schießtraining erfolgreich absolviert haben.

      Ihr dürft alles bearbeiten wie ihr möchtet!
      Ich habe mit der Arma 3 Programmierung aufgehört, sodass ich die Skripte nicht mehr gebrauchen kann, möchte diese aber nicht vorenthalten!
      Also viel Spaß damit!

      Fangen wir doch mal an:

      Ihr braucht entweder das Notification-System von Lucian oder schreibt es auf hint um.

      Dieses Skript ist nicht das performanteste bzw. bestgeschriebenste Skript! Auch ich lernte immer weiter dazu ;)

      Schritt 1: Geht in eure Mission.sqm

      mission.sqm

      1. Sucht euch eine Fläche

      2. Baut dort einen Schießplatz (lasst euren Ideen freien Lauf!) mit 8 Zielen Classname: "Target_PopUp_Moving_90deg_F"

      3. In die oberste Zeile tragt ihr bei jedem Ziel target1, target2, ...., target8 ein.

      4. Nun sucht euch eine Startposition aus und erstellt dort einen Marker mit dem Namen "start_1".

      5. Nun müsst ihr in der Nähe noch ein Schild platzieren, damit man das Training starten kann.

      Folgende Init benötigt ihr: "this addAction ['[$5000]Waffenlizenz erwerben',life_fnc_schiessplatz_start];"

      6. Das war nun der Mission.sqm Teil

      Schritt 2: Erstellt die Datei "fn_schiessplatz_start.sqf im Ordner core/civilian/ mit folgendem Inhalt

      C: fn_schiessplatz_start.sqf
      /**
       * fn_schiessplatz_start.sqf
       *
       * LICENSE: This file is subject to the terms and conditions defined in
       * file "LICENSE.md", which is part of this source code package.
       *
       * @author     ProteusSepctrum
       * @copyright  2018 ProteusSepctrum 
       *
       * Dieses Script sorgt dafür, dass die Spieler eine Schiessübung machen müssen, um den Waffenschein zu erhalten
       */
      #include "..\..\script_macros.hpp";
      hit = 0;
      
      _Statusabfrage = allPlayers select {_x getVariable ["Statusgunrange",false]};
      _statusrange = (count _Statusabfrage);
      if (license_civ_gun) exitWith {hint "Du hast schon eine Waffenlizenz!";};
      if(_statusrange >= 1) exitWith {hint "Es tut uns leid, leider können wir nur eine Person prüfen. Kommen sie ein anderes mal wieder oder warten sie ein paar Minuten";};
      if (CASH < 5000 ) exitWith {hint"Du hast nicht genügend Geld um die Prüfung anzutreten! Du benötigst 5000$";};
      if (!((handgunWeapon player) isEqualTo "")) exitWith {hint "Lege deine Waffe weg du bist nicht berechtigt diese zu tragen! Dich prüfen wir nicht";};
      if (!((primaryWeapon player) isEqualTo "")) exitWith {hint "Lege deine Waffe weg du bist nicht berechtigt diese zu tragen! Dich prüfen wir nicht!";};
      
      player setVariable ["Statusgunrange",true, true];
      CASH = CASH - 5000;
      hint "Du hast 5000$ für die Waffenschein-Prüfung ausgegeben!";
      sleep 2;
      hint "Begebe dich auf die Startposition!";
      sleep 2;
      hint "Du hast 15 Sekunden Zeit um auf die Startposition zu gehen!";
      sleep 2;
      _timeleft = 15;
      while {_timeleft >= 0} do {
          hintsilent format ["Prüfung startet in %1", [((_timeleft)/60)+.01,"HH:MM"] call bis_fnc_timetostring];
          _timeleft = _timeleft -1;
          sleep 1;
      };
      if ((player distance (getMarkerPos "start_1")) < 4) then {
          for "_i" from 1 to 2 do {player addMagazine "16Rnd_9x21_Mag";};
          player addWeapon "hgun_P07_khk_F";
      
          nopop = true;
          trueVar = false;
          timeleft = 20;
          hit = 0;
          target1 animate["terc",1];
          target2 animate["terc",1];
          target3 animate["terc",1];
          target4 animate["terc",1];
          target5 animate["terc",1];
          target6 animate["terc",1];
          target7 animate["terc",1];
          target8 animate["terc",1];
          
          target1 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          target2 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          target3 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          target4 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          target5 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          target6 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          target7 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          target8 addMPEventHandler ["MPHit", {hit = hit + 1;}];
          
          []spawn 
          {
              while {timeleft > 0} do 
              {
                  hintsilent format ["Verbleibende Zeit %1", [((timeleft)/60)+.01,"HH:MM"] call bis_fnc_timetostring];
                  timeleft = timeleft - 1;
                  sleep 1;
              };
              [] spawn life_fnc_schiessplatz_end;
          };
          []spawn 
          {
              while {timeleft > 0} do 
              {
                  _target = [];
                  _target = [target1,target2,target3,target4,target5,target6,target7,target8] call BIS_fnc_selectRandom;
                  _target animate["terc",0];
                  sleep 1.5;
                  hint format ["%1 Treffer.",hit];
                  _target animate["terc",1];
              };
          };
          
      } else {
          _handle = [] spawn life_fnc_schiessplatz_end;
          hint "Du hast warst nicht an der Startposition!";    
          CASH = CASH + 5000;
      };
      Alles anzeigen

      Schritt 3: Erstelle die Datei fn_schiessplatz_end.sqf im Ordner core/civilian/ mit folgendem Inhalt

      C: fn_schiessplatz_end.sqf
      /**
       * fn_schiessplatz_end.sqf
       *
       * LICENSE: This file is subject to the terms and conditions defined in
       * file "LICENSE.md", which is part of this source code package.
       *
       * @author     ProteusSepctrum
       * @copyright  2018 ProteusSepctrum 
       *
       * Dieses Script sorgt dafür, dass die Spieler eine Schiessübung machen müssen, um den Waffenschein zu erhalten
       */
      #include "..\..\script_macros.hpp";
      nopop = false;
      trueVar = false;
      out = false;
      player setVariable ["Statusgunrange",false, true];
      if (hit >= 8) then {
          hint "Du hast deine Prüfung bestanden und besitzt nun den Waffenschein!";    
          license_civ_gun = true;
      } else {
          hint "Du hast deine Prüfung nicht bestanden bitte übe noch etwas!";    
      };
      hit = 0;
      player removeWeapon "hgun_P07_khk_F";
      player removeMagazines "16Rnd_9x21_Mag";
      timeleft = 20;
      target1 animate["terc",0];
      target2 animate["terc",0];
      target3 animate["terc",0];
      target4 animate["terc",0];
      target5 animate["terc",0];
      target6 animate["terc",0];
      target7 animate["terc",0];
      target8 animate["terc",0];
      
      target1 removeAllMPEventHandlers "MPHit";
      target2 removeAllMPEventHandlers "MPHit";
      target3 removeAllMPEventHandlers "MPHit";
      target4 removeAllMPEventHandlers "MPHit";
      target5 removeAllMPEventHandlers "MPHit";
      target6 removeAllMPEventHandlers "MPHit";
      target7 removeAllMPEventHandlers "MPHit";
      target8 removeAllMPEventHandlers "MPHit";
      Alles anzeigen

      Schritt 4: Nun müsst ihr die neuerstellten Dateien noch in die Functions.h eintragen

      Code: functions.h
      class Civilian {
       file = "core\civilian";
       class schiessplatz_start{};
       class schiessplatz_end{};
       };

      Nun war´s das auch schon wieder!

      Viel Spaß!

      Mit freundlichen Grüßen

      ProteusSpectrum

      4 Mal editiert, zuletzt von ProteusSpectrum (29. April 2018 um 11:42)

    • powerafro2
      Profi
      Reaktionen
      357
      Trophäen
      11
      Beiträge
      1.342
      Dateien
      1
      Bilder
      4
      • 29. April 2018 um 10:54
      • #2

      Aber wer das Script verwenden will muss das Notification-System von Lucian benutzen oder das auf hint umschreiben.

      Mfg powerafro2

      2 Mal editiert, zuletzt von powerafro2 (29. April 2018 um 11:05)

    • ProteusSpectrum
      Frischling
      Reaktionen
      30
      Trophäen
      10
      Beiträge
      10
      • 29. April 2018 um 11:02
      • #3
      Zitat von powerafro2

      Aber wer das Script verwenden will muss das Notification-System von Lucian benutzen oder das auf hint umschreiben.

      Hey :D danke :D habe es oben ergänzt ^^ mir gar nicht aufgefallen xD danke :D

      Mit freundlichen Grüßen

      ProteusSpectrum

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 29. April 2018 um 11:19
      • #4

      eine Sache, die mir bei all deinen Tutorials aufgefallen ist: du nutzt zu viele globale Variablen ;) Die sollte man nur verwenden, wenn die dazu da sind wirklich irgendwas persistent für diverse Systeme zu speichern, nicht wie hier als Hit-Count z.B. ;)

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

      ______________________

    • ProteusSpectrum
      Frischling
      Reaktionen
      30
      Trophäen
      10
      Beiträge
      10
      • 29. April 2018 um 11:43
      • #5
      Zitat von blackfisch

      eine Sache, die mir bei all deinen Tutorials aufgefallen ist: du nutzt zu viele globale Variablen ;) Die sollte man nur verwenden, wenn die dazu da sind wirklich irgendwas persistent für diverse Systeme zu speichern, nicht wie hier als Hit-Count z.B. ;)

      Das stimmt, wie gesagt, ich habe nun mit der Programmierung aufgehört und möchte einfach nur der Community ein paar Werke von mir veröffentlichen, damit die nicht auf der Festplatte schmoren xD

      Ich habe mit meiner Arma-Zeit vieles dazugelernt. Diese Skripte stammen von Anfang bis zum Ende, alles iwann gemacht und in der Mission verpackt. Da ich mich nun von A3 abwende, habe ich auch keine Lust mehr gehabt, alles umzuschreiben und zu verbessern ;)

      Mit freundlichen Grüßen

      ProteusSpectrum

    • Darkhel
      Frischling
      Reaktionen
      1
      Trophäen
      9
      Beiträge
      10
      • 3. Mai 2018 um 17:13
      • #6

      Endlich mal ein Tutorial das auf Anhieb und ohne langes rumgebastel funktioniert und das auch ich als Vollnoob verstehe und selber einpflegen kann.

      Danke dafür

    • Harti2000
      Kenner
      Reaktionen
      18
      Trophäen
      8
      Beiträge
      319
      Bilder
      74
      • 6. Dezember 2018 um 18:18
      • #7

      "this addAction ['[$5000]Waffenlizenz erwerben',life_fnc_schiessplatz_start];"
      hab dieses ins Infostand gesetzte,
      trotztdem kann ich nicht mit dem Infoschild Argieren

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 6. Dezember 2018 um 19:05
      • #8
      Zitat von Harti2000

      "this addAction ['[$5000]Waffenlizenz erwerben',life_fnc_schiessplatz_start];"
      hab dieses ins Infostand gesetzte,
      trotztdem kann ich nicht mit dem Infoschild Argieren

      Hast du den Infostand evtl auf der karte als Simples Objekt gesetzt? oder kommt der Text im Mausrad Menü und es Passiert nichts?

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • Harti2000
      Kenner
      Reaktionen
      18
      Trophäen
      8
      Beiträge
      319
      Bilder
      74
      • 6. Dezember 2018 um 20:05
      • #9

      es kommt gar kein Text

    • Kuchenplatte
      Erleuchteter
      Reaktionen
      1.013
      Beiträge
      3.387
      Dateien
      7
      Bilder
      10
      • 6. Dezember 2018 um 20:50
      • #10
      Zitat von Harti2000

      es kommt gar kein Text

      steck das mal in die Stringtable Waffenlizenz erwerben

      Shadow|Eagle: "Frag mich eher why ich dich nicht noch irgendwas gegeben hab als Vorschlag xD"

      !Acryl-Exile Server!

      195.201.148.155:2302

      Kuchenplatte On GitHub

      https://github.com/Kuchenplatte

      Kuchenplattes Backstube

      Kuchenplattes Discord

      Kuchenplatte On Twitch
      Come On and Follow Me! On Twitch.TV

    • Harti2000
      Kenner
      Reaktionen
      18
      Trophäen
      8
      Beiträge
      319
      Bilder
      74
      • 6. Dezember 2018 um 20:58
      • #11

      <Key ID="Waffenlizenz erwerben">

      <German>Waffenlizenz erwerben</German>

      </Key>

      Sollte dann so aus sehen oder , bin ich auf dem falschem weg

    • Kuchenplatte
      Erleuchteter
      Reaktionen
      1.013
      Beiträge
      3.387
      Dateien
      7
      Bilder
      10
      • 6. Dezember 2018 um 21:01
      • #12

      Nein....

      <Key ID > STR_WaffenLizenz

      usw. probiere es mal so

      Shadow|Eagle: "Frag mich eher why ich dich nicht noch irgendwas gegeben hab als Vorschlag xD"

      !Acryl-Exile Server!

      195.201.148.155:2302

      Kuchenplatte On GitHub

      https://github.com/Kuchenplatte

      Kuchenplattes Backstube

      Kuchenplattes Discord

      Kuchenplatte On Twitch
      Come On and Follow Me! On Twitch.TV

    • Harti2000
      Kenner
      Reaktionen
      18
      Trophäen
      8
      Beiträge
      319
      Bilder
      74
      • 6. Dezember 2018 um 21:03
      • #13
      Zitat von Kuchenplatte

      Nein....

      <Key ID > STR_WaffenLizenz

      usw. probiere es mal so

      dann müsste ich aber bei der Init des Infoschildes folgendes ab ändern
      "this addAction ['[$5000]Waffenlizenz erwerben',life_fnc_schiessplatz_start];"
      zu
      "this addAction ['[$5000]STR_WaffenLizenz',life_fnc_schiessplatz_start];"

      weil sonst würde es ja wieder nicht mehr mit der ...tabel zusammen passen

    • Kuchenplatte
      Erleuchteter
      Reaktionen
      1.013
      Beiträge
      3.387
      Dateien
      7
      Bilder
      10
      • 6. Dezember 2018 um 21:04
      • #14
      Zitat von Harti2000

      dann müsste ich aber bei der Init des Infoschildes folgendes ab ändern
      "this addAction ['[$5000]Waffenlizenz erwerben',life_fnc_schiessplatz_start];"
      zu
      "this addAction ['[$5000]STR_WaffenLizenz',life_fnc_schiessplatz_start];"

      weil sonst würde es ja wieder nicht mehr mit der ...tabel zusammen passen

      Das ist richitg - aber ich habe jetzt angenommen das das eindeutig ist :) sorry

      Shadow|Eagle: "Frag mich eher why ich dich nicht noch irgendwas gegeben hab als Vorschlag xD"

      !Acryl-Exile Server!

      195.201.148.155:2302

      Kuchenplatte On GitHub

      https://github.com/Kuchenplatte

      Kuchenplattes Backstube

      Kuchenplattes Discord

      Kuchenplatte On Twitch
      Come On and Follow Me! On Twitch.TV

    • Harti2000
      Kenner
      Reaktionen
      18
      Trophäen
      8
      Beiträge
      319
      Bilder
      74
      • 6. Dezember 2018 um 21:07
      • #15

      ja, ich frage lieber immer nach ,
      bin einer der nervt uns sich lieber eine Bestätigung holt,
      denn hab immer das Problem mit "" das ich die Dinger vergesse

      Dank dir für dein Tipp, werde es mal gleich testen

    • Kuchenplatte
      Erleuchteter
      Reaktionen
      1.013
      Beiträge
      3.387
      Dateien
      7
      Bilder
      10
      • 6. Dezember 2018 um 22:57
      • #16
      Zitat von Harti2000

      ja, ich frage lieber immer nach ,
      bin einer der nervt uns sich lieber eine Bestätigung holt,
      denn hab immer das Problem mit "" das ich die Dinger vergesse

      Dank dir für dein Tipp, werde es mal gleich testen

      und ?

      Shadow|Eagle: "Frag mich eher why ich dich nicht noch irgendwas gegeben hab als Vorschlag xD"

      !Acryl-Exile Server!

      195.201.148.155:2302

      Kuchenplatte On GitHub

      https://github.com/Kuchenplatte

      Kuchenplattes Backstube

      Kuchenplattes Discord

      Kuchenplatte On Twitch
      Come On and Follow Me! On Twitch.TV

    • Harti2000
      Kenner
      Reaktionen
      18
      Trophäen
      8
      Beiträge
      319
      Bilder
      74
      • 6. Dezember 2018 um 22:59
      • #17
      Zitat von Kuchenplatte

      und ?

      mach es gleich, mein pc is vorn abgeschmiert und wolt nicht angehen

    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™