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] Craftingsystem zum Herstellen von Items, Waffen usw.

      • Altis Life
    • B4v4r!4n_Str!k3r
    • 20. Juni 2016 um 18:00
    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 20. Juni 2016 um 18:00
      • #1

      Vorweg: Ich habe das Tutorial von @sebi1106 nur für die Version 4.4-5.0 angepasst. ;)
      Die Grundbasis wurde von EdgeKiller entworfen.

      Daher poste ich auch hier seinen Header: :)

      Zitat von Sebi1106

      Hiermit untersage ich wie immer die Verbreitung dieser Daten und die des von mir verfassten Tutorials in anderen Foren ohne vorher mein Einverständnis dazu einzuholen.

      Altes Tutorial:

      Spoiler anzeigen

      Schritt 1:
      öffnet die Datei /Functions.hpp und fügt dort folgendes unter der "class action" ein ein:

      Code: Functions.hpp
      class craftAction {};


      und folgendes unter der "class Player_Menu":

      C: Functions.hpp
      class craft {};
      class craft_update {};
      class craft_updateFilter {};


      und folgendes unter der "class config":

      C: Functions.hpp
      class craftCfg {};

      Schritt 2:

      öffnet die Datei /dialog/MasterHandler.h und fügt dort folgendes ein:

      C: MasterHandler.hpp
      #include "craft.hpp"

      Schritt 3:

      öffnet die Datei /dialog/player_inv.hpp und fügt dort folgendes unter "class controls" ein:

      C: player_inv.hpp
      class ButtonCraft : Life_RscButtonMenu {
                  idc = 2025;
                  text = "$STR_PM_Craft";
                  onButtonClick = "closeDialog 0; createDialog ""Life_craft"";";
                  x = 0.42 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
                  y = 0.805;
                  w = (6.25 / 40);
                  h = (1 / 25);
      };

      Schritt 4:

      öffnet die Datei /stringtable.xml und fügt dort folgendes ein:

      XML: stringtable.xml
      <Package name="Craft">
              <Key ID="STR_CRAFT_Title">
                  <Original>Baumenü</Original>
              </Key>
              <Key ID="STR_PM_CraftStats">
                  <Original>Sachen zum Bauen</Original>
              </Key>
              <Key ID="STR_PM_CraftMaterials">
                  <Original>Benötigte Sachen</Original>
              </Key>
              <Key ID="STR_CRAFT_Button">
                  <Original>Bauen!</Original>
              </Key>
              <Key ID="STR_PM_NoMaterial">
                  <Original>Du hast nicht alle Baumaterialen!</Original>
              </Key>
              <Key ID="STR_CRAFT_Process">
                  <Original>Du hast folgendes hergestellt: %1</Original>
              </Key>
              <Key ID="STR_CRAFT_FILTER_Weapon">
                  <Original>Waffen</Original>
              </Key>
              <Key ID="STR_CRAFT_FILTER_Uniform">
                  <Original>Kleidung</Original>
              </Key>
              <Key ID="STR_CRAFT_FILTER_Backpack">
                  <Original>Rucksäcke</Original>
              </Key>
              <Key ID="STR_CRAFT_FILTER_Item">
                  <Original>Items</Original>
              </Key>
              <Key ID="STR_CRAFT_AR_Backpack">
                  <Original>Du hast bereit einen Rucksack! Pack den alten erstmal weg.</Original>
              </Key>
              <Key ID="STR_CRAFT_AR_Uniform">
                  <Original>Du hast bereits etwas an! Mach dich nackt und versuch es nochmal.</Original>
              </Key>
          </Package>
      Alles anzeigen

      und das im Package "Player_Menu":

      XML: stringtable.xml
      <Key ID="STR_PM_Craft">
          <Original>Craften</Original>
      </Key>

      Schritt 5:


      erstellt die Datei craft.hpp und fügt diese unter /dialog ein:

      C: craft.hpp
      /*
       File: craft.hpp
       Description: Crafting System
       Created by EdgeKiller
       Coder: EdgeKiller
      */
      class Life_craft {
          idd = 666;
          name= "life_craft";
          movingEnable = false;
          enableSimulation = true;
          onLoad = "[] spawn life_fnc_craft";
          class controlsBackground {
              class Life_RscTitleBackground:Life_RscText {
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
                  idc = -1;
                  x = 0.1;
                  y = 0.2;
                  w = 0.8;
                  h = (1 / 25);
              };
              class MainBackground:Life_RscText {
                  colorBackground[] = {0, 0, 0, 0.7};
                  idc = -1;
                  x = 0.1;
                  y = 0.2 + (11 / 250);
                  w = 0.8;
                  h = 0.6 - (22 / 250);
              };
          };
          class controls {
              class Title : Life_RscTitle {
                  colorBackground[] = {0, 0, 0, 0};
                  idc = 667;
                  text = "$STR_CRAFT_Title";
                  x = 0.1;
                  y = 0.2;
                  w = 0.6;
                  h = (1 / 25);
              };
              class craftListHeader : Life_RscText {
                  idc = 668;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  text = "$STR_PM_CraftStats";
                  sizeEx = 0.04;
                  x = 0.105; y = 0.26;
                  w = 0.275; h = 0.04;
              };
              //Craft list
              class craftList : life_RscListBox {
                  idc = 669;
                  sizeEx = 0.030;
                  onLBSelChanged = "[] spawn life_fnc_craft_update";
                  x = 0.105;
                  y = 0.31;
                  w = 0.275; h = 0.44;
              };
              //Materials list header
              class materialListHeader : Life_RscText {
                  idc = 670;
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  text = "$STR_PM_CraftMaterials";
                  sizeEx = 0.04;
                  x = 0.395; y = 0.26;
                  w = 0.275; h = 0.04;
              };
              //Materials list
              class materialList : Life_RscControlsGroup {
                  idc = 671;
                  w = 0.275;
                  h = 0.44;
                  x = 0.395;
                  y = 0.30;
                  class Controls {
                      class mats : Life_RscStructuredText {
                          idc = 672;
                          sizeEx = 0.020;
                          text = "";
                          x = 0;
                          y = 0;
                          w = 0.27; h = 0.44;
                      };
                  };
              };
              //FILTER
              class FilterList : Life_RscCombo {
                  idc = 673;
                  colorBackground[] = {0,0,0,0.7};
                  onLBSelChanged = "[] call life_fnc_craft_updateFilter";
                  x = 0.69;
                  y = 0.32;
                  w = (6.25 / 30);
                  h = (1 / 25);
              };
              //Craft button
              class ButtonCraft : Life_RscButtonMenu {
                  idc = 674;
                  text = "$STR_CRAFT_Button";
                  colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
                  onButtonClick = "if(!(life_is_processing && life_action_inUse)) then {[] spawn life_fnc_craftAction};";
                  x = 0.69;
                  y = 0.26;
                  w = (6.25 / 40);
                  h = (1 / 25);
              };
              class CloseButtonKey : Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Close";
                  onButtonClick = "closeDialog 0;";
                  x = 0.1;
                  y = 0.8 - (1 / 25);
                  w = (6.25 / 40);
                  h = (1 / 25);
              };
          };
      };
      Alles anzeigen


      Schritt 6:

      erstellt die Datei fn_craftAction.sqf und fügt diese unter /core/actions ein:

      C: fn_craftAction.sqf
      #include "..\..\script_macros.hpp"
      /*
       File: fn_craftAction.sqf
       Author: EdgeKiller
       Description:
       Master handling for crafting an item.
      */
      private["_dialog","_item","_itemInfo","_oldItem","_newItem","_upp","_itemName","_ui","_progress","_pgText","_cP","_allMaterial","_matsNeed","_invSize","_handledItem","_itemFilter","_backpackOldItems","_weight","_weightUsedItems"];
      disableSerialization;
      _dialog = findDisplay 666;
      if((lbCurSel 669) == -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";};
      _item = lbData[669,(lbCurSel 669)];
      _allMaterial = true;
      _itemFilter = lbData[673,(lbCurSel 673)];
      _matsNeed = 0;
      _config = [_itemFilter] call life_fnc_craftCfg;
      
      
      
      
      life_action_inUse = true;//Lock out other actions during processing.
      
      
      
      
      {
          if (_item == _x select 0)then {
              _matsNeed = _x select 1;
              _invSize = count _matsNeed;
              for [{_i=0},{_i<_invSize-1},{_i=_i+2}] do {
                  _matsNum = _matsNeed select _i+1;
                  if ((ITEM_VALUE(_matsNeed select _i)) < _matsNum) then {_allMaterial = false;};
              };
          };
      } foreach (_config);
      _newItem = _item;
      diag_log format ["%1",_allMaterial];
      if (!_allMaterial) exitWith {hint localize "STR_PM_NoMaterial"; life_action_inUse = false;};
      //Some checks
      if ((count _matsNeed) == 0) exitWith {life_action_inUse = false;};
      if (_itemFilter == "backpack" && backpack player != "") exitWith {
          hint localize "STR_CRAFT_AR_Backpack";
          life_action_inUse = false;
      };
      if (_itemFilter == "uniform" && uniform player != "") exitWith {
          hint localize "STR_CRAFT_AR_Uniform";
          life_action_inUse = false;
      };
      if (_itemFilter == "weapon") then {
          if (!(player canAdd _newItem) || currentWeapon player != "") exitWith {
              hint localize "STR_NOTF_NoRoom";
              life_action_inUse = false;
          };
      };
      if (_itemFilter == "item") then {
          _weight = [_item] call life_fnc_itemWeight;
          _weightUsedItems = 0;
          for [{_i=0},{_i<(count _matsNeed)-1},{_i=_i+2}] do {
              _matsNum = _matsNeed select _i+1;
              _weightUsedItems = _weightUsedItems + (([(_matsNeed select _i)] call life_fnc_itemWeight) * _matsNum);
              diag_log format ["%1 - %2",(_matsNeed select _i),_weightUsedItems];
          };
          if ((life_carryWeight - _weightUsedItems + _weight) > life_maxWeight) exitWith {
              hint localize "STR_NOTF_NoRoom";
              life_action_inUse = false;
          };
      };
      _oldItem = _matsNeed;
      
      
      
      
      if (_itemFilter == "item") then {
          _itemName = localize M_CONFIG(getText,"VirtualItems",_newItem,"displayName");
      } else {
          _itemInfo = [_newItem] call life_fnc_fetchCfgDetails;
          _itemName = _itemInfo select 1;
      };
      
      
      
      
      life_is_processing = true;
      _upp = format["Baue %1",_itemName];
      closeDialog 0;
      //Setup our progress bar.
      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;
      _removeItemSuccess = true;
      _invSize = count _oldItem;
      for [{_i=0},{_i<_invSize-1},{_i=_i+2}] do {
          _handledItem = (_oldItem select _i);
          if(!([false,_handledItem,_oldItem select _i+1] call life_fnc_handleInv)) exitWith {_removeItemSuccess = false;};
      };
      if (!_removeItemSuccess) exitWith {5 cutText ["","PLAIN"]; life_is_processing = false; life_action_inUse = false;};
      
      
      
      
      for "_i" from 0 to 1 step 0 do {
          sleep 0.3;
          _cP = _cP + 0.01;
          _progress progressSetPosition _cP;
          _pgText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_upp];
          if(_cP >= 1) exitWith {};
      };
      if (_itemFilter == "backpack") then {
          if(backpack player == "") then {
              player addBackpack _newItem;
          } else {
              hint localize "STR_CRAFT_AR_Backpack";
              life_is_processing = false;
              life_action_inUse = false;
          };
      };
      if (_itemFilter == "uniform") then{
          if(uniform player == "") then{
              player addUniform _newItem;
          } else {
              hint localize "STR_CRAFT_AR_Uniform";
              life_is_processing = false;
              life_action_inUse = false;
          };
      };
      if (_itemFilter == "weapon") then{
          if(player canAdd _newItem) then{
              player addItem _newItem;
          } else {
              if(currentWeapon player == "") then{
                  player addWeapon _newItem;
              } else {
                  5 cutText ["","PLAIN"];
                  for [{_i=0},{_i<_invSize-1},{_i=_i+2}] do {
                      _handledItem = (_oldItem select _i);
                      [true,_handledItem,_oldItem select _i+1] call life_fnc_handleInv;
                  };
                  life_is_processing = false;
                  life_action_inUse = false;
              };
          };
      };
      if (_itemFilter == "item") then{
          _handledItem = _newItem;
          [true,_handledItem,1] call life_fnc_handleInv;
      };
      5 cutText ["","PLAIN"];
      titleText[format[localize "STR_CRAFT_Process",_itemName],"PLAIN"];
      [0] call SOCK_fnc_updatePartial;
      life_is_processing = false;
      life_action_inUse = false;
      Alles anzeigen



      Schritt 7:


      erstellt die Datei fn_craft.sqf und fügt diese unter /core/pmenu ein:

      C: fn_craft.sqf
      /*
       File: fn_craft.sqf
       Description: Crafting System
       Created by EdgeKiller
       Coder: EdgeKiller
      */
      private["_dialog","_inv","_itemInfo","_filter"]; //Declare all private variables
      if(!dialog) then { //Verify if the window is open
          createDialog "Life_craft";
      };
      disableSerialization; //Disable Serialization
      if(life_is_processing) exitWith{
          closeDialog 2001;
          closeDialog 0;
      };
      _dialog = findDisplay 666; //find the craft dialog/window
      _inv = _dialog displayCtrl 669; //find the listbox of items can be created
      lbClear _inv; //clear the listbox
      _filter = _dialog displayCtrl 673;
      _filter lbAdd localize "STR_CRAFT_FILTER_Weapon";
      _filter lbSetData[(lbSize _filter)-1,"weapon"];
      _filter lbAdd localize "STR_CRAFT_FILTER_Uniform";
      _filter lbSetData[(lbSize _filter)-1,"uniform"];
      _filter lbAdd localize "STR_CRAFT_FILTER_Backpack";
      _filter lbSetData[(lbSize _filter)-1,"backpack"];
      _filter lbAdd localize "STR_CRAFT_FILTER_Item";
      _filter lbSetData[(lbSize _filter)-1,"item"];
      _filter lbSetCurSel 0;
      Alles anzeigen



      Schritt 8:


      erstellt die Datei fn_craft_update.sqf und fügt diese unter /core/pmenu ein:

      C: fn_craft_update.sqf
      #include "..\..\script_macros.hpp"
      /*
       File: fn_craft_update.sqf
       Description: Crafting System
       Created by EdgeKiller
       Coder: EdgeKiller
      */
      private["_dialog","_inv","_mats","_item","_struct","_str","_invSize","_matsNeed","_matsNum","_config","_itemFilter"]; //Declare all private variables
      disableSerialization; //Disable Serialization
      _dialog = findDisplay 666; //find the craft dialog/window
      _inv = _dialog displayCtrl 669; //find the listbox of items can be created
      _mats = _dialog displayCtrl 672;
      _struct = "";
      if ((lbCurSel 669) == -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";};
      _item = lbData[669,(lbCurSel 669)];
      _itemFilter = lbData[673,(lbCurSel 673)];
      _config = [_itemFilter] call life_fnc_craftCfg;
      {
          if (_item == _x select 0) then {
              _matsNeed = _x select 1;
              _invSize = count _matsNeed;
              for [{_i = 0},{_i < _invSize - 1},{_i = _i + 2}] do {
                  _str = M_CONFIG(getText,"VirtualItems",(_matsNeed select _i),"displayName");
                  _matsNum = _matsNeed select _i+1;
                  _struct = _struct + format["%1x %2<br/>",_matsNum,(localize _str)];
              };
          };
      } foreach (_config);
      if (_struct == "") then {
          _struct = "Es wird nichts benötigt";
      };
      _mats ctrlSetStructuredText parseText format["
      <t size='0.8px'>
      %1
      </t>
      ",_struct];
      Alles anzeigen


      Schritt 9:


      erstellt die Datei fn_craft_updateFilter.sqf und fügt diese unter /core/pmenu ein:

      C: fn_craft_updateFilter.sqf
      #include "..\..\script_macros.hpp"
      /*
       File: fn_craft_updateFilter.sqf
       Description: Crafting System
       Created by EdgeKiller
       Coder: EdgeKiller
      */
      disableSerialization;
      private["_list","_filter","_dialog","_inv","_mats","_filterBox","_item","_itemFilter"];
      _dialog = findDisplay 666; //find the craft dialog/window
      _inv = _dialog displayCtrl 669; //find the listbox of items can be created
      _mats = _dialog displayCtrl 672;
      _filterBox = _dialog displayCtrl 673;
      _itemFilter = lbData[673,(lbCurSel 673)];
      lbClear _inv;
      _struct = "";
      _config = [_itemFilter] call life_fnc_craftCfg;
      {
          if(_itemFilter == "item") then{
              _str = localize M_CONFIG(getText,"VirtualItems",(_x select 0),"displayName");
              _inv lbAdd format["%1",_str]; //add a gun to the listbox
              _inv lbSetData[(lbSize _inv)-1,_x select 0]; //set the data of the gun
          } else {
              _itemInfo = [_x select 0] call life_fnc_fetchCfgDetails;
              _inv lbAdd format["%1",_itemInfo select 1]; //add a gun to the listbox
              _inv lbSetData[(lbSize _inv)-1,_itemInfo select 0]; //set the data of the gun
              _inv lbSetPicture[(lbSize _inv)-1,_itemInfo select 2];
          };
      } foreach (_config);
      _inv lbSetCurSel 0;
      _item = lbData[669,(lbCurSel 669)];
      _config = [_itemFilter] call life_fnc_craftCfg;
      {
          if(_item == _x select 0)then {
              _matsNeed = _x select 1;
              _invSize = count _matsNeed;
              for [{_i = 0},{_i < _invSize - 1},{_i = _i + 2}] do {
                  _str = M_CONFIG(getText,"VirtualItems",(_matsNeed select _i),"displayName");
                  _matsNum = _matsNeed select _i+1;
                  _struct = _struct + format["%1x %2<br/>",_matsNum,(localize _str)];
              };
          };
      } foreach (_config);
      _mats ctrlSetStructuredText parseText format["
      <t size='0.8px'>
      %1
      </t>
      ",_struct];
      Alles anzeigen


      Schritt 10:


      erstellt die Datei fn_craftCfg.sqf und fügt diese unter /core/config ein:


      C: fn_craftCfg.sqf
      #include "..\..\script_macros.hpp"
      /*
       File: fn_craftCfg.sqf
       Author: EdgeKiller
       Description:
       Master configuration file for the crafting menu.
      */
      private["_craft","_return"];
      _craft = [_this,0,"",[""]] call BIS_fnc_param;
      if(_craft == "") exitWith {closeDialog 0}; //Bad shop type passed.
      switch(_craft) do {
          case "weapon": {
              _return = [
                  //[Object classname, [item #1,quantity item #1,item #2,quantity item #2]],]
                  ["hgun_P07_F", ["diamond_cut",2,"copper_refined",1]]
              ];
              if(FETCH_CONST(life_adminlevel) > 0) then {
                  _return pushBack
                      ["SMG_01_F", ["copper_refined",3,"iron_refined",3,"diamond_cut",1]];
              };
          };
          case "uniform": {
              _return = [
                  //[Object classname, [item #1,quantity item #1,item #2,quantity item #2]],]
                  ["U_IG_Guerilla1_1", ["copper_refined",1]]
              ];
          };
          case "backpack": {
              _return = [
                  //[Object classname, [item #1,quantity item #1,item #2,quantity item #2]],]
                  ["B_Carryall_oli", ["diamond_cut",1]]
              ];
          };
          case "item": {
              _return = [
                  //[Object classname, [item #1,quantity item #1,item #2,quantity item #2]],]
                  ["iron_refined", ["copper_refined",2]],
                  ["diamond_cut", ["copper_refined",1,"iron_refined",1]]
              ];
          };
      };
      _return;
      Alles anzeigen

      Neues Tutorial (Update):


      1. Cation Systems installieren:

      a) cation.zip entpacken und Ordner cation in <mission> einfügen.

      b) CfgRemoteExec.hpp bearbeiten:
      unter

      Code: CfgRemoteExec.hpp
      class CfgRemoteExec { 
        class Functions {
        mode = 1;
        jip = 0;

      #include "cation\cation_remoteExec.cpp"
      einfügen.

      c) description.ext bearbeiten:
      unter

      Code: description.ext
      CfGFuntions {

      #include "cation\cation_functions.cpp"

      einfügen und ganz am Ende der Datei
      #include "cation\cation_master.cpp"
      einfügen.

      2. Crafting installieren:

      a) craftingSystem.zip entpacken und Ordner crafting nach <mission>/cation kopieren

      b) in <misson>/cation/cation_function.cpp:
      #include "crafting\functions.cpp"
      einfügen.

      c) in <misson>/cation/cation_master.cpp:
      #include "crafting\config.cpp"
      einfügen.

      d) in <misson>/cation/cation_remoteExec.cpp:
      #include "crafting\remoteExec.cpp"
      einfügen.

      e) Init-Code zum hinzufügen der Craftingstation an ein bestimmtes Objekt / einen NPC:
      this allowDamage false; this enableSimulation false; this addAction["Craften",{["Variablennamen"] spawn cat_crafting_fnc_craft}];

      f) Code zu hinzufügen ins Z-Menü (Button):
      onButtonClick = "closeDialog 0; [""Variablennamen""] spawn cat_crafting_fnc_craft;";

      Variablennamen muss in der config.cpp in der craftingStations[] definiert seien.

      Alle anderen Einstellungen und Texte werden in <misson>/cation/crafting/config.cpp geändert


      Funktionieren sollte das für alle ArmA Life Versionen. Getestet wurde es mit der V4.4R4 und 5.0

      3. Crafting durch Fahrzeugcrafting erweitern:

      a) craftingVehicles.zip entpacken und fn_craftAction.sqf in den Ordner <mission>/cation/crafting kopieren bzw. alte Datei ersetzen.

      b) <mission>/cation/crafting/config.cpp öffnen und nach category[]={

      Code
      {
      "landvehicle", // Variable nicht verändern
      "Bodenfahrzeuge",
      {"C_SUV_01_F","",{"copper_refined",1,"diamond_cut",2},"Dark Red","civ"}
      },
      {
      "airvehicle", // Variable nicht verändern
      "Luftfahrzeuge",
      {"C_Heli_Light_01_civil_F","",{"copper_refined",1},"Civ Blue","civ"}
      },
      {
      "watervehicle", // Variable nicht verändern
      "Wasserfahrzeuge",
      {"C_Rubberboat","",{"copper_refined",1},"",""}
      },
      Alles anzeigen

      einfügen.

      In der craftingVehicles.zip ist nochmals eine config.cpp zum Vergleichen ob der Schritt richtig durchgeführt wurde.

      Fertig - viel Spaß!

      Dateien

      craftingVehicles.zip 5,65 kB – 1.018 Downloads craftingSystem.zip 11,08 kB – 1.715 Downloads cation.zip 408 Byte – 1.836 Downloads

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

      15 Mal editiert, zuletzt von B4v4r!4n_Str!k3r (22. Juni 2018 um 07:53)

    • Exodoos
      Fortgeschrittener
      Reaktionen
      164
      Trophäen
      10
      Beiträge
      332
      • 20. Juni 2016 um 18:57
      • #2

      Hallo, gibt es dieses Script auch für 3.1.4.8? Habe das irgendwie nirgends gefunden. ?(

      Mit freundlichen Grüßen,

      Exodoos
      ________________________________

      Macht euch doch ein Bild!

      Ohne Logs & entsprechende Dateien kein Support!

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 20. Juni 2016 um 19:47
      • #3

      Sicher, dass du richtig gesucht hast? ;)
      [Tutorial - 3.1.4.8] Craftingsystem zum Herstellen von Items, Waffen usw.

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

      ______________________

    • Exodoos
      Fortgeschrittener
      Reaktionen
      164
      Trophäen
      10
      Beiträge
      332
      • 20. Juni 2016 um 19:54
      • #4

      Danke habs auch schon gefunden voll übersehen xD

      Mit freundlichen Grüßen,

      Exodoos
      ________________________________

      Macht euch doch ein Bild!

      Ohne Logs & entsprechende Dateien kein Support!

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 20. Juni 2016 um 21:12
      • #5

      Kann passieren :D

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

      ______________________

    • TiTuTas
      Frischling
      Trophäen
      10
      Beiträge
      11
      • 20. Juni 2016 um 21:45
      • #6

      Hi gute abreit aber vItems kann man damit nicht craften oder ?

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 20. Juni 2016 um 22:40
      • #7
      Zitat von TiTuTas

      Hi gute abreit aber vItems kann man damit nicht craften oder ?

      In der Version von mir nicht. In der für 3.1.4.8 ist eine Funktion eingebaut, aber ob diese funktioniert weiß ich nicht.

      Ich sehe dahinter auch keinen Sinn mehr, da man entweder Multiprocess einbauen kann oder einfach auf V4.4r3 updaten kann und dort das fertig implementierte Multiprocess verwendet. :)

      Wenn du aber willst, dass man auch vItems craften kann, versuche ich dies morgen umzusetzen. ;)

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • J2ker
      Frischling
      Trophäen
      10
      Beiträge
      18
      • 20. Juni 2016 um 23:29
      • #8

      Im Z-Menu wird mir das zwar angezeigt .... aber kann nicht draufklicken

      Kann mir da jemand helfen?

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 21. Juni 2016 um 06:04
      • #9

      irgendwelche Logs? Kannst du nicht Craften oder öffnet sich nicht einmal das Menü?

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • TiTuTas
      Frischling
      Trophäen
      10
      Beiträge
      11
      • 21. Juni 2016 um 07:48
      • #10

      Das wäre echt nett
      Weil ich habe es zwar am laufen auf der 4.4 schon gehabt aber halt noch mit varToStr Und varHandle :D

    • J2ker
      Frischling
      Trophäen
      10
      Beiträge
      18
      • 21. Juni 2016 um 13:23
      • #11
      Zitat von B4v4r!4n_Str!k3r

      irgendwelche Logs? Kannst du nicht Craften oder öffnet sich nicht einmal das Menü?

      Es öffnet sich nicht mal das Menu, ich drücke auf den Button und es passiert nichts.

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 21. Juni 2016 um 13:38
      • #12
      Zitat von J2ker

      Es öffnet sich nicht mal das Menu, ich drücke auf den Button und es passiert nichts.

      Alles noch einmal überprüft? Hast du irgendwelche Fehler im Log?

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 21. Juni 2016 um 21:44
      • #13

      So Option zum Craften von Items hinzugefügt.

      Geänderte Datein: fn_craftCfg.sqf, fn_craft_updateFilter.sqf, fn_craft.sqf, fn_craftAction.sqf, craft.hpp, player_inv.hpp

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 21. Juni 2016 um 23:41
      • #14

      Jetzt frage ich mal xD

      Code
      if(_itemFilter == "item") then {
       _weight = [_item] call life_fnc_itemWeight;
      };
      if(_itemFilter == "item" && (life_carryWeight + _weight) > life_maxWeight) exitWith {
       hint localize "STR_NOTF_NoRoom";
       life_action_inUse = false;
      };
      _oldItem = _matsNeed;


      hatte das bei uns auch so da es aber mehrere Ketekoriern gab gabs immer den fehler nicht definierte variable in _weight :D

      Code
      if(_itemFilter == "item" && (life_carryWeight + _weight) > life_maxWeight)

      Deine Gewicht + das Neue Item darf nicht größer als Das Maximale trage Gewicht

      Problem hatten wir das Item A+B+C = D
      wobei A B und C zusammmen ein gewicht von 104 hatten also maximal gewicht so jetzt kann ich das neue Item ja nicht Craften ^^

      weil 104+(D=5) = 109 was ja nicht geht

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 21. Juni 2016 um 23:59
      • #15

      da hast du wohl recht ^^

      aber wie gesagt:

      Zitat von B4v4r!4n_Str!k3r

      Ich habe das Tutorial von @sebi1106 nur für die Version 4.4 angepasst.


      Jedoch müsste man nur das Gewicht von den Items abziehen, die man zum Craften benötigt und diese werden ja sowieso im Feld _oldItems gespeichert. Das müsste man mit einer for-Schleife durchlaufen und das Gewicht der benötigten Items zusammen addieren.

      Heute habe ich darauf keine Lust mehr aber vielleicht setze ich das morgen um.

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 22. Juni 2016 um 14:28
      • #16

      gesagt, getan: fn_craftAction.sqf wurde so angepasst, dass der freie Inventarplatz richtig eingerechnet wird.

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • TiTuTas
      Frischling
      Trophäen
      10
      Beiträge
      11
      • 22. Juni 2016 um 15:26
      • #17

      Danke super arbeit

      wie ist das aber wenn ich noch eine Tabelle für vItems haben möchte zum Beispiel "Baupläne"
      wo muss ich das überall eintragen :)

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 22. Juni 2016 um 16:16
      • #18

      ungetestet:

      in fn_craftCfg.sqf das einfügen:

      Code: fn_craftCfg.sqf
      case "bauplan": {
      		_return = [
      			//[Object classname, [item #1,quantity item #1,item #2,quantity item #2]],]
      			["bauplan", ["material1",1,"material2",1]]
      		];
      	};


      in fn_craft.sqf das hinzufügen:

      Code: fn_craft.sqf
      _filter lbAdd localize "Baupläne";
      _filter lbSetData[(lbSize _filter)-1,"bauplan"];

      in fn_craft_updateFilter.sqf und fn_craftAction.sqf: if(_itemFilter == "item") then { durch if(_itemFilter == "item" || _itemFilter == "bauplan") then { ersetzen.

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • TiTuTas
      Frischling
      Trophäen
      10
      Beiträge
      11
      • 22. Juni 2016 um 17:10
      • #19

      ok danke
      da war ich ganz dicht dran nur bei mir waren die items in "Bauplan" nur mit <NULL> zusehen

    • AmaZiinG
      Profi
      Reaktionen
      496
      Beiträge
      798
      Dateien
      4
      Bilder
      46
      • 23. Juni 2016 um 16:17
      • #20

      s

      Mein Discord:
      https://discord.gg/4UMWmpfDet

      Einmal editiert, zuletzt von AmaZiinG (15. März 2025 um 16:37)

    Registrieren oder Einloggen

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

    Benutzerkonto erstellen

    Ähnliche Themen

    • [Sammelthread] Scripts/Links/Tutorials/Anleitungen ArmA 3

      • Stig
      • 2. September 2016 um 18:29
      • Tutorials & Releases
    • Licence Craft Edgekiller

      • budlife
      • 19. November 2016 um 17:34
      • Hilfeforum
    • Crafting script gesucht

      • Flamer
      • 9. Oktober 2016 um 18:49
      • Hilfeforum

    Tags

    • crafting
    • craftingsystem
    • crafting system
    • arma 3 crafting
    • arma 3 crafting system
    • arma 3 craftingsystem
    • craften

    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™