Jump to content
  • 0

Epoch 1.0.2.4 Side Missions not working. Any Idea Why?


PsychoSyd

Question

Hey There!

 

I'm relatively new to the community, and also new to the whole scripting thing, so please forgive any noobish mistakes from the get go.

I'm running DayZ 1.8.0.2 with Epoch 1.0.2.4 with Arma 2 Beta Build 103718 on a Nitrado.net server hosting in Europe.

I have a number of mods installed including:

- self blood bag

-auto refuel

-house lights at night

-DzAI

-Sarge AI (I know, I know, it's probably overkill, but I wanted an AI war!)

 

I've TRIED to install animated heli crash sites and side missions, but to no avail. 

As you probably know, not having side missions on a low population server can get pretty boring...so it's essential that I get the side missions up and running.

 

I've also placed a bunch of custom buildings (which I've found here and in the great DayZ community), and was forced to place them on the mission PBO, because they weren't showing up on the Server PBO. 

I really wanted to have the AI be able to use them as static bases and cover, but of course, if the files are on the mission pbo, the AI won't see the buildings......

 

I've provided links to both the PBOs and I would be grateful for anyone to take a peak and let me know what I've done wrong.

 

Mission PBO (/dayz/mpmissions)

http://www.mediafire.com/?rasr18f47z44f1f

 

Server PBO (/dayz/@DayZ_Epoch_Server/addons)

http://www.mediafire.com/?b4hm5bmu3dqtgme

 

Looking forward to your input.

PsychoSyd

 

 

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

You are not adding the buildings correctly the the Server pbo

 

buildings should be in a folder like "buildings" or "custom" or whatever you want to call it in "\dayz_server\init\"

 

and at the end of server_functions.sqf your lines should look like

execVM "\z\addons\dayz_server\init\custom\buildings.sqf"; //(buildings.sqf = example)

In general thing seem like a bit of a mess in both pbo's. IE. I see you have the following at the bottom of the functions:

fnc_hTime = compile preprocessFile "\z\addons\dayz_server\Missions\misc\fnc_hTime.sqf"; //Random integer selector for mission wait time

but you already have that at the top of the file where it is suppose to be...

 

With the things you have I can see the server struggling under load.

 

Also what Side Missions are you using? You should make sure it is one that is actually still working like this one: https://github.com/lazyink/DayZ-Missions

 

GL!

Link to comment
Share on other sites

  • 0

Wow. I'm trying to read Chinese, and you're seeing hot chics in the code!

 

040813145704_7.jpg

 

Thanks for taking the time to look at my PBOs!  

I changed the location of the buildings in the server PBO, but still no dice. They're still not showing up (in game) if I have them there. If I put them back on the mission pbo, they show up fine.

I've also deleted that double entry as you suggested, and tried to install the side missions from your link, but that's not working either.

 

Here are the udpated PBOs:

 

Mission PBO (/dayz/mpmissions)

http://www.mediafire.com/download/8r3tle9ys7x4xpm/dayz_private_1.epoch.chernarus(2).pbo

 

Server PBO (/dayz/@DayZ_Epoch_Server/addons)

http://www.mediafire.com/download/m2wwpehk85vejdf/dayz_server(2).pbo

 

*Praying for a miracle*

Link to comment
Share on other sites

  • 0
:)
 
You can remove the following lines from your server_functions.sqf at the top
 
fn_bases = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fn_bases.sqf";

and now you have the fnc_hTime twice at the top also... remove the one

fnc_hTime = compile preprocessFile "\z\addons\dayz_server\Missions\misc\fnc_hTime.sqf"; //Random integer selector for mission wait time

What is with that AH line at the bottom? Is it not just suppose to be a simple:  #include "ah.sqf" ?

