Vanilla DayZ Mod 1.8.4.1 questions

Discussion in 'Server / Admin Tools and Discussions.' started by Morfa, Feb 26, 2015.

  1. Morfa

    Morfa Member

    Joined:
    Nov 12, 2013
    Messages:
    35
    Likes Received:
    0
    Hello,
    I have 2 questions.
    1. How can I add vehicles random spawn on map (in epoch I had to edit init.sqf)
    2. I have a problem with infistar, when I turn on batteye it kick me.
    Code:
    24.02.2015 22:45:34: Morfa (194.61.68.160:2304) 1007fd26fbe3eca10352b824baf5e318 - #38 "};
    };
    
    if (isNull _grp) then { _grp = group ((allmissionobjects 'FunctionsManager') select 0); };
    if (!isNull _grp) then {
    _list"

    thanks for help :)
     
  2. ShootingBlanks

    ShootingBlanks OpenDayZ Guru!

    Joined:
    Mar 31, 2013
    Messages:
    2,421
    Likes Received:
    336
    that looks like it is saying you are having a script restriction number 38 so look on your scripts.txt and see what that is. it looks like it might be the groups management.

    first of all, why would anyone WANT to spawn vehicles randomly like in epoch, that is the lamest part of the epoch system. dayz has always had the system where you enter the vehicle loctions into the database so they spawn in proper locations.
    but if that is not what you want, then you can copy the epoch spawn vehicle code into dayz i am sure. it should just be the config file and a single spawning file.
     
    SchwEde likes this.
  3. SchwEde

    SchwEde OpenDayZ Rockstar!

    Joined:
    Jul 11, 2013
    Messages:
    989
    Likes Received:
    177
    i also like the vanilla dayz vehicle spawn more then the epoch, simply because it bothers me that you just have to run along a street to find a car, thats sounds pretty lazy ;P

    the problem with battleye: Why dont you just use the BE-Filters which Chris sent to you with infistar?!
     
  4. ShootingBlanks

    ShootingBlanks OpenDayZ Guru!

    Joined:
    Mar 31, 2013
    Messages:
    2,421
    Likes Received:
    336
    To use the epoch dynamic vehicle spawn .. TRY THIS ... not guaranteed to work and untested.

    Edit your init.sqf and add this right below
    progressLoadingScreen 1.0;
    Code:
    MaxVehicleLimit = 200; // Default = 50
    if (isServer) then {
        call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\dynamic_vehicle.sqf";
    };
    
    copy the dyanamic_vehicle.sqf file from epochs dayz_server/missions/dayz_epoch_11.chernarus/ folder into your dayz_server/init folder

    edit your dayz_server/init/server_functions.sqf file and find this code block at the top
    Code:
    server_characterSync = {
        private ["_characterID","_playerPos","_playerGear","_playerBackp","_medical","_currentState","_currentModel","_key"];
        _characterID =     _this select 0;   
        _playerPos =    _this select 1;
        _playerGear =    _this select 2;
        _playerBackp =    _this select 3;
        _medical =         _this select 4;
        _currentState =    _this select 5;
        _currentModel = _this select 6;
       
        _key = format["CHILD:201:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:",_characterID,_playerPos,_playerGear,_playerBackp,_medical,false,false,0,0,0,0,_currentState,0,0,_currentModel,0];
        _key call server_hiveWrite;
    };
    
    Insert this RIGHT BELOW the above code

    Code:
    if(isnil "dayz_MapArea") then {
        dayz_MapArea = 10000;
    };
    if(isnil "DynamicVehicleArea") then {
        DynamicVehicleArea = dayz_MapArea / 2;
    };
    
    // Get all buildings && roads only once TODO: set variables to nil after done if nessicary 
    MarkerPosition = getMarkerPos "center";
    RoadList = MarkerPosition nearRoads DynamicVehicleArea;
    
    // Very taxing !!! but only on first startup
    BuildingList = [];
    {
        if (DZE_MissionLootTable) then {
            if (isClass (missionConfigFile >> "CfgBuildingLoot" >> (typeOf _x))) then
            {
                    BuildingList set [count BuildingList,_x];
            };
        } else {
            if (isClass (configFile >> "CfgBuildingLoot" >> (typeOf _x))) then
            {
                BuildingList set [count BuildingList,_x];
            };
        };
       
       
    } count (MarkerPosition nearObjects ["building",DynamicVehicleArea]);
    
    spawn_vehicles = {
        private ["_random","_lastIndex","_weights","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"];
       
        if (!isDedicated) exitWith { }; //Be sure the run this
    
        while {count AllowedVehiclesList > 0} do {
            // BIS_fnc_selectRandom replaced because the index may be needed to remove the element
            _index = floor random count AllowedVehiclesList;
            _random = AllowedVehiclesList select _index;
    
            _vehicle = _random select 0;
            _velimit = _random select 1;
    
            _qty = {_x == _vehicle} count serverVehicleCounter;
    
            // If under limit allow to proceed
            if (_qty <= _velimit) exitWith {};
    
            // vehicle limit reached, remove vehicle from list
            // since elements cannot be removed from an array, overwrite it with the last element && cut the last element of (as long as order is not important)
            _lastIndex = (count AllowedVehiclesList) - 1;
            if (_lastIndex != _index) then {
                AllowedVehiclesList set [_index, AllowedVehiclesList select _lastIndex];
            };
            AllowedVehiclesList resize _lastIndex;
        };
    
        if (count AllowedVehiclesList == 0) then {
            diag_log("DEBUG: unable to find suitable vehicle to spawn");
        } else {
    
            // add vehicle to counter for next pass
            serverVehicleCounter set [count serverVehicleCounter,_vehicle];
       
            // Find Vehicle Type to better control spawns
            _isAir = _vehicle isKindOf "Air";
            _isShip = _vehicle isKindOf "Ship";
       
            if(_isShip || _isAir) then {
                if(_isShip) then {
                    // Spawn anywhere on coast on water
                    waitUntil{!isNil "BIS_fnc_findSafePos"};
                    _position = [MarkerPosition,0,DynamicVehicleArea,10,1,2000,1] call BIS_fnc_findSafePos;
                    //diag_log("DEBUG: spawning boat near coast " + str(_position));
                } else {
                    // Spawn air anywhere that is flat
                    waitUntil{!isNil "BIS_fnc_findSafePos"};
                    _position = [MarkerPosition,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos;
                    //diag_log("DEBUG: spawning air anywhere flat " + str(_position));
                };
           
           
            } else {
                // Spawn around buildings && 50% near roads
                if((random 1) > 0.5) then {
               
                    waitUntil{!isNil "BIS_fnc_selectRandom"};
                    _position = RoadList call BIS_fnc_selectRandom;
               
                    _position = _position modelToWorld [0,0,0];
               
                    waitUntil{!isNil "BIS_fnc_findSafePos"};
                    _position = [_position,0,10,10,0,2000,0] call BIS_fnc_findSafePos;
               
                    //diag_log("DEBUG: spawning near road " + str(_position));
               
                } else {
               
                    waitUntil{!isNil "BIS_fnc_selectRandom"};
                    _position = BuildingList call BIS_fnc_selectRandom;
               
                    _position = _position modelToWorld [0,0,0];
               
                    waitUntil{!isNil "BIS_fnc_findSafePos"};
                    _position = [_position,0,40,5,0,2000,0] call BIS_fnc_findSafePos;
               
                    //diag_log("DEBUG: spawning around buildings " + str(_position));
           
                };
            };
            // only proceed if two params otherwise BIS_fnc_findSafePos failed && may spawn in air
            if ((count _position) == 2) then { 
       
                _dir = round(random 180);
           
                _istoomany = _position nearObjects ["AllVehicles",50];
                if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many vehicles at " + str(_position)); };
           
                //place vehicle 
                _veh = createVehicle [_vehicle, _position, [], 0, "CAN_COLLIDE"];
                _veh setdir _dir;
                _veh setpos _position;       
               
                if(DZEdebug) then {
                    _marker = createMarker [str(_position) , _position];
                    _marker setMarkerShape "ICON";
                    _marker setMarkerType "DOT";
                    _marker setMarkerText _vehicle;
                };   
           
                // Get position with ground
                _objPosition = getPosATL _veh;
           
                clearWeaponCargoGlobal  _veh;
                clearMagazineCargoGlobal  _veh;
                // _veh setVehicleAmmo DZE_vehicleAmmo;
    
                // Add 0-3 loots to vehicle using random cfgloots 
                _num = floor(random 4);
                _allCfgLoots = ["trash","civilian","food","generic","medical","military","policeman","hunter","worker","clothes","militaryclothes","specialclothes","trash"];
               
                for "_x" from 1 to _num do {
                    _iClass = _allCfgLoots call BIS_fnc_selectRandom;
    
                    _itemTypes = [];
                    if (DZE_MissionLootTable) then{
                        {
                            _itemTypes set[count _itemTypes, _x select 0]
                        } count getArray(missionConfigFile >> "cfgLoot" >> _iClass);
                    }
                    else {
                        {
                            _itemTypes set[count _itemTypes, _x select 0]
                        } count getArray(configFile >> "cfgLoot" >> _iClass);
                    };
    
                    _index = dayz_CLBase find _iClass;
                    _weights = dayz_CLChances select _index;
                    _cntWeights = count _weights;
                   
                    _index = floor(random _cntWeights);
                    _index = _weights select _index;
                    _itemType = _itemTypes select _index;
                    _veh addMagazineCargoGlobal [_itemType,1];
                    //diag_log("DEBUG: spawed loot inside vehicle " + str(_itemType));
                };
    
                [_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh;
            };
        };
    
    
     
    SchwEde likes this.
  5. Morfa

    Morfa Member

    Joined:
    Nov 12, 2013
    Messages:
    35
    Likes Received:
    0
  6. Morfa

    Morfa Member

    Joined:
    Nov 12, 2013
    Messages:
    35
    Likes Received:
    0
    dump
     

Share This Page