Reverting to 1.7.4 Chopper Crash?

PwNgu1n

New Member
The server I run is a LAN server for my friends and I and as such is not up unless we are playing on it. The chopper crash revisions (spawn in over time) is great for servers with 100% uptime, but doesn't mesh well with how I use my server. I tried reverting to the previous chopper crash method by just inserting the old code back into the files while commenting out the new system, but for some reason this removed the smoke and fire from the sites, making them pretty tough to spot. What I'm wondering is if anyone has a more elegant way to revert the chopper crash script, or how to get the smoke/fire working in the method I used.
 
I remember there being a thread somewhere on here for that same thing. It may be in the Support forum.
 
Add this to your init.sqf

Code:
{
		nul = [_x, 2, time, false, false] spawn BIS_Effects_Burn;
	} forEach allMissionObjects "UH1Wreck_DZ";

Tapnięte za pomocą HTC Desire S
 
I'll try that out right now, thanks!

EDIT: I tried it with no luck, I've managed to get the helicopters spawning using the old method but still no dice on the fire/smoke. Here is my server_functions.sqf:
Code:
waituntil {!isnil "bis_fnc_init"};
 
BIS_MPF_remoteExecutionServer = {
    if ((_this select 1) select 2 == "JIPrequest") then {
        [nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE;
    };
};
 
BIS_Effects_Burn =            {};
server_playerLogin =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
server_playerSetup =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf";
server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";
server_updateObject =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
server_playerDied =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
server_publishObj =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf";    //Creates the object in DB
server_deleteObj =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf";    //Removes the object from the DB
server_playerSync =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
zombie_findOwner =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";
server_updateNearbyObjects =    compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf";
//server_spawnCrashSite  =    compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf";
 
vehicle_handleInteract = {
    private["_object"];
    _object = _this select 0;
    needUpdate_objects = needUpdate_objects - [_object];
    [_object, "all"] call server_updateObject;
};
 
vehicle_handleServerKilled = {
    private["_unit","_killer"];
    _unit = _this select 0;
    _killer = _this select 1;
       
    [_unit, "killed"] call server_updateObject;
   
    _unit removeAllMPEventHandlers "MPKilled";
    _unit removeAllEventHandlers "Killed";
    _unit removeAllEventHandlers "HandleDamage";
    _unit removeAllEventHandlers "GetIn";
    _unit removeAllEventHandlers "GetOut";
};
 
check_publishobject = {
    private["_allowed","_allowedObjects","_object"];
 
    _object = _this select 0;
    _playername = _this select 1;
    _allowedObjects = ["TentStorage", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Wire_cat1"];
    _allowed = false;
 
    diag_log format ["DEBUG: Checking if Object: %1 is allowed published by %2", _object, _playername];
 
    if ((typeOf _object) in _allowedObjects) then {
        diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername];
        _allowed = true;
    };
 
    _allowed
};
 
//event Handlers
eh_localCleanup = {
    private ["_object"];
    _object = _this select 0;
    _object addEventHandler ["local", {
        if(_this select 1) then {
            private["_type","_unit"];
            _unit = _this select 0;
            _type = typeOf _unit;
            _myGroupUnit = group _unit;
            _unit removeAllMPEventHandlers "mpkilled";
            _unit removeAllMPEventHandlers "mphit";
            _unit removeAllMPEventHandlers "mprespawn";
            _unit removeAllEventHandlers "FiredNear";
            _unit removeAllEventHandlers "HandleDamage";
            _unit removeAllEventHandlers "Killed";
            _unit removeAllEventHandlers "Fired";
            _unit removeAllEventHandlers "GetOut";
            _unit removeAllEventHandlers "GetIn";
            _unit removeAllEventHandlers "Local";
            clearVehicleInit _unit;
            deleteVehicle _unit;
            deleteGroup _myGroupUnit;
            _unit = nil;
            diag_log ("CLEANUP: DELETED A " + str(_type) );
        };
    }];
};
 
server_hiveWrite = {
    private["_data"];
    //diag_log ("ATTEMPT WRITE: " + _this);
    _data = "HiveExt" callExtension _this;
    //diag_log ("WRITE: " +str(_data));
};
 
server_hiveReadWrite = {
    private["_key","_resultArray","_data"];
    _key = _this;
    //diag_log ("ATTEMPT READ/WRITE: " + _key);
    _data = "HiveExt" callExtension _key;
    //diag_log ("READ/WRITE: " +str(_data));
    _resultArray = call compile format ["%1",_data];
    _resultArray
};
 
spawn_heliCrash = {
    private["_position","_veh","_num","_config","_itemType","_itemChance","_weights","_index","_iArray"];
   
    waitUntil{!isNil "BIS_fnc_selectRandom"};
    if (isDedicated) then {
    _position = [getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos;
    diag_log("DEBUG: Spawning a crashed helicopter at " + str(_position));
    _veh = createVehicle ["UH1Wreck_DZ",_position, [], 0, "CAN_COLLIDE"];
    dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_veh];
    _veh setVariable ["ObjectID",1,true];
    dayzFire = [_veh,2,time,false,false];
    publicVariable "dayzFire";
    if (isServer) then {
        nul=dayzFire spawn BIS_Effects_Burn;
    };
    _num = round(random 4) + 6;
    _config =        configFile >> "CfgBuildingLoot" >> "HeliCrash";
    _itemType =        [] + getArray (_config >> "itemType");
    //diag_log ("DW_DEBUG: _itemType: " + str(_itemType));   
    _itemChance =    [] + getArray (_config >> "itemChance");
    //diag_log ("DW_DEBUG: _itemChance: " + str(_itemChance));   
    //diag_log ("DW_DEBUG: (isnil fnc_buildWeightedArray): " + str(isnil "fnc_buildWeightedArray"));   
   
    waituntil {!isnil "fnc_buildWeightedArray"};
   
    _weights = [];
    _weights =        [_itemType,_itemChance] call fnc_buildWeightedArray;
    //diag_log ("DW_DEBUG: _weights: " + str(_weights));   
    for "_x" from 1 to _num do {
        //create loot
        _index = _weights call BIS_fnc_selectRandom;
        sleep 1;
        if (count _itemType > _index) then {
            //diag_log ("DW_DEBUG: " + str(count (_itemType)) + " select " + str(_index));
            _iArray = _itemType select _index;
            _iArray set [2,_position];
            _iArray set [3,5];
            _iArray call spawn_loot;
            _nearby = _position nearObjects ["WeaponHolder",20];
            {
                _x setVariable ["permaLoot",true];
            } forEach _nearBy;
        };
    };
    };
};
 
{
        nul = [_x, 2, time, false, false] spawn BIS_Effects_Burn;
    } forEach allMissionObjects "UH1Wreck_DZ";
 
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];
    //diag_log ("HIVE: WRITE: "+ str(_key) + " / " + _characterID);
    _key call server_hiveWrite;
};
 
