Jump to content

skueneth

Member
  • Content Count

    5
  • Joined

  • Last visited

  • Medals

Posts posted by skueneth


  1. Hello Devs and Supporters,

     

    I have in my Scripts following:

        _box = createVehicle [_model, ASLtoATL _pos, [], 1, ""];

     

     

    or this

     

     

      _terminal = createVehicle ["Land_CampingTable_small_F", ASLtoATL _pos, [], 0, ""];

     

    in Logfiles it is not working anymore since 1.78 Update:

     

    6:16:13 Error in expression <dels call BIS_fnc_selectRandom;

    _box = createVehicle [_model, ASLtoATL _pos, []>
     6:16:13   Error position: <createVehicle [_model, ASLtoATL _pos, []>
     6:16:13   Error Foreign error: Unknown enum value: ""

     

     

    or

     

     

     

     6:16:14   Error position: <createVehicle ["Land_CampingTable_small_>
     6:16:14   Error Foreign error: Unknown enum value: ""
     6:16:14 Attempt to override final function - fn_getvehiclevars
    Attempt to override final function - fn_preprocesssaveddata
    Attempt to override final function - fn_restoresavedvehicle

     

     

     

    Please help me

     

     

     

     

     

     

     

     

     

    Spoiler

     6:16:13 "Loading parking interact functions complete"
     6:16:13 Error in expression <dels call BIS_fnc_selectRandom;

    _box = createVehicle [_model, ASLtoATL _pos, []>
     6:16:13   Error position: <createVehicle [_model, ASLtoATL _pos, []>
     6:16:13   Error Foreign error: Unknown enum value: ""
     6:16:13 File mpmissions\__cur_mp.Malden\addons\storage\ps_functions.sqf, line 84
     6:16:13 "Loading parking saving functions ..."
     6:16:13 "Loading parking saving functions complete"
     6:16:13 "[extDB3] Startup complete!"
     6:16:13 "[INFO] A3W playerSaving = ON"
     6:16:13 "[INFO] A3W baseSaving = ON"
     6:16:13 "[INFO] A3W vehicleSaving = ON"
     6:16:13 "[INFO] A3W boxSaving = ON"
     6:16:13 "[INFO] A3W staticWeaponSaving = ON"
     6:16:13 "[INFO] A3W warchestSaving = ON"
     6:16:13 "[INFO] A3W warchestMoneySaving = ON"
     6:16:13 "[INFO] A3W spawnBeaconSaving = ON"
     6:16:13 "[INFO] A3W timeSaving = ON"
     6:16:13 "[INFO] A3W weatherSaving = ON"
     6:16:13 "Creating Storage at: Cancon ([5448.71,2824.62,43.4979])"
     6:16:13 "Loading parking functions ..."
     6:16:13 "Setting up parking terminals ... "
     6:16:13 "[INFO] A3W hcObjSaving = OFF"
     6:16:14 "No storage in Chapoi"
     6:16:14 Error in expression <_garage allowDamage false;

    _terminal = createVehicle ["Land_CampingTable_small_>
     6:16:14   Error position: <createVehicle ["Land_CampingTable_small_>
     6:16:14   Error Foreign error: Unknown enum value: ""
     6:16:14 File mpmissions\__cur_mp.Malden\addons\parking\pp_actions_functions.sqf, line 88
    Attempt to override final function - fn_getvehiclevars
    Attempt to override final function - fn_preprocesssaveddata
    Attempt to override final function - fn_restoresavedvehicle
     6:16:14 "No storage in Sainte Marie"
     6:16:14 a3\structures_f_heli\vr\helpers\sign_sphere25cm_f.p3d: No geometry and no visual shape
     6:16:14 a3\structures_f_heli\vr\helpers\sign_sphere25cm_f.p3d: No geometry and no visual shape
     6:16:14 Error in expression <oWorld [0,0,-0.1])];
    }
    else
    {
    _dummy = createVehicle ["Sign_Sphere25cm_F", getP>
     6:16:14   Error position: <createVehicle ["Sign_Sphere25cm_F", getP>
     6:16:14   Error Foreign error: Unknown enum value: ""
     6:16:14 File mpmissions\__cur_mp.Malden\addons\parking\pp_actions_functions.sqf, line 54
     6:16:14 Error in expression <dels call BIS_fnc_selectRandom;

    _box = createVehicle [_model, ASLtoATL _pos, []>
     6:16:14   Error position: <createVehicle [_model, ASLtoATL _pos, []>
     6:16:14   Error Foreign error: Unknown enum value: ""
     6:16:14 File mpmissions\__cur_mp.Malden\addons\storage\ps_functions.sqf, line 84
     6:16:14 "Creating parking terminal at Parking1 (Grid 081100)"
     6:16:14 "Creating Storage at: La Pessagne ([3236.31,6276.18,225.299])"
     6:16:14 Error in expression <_garage allowDamage false;

    _terminal = createVehicle ["Land_CampingTable_small_>
     6:16:14   Error position: <createVehicle ["Land_CampingTable_small_>
     6:16:14   Error Foreign error: Unknown enum value: ""
     6:16:14 File mpmissions\__cur_mp.Malden\addons\parking\pp_actions_functions.sqf, line 88
     6:16:14 "No storage in Vigny"
     6:16:14 a3\structures_f_heli\vr\helpers\sign_sphere25cm_f.p3d: No geometry and no visual shape
     6:16:14 a3\structures_f_heli\vr\helpers\sign_sphere25cm_f.p3d: No geometry and no visual shape
     6:16:14 Error in expression <oWorld [0,0,-0.1])];
    }
    else
    {
    _dummy = createVehicle ["Sign_Sphere25cm_F", getP>
     6:16:14   Error position: <createVehicle ["Sign_Sphere25cm_F", getP>
     6:16:14   Error Foreign error: Unknown enum value: ""
     6:16:14 File mpmissions\__cur_mp.Malden\addons\parking\pp_actions_functions.sqf, line 54
     6:16:14 "No storage in Le Port"
     6:16:14 "Creating parking terminal at Parking2 (Grid 035032)"
     6:16:14 Error in expression <_garage allowDamage false;

    _terminal = createVehicle ["Land_CampingTable_small_>
     6:16:14   Error position: <createVehicle ["Land_CampingTable_small_>
     6:16:14   Error Foreign error: Unknown enum value: ""
     6:16:14 File mpmissions\__cur_mp.Malden\addons\parking\pp_actions_functions.sqf, line 88
     6:16:14 "No storage in Arudy"
     6:16:15 "No storage in Goisse"
     6:16:15 "A3Wasteland - world persistence loaded 2 objects from extDB"
     6:16:15 a3\structures_f_heli\vr\helpers\sign_sphere25cm_f.p3d: No geometry and no visual shape
     6:16:15 a3\structures_f_heli\vr\helpers\sign_sphere25cm_f.p3d: No geometry and no visual shape
     6:16:15 Error in expression <oWorld [0,0,-0.1])];
    }
    else
    {
    _dummy = createVehicle ["Sign_Sphere25cm_F", getP>
     6:16:15   Error position: <createVehicle ["Sign_Sphere25cm_F", getP>
     6:16:15   Error Foreign error: Unknown enum value: ""
     6:16:15 File mpmissions\__cur_mp.Malden\addons\parking\pp_actions_functions.sqf, line 54
     6:16:15 "No storage in Houdan"
     6:16:15 "Creating parking terminal at Parking3 (Grid 055069)"
     6:16:15 Error in expression <_garage allowDamage false;

     

     

    Spoiler

    //if (!isNil "parking_functions_defined") exitWith {};
    diag_log format["Loading parking functions ..."];

    #include "macro.h"

    #define strM(x) ([x,","] call format_integer)

    pp_marker_create = {
      if (!hasInterface) exitWith {""};
      ARGVX3(0,_name,"");
      ARGVX3(1,_location,[]);
      ARGVX3(2,_this,[]);

      ARGVX3(0,_shape,"");
      ARGVX3(1,_type,"");
      ARGVX3(2,_color,"");
      ARGVX3(3,_size,[]);
      ARGVX3(4,_text,"");

      private["_marker"];
      _marker = createMarkerLocal [_name,_location];
      _marker setMarkerShapeLocal _shape;
      _marker setMarkerTypeLocal _type;
      _marker setMarkerColorLocal _color;
      _marker setMarkerSizeLocal _size;
      //_marker setMarkerText _text;
      (_marker)
    };

    pp_get_all_cities = {
      if (isARRAY(pp_all_cities)) exitWith {pp_get_all_cities};
      pp_get_all_cities = (nearestLocations [[0,0,0],["NameCityCapital","NameCity","NameVillage"],1000000]);
      (pp_get_all_cities)
    };

    pp_setup_terminal = {
      params ["_terminal"];
      if (_terminal getVariable ["A3W_parkingTerminalSetupDone",false]) exitWith {};
      private _garage = param [1, nearestBuilding _terminal];

      _terminal allowDamage false;
      _garage allowDamage false;
      _terminal setVariable ["R3F_LOG_disabled", true]; //don't allow players to move the table
      _garage setVariable ["R3F_LOG_disabled", true];

      if (isServer) then
      {
        if (getObjectType _garage == 8) then // manually-placed garage, can attachTo
        {
          _terminal attachTo [_garage, _garage worldToModel (_terminal modelToWorld [0,0,-0.1])];
        }
        else // garage native to map, cannot attachTo so we use invisible dummy
        {
          _dummy = createVehicle ["Sign_Sphere25cm_F", getPosATL _terminal, [], 0, ""];
          _dummy hideObjectGlobal true;
          _dummy allowDamage false;
          _dummy setPosWorld (getPosWorld _terminal vectorAdd [0,0,-0.1]); // vectorAdd to compensate for elevated shed floor
          _dummy setVectorDirAndUp [vectorDir _terminal, vectorUp _terminal];
          _dummy setVariable ["R3F_LOG_disabled", true, true];
          _terminal attachTo [_dummy, [0,0,0]];
        };

        def(_laptop);
        _laptop = createSimpleObject ["Land_Laptop_unfolded_F", getPosASL _terminal]; //createVehicle ["Land_Laptop_unfolded_F", getPosASL _terminal, [], 0, ""];
        _laptop allowDamage false;
        _laptop attachTo [_terminal, [0,-0.1,0.55]];
        _laptop setVariable ["R3F_LOG_disabled", true, true]; //don't allow players to move the laptop
      };

      _terminal setVariable ["A3W_parkingTerminalSetupDone", true];
    };

    pp_create_terminal = {
     //Land_Laptop_unfolded_F
      ARGVX3(0,_garage,objNull);

      def(_pos);
      def(_terminal);

      private _offset = switch (true) do {
        case (_garage isKindOf "Land_Carrier_01_base_F"): { [-28.663,108.289,23.9749] };
        default                                           { [0,0,0] };
      };

      _pos = AGLtoASL (_garage modelToWorld _offset);
      _garage allowDamage false;

      _terminal = createVehicle ["Land_CampingTable_small_F", ASLtoATL _pos, [], 0, ""];
      _terminal setPosASL _pos;
      _pos set [2, (_pos select 2) - (getPos _terminal select 2)];
      _terminal setPosASL _pos;
      _terminal setVectorDirAndUp [vectorDir _garage, vectorUp _garage];
      //_terminal attachTo [_garage, [0,0,0]];
      _terminal setVariable ["is_parking", true, true];
      [_terminal, _garage] call pp_setup_terminal;

      (_pos)
    };

    pp_create_terminals = {
      def(_marker);
      def(_marker_pos);
      //def(_marker_name);
      def(_garage);
      def(_terminal);
      def(_model);
      def(_pos);
      def(_name);
      def(_marker);
      init(_i,1);


      {
        _marker = _x;
        //_marker_name =  text(_marker);
        _marker_pos = markerPos _marker;
        //if (isARRAY(pp_cities_whitelist) && {count(pp_cities_whitelist) > 0 && {not(_town_name in pp_cities_whitelist)}}) exitWith {};

        _garage = (nearestObjects [_marker_pos, ["Land_i_Shed_Ind_F", "Land_Carrier_01_base_F"], 50]) select 0;
        if (!isOBJECT(_garage)) exitWith {
          diag_log format["No garage near %1", _marker];
        };

        _name = format["parking_terminal_%1", _i];
        _i = _i + 1;

        _pos = [_garage] call pp_create_terminal;

        diag_log format["Creating parking terminal at %1 (Grid %2)", _marker, mapGridPosition _pos];

      } foreach (allMapMarkers select {_x select [0,7] == "Parking" && _x find "_" == -1}) //(call pp_get_all_cities);
    };

    pp_get_near_vehicles = {
      ARGVX4(0,_player,objNull,[]);

      def(_vehicles);
      _vehicles = (nearestObjects [_player, ["LandVehicle","Air","Ship"], 50]) select {!(_x getVariable ["A3W_lockpickDisabled",false])};

      init(_filtered,[]);
      def(_uid);
      _uid = getPlayerUID player;

      def(_ownerUID);
      def(_vehicle);

      { call {
        _vehicle = _x;
        if (not(isOBJECT(_vehicle) && {alive _vehicle})) exitWith {};

        _ownerUID = _vehicle getVariable ["ownerUID", ""];
        if(!isSTRING(_ownerUID)) exitWith {};
        if (_ownerUID == "" || {_ownerUID == _uid}) exitWith {
          _filtered pushBack _vehicle;
        };

      };} forEach _vehicles;

      (_filtered)
    };

    pp_join_time = diag_tickTime; //time when the player joined the server

    pp_get_wait_time = {
      ARGVX4(0,_vehicle_id,"",0);

      if (not(isSCALAR(pp_retrieve_wait)) || {pp_retrieve_wait <= 0}) exitWith {0};
      private _retrieve_wait = 0;

      def(_cooldown_start_name);
      _cooldown_start_name =  format["%1_cooldown_start", _vehicle_id];


      def(_cooldown_start);
      _cooldown_start = missionNamespace getVariable _cooldown_start_name;

      if (!isSCALAR(_cooldown_start)) then {
        _cooldown_start = pp_join_time;
        missionNamespace setVariable [_cooldown_start_name, _cooldown_start];
      };

      def(_time_elapsed);
      _time_elapsed = diag_tickTime - _cooldown_start;

      def(_time_remaining);
      _time_remaining = _retrieve_wait - _time_elapsed;

      if (_time_remaining <= 0) then {
        missionNamespace setVariable [_cooldown_start_name, nil];
      };

      (_time_remaining)
    };

    pp_retrieve_transaction_ok = {
      ARGVX4(0,_player,objNull,true);
      ARGVX4(1,_cost,0,true);
      ARGVX3(2,_class,"",true)

      def(_cmoney);
      _cmoney = _player getVariable ["cmoney",0];
      if (_cost > _cmoney) exitWith {
        _player groupChat format["%1, you do not have enough money to retrieve the %2", (name _player), ([_class] call generic_display_name)];
        false
      };

      _player setVariable ["cmoney", _cmoney - _cost, true];
      true
    };

    pp_retrieve_allowed = {
      ARGVX4(0,_player,objNull, true);
      ARGVX4(1,_vehicle_id,"",true);
      ARGVX4(2,_class,"", true);

      //check if there is a cool-down period
      def(_wait_time);
      _wait_time = [_vehicle_id] call pp_get_wait_time;
      if (isSCALAR(_wait_time) && {_wait_time > 0 }) exitWith {
        private _remaining = ceil _wait_time;
        private _mins = floor (_remaining / 60);
        private _secs = floor (_remaining - (_mins * 60));
        private _timer = format ["%1%2%3s", [str _mins + "m",""] select (_mins == 0), ["","0"] select (_secs < 10), _secs];

        _player groupChat format["%1, you have to wait %2 to retrieve the %3", (name _player), _timer, ([_class] call generic_display_name)];
        false
      };

      //check if thereis a price for retrieving the vehicle
      if (isSCALAR(pp_retrieve_cost) && {pp_retrieve_cost > 0}) exitWith {
        init(_cost,pp_retrieve_cost);
        _msg = format["It's going to cost you $%1 to retrieve the %2. Do you want to proceed?", strM(_cost), ([_class] call generic_display_name)];

        if (not([_msg, "Confirm", "Yes", "No"] call BIS_fnc_guiMessage)) exitWith {false};
        if (not([_player, _cost] call pp_retrieve_transaction_ok)) exitWith {false};

        true
      };

      true
    };

    pp_park_allowed = {
      ARGVX4(0,_player,objNull, true);
      ARGVX4(1,_vehicle_id,"",true);
      ARGVX4(2,_class,"", true);

      if (isARRAY(pp_disallowed_vehicle_classes) && {count(pp_disallowed_vehicle_classes) > 0 && { ({_class isKindOf _x} count pp_disallowed_vehicle_classes) > 0}}) exitWith {
        _msg = format["This vehicle (%1) is not allowed to be parked.", ([_class] call generic_display_name)];
        [_msg, "Illegal Parking", "Ok", false] call BIS_fnc_guiMessage;
        false
      };

      def(_parked_vehicles);
      _parked_vehicles = _player getVariable ["parked_vehicles", []];
      init(_count,count(_parked_vehicles));

      //check if the parking is full
      if (isSCALAR(pp_max_player_vehicles) && {pp_max_player_vehicles > 0 && {_count >= pp_max_player_vehicles}}) exitWith {
        _msg = format["You already have %1 vehicle(s) parked. There are no more parking spaces available.", _count];
        [_msg, "Full Parking", "Ok", false] call BIS_fnc_guiMessage;
        false
      };

      true
    };

    pp_park_vehicle_action = {
      init(_player,player);

      def(_vehicles);
      _vehicles = [_player] call pp_get_near_vehicles;

      def(_vehicle_id);
      _vehicle_id = ["Park Vehicle", _vehicles] call pp_interact_park_vehicle_wait;

      if (!isSTRING(_vehicle_id)) exitWith {
        //_player groupChat format["%1, you did not select any vehicle to park", (name _player)];
      };


      _vehicle = objectFromNetId _vehicle_id;
      if (!isOBJECT(_vehicle)) exitWith {
        _player groupChat format["%1, the vehicle you selected to park could not be found", (name _player)];
      };

      def(_class);
      _class =  typeOf _vehicle;

      if (not([_player, _vehicle_id, _class] call pp_park_allowed)) exitWith {};


      _player groupChat format["Please wait while we park your %1", ([typeOf _vehicle] call generic_display_name)];
      [_player, _vehicle] call pp_park_vehicle;
    };

    pp_retrieve_vehicle_action = {
      init(_player,player);

      def(_parked_vehicles);
      _parked_vehicles = _player getVariable "parked_vehicles";
      _parked_vehicles = if (isARRAY(_parked_vehicles)) then {_parked_vehicles} else {[]};


      def(_vehicle_id);
      _vehicle_id = ["Retrieve Vehicle", _parked_vehicles] call pp_interact_park_vehicle_wait;


      if (!isSTRING(_vehicle_id)) exitWith {
        //_player groupChat format["%1, you did not select any vehicle to retreive", (name _player)];
      };

      def(_vehicle_data);
      _vehicle_data = [_parked_vehicles, _vehicle_id] call fn_getFromPairs;

      if (!isARRAY(_vehicle_data)) exitWith {
        player groupChat format["ERROR: The selected vehicle (%1) was not found", _vehicle_id];
      };

      def(_class);
      _class = [_vehicle_data, "Class"] call fn_getFromPairs;

      if (not([_player, _vehicle_id, _class] call pp_retrieve_allowed)) exitWith {};

      _player groupChat format["Please wait while we retrieve your %1", ([_class] call generic_display_name)];
      [player, _vehicle_id] call pp_retrieve_vehicle;
    };


    pp_cameraDir = {
      ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,1])] call BIS_fnc_vectorDiff)
    };

    pp_is_object_parking = {
      ARGVX4(0,_obj,objNull,false);
      (_obj getVariable ["is_parking", false])
    };

    pp_is_player_near = {
      private["_objects"];
      _objects = nearestObjects [player, ["Land_CampingTable_small_F"], 2];
      if (isNil "_objects") exitWith {false};

      private["_found"];
      _found = false;
      {
        if ([_x] call pp_is_object_parking) exitWith {
          _found = true;
        };
      } forEach _objects ;

      (_found)
    };

    pp_actions = OR(pp_actions,[]);

    pp_remove_actions = {
      if (count pp_actions == 0) exitWith {};

      {
        private["_action_id"];
        _action_id = _x;
        player removeAction _action_id;
      } forEach pp_actions;
      pp_actions = [];
    };

    pp_add_actions = {
      if (count pp_actions > 0) exitWith {};
      private["_player"];
      _player = _this select 0;

      private["_action_id", "_text"];
      _action_id = _player addAction ["<img image='addons\parking\icons\parking.paa'/> Park Vehicle", {call pp_park_vehicle_action}];
      pp_actions = pp_actions + [_action_id];

      _action_id = _player addAction ["<img image='addons\parking\icons\parking.paa'/> Retrieve Vehicle", {call pp_retrieve_vehicle_action}];
      pp_actions = pp_actions + [_action_id];
    };

    pp_check_actions = {
        private["_player"];
        _player = player;
        private["_vehicle", "_in_vehicle"];
        _vehicle = (vehicle _player);
        _in_vehicle = (_vehicle != _player);

        if (not(_in_vehicle || {not(alive _player) || {not(call pp_is_player_near)}})) exitWith {
          [_player] call pp_add_actions;
        };

       [_player] call pp_remove_actions;
    };


    pp_client_loop = {
      if (!hasInterface) exitWith {};

      while {true} do {
        call pp_check_actions;
        sleep 0.5;
      };
    };


    if (isServer) then
    {
      diag_log "Setting up parking terminals ... ";
      [] call pp_create_terminals;
      pp_setup_terminals_complete = true;
      publicVariable "pp_setup_terminals_complete";
    }
    else
    {
      diag_log "Waiting for parking terminals setup to complete ...";
      waitUntil {!isNil "pp_setup_terminals_complete"};
    };

    if (hasInterface) then
    {
      waitUntil {!isNil "A3W_serverSetupComplete" && !isNil "A3W_clientSetupComplete"};
    };

    {
      _x call pp_setup_terminal;

      if (pp_markers_enabled) then
      {
        [format ["parking_terminal_%1", _forEachIndex + 1], getPosASL _x, pp_markers_properties] call pp_marker_create;
      };
    } forEach ((allMissionObjects "Land_CampingTable_small_F") select {_x getVariable ["is_parking",false]});

    diag_log "Parking terminals setup complete";

    [] spawn pp_client_loop;

    parking_functions_defined = true;
    diag_log "Loading parking functions complete";

     

    Spoiler

    if (!isNil "storage_functions_defined") exitWith {};
    diag_log format["Loading storage functions ..."];

    #include "macro.h"
    #include "futura.h"

    ps_marker_create = {
      if (!hasInterface) exitWith {""};
      ARGVX3(0,_name,"");
      ARGVX3(1,_location,[]);
      ARGVX3(2,_this,[]);

      ARGVX3(0,_shape,"");
      ARGVX3(1,_type,"");
      ARGVX3(2,_color,"");
      ARGVX3(3,_size,[]);
      ARGVX3(4,_text,"");

      private["_marker"];
      _marker = createMarkerLocal [_name,_location];
      _marker setMarkerShapeLocal _shape;
      _marker setMarkerTypeLocal _type;
      _marker setMarkerColorLocal _color;
      _marker setMarkerSizeLocal _size;
      //_marker setMarkerTextLocal _text;
      (_marker)
    };

    ps_get_all_cities = {
      if (isARRAY(ps_all_cities)) exitWith {ps_get_all_cities};
      ps_get_all_cities = (nearestLocations [[0,0,0],["NameCityCapital","NameCity","NameVillage"],1000000]);
      (ps_get_all_cities)
    };


    ps_setup_box = {
      params ["_box"];
      if (_box getVariable ["A3W_storageBoxSetupDone",false]) exitWith {};
      private _garage = param [1, nearestBuilding _box];

      if (local _box) then { _box allowDamage false };
      if (local _garage) then { _garage allowDamage false };
      _box setVariable ["R3F_LOG_disabled", true];
      _garage setVariable ["R3F_LOG_disabled", true];

      _box setVariable ["A3W_storageBoxSetupDone", true];
    };

    ps_create_boxes = {
      def(_town);
      def(_town_pos);
      def(_town_name);
      def(_garage);
      def(_box);
      def(_model);
      def(_pos);
      def(_name);
      def(_marker);
      init(_i,0);


      { call {
        _town = _x;
        _town_name =  text(_town);
        _town_pos = position _town;
        if (isARRAY(ps_cities_whitelist) && {count(ps_cities_whitelist) > 0 && {not(_town_name in ps_cities_whitelist)}}) exitWith {};

        _garage = (nearestObjects [_town_pos, ["Land_i_Garage_V2_F", "Land_Shed_06_F", "Land_Warehouse_03_F"], 300]) select 0;
        if (!isOBJECT(_garage)) exitWith {
          diag_log format["No storage in %1", _town_name];
        };

        _name = format["storage_box_%1", _i];
        _i = _i + 1;


        _pos = AGLtoASL (_garage modelToWorld [0,0,0]);
        /*if (_garage isKindOf "Land_Shed_06_F") then {
          _pos set [2,0];
        };*/

        _model = ps_box_models call BIS_fnc_selectRandom;

        _box = createVehicle [_model, ASLtoATL _pos, [], 1, ""];
        _pos = getPosASL _box;
        _pos set [2, (_pos select 2) - (getPos _box select 2)];
        _box setPosASL _pos;
        //_box setPos _pos;
        _box setVectorDirAndUp [vectorDir _garage, vectorUp _garage];
        _box setVariable ["is_storage", true, true];
        [_box, _garage] call ps_setup_box;

        diag_log format["Creating Storage at: %1 (%2)", _town_name, _pos];
      }} foreach (call ps_get_all_cities);
    };

    if (["A3W_savingMethod", "profile"] call getPublicVar != "sock") then
    {
      p_saveStorage = {
        params ["", "_obj"];

        private _storage =
        [
          ["Weapons", (getWeaponCargo _obj) call cargoToPairs],
          ["Magazines", _obj call fn_magazineAmmoCargo],
          ["Items", (getItemCargo _obj) call cargoToPairs],
          ["Backpacks", (getBackpackCargo _obj) call cargoToPairs]
        ];

        player setVariable ["private_storage", _storage];
        if (!isNil "fn_savePlayerData") then { [] spawn fn_savePlayerData };

        _storage
      };

      p_recreateStorageBox = {
        params ["", "_class"];

        private _obj = _class createVehicleLocal [0,0,1000];

        if (isNull _obj) exitWith {
          diag_log format["WARNING: Could not create storage container of class '%1'", _class];
        };

        _obj hideObject true;
        clearWeaponCargo _obj;
        clearMagazineCargo _obj;
        clearItemCargo _obj;
        clearBackpackCargo _obj;
        _obj setVariable ["is_obj_box", true];

        {
          _x params ["_name", "_value"];

          switch (_name) do
          {
            case "Weapons": { { _obj addWeaponCargoGlobal _x } forEach _value };
            case "Magazines": { [_obj, _value] call processMagazineCargo };
            case "Items": { { _obj addItemCargoGlobal _x } forEach _value };
            case "Backpacks": { { _obj addBackpackCargoGlobal _x } forEach _value };
          };
        } forEach (player getVariable ["private_storage", []]);

        _obj
      };
    };

    ps_inventory_ui_mod = {
      ARGVX3(0,_box,objNull);

      disableSerialization;
      waitUntil {!(isNull (findDisplay IDD_FUTURAGEAR))};
      def(_display);
      _display = findDisplay IDD_FUTURAGEAR;


      def(_outside);
      _outside = [-1,-1,0.1,0.1];

      def(_filter);
      _filter = _display displayCtrl IDC_FG_GROUND_FILTER;

      def(_pos);
      def(_ground_tab);
      _ground_tab = _display displayCtrl IDC_FG_GROUND_TAB;
      _pos = (ctrlPosition _ground_tab);
      _ground_tab ctrlSetPosition _outside;
      _ground_tab ctrlCommit 0;

      def(_custom_text);
      _custom_text = _display ctrlCreate ["RscText", -1];
      _pos set [2, (ctrlPosition _filter) select 2];
      _custom_text ctrlSetPosition _pos;
      _custom_text ctrlSetText "Private Storage";
      _custom_text ctrlSetBackgroundColor [0,0,0,1];
      _custom_text ctrlSetTextColor [1,1,1,1];
      _custom_text ctrlSetActiveColor [1,1,1,1];
      _custom_text ctrlSetTooltip "This storage is visible to you only.<br />It's automatically saved in the database,<br />and can be accessed across maps.";
      _custom_text ctrlCommit 0;

      def(_chosen_tab);
      _chosen_tab = _display displayCtrl IDC_FG_CHOSEN_TAB;
      _chosen_tab ctrlSetPosition _outside;
      _chosen_tab ctrlCommit 0;


      waitUntil {
        isNull (findDisplay IDD_FUTURAGEAR)
      };


      [player, _box] call p_saveStorage;
      deleteVehicle _box;
    };

    ps_access = {
      private["_box"];
      _box = [player, ps_container_class] call p_recreateStorageBox;

      if (isNil "_box") exitWith {
        player commandChat "ERROR: Could not access private storage, please report this error to A3Armory.com.";
      };

      _box attachTo [player, [0,0,3]];


      player removeAllEventHandlers "InventoryOpened";
      player addEventHandler ["InventoryOpened", {
        if (((_this select 1) getVariable ["is_storage_box", false])) exitWith {
          true
        };
        false
      }];

      player action ["Gear",  _box];
      player removeAllEventHandlers "InventoryOpened";
      [_box] spawn ps_inventory_ui_mod;
    };

    ps_cameraDir = {
      ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,1])] call BIS_fnc_vectorDiff)
    };

    ps_is_object_storage = {
      ARGVX4(0,_obj,objNull,false);
      (_obj getVariable ["is_storage", false])
    };

    ps_is_player_near = {
      private["_objects"];
      _objects = nearestObjects [player, ["Land_PaperBox_open_full_F", "Land_Pallet_MilBoxes_F", "Land_PaperBox_open_empty_F", "Land_PaperBox_closed_F"], 2];
      if (isNil "_objects") exitWith {false};

      private["_found"];
      _found = false;
      {
        if ([_x] call ps_is_object_storage) exitWith {
            _found = true;
          };
      } forEach _objects ;

      (_found)
    };

    ps_actions = OR(ps_actions,[]);

    ps_remove_actions = {
        if (count ps_actions == 0) exitWith {};

        {
            private["_action_id"];
            _action_id = _x;
            player removeAction _action_id;
        } forEach ps_actions;
        ps_actions = [];
    };

    ps_add_actions = {
        if (count ps_actions > 0) exitWith {};
        private["_player"];
        _player = _this select 0;

      private["_action_id", "_text"];
      _action_id = _player addAction ["<img image='addons\storage\icons\storage.paa'/> Access Storage", {call ps_access}];
      ps_actions = ps_actions + [_action_id];
    };

    ps_check_actions = {
          private["_player"];
        _player = player;
        private["_vehicle", "_in_vehicle"];
        _vehicle = (vehicle _player);
        _in_vehicle = (_vehicle != _player);

        if (not(_in_vehicle || {not(alive _player) || {not(call ps_is_player_near)}})) exitWith {
          [_player] call ps_add_actions;
        };

       [_player] call ps_remove_actions;
    };


    ps_client_loop = {
      if (!hasInterface) exitWith {};

      while {true} do {
        call ps_check_actions;
        sleep 0.5;
      };
    };


    if (isServer) then
    {
      diag_log "Setting up storage boxes ... ";
      [] call ps_create_boxes;
      ps_setup_boxes_complete = true;
      publicVariable "ps_setup_boxes_complete";
    }
    else
    {
      diag_log "Waiting for storage boxes setup to complete ...";
      waitUntil {!isNil "ps_setup_boxes_complete"};
    };

    if (hasInterface) then
    {
      waitUntil {!isNil "A3W_serverSetupComplete" && time > 0};
    };

    {
      _x call ps_setup_box;

      if (ps_markers_enabled) then
      {
        [format ["storage_box_%1", _forEachIndex + 1], getPosASL _x, ps_markers_properties] call ps_marker_create;
      };
    } forEach ((allMissionObjects "All") select {_x getVariable ["is_storage",false]});

    diag_log "Storage boxes setup complete";

    [] spawn ps_client_loop;

    storage_functions_defined = true;
    diag_log "Loading storage functions complete";

     

    Thx

    Stefan

     

     


  2. Hello Devs / Supporters,


    I have huge Problems with the Arma3 Server Update on my Linux Servs, I have 3 servers down...


    OS:
    Ubuntu 14.04.5 x64

     

    It hangs before the BattleEye Initialisation, after this point:

    MovesType CfgMovesMaleSdr load time 31503 ms

    At this point the server hangs... No Log Entry anymore :-(

     

    Logfile:

     

    Spoiler

    17:59:52 SteamAPI initialization failed. Steam features won't be accessible!
    17:59:52 Cannot register unknown string STR_3DEN_CAMERA_NAME
    17:59:52 Cannot register unknown string STR_DIFF_SCENE_ONLY
    17:59:52 Cannot register unknown string STR_DIFF_SCENE_AND_MAP
    17:59:52 Initializing stats manager.
    17:59:52 Stats config disabled.
    17:59:52 sessionID: 4cd25f8a6e6e268836092e754476a76866d0d112
    17:59:57 Item str_a3_to_c01_m02_036_ta_mechanized_briefing_SOLDIERC_0 listed twice
    17:59:59 Updating base class RscShortcutButton->RscButton, by a3\editor_f\config.bin/RscDisplayEditObject/Controls/B_OK/ (original bin\config.bin)
    17:59:59 Updating base class RscSliderH->RscXSliderH, by a3\editor_f\config.bin/RscDisplayEditObject/Slider/ (original bin\config.bin)
    17:59:59 Updating base class RscText->RscPicture, by a3\editor_f\config.bin/RscDisplayEditObject/Preview/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButton, by a3\editor_f\config.bin/RscDisplayMissionLoad/Controls/B_OK/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButton, by a3\editor_f\config.bin/RscDisplayMissionSave/Controls/B_OK/ (original bin\config.bin)
    17:59:59 Updating base class ->RscControlsGroup, by a3\ui_f\config.bin/RscControlsGroupNoScrollbars/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscControlsGroup, by a3\ui_f\config.bin/RscControlsGroupNoHScrollbars/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscControlsGroup, by a3\ui_f\config.bin/RscControlsGroupNoVScrollbars/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/RscLine/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscActiveText, by a3\ui_f\config.bin/RscActivePicture/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscButton, by a3\ui_f\config.bin/RscButtonTextOnly/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscShortcutButton, by a3\ui_f\config.bin/RscShortcutButtonMain/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscShortcutButton, by a3\ui_f\config.bin/RscButtonEditor/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscShortcutButton, by a3\ui_f\config.bin/RscIGUIShortcutButton/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscShortcutButton, by a3\ui_f\config.bin/RscGearShortcutButton/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscShortcutButton, by a3\ui_f\config.bin/RscButtonMenu/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscButtonMenu, by a3\ui_f\config.bin/RscButtonMenuOK/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscButtonMenu, by a3\ui_f\config.bin/RscButtonMenuCancel/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscButtonMenu, by a3\ui_f\config.bin/RscButtonMenuSteam/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/RscLoadingText/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscListBox, by a3\ui_f\config.bin/RscIGUIListBox/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscListNBox, by a3\ui_f\config.bin/RscIGUIListNBox/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/RscBackground/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/RscBackgroundGUI/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscPicture, by a3\ui_f\config.bin/RscBackgroundGUILeft/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscPicture, by a3\ui_f\config.bin/RscBackgroundGUIRight/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscPicture, by a3\ui_f\config.bin/RscBackgroundGUIBottom/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/RscBackgroundGUITop/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/RscBackgroundGUIDark/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscPictureKeepAspect, by a3\ui_f\config.bin/RscBackgroundLogo/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscMapControl, by a3\ui_f\config.bin/RscMapControlEmpty/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscPicture, by a3\ui_f\config.bin/CA_Mainback/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->CA_Mainback, by a3\ui_f\config.bin/CA_Back/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->CA_Mainback, by a3\ui_f\config.bin/CA_Title_Back/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->CA_Mainback, by a3\ui_f\config.bin/CA_Black_Back/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscTitle, by a3\ui_f\config.bin/CA_Title/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscPictureKeepAspect, by a3\ui_f\config.bin/CA_Logo/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->CA_Logo, by a3\ui_f\config.bin/CA_Logo_Small/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscButton, by a3\ui_f\config.bin/CA_RscButton/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->CA_RscButton, by a3\ui_f\config.bin/CA_RscButton_dialog/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscActiveText, by a3\ui_f\config.bin/CA_Ok/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/CA_Ok_image/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/CA_Ok_image2/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/CA_Ok_text/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscPicture, by a3\ui_f\config.bin/RscVignette/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class ->RscControlsGroupNoScrollbars, by a3\ui_f\config.bin/RscMapControlTooltip/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class RscUnitInfo->RscUnitInfoAirNoWeapon, by a3\ui_f\config.bin/RscInGameUI/RscUnitInfoAir/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class RscControlsGroup->RscControlsGroupNoScrollbars, by a3\ui_f\config.bin/RscInGameUI/RscTaskOverview/controls/TaskOverviewAssigned/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayDebug/Controls/B_OK/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayDebug/Controls/B_Cancel/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayDebug/Controls/B_Clear/ (original bin\config.bin)
    17:59:59 Updating base class ->RscText, by a3\ui_f\config.bin/RscDisplayCapture/controls/TimeLines/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayCapture/controls/ButtonAverages/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayCapture/controls/ButtonSavePreviousData/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayCapture/controls/ButtonPreviousData/ (original bin\config.bin)
    17:59:59 Updating base class RscPicture->RscPictureKeepAspect, by a3\ui_f\config.bin/RscDisplayMain/IconPicture/ (original bin\config.bin)
    17:59:59 Updating base class IconPicture->RscPictureKeepAspect, by a3\ui_f\config.bin/RscDisplayMain/DlcOwnedIconPicture/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class IconPicture->RscPictureKeepAspect, by a3\ui_f\config.bin/RscDisplayMain/DlcIconPicture/ (original a3\ui_f\config.bin)
    17:59:59 Updating base class RscControlsGroup->RscControlsGroupNoScrollbars, by a3\ui_f\config.bin/RscDisplayCampaignLoad/controls/OverviewGroup/ (original bin\config.bin)
    17:59:59 Updating base class RscButton->RscButtonSearch, by a3\ui_f\config.bin/RscDisplayCampaignLoad/controls/SearchButton/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenuCancel, by a3\ui_f\config.bin/RscDisplayCampaignLoad/controls/ButtonCancel/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayCampaignLoad/controls/ButtonGameOptions/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenuSteam, by a3\ui_f\config.bin/RscDisplayCampaignLoad/controls/ButtonBuyDLC/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenu, by a3\ui_f\config.bin/RscDisplayCampaignLoad/controls/ButtonRevert/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenuOK, by a3\ui_f\config.bin/RscDisplayCampaignLoad/controls/ButtonOK/ (original bin\config.bin)
    17:59:59 Updating base class RscListBox->RscCombo, by a3\ui_f\config.bin/RscDisplayCustomizeController/Steepness/ (original bin\config.bin)
    17:59:59 Updating base class ->RscStandardDisplay, by a3\ui_f\config.bin/RscDisplayControlSchemes/ (original bin\config.bin)
    17:59:59 Updating base class ButtonOK->RscButtonMenuCancel, by a3\ui_f\config.bin/RscDisplayControlSchemes/controls/ButtonCancel/ (original bin\config.bin)
    17:59:59 Updating base class RscButton->RscButtonMenuOK, by a3\ui_f\config.bin/RscDisplayControlSchemes/controls/ButtonOK/ (original bin\config.bin)
    17:59:59 Updating base class RscPicture->RscPictureKeepAspect, by a3\ui_f\config.bin/RscDisplayFileSelectImage/controls/OverviewPicture/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenuCancel, by a3\ui_f\config.bin/RscDisplayFieldManual/Controls/ButtonCancel/ (original bin\config.bin)
    17:59:59 Cannot delete class B_KickOff, it is referenced somewhere (used as a base class probably).
    17:59:59 Updating base class RscButton->RscButtonMenuCancel, by a3\ui_f\config.bin/RscDisplayPublishMission/controls/ButtonCancel/ (original bin\config.bin)
    17:59:59 Updating base class RscShortcutButton->RscButtonMenuOK, by a3\ui_f\config.bin/RscDisplayPublishMissionSelectTags/controls/ButtonOK/ (original bin\config.bin)
    17:59:59 Updating base class ButtonOK->RscButtonMenuCancel, by a3\ui_f\config.bin/RscDisplayPublishMissionSelectTags/controls/ButtonCancel/ (original bin\config.bin)
    17:59:59 Updating base class ->RscSubmenu, by a3\ui_f\config.bin/RscMainMenu/ (original bin\config.bin)
    17:59:59 Updating base class None->ActiveSensorsOn, by a3\ui_f\config.bin/CfgActions/ActiveSensorsOff/ (original bin\config.bin)
    17:59:59 Updating base class None->ListRightVehicleDisplay, by a3\ui_f\config.bin/CfgActions/ListLeftVehicleDisplay/ (original bin\config.bin)
    17:59:59 Updating base class None->ListPrevRightVehicleDisplay, by a3\ui_f\config.bin/CfgActions/ListPrevLeftVehicleDisplay/ (original bin\config.bin)
    17:59:59 Updating base class None->CloseRightVehicleDisplay, by a3\ui_f\config.bin/CfgActions/CloseLeftVehicleDisplay/ (original bin\config.bin)
    17:59:59 Updating base class None->NextModeRightVehicleDisplay, by a3\ui_f\config.bin/CfgActions/NextModeLeftVehicleDisplay/ (original bin\config.bin)
    17:59:59 Updating base class ->DistanceClose, by a3\ui_f\config.bin/CfgSimpleTasks/Icon3D/DistanceMid/ (original bin\config.bin)
    17:59:59 Updating base class ->DistanceClose, by a3\ui_f\config.bin/CfgSimpleTasks/Icon3D/DistanceLong/ (original bin\config.bin)
    17:59:59 Updating base class player->close, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/HE/close/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class close->short, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/HE/short/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class close->medium, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/HE/medium/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class close->far, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/HE/far/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class player->close, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/AP/close/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class close->short, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/AP/short/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class close->medium, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/AP/medium/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class close->far, by a3\sounds_f\config.bin/CfgWeapons/autocannon_30mm_CTWS/AP/far/ (original a3\weapons_f\config.bin)
    17:59:59 Updating base class ->Tank, by a3\armor_f_beta\config.bin/CfgVehicles/Tank_F/ (original a3\armor_f_beta\config.bin)
    17:59:59 Updating base class NewTurret->NewTurret, by a3\armor_f_beta\apc_wheeled_01\config.bin/CfgVehicles/Wheeled_APC_F/Turrets/MainTurret/ (original a3\armor_f_beta\config.bin)
    18:00:00 Updating base class ->ctrlDefaultText, by a3\3den\config.bin/ctrlStatic/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->ctrlActiveText, by a3\3den\config.bin/ctrlActivePicture/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->ctrlDefaultText, by a3\3den\config.bin/ctrlStructuredText/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->ctrlControlsGroup, by a3\3den\config.bin/ctrlControlsGroupNoScrollbars/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->ctrlDefault, by a3\3den\config.bin/ctrlCheckbox/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->ctrlCheckbox, by a3\3den\config.bin/ctrlCheckboxBaseline/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisable, by a3\3den\config.bin/RscDisplayOptionsAudio/ControlsBackground/BackgroundDisable/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisableTiles, by a3\3den\config.bin/RscDisplayOptionsAudio/ControlsBackground/BackgroundDisableTiles/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisable, by a3\3den\config.bin/RscDisplayConfigure/ControlsBackground/BackgroundDisable/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisableTiles, by a3\3den\config.bin/RscDisplayConfigure/ControlsBackground/BackgroundDisableTiles/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisable, by a3\3den\config.bin/RscDisplayConfigureAction/ControlsBackground/BackgroundDisable/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisableTiles, by a3\3den\config.bin/RscDisplayConfigureAction/ControlsBackground/BackgroundDisableTiles/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisable, by a3\3den\config.bin/RscDisplayConfigureControllers/ControlsBackground/BackgroundDisable/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisableTiles, by a3\3den\config.bin/RscDisplayConfigureControllers/ControlsBackground/BackgroundDisableTiles/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisable, by a3\3den\config.bin/RscDisplayGameOptions/ControlsBackground/BackgroundDisable/ (original a3\3den\config.bin)
    18:00:00 Updating base class RscText->ctrlStaticBackgroundDisableTiles, by a3\3den\config.bin/RscDisplayGameOptions/ControlsBackground/BackgroundDisableTiles/ (original a3\3den\config.bin)
    18:00:00 Updating base class controls->, by a3\3den\config.bin/RscDisplayArcadeMap_Layout_2/Controls/ (original a3\ui_f\config.bin)
    18:00:00 Updating base class controls->, by a3\3den\config.bin/RscDisplayArcadeMap_Layout_6/Controls/ (original a3\ui_f\config.bin)
    18:00:00 Updating base class ->ctrlControlsGroupNoScrollbars, by a3\3den\config.bin/Cfg3DEN/Attributes/Default/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->ctrlStatic, by a3\3den\config.bin/Cfg3DEN/Attributes/Title/Controls/Title/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->Controls, by a3\3den\config.bin/Cfg3DEN/Attributes/Toolbox/Controls/ (original a3\modules_f\config.bin)
    18:00:00 Updating base class ->Title, by a3\3den\config.bin/Cfg3DEN/Attributes/Toolbox/Controls/Title/ (original a3\3den\config.bin)
    18:00:00 Updating base class ->ctrlToolbox, by a3\3den\config.bin/Cfg3DEN/Attributes/Toolbox/Controls/Value/ (original a3\3den\config.bin)
    18:00:00 Updating base class I_1stRegiment->BaseGuer, by a3\missions_f_orange\config.bin/CfgORBAT/BIS/I_3rdRegiment/ (original a3\missions_f_epa\config.bin)
    18:00:00 Updating base class CounterMeasureFlare->, by a3\weapons_f_orange\config.bin/FlareShell/ (original a3\weapons_f_orange\config.bin)
    18:00:00 Updating base class Controls->, by a3\modules_f_tacops\config.bin/Cfg3DEN/Attributes/Toolbox/Controls/ (original a3\3den\config.bin)
    18:00:00 Updating base class Controls->, by a3\modules_f_tacops\config.bin/Cfg3DEN/Attributes/Combo/Controls/ (original a3\3den\config.bin)
    18:00:00 Updating base class Controls->, by a3\modules_f_tacops\config.bin/Cfg3DEN/Attributes/Slider/Controls/ (original a3\3den\config.bin)
    18:00:00 Initializing Steam Manager
    18:00:00 unable to load subscribed content list. list will be updated from steam
    18:00:00 unable to load published content list. list will be updated from steam
    18:00:00 unable to load cached items meta info. save and update functionality will be broken
    18:00:00 Steam Manager initialized.
    18:00:00 ============================================================================================= List of mods ===============================================================================================
    18:00:00 modsReadOnly = true
    18:00:00 safeModsActivated = false
    18:00:00 customMods = true
    18:00:00 hash = '27F8C8AA5BDDB8E0883760D3F620272F21317EC7'
    18:00:00 hashShort = '8e53b45d'
    18:00:00                                               name |               modDir |    default |               origin |                                     hash | hashShort | fullPath
    18:00:00 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    18:00:00                                             @Exile |               @Exile |      false |            NOT FOUND |                                          |           |
    18:00:00                                Arma 3 DLC Bundle 2 |           dlcbundle2 |       true |            NOT FOUND |                                          |           |
    18:00:00                                Arma 3 DLC Bundle 1 |            dlcbundle |       true |            NOT FOUND |                                          |           |
    18:00:00                                     Arma 3 Tac-Ops |               tacops |       true |             GAME DIR | f1dc09577c3e9808b7aa2c87d830a2b26a6b5fee |  fa26d009 | /home/steam/arma3-exile-altis/serverfiles/tacops
    18:00:00                                 Arma 3 Laws of War |               orange |       true |             GAME DIR | 4218684688ce66df818f107e2f95c59a26323121 |  b3b9582b | /home/steam/arma3-exile-altis/serverfiles/orange
    18:00:00                                      Arma 3 Malden |                 argo |       true |             GAME DIR | 05003900123009df799f674dab222647cc0cc676 |  36610ff1 | /home/steam/arma3-exile-altis/serverfiles/argo
    18:00:00                                        Arma 3 Jets |                 jets |       true |             GAME DIR | 8d1003272f4550977c09f9c3de192339a29268ad |  5d2e6b70 | /home/steam/arma3-exile-altis/serverfiles/jets
    18:00:00                                        Arma 3 Apex |            expansion |       true |             GAME DIR | ed1b8b914be28b134d041da7deebf7b5b68e6ed3 |  ed5a9be7 | /home/steam/arma3-exile-altis/serverfiles/expansion
    18:00:00                                    Arma 3 Marksmen |                 mark |       true |             GAME DIR | e405dfd48cf0dc78bc48e630f5065676723be5df |  d0f859df | /home/steam/arma3-exile-altis/serverfiles/mark
    18:00:00                                 Arma 3 Helicopters |                 heli |       true |             GAME DIR | abbb58afcd71da8d6f39462585ce554c2bde319e |  3b66e8c1 | /home/steam/arma3-exile-altis/serverfiles/heli
    18:00:00                                       Arma 3 Karts |                 kart |       true |             GAME DIR | 0a38a8eedccec3bd371c52470ecfbc300bce7e26 |  5248a2ba | /home/steam/arma3-exile-altis/serverfiles/kart
    18:00:00                                        Arma 3 Zeus |              curator |       true |             GAME DIR | e9e394b64efe10fcde232d90ae425eb377c62b16 |  42741b1b | /home/steam/arma3-exile-altis/serverfiles/curator
    18:00:00                                             Arma 3 |                   A3 |       true |            NOT FOUND |                                          |           |
    18:00:00                                       @ExileServer |         @ExileServer |      false |            NOT FOUND |                                          |           |
    18:00:00 ==========================================================================================================================================================================================================
    18:00:00 InitSound ...
    18:00:00 InitSound - complete
    18:00:00 Dedicated host created.
    18:00:00 PhysX3 SDK Init started ...
    18:00:00 PhysX3 SDK Init ended.
    18:00:04 Warning Message: You cannot play/edit this mission; it is dependent on downloadable content that has been deleted.
    a3_characters_f
    18:00:04 Loading movesType CfgGesturesMale
    18:00:04 MovesType CfgGesturesMale load time 84 ms
    18:00:04 Loading movesType CfgMovesMaleSdr
    18:00:13 MovesType CfgMovesMaleSdr load time 9366 ms </span>
     

     

    thats the end

     

    I tried rename y/A-Z/a-z/ * every subfolder, but everythings was correct, I made it again, same failure. Server not starting.


    I tried in Debug mode, now this message - only in debug mode

    /home/steam/arma3-exile-altis/lgsm/functions/command_debug.sh: line 102: 15567 Segmentation fault      (core dumped) ${executable} ${parms//\\;/;}

     

    The line is:

    Spoiler

    if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
     ${executable} ${parms} -debug
    elif [ "${engine}" == "realvirtuality" ]; then
     # Arma3 requires semicolons in the module list, which need to
     # be escaped for regular (tmux) loading, but need to be
     # stripped when loading straight from the console.
     ${executable} ${parms//\\;/;}
    else
     ${executable} ${parms}
    fi

     

    Spoiler

    ##################################

    ######## Default Settings ########

    ##################################

    # DO NOT EDIT WILL BE OVERWRITTEN!

    # Copy settings from here and use them in either

    # common.cfg - applies settings to every instance

    # [instance].cfg - applies settings to a specific instance

     

    #### Server Settings ####

     

    ## SteamCMD Login | https://github.com/GameServerManagers/LinuxGSM/wiki/SteamCMD#steamcmd-login

    steamuser="username"

    steampass='password'

     

    ## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters

    ip="0.0.0.0"

    port="2302"

     

    ## ARMA 3 Modules

    # Add mods with relative paths:

    # mods/@cba_a3

    # To load the "Community Base Addons v3" module found in the

    # directory serverfiles/mods/@cba_a3. Load several mods as:

    # mods="mods/@ace\;mods/@acex\;mods/@cba_a3"

    mods=""

     

    ## Server-side Mods

    servermods=""

     

    ## Path to BattlEye

    # Leave empty for default

    bepath=""

     

     

    fn_parms(){

    parms="-netlog -ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod=${mods} -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory"

    }

     

     

    #### LinuxGSM Settings ####

     

    ## Notification Alerts

    # (on|off)

    # Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email

    emailalert="off"

    email="email@example.com"

    emailfrom=""

     

    # Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet

    pushbulletalert="off"

    pushbullettoken="accesstoken"

    channeltag=""

     

    ## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update

    updateonstart="off"

     

    ## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup

    maxbackups="4"

    maxbackupdays="30"

    stoponbackup="on"

     

    ## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging

    consolelogging="on"

    logdays="7"

     

    #### LinuxGSM Advanced Settings ####

     

    ## SteamCMD Settings

    # Server appid

    appid="233780"

    # Steam App Branch Select

    # Allows to opt into the various Steam app branches. Default branch is "".

    # Example: "-beta latest_experimental"

    branch=""

     

    ## LinuxGSM Server Details

    # Do not edit

    gamename="ARMA 3"

    engine="realvirtuality"

     

    #### Directories ####

    # Edit with care

     

    ## Server Specific Directories

    systemdir="${serverfiles}"

    executabledir="${serverfiles}"

    executable="./arma3server"

    servercfg="${servicename}.server.cfg"

    networkcfg="${servicename}.network.cfg"

    servercfgdefault="server.cfg"

    networkcfgdefault="network.cfg"

    servercfgdir="${systemdir}/cfg"

    servercfgfullpath="${servercfgdir}/${servercfg}"

    networkcfgfullpath="${servercfgdir}/${networkcfg}"

     

    ## Backup Directory

    backupdir="${lgsmdir}/backup"

     

    ## Logging Directories

    logdir="${rootdir}/log"

    lgsmlogdir="${logdir}/script"

    consolelogdir="${logdir}/console"

    lgsmlog="${lgsmlogdir}/${servicename}-script.log"

    consolelog="${consolelogdir}/${servicename}-console.log"

    emaillog="${lgsmlogdir}/${servicename}-email.log"

     

    ## Logs Naming

    lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"

    consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

     


    Params shown are:
    new-session -d -x 23 -y 80 -s arma3server ./arma3server -netlog -ip=62.112.158.197 -port=2302 -cfg=/home/steam/arma3/serverfiles/cfg/arma3server.network.cfg -name=profile -profiles=/home/steam/arma3/log/profiles -config=/home/steam/arma3/serverfiles/cfg/arma3server.server.cfg -mod= -servermod= -bepath= -autoinit -loadmissiontomemory

     


    Again, everythins worked until yesterday. I did the update, nobody could connect, so I had to do the update :-(

     

     

    arma3server.network.cfg:

    Spoiler

    / ****************************************************************************
    //                                                                            *
    //     Arma 3 - network.cfg                                                   *
    //     Version 060116                                                         *
    //                                                                            *
    // ****************************************************************************

    // Defines network tuning parameters
    //
    // This file is to be passed to the -cfg parameter on the command line for the server
    // See http://community.bistudio.com/wiki/basic.cfg
    // The following settings are the suggested settings

    // BANDWIDTH SETTINGS

    // Bandwidth the server is guaranteed to have (in bps)
    // General guideline is NumberOfPlayers * 256kb
    // Default: 131072 - sk war hier 5120000
    MinBandwidth=25600000;
    // Bandwidth the server can never go above (in bps)
    // For a single server, use full network speed; decrease when running multiple servers - sk war 10240000
    MaxBandwidth=51200000;

    // PACKET SETTINGS

    // Maximum number of packets per frame.
    // Increasing the value potentially decreases lag, but increases desync
    // Default: 128 - sk war hier 2048
    MaxMsgSend=256;
    // Maximum payload of guaranteed packet (in b)
    // Small messages are packed to larger packets
    // Guaranteed packets are used for non-repetitive events, like shooting
    // Lower value means more packets are sent, so less events will get combined
    // Default: 512 - sk war hier 512
    MaxSizeGuaranteed=512;
    // Maximum payload of non-guaranteed packet (in b)
    // Increasing this value may improve bandwidth requirement, but may also increase lag
    // Largest factor in desync
    // Guidance is half of MaxSizeGuaranteed
    // Default: 256 - sk war hier 256
    MaxSizeNonguaranteed=256;
    // Maximal size of a packet sent over the network
    // Only necessary if ISP forces lower packet size and there are connectivity issues
    // Default: 1400
    // class sockets{maxPacketSize=1400};

    // SMOOTHNESS SETTINGS

    // Minimal error required to send network updates for far units
    // Smaller values will make for smoother movement at long ranges, but will increase network traffic
    // Default: 0.003 - sk war hier 0.01
    MinErrorToSend=0.002;
    // Minimal error required to send network updates for near units
    // Using larger value can reduce traffic sent for near units
    // Also controls client to server traffic
    // Default: 0.01
    MinErrorToSendNear=0.02;

    // GEOLOCATION SETTINGS

    // Server latitude
    serverLatitude=52;
    serverLatitudeAuto=52;

    // Server Longitude
    serverLongitude=0;
    serverLongitudeAuto=0;
    // MISC
    // View Distance (not sure if this actually works)
    viewDistance=10000;

    // Maximum size (in b) for custom face or sound files
    // Default: 0
    MaxCustomFileSize=0;
    // Server language
    language="German";
    steamLanguage="German";
    // Adapter
    adapter=-1;
    // Windowed mode
    Windowed=0;

    3D_Performance=1.000000;

     

     

    arma3server.server.cfg:

    Spoiler

    // GLOBAL SETTINGS
    hostname = "[GER] XXXXXXXXXXXXX";

    password = "";
    passwordAdmin = "XXXXXXXXXXXX";
    serverCommandPassword = "XXXXXXXXXXXx";
    logFile = "server.log";

    // WELCOME MESSAGE ("message of the day")
    motd[]={
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "_____________________________________________________________",
    "_____________________________________________________________"
    };
    motdInterval = 4;

    // JOINING RULES
    maxPlayers = 16;
    kickDuplicate = 1;
    verifySignatures = 0; // Do NOT use verifySignatures=2! It costs too many FPS
    requiredSecureId = 1; // was used to define type of secureID 1 = warn 2 = kick
    doubleIdDetected = "kick (_this select 0)"; // command to run if a player has the same ID as another player in the server

    // VOTING
    voteMissionPlayers = 200;
    voteThreshold = 200;
    allowedVoteCmds[] = {};
    allowedVotedAdminCmds[] = {};

    // INGAME SETTINGS
    disableVoN = 0;
    vonCodecQuality = 30;
    persistent = 1;
    timeStampFormat = "short";
    equalModRequired = 0;
    kickClientsOnSlowNetwork = 0;
    BattlEye = 1;
    requiredBuild = 141764; // 1.70 stable

    allowedLoadFileExtensions[] = {:};
    allowedPreprocessFileExtensions[] = {"sqf"};
    allowedHTMLLoadExtensions[] = {"html"};

    // SCRIPTING ISSUES
    onUserConnected = "";
    onUserDisconnected = "";
    //doubleIdDetected = "";
    regularCheck="";

    // SIGNATURE VERIFICATION
    onUnsignedData = "kick (_this select 0)";
    onHackedData = "kick (_this select 0)";
    onDifferentData = "";

    //MISSION CYCLE

    class Missions
    {};

     

    Please help me

     

    Greeting Stefan


  3. Hello, I love this mod. Really nice. Good work.

     

    Please can sombebody help me,

     

    I have a Problem. I want to expand my loot table, but I don´t know, what ist the ammo for the classes:

    The item-names are from the mod

     

    Pistol: 8Rnd_45GAP_Magazine + 8Rnd_45Super_Magazine + 8Rnd_45ACP_Magazine + 8Rnd_9x19_Magazine + 6Rnd_357M_Magazine - correct ?? 

     

    Shot Gun: 2Rnd_00_Buckshot_Magazine + 2Rnd_Slug_Magazine + 6Rnd_00_Buckshot_Magazine + 6Rnd_Slug_Magazine - correct ?? 

     

    Assault Rifle: 30Rnd_762x39_Magazine + 10Rnd_303_Magazine  - correct ?? 

     

    Sniper Rifles: 5Rnd_338LM_Magazine + 5Rnd_APDS_338LM_Magazine - correct ?? 

     

    And I need help for the optics:

     

    bnae_truglo_blk_virtual    pistol ? assault rifle ? sniper ? shotgun ?
    bnae_truglo_snd_virtual   pistol ? assault rifle ? sniper ? shotgun ?
    bnae_scope_blk_virtual    pistol ? assault rifle ? sniper ? shotgun ?
    bnae_scope_snd_virtual   pistol ? assault rifle ? sniper ? shotgun ?
    bnae_scope_v2_virtual     pistol ? assault rifle ? sniper ?  shotgun ?
    bnae_scope_v3_virtual    pistol ? assault rifle ? sniper ?  shotgun ?
    bnae_reddot_virtual       pistol ? assault rifle ? sniper ?   shotgun ?

     

    And finally for the muzzle attachments:

     

    class bnae_muzzle_blk_virtual  pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_muzzle_snd_virtual  pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_silencer_virtual  pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_suppressor_blk_virtual   pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_suppressor_covblk_virtual   pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_suppressor_covdrt_virtual   pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_suppressor_v2_virtual   pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_suppressor_v3_virtual   pistol ? assault rifle ? sniper ?  shotgun ?
    class bnae_suppressor_v4_virtual   pistol ? assault rifle ? sniper ? shotgun ?

     

    Is there a list ?

     

    Many thanks to all of you

    Steven

     

     

×