Vanilla DayZ Mod 1.8.4.1 questions

Morfa

Member
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 :)
 
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.
 
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?!
 
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;
        };
    };
 
Back
Top