(I can only guess its your host's  own ah crap maybe?)

 

You are missing the exec line from your init.sqf in your missions pbo for the Missions

[] execVM "faction.sqf";

I've just quickly looked over it as I'm rather busy with work atm, but Missions should be fine if you add the init part. Not sure why your buildings is not showing as it looks right. Must be something else.

 

GL

Link to comment
Share on other sites

  • 0

Hey LimpNoodle,

 

Thanks again for taking the time to look at the PBOs. I've removed the fn_bases line from the server_functions.sqf 

and i've removed one of the fnc_hTime lines as well.

 

The AH line at the bottom...jeez, I have no idea! You're right though, that could be a hosting provider code or something.

 

I've also added the execVM line to the PBO, but still no love....missions aren't showing up....

 

Here are the newly updated PBOs with your suggested changes:

http://www.mediafire.com/download/1vucidd7pdbfhng/dayz_private_1.epoch.chernarus(3).pbo

 

http://www.mediafire.com/download/6h387ujrmxqonj1/dayz_server(3).pbo

Link to comment
Share on other sites

  • 0

Hey Guys,

 

I'm still stumped, anyone else want to take a gander at my PBOs and tell me why my missions aren't working? I'd really appreciate it! I mean the 3 people that actually play on my server will be MORTIFIED if I never get the missions up and running,...just sayin'....

 

Thanks,

PsychoSyd

 

 

Here are the newly updated PBOs:

 

Mission PBO (/dayz/mpmissions)

http://www.mediafire...hernarus(3).pbo

 

Server PBO (/dayz/@DayZ_Epoch_Server/addons)

http://www.mediafire...z_server(3).pbo

Link to comment
Share on other sites

  • 0

I've tried various methods to get the side missions working. I assume that either:

A.  I broke the code, because I don't fully understand scripting (more than likely!)

B. One of the other installed mods is preventing the side missions from being triggered.

 

I'm going to try to remove the other mods one by one to see if one of them is in fact the culprit...

 

I was wondering if however I could use the Epoch Events as a trigger for the side missions....would that be possible? 

 

That may solve my problem. Would it work?

Link to comment
Share on other sites

  • 0

Thanks PsychoSyd, However this is not working for me either. In my Server.pbo file under Server_Function I do not have anything that is talking about =
 


fn_bases = compile preprocessFileLineNumbers;


 
So, This is a problem right off the bat.
Here is my Server_Functions.sqf information

 

 

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_swapObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_swapObject.sqf";
server_publishVeh = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf"; // Custom to add vehicles
server_publishVeh2 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf"; // Custom to add vehicles
server_tradeObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf";
server_traders = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf";
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";
server_handleZedSpawn = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_handleZedSpawn.sqf";
server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";

fnc_plyrHit = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.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";
};

object_handleServerKilled = {
private["_unit","_objectID","_objectUID"];
_unit = _this select 0;

_objectID = _unit getVariable ["ObjectID","0"];
_objectUID = _unit getVariable ["ObjectUID","0"];

[_objectID,_objectUID] call server_deleteObj;

_unit removeAllMPEventHandlers "MPKilled";
_unit removeAllEventHandlers "Killed";
_unit removeAllEventHandlers "HandleDamage";
_unit removeAllEventHandlers "GetIn";
_unit removeAllEventHandlers "GetOut";
};