//onPlayerConnected        "[_uid,_name] spawn server_onPlayerConnect;";
onPlayerDisconnected        "[_uid,_name] call server_onPlayerDisconnect;";
 
server_getDiff =    {
    private["_variable","_object","_vNew","_vOld","_result"];
    _variable = _this select 0;
    _object =    _this select 1;
    _vNew =    _object getVariable[_variable,0];
    _vOld =    _object getVariable[(_variable + "_CHK"),_vNew];
    _result =    0;
    if (_vNew < _vOld) then {
        //JIP issues
        _vNew = _vNew + _vOld;
        _object getVariable[(_variable + "_CHK"),_vNew];
    } else {
        _result = _vNew - _vOld;
        _object setVariable[(_variable + "_CHK"),_vNew];
    };
    _result
};
 
server_getDiff2 =    {
    private["_variable","_object","_vNew","_vOld","_result"];
    _variable = _this select 0;
    _object =    _this select 1;
    _vNew =    _object getVariable[_variable,0];
    _vOld =    _object getVariable[(_variable + "_CHK"),_vNew];
    _result = _vNew - _vOld;
    _object setVariable[(_variable + "_CHK"),_vNew];
    _result
};
 
dayz_objectUID = {
    private["_position","_dir","_key","_object"];
    _object = _this;
    _position = getPosATL _object;
    _dir = direction _object;
    _key = [_dir,_position] call dayz_objectUID2;
    _key
};
 
dayz_objectUID2 = {
    private["_position","_dir","_key"];
    _dir = _this select 0;
    _key = "";
    _position = _this select 1;
    {
        _x = _x * 10;
        if ( _x < 0 ) then { _x = _x * -10 };
        _key = _key + str(round(_x));
    } forEach _position;
    _key = _key + str(round(_dir));
    _key
};
 
dayz_recordLogin = {
    private["_key"];
    _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
    _key call server_hiveWrite;
};
 
Back
Top