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

    Farming/Abbau Massenproduktion

      • Altis Life
    • Shinji
    • 28. Juni 2016 um 11:13
    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 28. Juni 2016 um 11:13
      • #1

      Nachdem ich nun mal alle Versionen durchgeschaut habe und immernoch auf ein Update von MS warte, dachte ich mir, mach ich doch einfach mal ein kleines Tutorial wie ihr eine Massenproduktion auf dem Server erreicht.

      VORWORT: Wer hier c&p macht und Fehler einbaut, ist selber Schuld und wird nie was aus sich oder seinem Server machen wenn er nicht lernwillig ist.
      Desweiteren Untersage ich es dieses TUT an weiteren Communities/Servern/Foren zu verteilen ohne Einwilligung von mir!

      Was ist dass überhaupt?
      -Damit können eure User beim einmaligen drücken der Interaktionstaste, solange Farmen bis ihr Inventar voll ist.


      Leider habe ich das ganze noch getestet und muss gestehen, ich werde es auch derzeit nicht können. Da es aber auf meinem alten Server sehr gut lief und die anderen Versionen nicht wirklich viel an Änderungen besitzen, sollte es auf jeder Version laufen.

      Das alles findet in den beiden Dateien statt: gather.sqf und pickaxeUser.sqf

      Version 3.1.x

      Spoiler anzeigen


      Fangen wir mit der gather.sqf an:

      Dies ist der Code um den es sich dreht

      Code
      if(vehicle player != player) exitWith {};
      
      
      
      
      _diff = [_gather,_val,life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
      if(_diff == 0) exitWith {hint localize "STR_NOTF_InvFull"};
      life_action_inUse = true;
      for "_i" from 0 to 2 do
      {
      	player playMove "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
      	waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
      	sleep 2.5;
      };
      
      
      
      
      if(([true,_gather,_diff] call life_fnc_handleInv)) then
      {
      	_itemName = [([_gather,0] call life_fnc_varHandle)] call life_fnc_varToStr;
      	titleText[format[localize "STR_NOTF_Gather_Success",_itemName,_diff],"PLAIN"];
      };
      Alles anzeigen

      Mit diesen Zeilen wird die Animation gesetzt sowie geprüft ob das Inventar noch Platz hat und danach das Item in die Hand gedrückt.
      Was wir nun tun, ist relativ einfach.

      Zunächst setzen wir dieses Stück in eine Schleife

      Code
      /* Author Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {};
      ...
      ...
      ...
      };
      life_action_inUse = false; // Über dieser Variable muss die Schleife enden!


      Nun fügen wir noch eine Abfrage hinzu sodass der Spieler wieder abbrechen kann wenn er sich bewegt.

      Code
      /* Author Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {};
              if (life_interrupted) exitwith {}; // Damit ist diese hier gemeint :)
      ...
      ...
      ...
      };
      life_action_inUse = false; // Über dieser Variable muss die Schleife enden!



      /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      Das wars schon für die gather. Gehen wir nun zur fn_pickaxeUse.sqf über

      Wieder finden wir folgenden Code vor:

      Diesen werden wir wieder in eine Schleife setzen

      Code
      /* Author: Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
      ...
      ...
      ...
      };
      life_action_inUse = false; // als referenz das die Schleife hier drüber endet


      Nun bauen wir wieder die kleine Abfrage ein :)

      Code
      /* Author: Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
      	if (life_interrupted) exitwith {life_interrupted = false;}; // die Abfrage
      ...
      ...
      ...


      Und nun ist die 3.1.x schon Massenproduktionstauglich :) ziemlich einfach oder? :)


      Version 4.0

      Spoiler anzeigen



      Die fn_gather.sqf
      Der code den wir weder finden:

      Code
      _diff = [SEL(_gather,0),SEL(_gather,1),life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
      if(EQUAL(_diff,0)) exitWith {hint localize "STR_NOTF_InvFull"};
      life_action_gathering = true;
      
      
      
      
      for "_i" from 0 to 2 do {
      	player playMove "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
      	waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
      	sleep 2.5;
      };
      
      
      
      
      if(([true,SEL(_gather,0),_diff] call life_fnc_handleInv)) then {
      	_itemName = M_CONFIG(getText,"VirtualItems",SEL(_gather,0),"displayName");
      	titleText[format[localize "STR_NOTF_Gather_Success",(localize _itemName),_diff],"PLAIN"];
      };
      
      
      
      
      life_action_gathering = false;
      Alles anzeigen


      Daraus erstellen wir nun eine Schleife:

      Code
      /* Author Shinji */
      while {true} do {
          if(vehicle player != player) exitWith {};
      ...
      ...
      ...
      };
      life_action_gathering = false; // dient wieder als referenz wo die Schleife enden soll


      Nun setzen wir eine Abfrage ob der Spieler sich bewegt hat oder ähnliches angestellt hat damit die Schleife durchbrochen wird.

      Code
      /* Author Shinji */
      while {true} do {
          if(vehicle player != player) exitWith {};
          if (life_interrupted) exitwith {life_interrupted = false;}; // diese Abfrage :)
      ...
      ...
      ...
      
      
      
      
      };
      life_action_gathering = false; // dient wieder als referenz wo die Schleife enden soll
      Alles anzeigen


      Schon läuft die Schleife im Dauerzustand bis das Inventar voll ist oder der Spieler den Vorgang abbricht.


      /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      Kommen wir also schon zu fn_pickaxeUse.sqf;
      Ähnlich wie oben zu sehen bekommen wir einen Code zu sehen:

      Code
      if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
      
      
      
      
      _diff = [SEL(_mine,0),SEL(_mine,1),life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
      
      
      
      
      if(EQUAL(_diff,0)) exitWith {hint localize "STR_NOTF_InvFull"};
      
      
      
      
      life_action_inUse = true;
      for "_i" from 0 to 2 do {
      	player playMove "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
      	waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
      	sleep 2.5;
      };
      
      
      
      
      if(([true,SEL(_mine,0),_diff] call life_fnc_handleInv)) then {
      	_itemName = M_CONFIG(getText,"VirtualItems",SEL(_mine,0),"displayName");
      	titleText[format[localize "STR_ISTR_Pick_Success",(localize _itemName),_diff],"PLAIN"];
      };
      
      
      
      
      life_action_inUse = false;
      Alles anzeigen


      Sollte dieser Code nicht dem euren gleichen, habe ich mich in der Version verschaut /* Code ist aus einer 4.4 sollte jedoch derselbe Code sein. */

      Aus diesem code machen wieder eine Schleife:

      Code
      /* Author Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
      ...
      ...
      ...
      };
      life_action_inUse = false; // denkt daran die Schleife über diesem Code zu beenden!


      Nun folgt der kleine Abbruch Code damit der Spieler den Vorgang selbstständig abbrechen kann.


      Code
      /* Author Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
              if(life_interrupted) exitWith {life_interrupted = false;};
      ...
      ...
      ...
      };
      life_action_inUse = false; // Achtung! Ende der Schleife über dieser Variable


      Und fertig :) Dauerschleife Aktiv so lange Inventar nicht voll und der Spieler nicht abbricht.



      Version 4. + ?

      Spoiler anzeigen

      Da sich der Code von der 3.1.x kaum geändert hat kann hier in der Theorie Der Spoiler der 4.0 genutzt werden, falls jemand auf Nummer sicher gehen will kommt hier das Stück für die 4. +? (4)

      Wir nehmen uns wieder die fn_gather.sqf vor und finden folgendes:

      Code
      if(vehicle player != player) exitWith {};
      
      
      
      
      _diff = [SEL(_gather,0),SEL(_gather,1),life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
      if(EQUAL(_diff,0)) exitWith {hint localize "STR_NOTF_InvFull"};
      life_action_inUse = true;
      
      
      
      
      for "_i" from 0 to 2 do {
      	player playMove "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
      	waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
      	sleep 2.5;
      };
      
      
      
      
      if(([true,SEL(_gather,0),_diff] call life_fnc_handleInv)) then {
      	_itemName = M_CONFIG(getText,"VirtualItems",SEL(_gather,0),"displayName");
      	titleText[format[localize "STR_NOTF_Gather_Success",(localize _itemName),_diff],"PLAIN"];
      };
      
      
      
      
      life_action_inUse = false;
      Alles anzeigen

      Das ganze Stück wird in eine Schleife gepackt :

      Code
      /* Author Shinji */
      while{true} do {
      	if(vehicle player != player) exitWith {};
      ...
      ...
      ...
      };
      life_action_inUse = false; // dient als Referenz, Schleife endet über dieser Variable

      Nun noch eine Abfrage damit der Spieler selber abbrechen kann wann er möchte.

      Code
      /* Author Shinji */
      while{true} do {
      	if(vehicle player != player) exitWith {};
              if(life_interrupted) exitWith {life_interrupted = false;}; // Diese Zeile ist damit gemeint
      ...
      ...
      ...
      };
      life_action_inUse = false; // dient als Referenz, Schleife endet über dieser Variable


      Schon ist die Gather fertig :) kommen wir nun also zur fn_pickaxeUse.sqf;
      Wir finden wieder folgenden Code:

      Code
      if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
      
      
      
      
      	_diff = [SEL(_mine,0),SEL(_mine,1),life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
      
      
      
      
      	if(EQUAL(_diff,0)) exitWith {hint localize "STR_NOTF_InvFull"};
      
      
      
      
      	life_action_inUse = true;
      	for "_i" from 0 to 2 do {
      		player playMove "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
      		waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
      		sleep 2.5;
      	};
      
      
      
      
      	if(([true,SEL(_mine,0),_diff] call life_fnc_handleInv)) then {
      		_itemName = M_CONFIG(getText,"VirtualItems",SEL(_mine,0),"displayName");
      		titleText[format[localize "STR_ISTR_Pick_Success",(localize _itemName),_diff],"PLAIN"];
      	};
      
      
      
      
      life_action_inUse = false;
      Alles anzeigen


      Setzen das ganze wieder in eine Schleife :)

      Code
      /* Author Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
      ...
      ...
      ...
      };
      life_action_inUse = false; // Über dieser Variable endet die Schleife!

      Natürlich fehlt jetzt die Abfrage ob der Spieler abgebrochen hat oder es wünscht:


      Code
      /* Author Shinji */
      while {true} do {
      	if(vehicle player != player) exitWith {hint localize "STR_ISTR_Pick_MineVeh";};
              if(life_interrupted) exitWith {life_interrupted = false;}; // Damit ist die Zeile hier gemeint 
      
      
      
      
      ...
      ...
      ...
      };
      life_action_inUse = false; // Über dieser Variable endet die Schleife!
      Alles anzeigen

      Fertig :)


      So :) Damit denke ich, habe ich einigen Servern gezeigt das man selbst mit wenig Aufwand und nur ein paar Zeilen viel verändern kann.

      Ich möchte hier bitte noch anmerken das ich hiervon lediglich die 4.0 getestet habe! Sollten Fehler entstehen oder Schleifen weiterlaufen wo sie es nicht sollten, entschuldige ich mich und bereit einen Hotfix direkt ins Tut ein.


      ~ Shinji

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • Saturin78
      Profi
      Reaktionen
      409
      Trophäen
      10
      Beiträge
      1.340
      • 28. Juni 2016 um 12:15
      • #2

      Das ist lustig. Hier wollten einige dass das speedfarmen durch das Taste spamen unterbunden wird und dieses Script macht sogar eine Funktion draus. Find ich gut. Mich nervt z. B. Das dauernde drücken der farmtaste.

      Find das gut und werd es testen.

      Tapse mich wieder ins Arma3 xxx-Life rein :D

    • beatzcraft
      Schüler
      Reaktionen
      64
      Trophäen
      11
      Beiträge
      140
      • 28. Juni 2016 um 12:19
      • #3
      Zitat von Saturin78

      Das ist lustig. Hier wollten einige dass das speedfarmen durch das Taste spamen unterbunden wird und dieses Script macht sogar eine Funktion draus. Find ich gut. Mich nervt z. B. Das dauernde drücken der farmtaste.

      Ich habe lange nichts mehr mit Altis Life gemacht, aber mit Speedfarmen war glaube ich nicht gemeint, dass zu machen, was dieses Script macht, sondern etwas anderes.
      Früher gab es einen Bug, das du das Farmen mehr mal gleichzeitig starten konntest und daher dann auch viel mehr an Rohstoffen bekommen hast.
      Dies hier reit aber sozusagen das Farmen nur automatisch aneinander.

      Follow me on Twitter

      Discord: beatzcraft#7859

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 28. Juni 2016 um 12:23
      • #4

      Den Speedbug gibts leider auch jetzt noch. Den zu umgehen ist ist eine Sache für sich. Ich hatte da mal was geschrieben allerdings werden die Leute dadurch gekickt was vielen ziemlich auf den Keks ging xD

      Das Script hier wie @beatzcraft schon gesagt hat, sorgt nur dafür das du nicht mehr ständig die Win-Taste drücken musst oder mit der Spitzhacke nicht ständig ins v-Inv musst um zu klicken.

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 28. Juni 2016 um 12:44
      • #5

      I have this sript. but he dosent work! Do you have ideas?

      Einmal editiert, zuletzt von SlimRF (28. Juni 2016 um 19:52)

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 28. Juni 2016 um 13:00
      • #6

      привет!Im sorry, but your file is extremly modified. So i cannot help anyways.

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 28. Juni 2016 um 13:24
      • #7

      не говорить по-русски, господин @Shinji ;)
      Hier Deutsches, nix russisches Forum :P

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

      ______________________

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 28. Juni 2016 um 13:35
      • #8

      Hättest dir sein Script anschauen sollen der ist russe bzw. spricht russisch. Mit dem hab ich schonmal zu tun gehabt xD
      Aber nu BTT Mr. @blackfisch

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 28. Juni 2016 um 13:46
      • #9

      Paste in your script progress bar. It would be great

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 28. Juni 2016 um 13:49
      • #10
      Zitat von SlimRF

      Paste in your script progress bar. It would be great

      This Thread and this Tutorial doesnt need any progressbars. Your file is modified with it, so my tutorial wont work for you at all. Sorry but deal with it.

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 28. Juni 2016 um 13:51
      • #11
      Zitat von Shinji

      This Thread and this Tutorial doesnt need any progressbars. Your file is modified with it, so my tutorial wont work for you at all. Sorry but deal with it.

      But i deleted my script and install your script

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 28. Juni 2016 um 13:54
      • #12

      Good work, you didnt read the whole thread. Honestly im sorry but its not my problem if you delete your file and replaced it with 12 lines of code O.o
      Maybe you shouldn`t host a server ai?

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • Brizi Jaeger
      Profi
      Reaktionen
      291
      Trophäen
      11
      Beiträge
      1.025
      • 11. März 2017 um 11:11
      • #13

      Moinsen,

      in der 4.4r3 gibt es die fn_pickaxeblabla.sqf ja nicht mehr, habe es jetzt so probiert, klappt aber nur beim normalen Gathern.

      Jemand eine Idee wo ich des für die Pickaxe eintragen soll? :D

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 11. März 2017 um 11:24
      • #14

      Da musste es eine Mining Datei geben glaube. Irgendsowas jedenfalls.

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • Brizi Jaeger
      Profi
      Reaktionen
      291
      Trophäen
      11
      Beiträge
      1.025
      • 11. März 2017 um 12:24
      • #15

      Alles klar, danke für die Hilfe ist

      "fn_mine.sqf" im Actions Ordner.

      MfG Brizi Jaeger

    • ZanchezDE
      Schüler
      Reaktionen
      15
      Trophäen
      11
      Beiträge
      100
      • 3. April 2017 um 03:59
      • #16

      Moin ihr lieben,

      vielleicht kann mir ja jemand helfen. Unter der 5.0 sehen die Dateien ja doch ein wenig anders aus vom Inhalt her.

      Habe es jetzt selber versucht einzubinden, jedoch wird die Schleife nicht ein einziges Mal ausgeführt.

      Man gathert ganz normal, wie vorher auch.

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 3. April 2017 um 08:00
      • #17

      Morgen, wenn du uns zeigst wie du es eingebaut hast, kann ich dir vielleihct auch helfen.

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • ZanchezDE
      Schüler
      Reaktionen
      15
      Trophäen
      11
      Beiträge
      100
      • 3. April 2017 um 08:16
      • #18

      Hier die fn_gather.sqf

      Spoiler anzeigen

      #include "..\..\script_macros.hpp"
      /*
      File: fn_gather.sqf
      Author: Devilfloh



      Description:
      Main functionality for gathering.
      */
      private ["_maxGather","_resource","_amount","_maxGather","_requiredItem"];
      while{true} do {
      if (life_action_inUse) exitWith {};
      if !(isNull objectParent player) exitWith {};
      if (player getVariable "restrained") exitWith {hint localize "STR_NOTF_isrestrained";};
      if (player getVariable "playerSurrender") exitWith {hint localize "STR_NOTF_surrender";};
      if (life_interrupted) exitWith {life_interrupted = false;};



      life_action_inUse = true;
      _zone = "";
      _requiredItem = "";
      _exit = false;



      _resourceCfg = missionConfigFile >> "CfgGather" >> "Resources";
      for "_i" from 0 to count(_resourceCfg)-1 do {



      _curConfig = _resourceCfg select _i;
      _resource = configName _curConfig;
      _maxGather = getNumber(_curConfig >> "amount");
      _zoneSize = getNumber(_curConfig >> "zoneSize");
      _resourceZones = getArray(_curConfig >> "zones");
      _requiredItem = getText(_curConfig >> "item");
      {
      if ((player distance (getMarkerPos _x)) < _zoneSize) exitWith {_zone = _x;};
      } forEach _resourceZones;



      if (_zone != "") exitWith {};
      };



      if (_zone isEqualTo "") exitWith {life_action_inUse = false;};



      if (_requiredItem != "") then {
      _valItem = missionNamespace getVariable "life_inv_" + _requiredItem;



      if (_valItem < 1) exitWith {
      switch (_requiredItem) do {
      //Messages here
      };
      life_action_inUse = false;
      _exit = true;
      };
      };



      if (_exit) exitWith {life_action_inUse = false;};



      _amount = round(random(_maxGather)) + 1;
      _diff = [_resource,_amount,life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
      if (_diff isEqualTo 0) exitWith {
      hint localize "STR_NOTF_InvFull";
      life_action_inUse = false;
      };



      switch (_requiredItem) do {
      case "pickaxe": {player say3D "mining";};
      default {player say3D "harvest";};
      };



      for "_i" from 0 to 4 do {
      player playMoveNow "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
      waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
      sleep 0.5;
      };



      if ([true,_resource,_diff] call life_fnc_handleInv) then {
      _itemName = M_CONFIG(getText,"VirtualItems",_resource,"displayName");
      titleText[format [localize "STR_NOTF_Gather_Success",(localize _itemName),_diff],"PLAIN"];
      };



      sleep 1;
      };
      life_action_inUse = false;

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 3. April 2017 um 08:37
      • #19

      Es reicht wenn du folgendes nur in die Schleife packst:

      Spoiler anzeigen
      Code
      _amount = round(random(_maxGather)) + 1;
      _diff = [_resource,_amount,life_carryWeight,life_maxWeight] call life_fnc_calWeightDiff;
      if (_diff isEqualTo 0) exitWith {
      hint localize "STR_NOTF_InvFull";
      life_action_inUse = false;
      };
      
      
      switch (_requiredItem) do {
      case "pickaxe": {player say3D "mining";};
      default {player say3D "harvest";};
      };
      
      
      for "_i" from 0 to 4 do {
      player playMoveNow "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
      waitUntil{animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";};
      sleep 0.5;
      };
      
      
      if ([true,_resource,_diff] call life_fnc_handleInv) then {
      _itemName = M_CONFIG(getText,"VirtualItems",_resource,"displayName");
      titleText[format [localize "STR_NOTF_Gather_Success",(localize _itemName),_diff],"PLAIN"];
      };
      
      
      sleep 1;
      };
      life_action_inUse = false;
      Alles anzeigen

      Der rest muss nicht zwingend mit rein. Sollte der dann trotzdem abbrechen ^^ dann ja... hmm

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • ZanchezDE
      Schüler
      Reaktionen
      15
      Trophäen
      11
      Beiträge
      100
      • 3. April 2017 um 08:49
      • #20

      Hat tatsächlich geklappt :D

      Dankeschön mein Guter ^^

    Registrieren oder Einloggen

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

    Benutzerkonto erstellen

    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™