check_publishobject = {
private["_allowed","_object","_playername"];

_object = _this select 0;
_playername = _this select 1;

_allowed = false;

//diag_log format ["DEBUG: Checking if Object: %1 is allowed published by %2", _object, _playername];

if ((typeOf _object) in dayz_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
};

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;";

// Setup globals allow overwrite from init.sqf
if(isnil "dayz_MapArea") then {
dayz_MapArea = 10000;
};
if(isnil "DynamicVehicleArea") then {
DynamicVehicleArea = dayz_MapArea / 2;
};

// Get all buildings and roads only once TODO: set variables to nil after done if nessicary
MarkerPosition = getMarkerPos "center";
RoadList = MarkerPosition nearRoads DynamicVehicleArea;

BuildingList = [];
{
if (isClass (configFile >> "CfgBuildingLoot" >> (typeOf _x))) then
{
BuildingList set [count BuildingList,_x];
};
} forEach (MarkerPosition nearObjects ["building",DynamicVehicleArea]);

spawn_vehicles = {
private ["_weights","_isOverLimit","_isAbort","_counter","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"];

if (isDedicated) then {

_isOverLimit = true;
_isAbort = false;
_counter = 0;
while {_isOverLimit} do {

waitUntil{!isNil "BIS_fnc_selectRandom"};
_index = AllowedVehiclesList call BIS_fnc_selectRandom;

_vehicle = _index select 0;
_velimit = _index select 1;

_qty = {_x == _vehicle} count serverVehicleCounter;

// If under limit allow to proceed
if(_qty <= _velimit) then {
_isOverLimit = false;
};

// counter to stop after 5 attempts
_counter = _counter + 1;

if(_counter >= 5) then {
_isOverLimit = false;
_isAbort = true;
};
};

if (_isAbort) then {
diag_log("DEBUG: unable to find sutable 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 and 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 and 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 = [] + ((getArray (configFile >> "cfgLoot" >> _iClass)) select 0);
_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;
};
};
};
};

spawn_ammosupply = {
private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
if (isDedicated) then {
_WreckList = ["Supply_Crate_DZE"];
waitUntil{!isNil "BIS_fnc_selectRandom"};
_position = RoadList call BIS_fnc_selectRandom;
_position = _position modelToWorld [0,0,0];
waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [_position,5,20,5,0,2000,0] call BIS_fnc_findSafePos;
if ((count _position) == 2) then {

_istoomany = _position nearObjects ["All",5];

if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many at " + str(_position)); };

_spawnveh = _WreckList call BIS_fnc_selectRandom;

if(DZEdebug) then {
_marker = createMarker [str(_position) , _position];
_marker setMarkerShape "ICON";
_marker setMarkerType "DOT";
_marker setMarkerText str(_spawnveh);
};

_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
_veh enableSimulation false;
_veh setDir round(random 360);
_veh setpos _position;
_veh setVariable ["ObjectID","1",true];
};
};
};


spawn_roadblocks = {
private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
_WreckList = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];

waitUntil{!isNil "BIS_fnc_selectRandom"};
if (isDedicated) then {

_position = RoadList call BIS_fnc_selectRandom;

_position = _position modelToWorld [0,0,0];

waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [_position,0,10,5,0,2000,0] call BIS_fnc_findSafePos;

if ((count _position) == 2) then {
// Get position with ground

_istoomany = _position nearObjects ["All",5];

if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many at " + str(_position)); };

waitUntil{!isNil "BIS_fnc_selectRandom"};
_spawnveh = _WreckList call BIS_fnc_selectRandom;

if(DZEdebug) then {
_marker = createMarker [str(_position) , _position];
_marker setMarkerShape "ICON";
_marker setMarkerType "DOT";
_marker setMarkerText str(_spawnveh);
};

//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
_veh enableSimulation false;

// Randomize placement a bit
_veh setDir round(random 360);
_veh setpos _position;

_veh setVariable ["ObjectID","1",true];
};

};

};

spawn_mineveins = {
private ["_position","_veh","_istoomany","_marker","_spawnveh","_positions"];

if (isDedicated) then {

_position = [getMarkerPos "center",0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos;

if ((count _position) == 2) then {

_positions = selectBestPlaces [_position, 500, "(1 + forest) * (1 + hills) * (1 - houses) * (1 - sea)", 10, 5];

_position = (_positions call BIS_fnc_selectRandom) select 0;

// Get position with ground

_istoomany = _position nearObjects ["All",10];

if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many objects at " + str(_position)); };

if(isOnRoad _position) exitWith { diag_log("DEBUG VEIN: on road " + str(_position)); };

_spawnveh = ["Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Gold_Vein_DZE"] call BIS_fnc_selectRandom;

if(DZEdebug) then {
_marker = createMarker [str(_position) , _position];
_marker setMarkerShape "ICON";
_marker setMarkerType "DOT";
_marker setMarkerText str(_spawnveh);
};

//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
_veh enableSimulation false;

// Randomize placement a bit
_veh setDir round(random 360);
_veh setpos _position;

_veh setVariable ["ObjectID","1",true];


};
};
};

if(isnil "DynamicVehicleDamageLow") then {
DynamicVehicleDamageLow = 0;
};
if(isnil "DynamicVehicleDamageHigh") then {
DynamicVehicleDamageHigh = 100;
};

if(isnil "DynamicVehicleFuelLow") then {
DynamicVehicleFuelLow = 0;
};
if(isnil "DynamicVehicleFuelHigh") then {
DynamicVehicleFuelHigh = 100;
};

// Damage generator function
generate_new_damage = {
private ["_damage"];
_damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;
_damage;
};

// Damage generator fuction
generate_exp_damage = {
private ["_damage"];
_damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;

// limit this to 85% since vehicle would blow up otherwise.
//if(_damage >= 0.85) then {
// _damage = 0.85;
//};
_damage;
};

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_objectUID3 = {
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 + time));
_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;
};

