1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Do: 03 Juli 2025
  • Anmelden oder registrieren
  • Suche
Alles
  • Alles
  • 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. Mitglieder
    3. lordbrs

    Beiträge von lordbrs

    • Sounds Ersetzen beim Abbau von Items und Umgebungssounds einfügen

      • lordbrs
      • 28. März 2018 um 01:18

      Okay das (oben gepostete) geht nicht, so spielt er mir beim Abbau jeden Sound einzeln durch^^

      Zuerst Spitzhacke, dann Schaufel ud dann Sieb....das war ne Schnapsidee :)

    • Sounds Ersetzen beim Abbau von Items und Umgebungssounds einfügen

      • lordbrs
      • 28. März 2018 um 01:12

      Ich versuche es mal so:

      Code
      #include "..\..\script_macros.hpp"
          /*
              File: fn_mine.sqf
              Author: Devilfloh
              Editor: Dardo
      
              Description:
              Same as fn_gather,but it allows use of probabilities for mining.
          */
      private ["_maxGather", "_resource", "_amount", "_requiredItem", "_mined"];
      if (life_action_inUse) exitWith {};
      if !(isNull objectParent player) exitWith {};
      if (player getVariable "restrained") exitWith {
          hint localize "STR_NOTF_isrestrained";
      };
      _exit = false;
      if (player getVariable "playerSurrender") exitWith {
          hint localize "STR_NOTF_surrender";
      };
      life_action_inUse = true;
      _zone = "";
      _requiredItem = "";
      
      _resourceCfg = missionConfigFile >> "CfgGather" >> "Minerals";
      _percent = (floor random 100) + 1; //Make sure it's not 0
      
      for "_i" from 0 to count(_resourceCfg)-1 do {
          _curConfig = _resourceCfg select _i;
          _resources = getArray(_curConfig >> "mined");
          _maxGather = getNumber(_curConfig >> "amount");
          _zoneSize = getNumber(_curConfig >> "zoneSize");
          _resourceZones = getArray(_curConfig >> "zones");
          _requiredItem = getText(_curConfig >> "item");
          _mined = "";
      
          if (_resources isEqualTo []) exitWith {}; //Smart guy :O
          for "_i" from 0 to count (_resources) do {
              if (count _resources isEqualTo 1) exitWith {
                  if (!((_resources select 0) isEqualType [])) then {
                      _mined = _resources select 0;
                  } else {
                      _mined = (_resources select 0) select 0;
                  };
              };
              _resource = (_resources select _i) select 0;
              _prob = (_resources select _i) select 1;
              _probdiff = (_resources select _i) select 2;
              if ((_percent >= _prob) && (_percent <= _probdiff)) exitWith {
                  _mined = _resource;
              };
          };
      
          {
              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 {
                  case "pickaxe": {
                      titleText[(localize "STR_NOTF_Pickaxe"), "PLAIN"];
                  };
              };
              life_action_inUse = false;
              _exit = true;
        };
      };
      player say3D "mining";
      
      if (_requiredItem != "") then {
          _valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
      
          if (_valItem < 1) exitWith {
              switch (_requiredItem) do {
                  case "schaufel": {
                      titleText[(localize "STR_NOTF_schaufel"), "PLAIN"];
                  };
              };
              life_action_inUse = false;
              _exit = true;
        };
      };
      player say3D "Shovel";
      
      if (_requiredItem != "") then {
          _valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
      
          if (_valItem < 1) exitWith {
              switch (_requiredItem) do {
                  case "Sieb": {
                      titleText[(localize "STR_NOTF_Sieb"), "PLAIN"];
                  };
              };
              life_action_inUse = false;
              _exit = true;
        };
      };
      
      if (_exit) exitWith {
          life_action_inUse = false;
      };
      //SCHLEIFE
      while {true} do {
      //ABFRAGE
       if(life_interrupted) exitWith {life_interrupted = false;}; // Damit ist die Zeile hier gemeint
      _amount = round(random(_maxGather)) + 1;
      _diff = [_mined, _amount, life_carryWeight, life_maxWeight] call life_fnc_calWeightDiff;
      if (_diff isEqualTo 0) exitWith {
          hint localize "STR_NOTF_InvFull";
          life_action_inUse = false;
      };
      player say3D "Goldnuggets";
      
      for "_i" from 0 to 4 do {
          player playMoveNow "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
          waitUntil {
              animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
          };
          sleep 0.5;
      };
      
      if (([true, _mined, _diff] call life_fnc_handleInv)) then {
          _itemName = M_CONFIG(getText, "VirtualItems", _mined, "displayName");
          titleText[format [localize "STR_NOTF_Mine_Success", (localize _itemName), _diff], "PLAIN"];
          };
      };
      sleep 2.5;
      life_action_inUse = false;
      Alles anzeigen
    • Sounds Ersetzen beim Abbau von Items und Umgebungssounds einfügen

      • lordbrs
      • 28. März 2018 um 01:04

      Nein moeck funktioniert leider nicht :(

      Ich glaube das der Fehler in der fn_mining.sqf liegt den da ist ganz unten

      Code
      player say3D "mining";

      definiert, nur wie kann ich das für jedes Item einzeln reinschreiben?

      Code
      if (_requiredItem != "") then {
       _valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
       if (_valItem < 1) exitWith {
       switch (_requiredItem) do {
       case "schaufel": {
       titleText[(localize "STR_NOTF_schaufel"), "PLAIN"];
       };
       };
       life_action_inUse = false;
       _exit = true;
       };
      };
      if (_requiredItem != "") then {
       _valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
       if (_valItem < 1) exitWith {
       switch (_requiredItem) do {
       case "Sieb": {
       titleText[(localize "STR_NOTF_Sieb"), "PLAIN"];
       };
       };
       life_action_inUse = false;
       _exit = true;
       };
      };
      if (_exit) exitWith {
       life_action_inUse = false;
      };
      //SCHLEIFE
      while {true} do {
      //ABFRAGE
       if(life_interrupted) exitWith {life_interrupted = false;}; // Damit ist die Zeile hier gemeint
      _amount = round(random(_maxGather)) + 1;
      _diff = [_mined, _amount, life_carryWeight, life_maxWeight] call life_fnc_calWeightDiff;
      if (_diff isEqualTo 0) exitWith {
       hint localize "STR_NOTF_InvFull";
       life_action_inUse = false;
      };
      player say3D "mining";
      Alles anzeigen
    • Sounds Ersetzen beim Abbau von Items und Umgebungssounds einfügen

      • lordbrs
      • 28. März 2018 um 00:17
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_tazed.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Starts the tazed animation and broadcasts out what it needs to.
      */
      private ["_curWep","_curMags","_attach"];
      params [
          ["_unit",objNull,[objNull]],
          ["_shooter",objNull,[objNull]]
      ];
      
      if (isNull _unit || isNull _shooter) exitWith {player allowDamage true; life_istazed = false;};
      
      if (_shooter isKindOf "Man" && alive player) then {
          if (!life_istazed) then {
              life_istazed = true;
              _curWep = currentWeapon player;
              _curMags = magazines player;
              _attach = if (!(primaryWeapon player isEqualTo "")) then {primaryWeaponItems player} else {[]};
      
              {player removeMagazine _x} forEach _curMags;
              player removeWeapon _curWep;
              player addWeapon _curWep;
              if (!(count _attach isEqualTo 0) && !(primaryWeapon player isEqualTo "")) then {
                  {
                      _unit addPrimaryWeaponItem _x;
                  } forEach _attach;
              };
      
              if (!(count _curMags isEqualTo 0)) then {
                  {player addMagazine _x;} forEach _curMags;
              };
      
              [_unit] remoteExecCall ["life_fnc_tazeSound",RCLIENT];
              _obj = "Land_ClutterCutter_small_F" createVehicle ASLTOATL(visiblePositionASL player);
              _obj setPosATL ASLTOATL(visiblePositionASL player);
              [player,"AinjPfalMstpSnonWnonDf_carried_fallwc"] remoteExecCall ["life_fnc_animSync",RCLIENT];
              [0,"STR_NOTF_Tazed",true,[profileName, _shooter getVariable ["realname",name _shooter]]] remoteExecCall ["life_fnc_broadcast",RCLIENT];
              _unit attachTo [_obj,[0,0,0]];
              disableUserInput true;
              sleep 15;
      
              [player,"AmovPpneMstpSrasWrflDnon"] remoteExecCall ["life_fnc_animSync",RCLIENT];
      
              if (!(player getVariable ["Escorting",false])) then {
                  detach player;
              };
              life_istazed = false;
              player allowDamage true;
              disableUserInput false;
          };
      } else {
          _unit allowDamage true;
          life_istazed = false;
      };
      Alles anzeigen

      Der Sound für Gather Items ist doch in der fn_Gather.sqf definiert!?

      Code
      /*Original*/
      switch (_requiredItem) do {
       case "pickaxe": {player say3D "mining";};
       default {player say3D "harvest";};
      };
      /*Schaufel*/
      switch (_requiredItem) do {
       case "schaufel": {player say3D "Shovel";};
       default {player say3D "harvest";};
      };
      /*Sieb*/
      switch (_requiredItem) do {
       case "sieb": {player say3D "Goldnuggets";};
       default {player say3D "harvest";};
      };
      Alles anzeigen

      Bist du sicher das du auch in der Version 5.0 unterwegs bist?

      LG

    • Sounds Ersetzen beim Abbau von Items und Umgebungssounds einfügen

      • lordbrs
      • 27. März 2018 um 21:21

      Da ich leider mit der SUFU nichts gefunden habe komme ich hier zur nächsten Frage.

      Standart wird ja fast alles mit der Spitzhacke abgebaut, das schien mir aber ein wenig zu fade, daher habe ich einige Farming Items mit anderen Gegenständen versehen wie zb. Schaufel für Sand und Salz sowie ein Sieb zum Gold Sieben.

      Nun wollte ich natürlich auch die dazu passenden Sounds denn die Spitzhacke is a bissl doof wenn man Sand schaufelt.

      Ich habe mir also für Schaufel einen Sound und fürs Sieb einen Sound erstellt und diese in die Sounds gegeben, natürlich auch in die description.ext eingetragen unter class CfgSounds

      Ich höre aber immer noch überall die Spitzhacke klopfen!?

      C
      disableChannels[] = {{0,true,true},{1,true,true},{2,true,true}};    // Disabled text and voice for global, side, and command channels. Syntax: disableChannels[] = {{channelID<number>, disableChat<bool>, disableVoice<bool>}};
      overviewText = "$STR_MISC_overviewText";    // Text to be displayed below the overviewPicture on the mission selection screen when the mission is available to play.
      
      #include "config\Config_SpyGlass.hpp"
      #include "CfgRemoteExec.hpp"
      #include "dialog\MasterHandler.hpp"
      #include "config\Config_Master.hpp"
      
      class CfgServer {
          DatabaseName = "altislife"; //Config name that'll be grep in the extdb-conf.ini. Default: [altislife]
          DebugMode = 0; //Enable many server/hc debugging logs. Default: 0 (1 = Enabled / 0 = Disabled)
          HeadlessSupport = 0; //Enable/Disable Headless client support. Default: 1 (1 = Enabled / 0 = Disabled)
          /*
          Enabled: When HeadlessSupport is set to 1 (enabled), the server will run without fault when no Headless Client is connected. However, it will support the Headless Client if you choose to connect one.
          Disabled: If HeadlessSupport is set to 0 (disabled), the connection of a Headless Client will make no difference. This option will increase server performance a TINY but negligible amount.
          */
      };
      
      class RscTitles {
          #include "dialog\progress.hpp"
          #include "dialog\hud_nameTags.hpp"
          #include "dialog\hud_stats.hpp"
      };
      
      class CfgFunctions {
          #include "Functions.hpp"
          #include "cation\cation_functions.cpp"
      };
      
      class CfgSounds {
          sounds[] = {};
          class sirenLong {
              name = "sirenLong";
              sound[] = {"\sounds\sirenLong.ogg", 1.0, 1};
              titles[] = {};
          };
          
          class wiggle {
              name = "wiggle";
              sound[] = {"\sounds\wiggle.ogg", 1.0, 1};
              titles[] = {};
          };
      
          class bip {
              name = "bip"; 
              sound[] = {TV\TV logo & beep\Sounds\bip.ogg, 1, 1.0}; 
              titles[] = {};
          };
          
          class bip2 {
              name = "bip2"; 
              sound[] = {TV\TV logo & beep\Sounds\bip2.ogg, 1, 1.0}; 
              titles[] = {};
          };
          
          class speech {
              name = "speech";
              sound[] = {"\sounds\speech.ogg", 1.0, 1};
              titles[] = {};
          };
      
          class medicSiren {
              name = "medicSiren";
              sound[] = {"\sounds\medicSiren.ogg", 1.0, 1};
              titles[] = {};
          };
      
          class tazerSound {
              name = "tazerSound";
              sound[] = {"\sounds\tazer.ogg", 0.25, 1};
              titles[] = {};
          };
      
          class flashbang {
              name = "flashbang";
              sound[] = {"\sounds\flashbang.ogg", 1.0, 1};
              titles[] = {};
          };
      
          class mining {
              name = "mining";
              sound[] = {"\sounds\mining.ogg", 1.0, 1};
              titles[] = {};
          };
          
          class Shovel {    //Sound für Schaufel
              name = "Shovel";
              sound[] = {"\sounds\Shovel.ogg", 1.0, 1};
              titles[] = {};
          };
          
          class Goldnuggets {    /Sound für Goldschürfen - Sieb
              name = "Goldnuggets";
              sound[] = {"\sounds\Goldnuggets.ogg", 1.0, 1};
              titles[] = {};
          };
      
          class harvest {
              name = "harvest";
              sound[] = {"\sounds\harvest.ogg", 1.0, 1};
              titles[] = {};
          };
      
          class lockCarSound {
              name = "lockCarSound";
              sound[] = {"\sounds\carLock.ogg", 0.25, 1};
              titles[] = {};
          };
      
          class unlockCarSound {
              name = "unlockCarSound";
              sound[] = {"\sounds\carUnlock.ogg", 0.25, 1};
              titles[] = {};
          };
      };
      
      class CfgDebriefing {
          class NotWhitelisted {
              title = "$STR_NotWhitelisted_Title";
              subtitle = "$STR_NotWhitelisted_SubTitle";
              description = "$STR_NotWhitelisted_Descript";
              pictureBackground = "";
              picture = "";
              pictureColor[] = {0,0.3,0.6,1};
          };
      
          class Blacklisted {
              title = "$STR_Blacklisted_Title";
              subtitle = "$STR_Blacklisted_SubTitle";
              description = "$STR_Blacklisted_Descript";
              pictureBackground = "";
              picture = "";
              pictureColor[] = {0,0.3,0.6,1};
          };
      };
      
      class CfgNotifications {
          class MedicalRequestEmerg {
              title = "$STR_MedicalRequestEmerg_Title";
              iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
              description = "%1";
              duration = 5;
              priority = 7;
          };
      
          class DeliveryAssigned {
              title = "$STR_DeliveryAssigned_Title";
              iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
              description = "%1";
              duration = 10;
              priority = 7;
          };
      
          class DeliveryFailed {
              title = "$STR_DeliveryFailed_Title";
              iconPicture = "\A3\ui_f\data\map\mapcontrol\taskiconfailed_ca.paa";
              description = "%1";
              duration = 7;
              priority = 7;
          };
      
          class DeliverySucceeded {
              title = "$STR_DeliverySucceeded_Title";
              iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcondone_ca.paa";
              description = "%1";
              duration = 6;
              priority = 6;
          };
      
          class TextMessage {
              title = "$STR_TextMessage_Title";
              iconPicture = "icons\ico_messageNew.paa";
              description = "%1";
              duration = 10;
              priority = 6;
          };
      
          class PoliceDispatch {
              title = "$STR_PoliceDispatch_Title";
              iconPicture = "icons\ico_messagePolice.paa";
              description = "%1";
              duration = 10;
              priority = 6;
          };
      
          class AdminDispatch {
              title = "$STR_AdminDispatch_Title";
              iconPicture = "icons\ico_messageAdmin.paa";
              description = "%1";
              duration = 10;
              priority = 6;
          };
      
          class AdminMessage {
              title = "$STR_AdminMessage_Title";
              iconPicture = "icons\ico_messageAdmin.paa";
              description = "%1";
              duration = 10;
              priority = 5;
          };
      };
      #include "cation\cation_master.cpp"
      Alles anzeigen

      In der fn_mine.sqf habe ich benötigten Items eingetragen

      Code
      #include "..\..\script_macros.hpp"
          /*
              File: fn_mine.sqf
              Author: Devilfloh
              Editor: Dardo
      
              Description:
              Same as fn_gather,but it allows use of probabilities for mining.
          */
      private ["_maxGather", "_resource", "_amount", "_requiredItem", "_mined"];
      if (life_action_inUse) exitWith {};
      if !(isNull objectParent player) exitWith {};
      if (player getVariable "restrained") exitWith {
          hint localize "STR_NOTF_isrestrained";
      };
      _exit = false;
      if (player getVariable "playerSurrender") exitWith {
          hint localize "STR_NOTF_surrender";
      };
      life_action_inUse = true;
      _zone = "";
      _requiredItem = "";
      
      _resourceCfg = missionConfigFile >> "CfgGather" >> "Minerals";
      _percent = (floor random 100) + 1; //Make sure it's not 0
      
      for "_i" from 0 to count(_resourceCfg)-1 do {
          _curConfig = _resourceCfg select _i;
          _resources = getArray(_curConfig >> "mined");
          _maxGather = getNumber(_curConfig >> "amount");
          _zoneSize = getNumber(_curConfig >> "zoneSize");
          _resourceZones = getArray(_curConfig >> "zones");
          _requiredItem = getText(_curConfig >> "item");
          _mined = "";
      
          if (_resources isEqualTo []) exitWith {}; //Smart guy :O
          for "_i" from 0 to count (_resources) do {
              if (count _resources isEqualTo 1) exitWith {
                  if (!((_resources select 0) isEqualType [])) then {
                      _mined = _resources select 0;
                  } else {
                      _mined = (_resources select 0) select 0;
                  };
              };
              _resource = (_resources select _i) select 0;
              _prob = (_resources select _i) select 1;
              _probdiff = (_resources select _i) select 2;
              if ((_percent >= _prob) && (_percent <= _probdiff)) exitWith {
                  _mined = _resource;
              };
          };
      
          {
              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 {
                  case "pickaxe": {
                      titleText[(localize "STR_NOTF_Pickaxe"), "PLAIN"];
                  };
              };
              life_action_inUse = false;
              _exit = true;
        };
      };
      
      if (_requiredItem != "") then {
          _valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
      
          if (_valItem < 1) exitWith {
              switch (_requiredItem) do {
                  case "schaufel": {
                      titleText[(localize "STR_NOTF_schaufel"), "PLAIN"];
                  };
              };
              life_action_inUse = false;
              _exit = true;
        };
      };
      
      if (_requiredItem != "") then {
          _valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
      
          if (_valItem < 1) exitWith {
              switch (_requiredItem) do {
                  case "Sieb": {
                      titleText[(localize "STR_NOTF_Sieb"), "PLAIN"];
                  };
              };
              life_action_inUse = false;
              _exit = true;
        };
      };
      
      if (_exit) exitWith {
          life_action_inUse = false;
      };
      //SCHLEIFE
      while {true} do {
      //ABFRAGE
       if(life_interrupted) exitWith {life_interrupted = false;}; // Damit ist die Zeile hier gemeint
      _amount = round(random(_maxGather)) + 1;
      _diff = [_mined, _amount, life_carryWeight, life_maxWeight] call life_fnc_calWeightDiff;
      if (_diff isEqualTo 0) exitWith {
          hint localize "STR_NOTF_InvFull";
          life_action_inUse = false;
      };
      player say3D "mining";
      
      for "_i" from 0 to 4 do {
          player playMoveNow "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
          waitUntil {
              animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
          };
          sleep 0.5;
      };
      
      if (([true, _mined, _diff] call life_fnc_handleInv)) then {
          _itemName = M_CONFIG(getText, "VirtualItems", _mined, "displayName");
          titleText[format [localize "STR_NOTF_Mine_Success", (localize _itemName), _diff], "PLAIN"];
          };
      };
      sleep 2.5;
      life_action_inUse = false;
      Alles anzeigen

      In der fn_gather.sqf habe ich die Sounds für die jeweiligen Abbau Gegenstände hinzugefügt

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_gather.sqf
          Author: Devilfloh
      
          Description:
          Main functionality for gathering.
      */
      private ["_maxGather","_resource","_amount","_maxGather","_requiredItem"];
      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";};
      
      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;};
      
      //HIER DIE SCHLEIFE
      while{true} do {
      //ABFRAGE
      if(life_interrupted) exitWith {life_interrupted = false;}; // Diese Zeile ist damit gemeint
      _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";};
      };
      
      switch (_requiredItem) do {
          case "schaufel": {player say3D "Shovel";};
          default {player say3D "harvest";};
      };
      
      switch (_requiredItem) do {
          case "sieb": {player say3D "Goldnuggets";};
          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

      Natürlich wie oben schon erwähnt habe ich die Soundfiles im .ogg Format im sounds Ordner auch drinnen.

      Warum geht das nicht?

      Die zweite Frage dazu passend wäre nun, wenn ich bei einem Verarbeiter einen Sound wie zb. Fabrik haben möchte (ich erstelle mir eine fabriksound.ogg) wie kann ich diese einfügen sodass sie nur in der Umgebung des Verarbeiters zu hören ist und da auch nur während jemand dort ist (habe an einen Auslöser gedacht wenn der überschritten wird, wird Sound fabriksound.ogg abgespielt.

      Wie kann ich das am besten umsetzen?

      Dankeschön :)

    • Massenabbau funktioniert aber wie füge ich einen Stopp oder Beenden Button ein?

      • lordbrs
      • 27. März 2018 um 18:53

      Tagchen auch euch allen zusammen :)

      Nun da ein Problem erledigt ist habe ich ein neues/altes wobei es Hilfe bedarf.

      Und zwar geht es darum das ich mittels vieler Tipps hier im Forum aus einem TUT die Funktion des Massenabbaus eingefügt habe.

      Das funktioniert zwar soweit prima, man stellt sich aufs Feld und drückt WINDOWS und es wird gefarmt bis das Inventar voll ist.

      Leider hat die Sache aber auch einen Hacken und zwar das man es nicht beenden kann ausser man rennt von der FarmZone weg :)

      Das Geräusch des Abbaus hört man noch 1 Minute dannach wenn mann schon weit weg ist.

      Hier ist eine fn_gather.sqf mit dem derzeitigen Inhalt, meine Frage nun, wie und wo baue ich eine Möglichkeit ein das zum Beispiel während dem Abbau eine Meldung im Bild steht "Derzeit bist du am Dauerfarmen - Zum Beenden drücke P"

      Und wenn ich dann P drücke das Farmen auch beendet wird!?

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_gather.sqf
          Author: Devilfloh
      
          Description:
          Main functionality for gathering.
      */
      private ["_maxGather","_resource","_amount","_maxGather","_requiredItem"];
      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";};
      
      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;};
      
      
      while{true} do {
      
      if(life_interrupted) exitWith {life_interrupted = 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";};
      };
      
      switch (_requiredItem) do {
          case "schaufel": {player say3D "Shovel";};
          default {player say3D "harvest";};
      };
      
      switch (_requiredItem) do {
          case "sieb": {player say3D "Goldnuggets";};
          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

      Danke vielmals im Voraus für die Hilfe, LG

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 17:13

      Danke dir moeck!

      Nun zeigt er mir das Gewicht beider Sachen zusammen an!

      Das Thema mit den Containern hat sich nun mal erst erledigt, un schau ich noch warum mein Sieb nicht hergestellt werden kann.

      Danke vielmals und LG

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 16:09

      Sry ich dachte das es mit den Bildern überschaubarer bzw. Übersichtilicher ist :)

      Dateien

      Arma3_x64_2018-03-27_15-36-48.rpt 147,25 kB – 177 Downloads
    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 15:52

      Wie kannst du diese Fehler so schnell finden? Und wo bzw wie erkennst du das?

      Er schrieb was fon einem fehlenden ; in einer Zeile die es gar nicht gibt!?

      Ist mir echt Rätselhaft, ich würde hier Stundenlang Zeile für Zeile durchlesen und wahrscheinlich keinen Fehler finden :)

      Hast du da ein Program dafür oder wie?

      Wie auch immer, ich habe nun die Korregierte Version drinnnen und habe den Container aufgeladen

      Habe den Container abgeladen und dort versucht mit T zu zugreifen (Auf und Abschliessen auch versucht)

      Es wird aber beim Aufladen das Gesamtgewicht des LKW mit Container angezeigt

      Hier habe ich noch eine fn_openInventory für die V.3.1.4.8 gefunden, wird wahrscheinlich nicht helfen aber vielleicht kannst du daraus ja was erkennen :)

      Dateien

      fn_openInventory.sqf 2,19 kB – 106 Downloads
    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 15:27

      Ps: mit dem Code zum Erstellen des Siebes gehts auch nicht, du hast mir das gschrieben für die NPC Init:

      Code
      this enableSimulation false;
      this allowDamage false;
      this addAction[localize"STR_Process_Sieb",life_fnc_processAction,"Sieb",0,false,false,"",' life_inv_Holz > 0 && life_inv_iron_refined > 0 && !life_is_processing && !life_action_inUse && vehicle player isEqualTo player'];
      this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "Bau" >> "displayName")), [(getNumber(missionConfigFile >> "Licenses" >> "Bau" >> "price"))] call life_fnc_numberText],life_fnc_buyLicense,"Bau",0,false,false,"",' !license_civ_Bau && playerSide isEqualTo civilian '];

      Wenn ich nun davor steht tut er gar nichts, kann nichts auswählen ausser das ich die Lizenz BAU kaufen konnte.

      Die benötigten Materialien wie Holz und Eisenbarren habe ich zu Genüge im Inventar.

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 15:23

      Ich habe nun den von dir eingestellten Code in die openInventory eingegeben

      Code
      #include "..\..\script_macros.hpp"
      private ["_vehicle","_veh_data"];
      if (dialog) exitWith {};
      _vehicle = [_this,0,objNull,[objNull]] call BIS_fnc_param;
      if (isNull _vehicle || !(_vehicle isKindOf "Car" || _vehicle isKindOf "Air" || _vehicle isKindOf "Ship" || _vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F")) exitWith {}; 
      if ((_vehicle getVariable ["trunk_in_use",false])) exitWith {hint localize "STR_MISC_VehInvUse"};
      _vehicle setVariable ["trunk_in_use",true,true];
      _vehicle setVariable ["trunk_in_use_by",player,true];
      if (!createDialog "TrunkMenu") exitWith {hint localize "STR_MISC_DialogError";}; 
      disableSerialization;
      if (_vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F") then {
       ctrlSetText[3501,format [(localize "STR_MISC_HouseStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
      } else {
       ctrlSetText[3501,format [(localize "STR_MISC_VehStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
      };
      _veh_data = [_vehicle] call life_fnc_vehicleWeight;
      _anzahl = 0;
      {
        _anzahl = _anzahl+1
        hint format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
        diag_log format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
       _veh_data = _veh_data + ([_x] call life_fnc_vehicleWeight);
      } count (attachedObjects _vehicle);
      if (_veh_data select 0 isEqualTo -1) exitWith {closeDialog 0; _vehicle setVariable ["trunk_in_use",false,true]; hint localize "STR_MISC_NoStorageVeh";};
      ctrlSetText[3504,format [(localize "STR_MISC_Weight")+ " %1/%2",_veh_data select 1,_veh_data select 0]];
      [_vehicle] call life_fnc_vehInventory;
      life_trunk_vehicle = _vehicle;
      _vehicle spawn {
       waitUntil {isNull (findDisplay 3500)};
       _this setVariable ["trunk_in_use",false,true];
       if (_this isKindOf "Box_IND_Grenades_F" || _this isKindOf "B_supplyCrate_F") then {
       if (life_HC_isActive) then {
       [_this] remoteExecCall ["HC_fnc_updateHouseTrunk",HC_Life];
       } else {
       [_this] remoteExecCall ["TON_fnc_updateHouseTrunk",2];
       };
       };
      };
      if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
       _vehicle spawn {
       waitUntil {isNull (findDisplay 3500)};
       _this setVariable ["trunk_in_use",false,true];
       if ((_this isKindOf "Car") || (_this isKindOf "Air") || (_this isKindOf "Ship")) then {
       [] call SOCK_fnc_updateRequest;
       if (life_HC_isActive) then {
       [_this,2] remoteExecCall ["HC_fnc_vehicleUpdate",HC_Life];
       } else {
       [_this,2] remoteExecCall ["TON_fnc_vehicleUpdate",2];
       };
       };
       };
      };
      Alles anzeigen

      und kann nun auf den Kofferraum gar nicht mehr zugreifen, weder mit noch ohne Container :)

      Hier die Bilder:

      bitte keine externen Links verwenden

      Die Logfile von Server hänge ich wie gewünscht dazu.

      Danke dir

      Dateien

      Arma3_x64_2018-03-27_15-02-52.rpt 235,58 kB – 113 Downloads
    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 14:36

      So mein lieber moeck...

      habe nun deine openInventory eingefügt und mir einen Container geholt aber leider habe ich immer noch nur die Lagerplatzmenge vom LKW!?

      Also 200, normalerweise hat der LKW 200 Platz und der kleine Container dazu 250, also sollte man ja 450 Platz haben!?

      Container in der Vehicle_config

      //Kleiner Container

      class Land_CargoBox_V1_F {

      vItemSpace = 250;

      conditions = "";

      price = 50000;

      textures[] = {};

      };

      Fahrzeug in der Vehicle Config

      class I_Truck_02_transport_F {

      vItemSpace = 200;

      conditions = "license_civ_trucking || {!(playerSide isEqualTo civilian)}";

      price = 75000;

      textures[] = {

      { "Orange", "civ", {

      "\A3\Soft_F_Beta\Truck_02\data\truck_02_kab_co.paa",

      "\a3\soft_f_beta\Truck_02\data\truck_02_kuz_co.paa"

      } },

      { "Schwarz", "civ", {

      "#(argb,8,8,3)color(0.05,0.05,0.05,1)"

      } }

      };

      };

      Hier wieder ein Screen dazu:

      Administrativ Entfernt --- Bitte keine externen Links verwenden

      PS: Die Description ging wieder nicht, warf nen Fehler in angeblich Zeile 404 aus, konnte keinen finden und habe Sie nun durch die Originale Englische ersetzt, werde diese beizeiten nochmal umschreiben :)

      LG

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 14:00

      Danke moeck, ich glaube unsere Einträge haben sich um ein paar Sekunden Überschnitten, habs letztendlich gefunden, jedoch was ich nicht gefunden habe ist der Eintrag in der Init des NPC!

      Ich habe folgendes drinnen stehen:

      Init NPC

      this enableSimulation false;

      this allowDamage false;

      this addAction[localize"STR_Process_Sieb",life_fnc_processAction,"Sieb",0,false,false,"",' life_inv_Holz > 0 && !life_is_processing && !life_action_inUse'];

      this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "Bau" >> "displayName")), [(getNumber(missionConfigFile >> "Licenses" >> "Bau" >> "price"))] call life_fnc_numberText],life_fnc_buyLicense,"Bau",0,false,false,"",' !license_civ_Bau && playerSide isEqualTo civilian '];

      Also der STR_Process_Sieb ist in der Stinrgtable.xml als Sieb wird hergestellt eingetragen.

      Der Eintrag life_fnc_processAction,"Sieb" bedeutet das ein SIEB hergestellt wird. (Menge wird in der Config_Process.hpp definiert wieviele man bekommt)

      Der Eintrag life_inv_Holz bedeutet das Holz gebraucht wird. (Menge wird in der Config_Process.hpp definiert wieviele man benötigt)

      Der Eintrag license_civ_Bau bedeutet das ich die Lizenz Bau dafür benötige und wenn ich sie nicht habe da kaufen kann usw...

      In der Stringtable ist alles eingetragen, in der config_VItems.hpp natürlich auch, Icons sind ebenso erstellt und im Icons Ordner..Pfade natürlich angegben.

      Meine Frage nun dazu lautet was muss ich nun in der INIT des NPC hinzuschreiben das auch Eisenbarren iron_refined ebenso benötigt werden?

      Oder wird das automatisch aus der Config_Process.hpp bezogen weil es da eingetragen ist?

      Dankeschön :)

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 13:29

      Danke hat sich erledigt, ich bin ein wenig Blind^^

      Steht eh in der Example dabei

      MaterialsReq[] = {{"cocaine_processed",1},{"heroin_processed",1}};

      Danke

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 13:23

      @moeck....weisst du zufällig auch wie man beim Verarbeiten mehr als nur einen Rohstoff braucht bzw reinschreibt?

      Ich möchte aus Holz und Eisen ein SIEB herstellen lassen und habe in der Config:Process dies reingeschrieben:

      class Sieb {

      MaterialsReq[] = {{"Holz",5}}; //Man bringt 5 Holz

      MaterialsGive[] = {{"Sieb",1}}; // Man bekommt ein Sieb

      Text = "STR_Process_SiebHerstellen";

      //ScrollText = "Sieb wird hergestellt";

      NoLicenseCost = 250;

      Funktioniert zwar aber ich möchte auch das man neben dem Holz auch noch Eisen braucht MaterialsReq[] =

      Ich weiss das es nicht zu diesem Thema passt aber dafür einen eigenen Thread zu öffnen wäre eher sinnlos oder?

      Danke dir!

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 13:12

      Ich danke dir Vielmals für deine Bemühungen, ich werde die Files schnell mal testen und gebe dir Bescheid!

      DANKESCHÖN!

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 12:50

      Briefing.sqf

      briefing.sqf

      Danke für die File!

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 11:45

      Moin moeck ;)

      Also im Briefing habe ich nichts verändert, dieser Fehler wurde durch das bearbeiten der FIles die für die Container sind mit ausgegeben...why? I don´t know!

      Meine Frage nun was sind das für Fehler und vor allem wie schon öfter mal gefragt....WELCHE Variable fehlt im und wohin muss diese?

      Ich habe keinen Plan davon, darum würde es mich freuen wenn ein Lösungsvorschlag kommen würde, das die Fehler da sind ist mir klar, kann ich ja auch lesen, aber ich habe keinen Plan zur Lösung des Problemes bzw der Probleme.

      Danke

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 27. März 2018 um 00:10

      Hier die CliebtLogs, Serverlogs weiss ich ned wo die genau sind.

      Arma3_x64_2018-03-26_22-55-26.rpt

      Und ja ich habs gelesen das in den Logs der Fehler mit Undefinierte Variablen lautet :)

    • Container (IgiLoad Script) bringen keinen Mehrplatz bzw. man kann nicht darauf zugreifen

      • lordbrs
      • 26. März 2018 um 23:27

      Bitteschön:

      Config_Vehicles.sqf

      Ps: musste Sie nur zur sqf umbennenen da eine hpp ja nicht hochzuladen geht^^

      LG

    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™