lazyink / DayZ-Missions

5 stars 8 forks source link

DayZChernarus Mission System

Original code by TheSzerdi, Falcyn and TAW_Tonic.

This has only been tested on Chernarus (1.7.7.1).

Installation

server.pbo

Copy the Missions folder to the root of the server PBO.

Open server_functions.sqf

Find:

fn_bases = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fn_bases.sqf";

Insert after:

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

Find:

dayz_recordLogin = {
private["_key"];
_key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
_key call server_hiveWrite;
};

Insert after:

//----------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------//

Open server_updateObject.sqf

Find:

#ifdef OBJECT_DEBUG
diag_log(format["Non-string Object: ID %1 UID %2", _objectID, _uid]);
#endif
//force fail
_objectID = "0";
_uid = "0";
};

Insert after:

if (_object getVariable "Mission" == 1) exitWith {};

Open server_cleanup.fsm

Find:

if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n

Replace with:

if(vehicle _x != _x && (vehicle _x getVariable [""Mission"",0] != 1) && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n

IF YOU HAVE SARGE AI INSTALLED YOU NEED TO CHANGE THE VEHICLE VARIABLE IN EACH MISSION TO "SARGE" INSTEAD OF USING "MISSIONS" (Not tested with SARGE AI, may be incompatible.)

mission.pbo:

Copy the included debug folder into the root of the mission.pbo.

The AI require faction settings. If you have SARGE AI you're good to go. Otherwise add faction.sqf to the root of the mission.pbo and add this line to the end of your init.sqf:

[] execVM "faction.sqf";

The Crates

Inside the MISC folder, there are 4 differing fillboxes scripts. They are set up like so:

  • fillboxes.sqf - Large weapons crate.

  • fillboxesS.sqf - Small weapons crate.

  • fillboxesH.sqf - High value weapons crate.

  • fillboxesM.sqf - Medical crate.

The Missions

The missions are split into two types, major and minor, and run as follows.

Major

Bandit Weapon Cache.
Bandits have discovered a weapons cache! Kill them and secure the weapons for yourself!

Medical C130 Crash.
A C-130 carrying medical supplies has crashed and bandits are securing the site! Take them on and secure it's cargo for yourself

Bandit Medical Camp.
Bandits have set up a medical re-supply camp! Secure it for yourself!

Bandit Heli Down!
A bandit supply helicopter has crash landed! Secure it and it's cargo for yourself!

Medical Ural Attack.
Bandits have destroyed a Ural carrying medical supplies and secured it's cargo!

Medical Supply Crate.
A medical supply crate has been secured by bandits! Kill them all to get the supplies!

Minor

Bandit Hunting Party.
A bandit hunting party has been spotted! Kill them all and get their supplies!

Medical Outpost.
A group of bandits have taken over a Medical Outpost!

Bandit Stash House.
A group of bandits have set up a stash house!

Bandit Helicopter Crash.
A bandit helicopter has crashed! Kill any survivors and secure the loot!

Bandit Hummer Crash.
A bandit Humvee has crashed! Kill any survivors and secure the loot!

Bandit Weapons Truck.
A bandit weapons truck has crashed! Kill any survivors and secure the loot!