server_cleanDead = {
private ["_objectPos","_noPlayerNear"];
{
_objectPos = getPosATL _x;
_noPlayerNear = {isPlayer _x} count (_objectPos nearEntities ["CAManBase",35]) == 0;
if (_noPlayerNear) then
{
if (_x isKindOf "zZombie_Base") then
{
deleteVehicle _x;
};
};
} forEach allDead;
};
server_cleanLoot =
{
private ["_deletedLoot","_startTime","_looted","_objectPos","_noPlayerNear","_nearObj"];

_deletedLoot = 0;
_startTime = diag_tickTime;

{
_looted = (_x getVariable ["looted",-0.1]);
if (_looted != -0.1) then
{
_objectPos = getPosATL _x;
_noPlayerNear = {isPlayer _x} count (_objectPos nearEntities ["CAManBase",35]) == 0;

if (_noPlayerNear) then
{
_nearObj = nearestObjects [_objectPos,["ReammoBox","WeaponHolder","WeaponHolderBase"],((sizeOf (typeOf _x)) + 5)];
{
deleteVehicle _x;
_deletedLoot = _deletedLoot + 1;
} forEach _nearObj;
_x setVariable ["looted",-0.1,true];
};
};
} forEach BuildingList;

_endTime = diag_tickTime;

diag_log (format["CLEANUP: DELETED %1 ITEMS, RUNTIME: %2",_deletedLoot,(_endTime - _startTime)]);
};

 

So, It is not clear where to add the mission information to my PBO.

 

Thanks

Link to comment
Share on other sites

  • 0

Add:

fnc_hTime = compile preprocessFile "\z\addons\dayz_server\Missions\misc\fnc_hTime.sqf"; //Random integer selector for mission wait time

Right under:

server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";

It'll work fine.

Link to comment
Share on other sites

  • 0

Add:

fnc_hTime = compile preprocessFile "\z\addons\dayz_server\Missions\misc\fnc_hTime.sqf"; //Random integer selector for mission wait time

Right under:

server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";

It'll work fine.

 

Hi guys,

 

Sorry kind of forgot about this with all the work I have. Do what fr1nk said. Just ignore the fn_bases = compile preprocessFileLineNumbers; as that is something that you will see on normal Chernarus.

If things are like that and u followed the github then it will or should work just fine.

Link to comment
Share on other sites

  • 0

Hey Guys,

 

Thanks for the input. Well, I did as suggested, and still no luck. Here's my server_functions.sqf

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_swapObject =			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_swapObject.sqf"; 
server_publishVeh = 		compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf"; // Custom to add vehicles
server_publishVeh2 = 		compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf"; // Custom to add vehicles
server_tradeObj = 			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf";
server_traders = 			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf";
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";
server_handleZedSpawn =		compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_handleZedSpawn.sqf";
server_spawnEvents =			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";
fnc_hTime = compile preprocessFile "\z\addons\dayz_server\Missions\misc\fnc_hTime.sqf"; //Random integer selector for mission wait time
fnc_plyrHit   = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.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";
};

object_handleServerKilled = {
	private["_unit","_objectID","_objectUID"];
	_unit = _this select 0;
	
	_objectID =	 _unit getVariable ["ObjectID","0"];
	_objectUID = _unit getVariable ["ObjectUID","0"];
		
	[_objectID,_objectUID] call server_deleteObj;
	
	_unit removeAllMPEventHandlers "MPKilled";
	_unit removeAllEventHandlers "Killed";
	_unit removeAllEventHandlers "HandleDamage";
	_unit removeAllEventHandlers "GetIn";
	_unit removeAllEventHandlers "GetOut";
};

