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
Mo: 19 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] Autofriedhof / Autoteile sammeln. Mal anders Farmen

      • Altis Life
    • xjoniassx
    • 15. Dezember 2018 um 20:47
    • xjoniassx
      Schüler
      Reaktionen
      26
      Trophäen
      11
      Beiträge
      116
      • 15. Dezember 2018 um 20:47
      • #1

      Moin,

      kleines Tutorial eines "Autofriedhof´s"

      Der Spieler braucht einen Werkzeugkasten und muss über den Schrottplatz gehen um teile zu finden. Um so mehr Distanz er zurück legt um so mehr Items. Dazu gibt es eine Chance auf besondere Items.

      Mal etwas anderes statt die ganze zeit Stumpf Windows taste zu drücken um zu farmen.

      -Als erstes erstellt ihr ein Item namens "toolbox"

      -In die fn_useitem das:

      Code
      case (EQUAL(_item,"toolbox")): {
              [] spawn life_fnc_toolbox;
          };

      -SQF erstellen in civilian/fn_toolbox

      Code
      #include "..\..\script_macros.hpp"
      /*
          Author: Jonas, xjoniassx @ MineFactory.eu (2017)
          [email protected] [email protected]
      if (life_action_inUse) exitWith {[ "Keine zweite Aktion möglich"] spawn life_fnc_nachricht;};
      if((vehicle player) != player) exitWith {};
      if((player GVAR "restrained")) exitWith {[ "Wie willst du mit gefesselten Händen sammeln?"] spawn life_fnc_nachricht;};
      if((player GVAR "playerSurrender")) exitWith {[ "Mit gehobenen Händen kannst du nichts sammeln!."] spawn life_fnc_nachricht;};
      life_fnc_nachricht IST DAS DE100 NACHRICHTEN SYSTEM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      Unten durch normalen hint ersetzt 
      */
      
      if (life_action_inUse) exitWith {hint "Keine zweite Aktion möglich";};
      if((vehicle player) != player) exitWith {};
      if((player GVAR "restrained")) exitWith {hint "Wie willst du mit gefesselten Händen sammeln?";};
      if((player GVAR "playerSurrender")) exitWith {hint "Mit gehobenen Händen kannst du nichts sammeln!.";};
      life_action_inUse = true;
      
      _markerPos = markerPos "autoteile";
      _meters = _markerPos distance player;
      if(_meters > 40) exitWith {hint "Keine Schrotteile in der nähe!"; life_action_inUse = false;};
      
      closeDialog 0;
      
      GELAUFEN = 0;
      SAMMELN = true;
      AbbruchWdrop = false;
      
      //["Gehe über die Schrottteile um welche zu finden. (Nicht rennen!)",true,"fast"] call life_fnc_NachrichtSys;
      hint "Gehe über die Schrottteile um welche zu finden. (Nicht rennen!)";
      
      _upp = "Suche Teile...";
      disableSerialization;
      5 cutRsc ["life_progress","PLAIN"];
      _ui = uiNameSpace getVariable "life_progress";
      _progress = _ui displayCtrl 38201;
      _pgText = _ui displayCtrl 38202;
      _pgText ctrlSetText format["%2 (1%1)...","%",_upp];
      _progress progressSetPosition 0.01;
      _cP = 0.01;
      _success=false;
      while{true} do
      {
          sleep 1;
          _cP = _cP + 0.01;
          _progress progressSetPosition _cP;
          _pgText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_upp];
          if(_cP >= 1) exitWith {SAMMELN = false;};
          if(!alive player) exitWith {};
          if(speed player > 16) exitWith {SAMMELN = false; Hint"Du bist gerannt und hast deine Toolbox fallen gelassen"; [false,"toolbox",1] call life_fnc_handleInv; AbbruchWdrop = true;};
          
          _markerPos = getPos player;
          sleep 1;
          _meters= _markerPos distance player;
          GELAUFEN = _meters + GELAUFEN;
              
              
          _markerPos = markerPos "autoteile";
          _entfernt = _markerPos distance player;
          if(_entfernt > 40) exitWith {SAMMELN = false; Hint"Du hast deine Toolbox fallen gelassen da keine Teile in der nähe sind"; [false,"toolbox",1] call life_fnc_handleInv; AbbruchWdrop = true;};
      };
      
      5 cutText ["","PLAIN"];
      sleep 1;
      
      life_action_inUse = false;
      if(AbbruchWdrop) exitWith {systemChat "Keine Items für dich!";};
      
      if(GELAUFEN > 76) then {[] spawn life_fnc_loot;};
      sleep 0.2;
      if(GELAUFEN > 152) then {[] spawn life_fnc_loot;};
      sleep 0.2;
      if(GELAUFEN > 228) then {[] spawn life_fnc_loot;};
      sleep 0.2;
      if(GELAUFEN > 304) then {[] spawn life_fnc_loot;};
      sleep 0.2;
      if(GELAUFEN > 380) then {[] spawn life_fnc_loot;};
      Alles anzeigen

      -SQF Erstellen fn_loot

      Code
      /*
          Author: Jonas, xjoniassx @ MineFactory.eu (2017)
          [email protected] [email protected]
          10% besondere Items dropchance eingestellt
          Änder ""if(zufallsZahl > 90)"" und if(zufallsZahl < 90)
          Auf z.b. 80 und du hast eine dropchance 20%
      */
      Private["_weight","_weightItems"];
      zufallsZahl = round(random 100);
      if(zufallsZahl > 90) then {
      diag_log format ["%1", zufallsZahl];
          wonItemArray = [
              ["beispiel",1],
              ["waschmaschine",1],
              ["mikrowelle",1],
              ["benutzteskondom",1]
          ];
       };
      if(zufallsZahl < 90) then {
          wonItemArray = [
              ["goldbarren",1],
              ["beispiel",1],
              ["beispiel",1]
          ];
       };
      _wonItem = wonItemArray select floor(random(count wonItemArray));
      _wonItemName =  (_wonItem select 0);
      _wonItemAmount = (_wonItem select 1);
      //_displayName = M_CONFIG(getText,"VirtualItems",_wonItemName,"displayName");
      _displayName = _wonItemName;
      sleep 1;
      //[format["Du bekommst %1",[_displayName]],false,"fast"] call life_fnc_NachrichtSys;
      //life_fnc_NachrichtSys ist das DE100 Nachrichten System. Habe es unten ersetzt
      systemChat format ["Du bekommst %1",_displayName];
      [true,_wonItemName,_wonItemAmount] call life_fnc_handleInv;
      Alles anzeigen

      -Sich einen Ort für den Autofriedhof aussuchen oder den Ort links neben dem Standart Kupfer/Eisen Ankäufer nutzen

      -Einen Marker erstellen Variable="autoteile"

      -Die "Toolbox" In den Shop einfügen

      -Die fn_Loot mit items füllen

      -Einen Ankäufer für verschiedene "Schrott" oder "Autoteile" erstellen.. z.b. "Airbag, Radmuttern, Felgen, Turbolader, Ladeluftkühler, und c.o."

      -In die Functions noch

      class toolbox;

      class loot;

      Server Adresse: altis.minefactory.eu

      TS: ts.minefactory.eu

      minefactory.eu

      Einmal editiert, zuletzt von xjoniassx (16. Dezember 2018 um 00:56)

    • Natic
      Fortgeschrittener
      Reaktionen
      66
      Trophäen
      9
      Beiträge
      408
      • 15. Dezember 2018 um 20:55
      • #2

      Einfacher Code beibehalten.

      Gefällt mir.

      Mit freundlichen Grüßen

      Natic

      --------------------------------------------------------------------------------------------------------------------------

      Kein direkten PN - Support

      --------------------------------------------------------------------------------------------------------------------------

      Programierung

      Wir lieben

      es

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 15. Dezember 2018 um 22:02
      • #3

      man sollte vielleicht die globalen Variablen da raus nehmen und lokal machen aber ok sonst :)

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

      ______________________

    • SpodGamesTV
      Frischling
      Reaktionen
      4
      Trophäen
      8
      Beiträge
      5
      • 21. August 2019 um 12:43
      • #4

      Script ist bei mir nicht funktionsfähig. Wenn ich die Toolbox am Punktmarker "autoteile" benutze passiert nichts. Tutorial habe ich befolgt oder habe ich die Toolbox vielleicht falsch in die fn_useItem eingebunden? Habe ich auf jeden Fall schon geprüft und der Name stimmt auch mit der der vItems Config überein.

      Code: fn_useItem.sqf
      #include "..\..\script_macros.hpp"
      /*
          File: fn_useItem.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Main function for item effects and functionality through the player menu.
      */
      private "_item";
      disableSerialization;
      if ((lbCurSel 2005) isEqualTo -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";};
      _item = CONTROL_DATA(2005);
      
      switch (true) do {
          case (_item in ["waterBottle","coffee","redgull"]): {
              if ([false,_item,1] call life_fnc_handleInv) then {
                  life_thirst = 100;
                  if (LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1) then {player setFatigue 0;};
                  if (_item isEqualTo "redgull" && {LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 1}) then {
                      [] spawn {
                          life_redgull_effect = time;
                          titleText[localize "STR_ISTR_RedGullEffect","PLAIN"];
                          player enableFatigue false;
                          waitUntil {!alive player || ((time - life_redgull_effect) > (3 * 60))};
                          player enableFatigue true;
                      };
                  };
              };
          };
      
          case (_item isEqualTo "boltcutter"): {
              [cursorObject] spawn life_fnc_boltcutter;
              closeDialog 0;
          };
      
          case (_item isEqualTo "blastingcharge"): {
              player reveal fed_bank;
              (group player) reveal fed_bank;
              [cursorObject] spawn life_fnc_blastingCharge;
              closeDialog 0;
          };
      
          case (_item isEqualTo "defusekit"): {
              [cursorObject] spawn life_fnc_defuseKit;
              closeDialog 0;
          };
      
          case (_item isEqualTo "storagesmall"): {
              [false] call life_fnc_storageBox;
          };
      
          case (_item isEqualTo "storagebig"): {
              [true] call life_fnc_storageBox;
          };
      
          case (_item isEqualTo "spikeStrip"): {
              if (!isNull life_spikestrip) exitWith {hint localize "STR_ISTR_SpikesDeployment"; closeDialog 0};
              if ([false,_item,1] call life_fnc_handleInv) then {
                  [] spawn life_fnc_spikeStrip;
                  closeDialog 0;
              };
          };
      
          case (_item isEqualTo "fuelFull"): {
              if !(isNull objectParent player) exitWith {hint localize "STR_ISTR_RefuelInVehicle"};
              [] spawn life_fnc_jerryRefuel;
              closeDialog 0;
          };
      
          case (_item isEqualTo "fuelEmpty"): {
              [] spawn life_fnc_jerryCanRefuel;
              closeDialog 0;
          };
      
          case (_item isEqualTo "lockpick"): {
              [] spawn life_fnc_lockpick;
              closeDialog 0;
          };
          
          case (_item in ["apple","rabbit","salema","ornate","mackerel","tuna","mullet","catshark","turtle_soup","hen","rooster","sheep","goat","donuts","tbacon","peach"]): {
              if (!(M_CONFIG(getNumber,"VirtualItems",_item,"edible") isEqualTo -1)) then {
                  if ([false,_item,1] call life_fnc_handleInv) then {
                      _val = M_CONFIG(getNumber,"VirtualItems",_item,"edible");
                      _sum = life_hunger + _val;
                      switch (true) do {
                          case (_val < 0 && _sum < 1): {life_hunger = 5;}; //This adds the ability to set the entry edible to a negative value and decrease the hunger without death
                          case (_sum > 100): {life_hunger = 100;};
                          default {life_hunger = _sum;};
                      };
                  };
              };
          };
      
          case (EQUAL(_item,"toolbox")): {
          [] spawn life_fnc_toolbox;
          };
          
          default {
              hint localize "STR_ISTR_NotUsable";
          };
      };
      
      [] call life_fnc_p_updateMenu;
      [] call life_fnc_hudUpdate;
      Alles anzeigen



      Die Class Civilian meiner Functions.hpp sieht bei mir so aus


      Code: Functions.hpp
      class Civilian {
              file = "core\civilian";
              class civLoadout {};
              class civMarkers {};
              class demoChargeTimer {};
              class freezePlayer {};
              class jail {};
              class jailMe {};
              class knockedOut {};
              class knockoutAction {};
              class removeLicenses {};
              class robPerson {};
              class robReceive {};
              class tazed {};
              class toolbox {};
              class loot {};
          };
      Alles anzeigen


      Update: Die Logs hatten erst keine Fehler zu dem Error ausgeworfen. Irgendwann nach mehrmaligem probieren wurden Fehler ausgespuckt. Das ändern von GVAR in getVariable machte das Script nun schlussendlich lauffähig.

      Einmal editiert, zuletzt von SpodGamesTV (21. August 2019 um 20:08)

    • Dovkeizz
      Anfänger
      Trophäen
      9
      Beiträge
      24
      • 9. April 2020 um 14:43
      • #5

      Also bsp so?


      if((_player getVariable "restrained")) exitWith {[ "Wie willst du mit gefesselten Händen sammeln?"] spawn life_fnc_nachricht;};

      if((_player getVariable "playerSurrender")) exitWith {[ "Mit gehobenen Händen kannst du nichts sammeln!."] spawn life_fnc_nachricht;};

      life_fnc_nachricht IST DAS DE100 NACHRICHTEN SYSTEM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      Unten durch normalen hint ersetzt

      */

      if (life_action_inUse) exitWith {hint "Keine zweite Aktion möglich";};

      if((vehicle player) != player) exitWith {};

      if((_player getVariable "restrained")) exitWith {hint "Wie willst du mit gefesselten Händen sammeln?";};

      if((_player getVariable "playerSurrender")) exitWith {hint "Mit gehobenen Händen kannst du nichts sammeln!.";};

      life_action_inUse = true;

    Registrieren oder Einloggen

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

    Benutzerkonto erstellen

    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™