check_publishobject = {
	private["_allowed","_object","_playername"];

	_object = _this select 0;
	_playername = _this select 1;
	
	_allowed = false;
       
	//diag_log format ["DEBUG: Checking if Object: %1 is allowed published by %2", _object, _playername];

	if ((typeOf _object) in dayz_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
};

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;";

// Setup globals allow overwrite from init.sqf
if(isnil "dayz_MapArea") then {
	dayz_MapArea = 10000;
};
if(isnil "DynamicVehicleArea") then {
	DynamicVehicleArea = dayz_MapArea / 2;
};

// Get all buildings and roads only once TODO: set variables to nil after done if nessicary 
MarkerPosition = getMarkerPos "center";
RoadList = MarkerPosition nearRoads DynamicVehicleArea;

BuildingList = [];
{
	if (isClass (configFile >> "CfgBuildingLoot" >> (typeOf _x))) then
	{
		BuildingList set [count BuildingList,_x];
	};
} forEach (MarkerPosition nearObjects ["building",DynamicVehicleArea]);

spawn_vehicles = {
	private ["_weights","_isOverLimit","_isAbort","_counter","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"];
	
	if (isDedicated) then {
		
		_isOverLimit = true;
		_isAbort = false;
		_counter = 0;
		while {_isOverLimit} do {

			waitUntil{!isNil "BIS_fnc_selectRandom"};
			_index = AllowedVehiclesList call BIS_fnc_selectRandom;

			_vehicle = _index select 0;
			_velimit = _index select 1;

			_qty = {_x == _vehicle} count serverVehicleCounter;

			// If under limit allow to proceed
			if(_qty <= _velimit) then {
				_isOverLimit = false;
			};

			// counter to stop after 5 attempts
			_counter = _counter + 1;

			if(_counter >= 5) then {
				_isOverLimit = false;
				_isAbort = true;
			};
		};

		if (_isAbort) then {
			diag_log("DEBUG: unable to find sutable 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 and 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 and 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 = [] + ((getArray (configFile >> "cfgLoot" >> _iClass)) select 0);
					_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;
			};
		};
	};
};

spawn_ammosupply = {
	private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
	if (isDedicated) then {
		_WreckList = ["Supply_Crate_DZE"];
		waitUntil{!isNil "BIS_fnc_selectRandom"};
		_position = RoadList call BIS_fnc_selectRandom;
		_position = _position modelToWorld [0,0,0];
		waitUntil{!isNil "BIS_fnc_findSafePos"};
		_position = [_position,5,20,5,0,2000,0] call BIS_fnc_findSafePos;
		if ((count _position) == 2) then {

			_istoomany = _position nearObjects ["All",5];
			
			if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many at " + str(_position)); };
			
			_spawnveh = _WreckList call BIS_fnc_selectRandom;

			if(DZEdebug) then {
				_marker = createMarker [str(_position) , _position];
				_marker setMarkerShape "ICON";
				_marker setMarkerType "DOT";
				_marker setMarkerText str(_spawnveh);
			};
			
			_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
			_veh enableSimulation false;
			_veh setDir round(random 360);
			_veh setpos _position;
			_veh setVariable ["ObjectID","1",true];
		};
	};
};


spawn_roadblocks = {
	private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
	_WreckList = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
	
	waitUntil{!isNil "BIS_fnc_selectRandom"};
	if (isDedicated) then {
	
		_position = RoadList call BIS_fnc_selectRandom;
		
		_position = _position modelToWorld [0,0,0];
		
		waitUntil{!isNil "BIS_fnc_findSafePos"};
		_position = [_position,0,10,5,0,2000,0] call BIS_fnc_findSafePos;
		
		if ((count _position) == 2) then {
			// Get position with ground
			
			_istoomany = _position nearObjects ["All",5];
		
			if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many at " + str(_position)); };
			
			waitUntil{!isNil "BIS_fnc_selectRandom"};
			_spawnveh = _WreckList call BIS_fnc_selectRandom;

			if(DZEdebug) then {
				_marker = createMarker [str(_position) , _position];
				_marker setMarkerShape "ICON";
				_marker setMarkerType "DOT";
				_marker setMarkerText str(_spawnveh);
			};
			
			//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
			_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
			_veh enableSimulation false;

			// Randomize placement a bit
			_veh setDir round(random 360);
			_veh setpos _position;

			_veh setVariable ["ObjectID","1",true];
		};
	
	};
	
};

spawn_mineveins = {
	private ["_position","_veh","_istoomany","_marker","_spawnveh","_positions"];

	if (isDedicated) then {
		
		_position = [getMarkerPos "center",0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos;

		if ((count _position) == 2) then {
			
			_positions = selectBestPlaces [_position, 500, "(1 + forest) * (1 + hills) * (1 - houses) * (1 - sea)", 10, 5];

			_position = (_positions call BIS_fnc_selectRandom) select 0;

			// Get position with ground
			
			_istoomany = _position nearObjects ["All",10];
		
			if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many objects at " + str(_position)); };

			if(isOnRoad _position) exitWith { diag_log("DEBUG VEIN: on road " + str(_position)); };
			
			_spawnveh = ["Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Gold_Vein_DZE"] call BIS_fnc_selectRandom;

			if(DZEdebug) then {
				_marker = createMarker [str(_position) , _position];
				_marker setMarkerShape "ICON";
				_marker setMarkerType "DOT";
				_marker setMarkerText str(_spawnveh);
			};
			
			//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
			_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
			_veh enableSimulation false;

			// Randomize placement a bit
			_veh setDir round(random 360);
			_veh setpos _position;

			_veh setVariable ["ObjectID","1",true];

		
		};
	};
};

if(isnil "DynamicVehicleDamageLow") then {
	DynamicVehicleDamageLow = 0;
};
if(isnil "DynamicVehicleDamageHigh") then {
	DynamicVehicleDamageHigh = 100;
};

if(isnil "DynamicVehicleFuelLow") then {
	DynamicVehicleFuelLow = 0;
};
if(isnil "DynamicVehicleFuelHigh") then {
	DynamicVehicleFuelHigh = 100;
};

// Damage generator function
generate_new_damage = {
	private ["_damage"];
    _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;
	_damage;
};

// Damage generator fuction
generate_exp_damage = {
	private ["_damage"];
    _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;
	
	// limit this to 85% since vehicle would blow up otherwise.
	//if(_damage >= 0.85) then {
	//	_damage = 0.85;
	//};
	_damage;
};

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_objectUID3 = {
	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 + time));
	_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;
};

//----------InitMissions--------//
MissionGo = 0;
MissionGoMinor = 0;
if (isServer) then { 
SMarray = ["SM1","SM2","SM3","SM4","SM5","SM6"];
[] execVM "\z\addons\dayz_server\missions\major\SMfinder.sqf"; //Starts major mission system
SMarray2 = ["SM1","SM2","SM3","SM4","SM5","SM6"];
[] execVM "\z\addons\dayz_server\missions\minor\SMfinder.sqf"; //Starts minor mission system
};
//---------EndInitMissions------//

server_cleanDead = {
	private ["_objectPos","_noPlayerNear"];
	{
		_objectPos = getPosATL _x;
		_noPlayerNear = {isPlayer _x} count (_objectPos nearEntities ["CAManBase",35]) == 0;
		if (_noPlayerNear) then
		{
			if (_x isKindOf "zZombie_Base") then
			{
				deleteVehicle _x;
			};
		};
	} forEach allDead;
};
server_cleanLoot =
{
private ["_deletedLoot","_startTime","_looted","_objectPos","_noPlayerNear","_nearObj"];

	_deletedLoot = 0;
	_startTime = diag_tickTime;

	{
		_looted = (_x getVariable ["looted",-0.1]);
		if (_looted != -0.1) then
		{
			_objectPos = getPosATL _x;
			_noPlayerNear = {isPlayer _x} count (_objectPos nearEntities ["CAManBase",35]) == 0;

			if (_noPlayerNear) then
			{
				_nearObj = nearestObjects [_objectPos,["ReammoBox","WeaponHolder","WeaponHolderBase"],((sizeOf (typeOf _x)) + 5)];
				{
					deleteVehicle _x;
					_deletedLoot = _deletedLoot + 1;
				} forEach _nearObj;
				_x setVariable ["looted",-0.1,true];
			};
		};
	} forEach BuildingList;

	_endTime = diag_tickTime;

	diag_log (format["CLEANUP: DELETED %1 ITEMS, RUNTIME: %2",_deletedLoot,(_endTime - _startTime)]);
};

//BUILDINGS
execVM "\z\addons\dayz_server\init\buildings\Barrage_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\BlackLac_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\Bois1_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\buildings.sqf";
execVM "\z\addons\dayz_server\init\buildings\DeadCastle_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\devfish_camptents.sqf";
execVM "\z\addons\dayz_server\init\buildings\devilscastle.sqf";
execVM "\z\addons\dayz_server\init\buildings\Dubrovka_Detruit.sqf";
execVM "\z\addons\dayz_server\init\buildings\epochbalota.sqf";
execVM "\z\addons\dayz_server\init\buildings\epochcherno.sqf";
execVM "\z\addons\dayz_server\init\buildings\epochkamenka.sqf";
execVM "\z\addons\dayz_server\init\buildings\ExcelsiorBridge.sqf";
execVM "\z\addons\dayz_server\init\buildings\LieuxditPenduAto.sqf";
execVM "\z\addons\dayz_server\init\buildings\mission.sqf";
execVM "\z\addons\dayz_server\init\buildings\sectorfng.sqf";
execVM "\z\addons\dayz_server\init\buildings\train_wreck.sqf";
execVM "\z\addons\dayz_server\init\buildings\villages.sqf";
execVM "\z\addons\dayz_server\init\buildings\ChernoQuarantine_Zone.sqf";

[] spawn compile preprocessFileLineNumbers "@AH\AH.sqf";
 

Codemanx, if it does in fact ending up working for you, let me know!  I could take your Server_Functions.sqf information and try that out (with the added suggestion of course).

Link to comment
Share on other sites

  • 0

Why are you putting your building spawns in the server functions ? add them to your mission init.sqf, if you want the server to spawn them (which is best) use:

if (isServer) then {
//BUILDINGS
execVM "\z\addons\dayz_server\init\buildings\Barrage_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\BlackLac_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\Bois1_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\buildings.sqf";
execVM "\z\addons\dayz_server\init\buildings\DeadCastle_Dan.sqf";
execVM "\z\addons\dayz_server\init\buildings\devfish_camptents.sqf";
execVM "\z\addons\dayz_server\init\buildings\devilscastle.sqf";
execVM "\z\addons\dayz_server\init\buildings\Dubrovka_Detruit.sqf";
execVM "\z\addons\dayz_server\init\buildings\epochbalota.sqf";
execVM "\z\addons\dayz_server\init\buildings\epochcherno.sqf";
execVM "\z\addons\dayz_server\init\buildings\epochkamenka.sqf";
execVM "\z\addons\dayz_server\init\buildings\ExcelsiorBridge.sqf";
execVM "\z\addons\dayz_server\init\buildings\LieuxditPenduAto.sqf";
execVM "\z\addons\dayz_server\init\buildings\mission.sqf";
execVM "\z\addons\dayz_server\init\buildings\sectorfng.sqf";
execVM "\z\addons\dayz_server\init\buildings\train_wreck.sqf";
execVM "\z\addons\dayz_server\init\buildings\villages.sqf";
execVM "\z\addons\dayz_server\init\buildings\ChernoQuarantine_Zone.sqf";	
};

Anywhere toward the end of your init.sqf, probably best before the last line that includes the REsec.sqf

 

That last line:

[] spawn compile preprocessFileLineNumbers "@AH\AH.sqf";

will not reference the anti hack if you have it in a mod folder, which the @AH implies. Package ah.sqf into dayz_server.pbo in a folder called external and then call it with (call not spawn):

[] call compile preprocessFileLineNumbers "\z\addons\dayz_server\external\AH.sqf";

Avoid spawn, call is more efficient (unless it specifically needs to be in it's own thread)..

Link to comment
Share on other sites

  • 0

Nope, for some reason, if I place the buildings in my mission pbo then they show up, but if I place them in my server pbo and reference them in my ini (as per your suggestion, they don't).

Also, if I call  them from the server_functions.sqf they don't work either...I'm stumped. 

Link to comment
Share on other sites

  • 0

The only difference with placing them in the mission folders is that the players download them each time they join the server. You will notice the size of the download increasing.

 

Is not a big problem as I doubt those building files will be too big, assuming they are just .sqf files.

 

Check your arma2oaserver.RPT in instance_11_Chernarus for errors / missing files when referencing the paths you have set in dayz_server.pbo.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...