Merge branch 'Testing'
This commit is contained in:
commit
8f5a73fd19
6
Server/@epochhive/addons/DZMS/$PBOPREFIX$.txt
Normal file
6
Server/@epochhive/addons/DZMS/$PBOPREFIX$.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
///////<HEADER>///////
|
||||||
|
prefix=z\addons\dayz_server\DZMS
|
||||||
|
Mikero=DePbo.dll
|
||||||
|
Pbo Type is: Arma Addon
|
||||||
|
Sha: 'DFE97C2881052A87B307B178760BF5A36E72A2DE'
|
||||||
|
//////</HEADER>//////
|
1
Server/@epochhive/addons/DZMS/$PREFIX$
Normal file
1
Server/@epochhive/addons/DZMS/$PREFIX$
Normal file
@ -0,0 +1 @@
|
|||||||
|
z\addons\dayz_server\DZMS
|
133
Server/@epochhive/addons/DZMS/DZMSConfig.sqf
Normal file
133
Server/@epochhive/addons/DZMS/DZMSConfig.sqf
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
/*
|
||||||
|
DayZ Mission System Config by Vampire
|
||||||
|
DZMS: https://github.com/SMVampire/DZMS-DayZMissionSystem
|
||||||
|
*/
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
//If you have ZSC installed then you can set this to true to place money in ai wallets.
|
||||||
|
DZMSAICheckWallet = false;
|
||||||
|
|
||||||
|
// Do you want your players to gain humanity from killing mission AI?
|
||||||
|
DZMSMissHumanity = true;
|
||||||
|
|
||||||
|
// How Much Humanity?
|
||||||
|
DZMSCntHumanity = 25;
|
||||||
|
|
||||||
|
// Do You Want AI to use NVGs?
|
||||||
|
//(They are deleted on death)
|
||||||
|
DZMSUseNVG = true;
|
||||||
|
|
||||||
|
// Do you want AI to use RPG7V's?
|
||||||
|
//(Only one unit per group spawn will have one)
|
||||||
|
DZMSUseRPG = false;
|
||||||
|
|
||||||
|
// Do you want AI kills to count as bandit kills?
|
||||||
|
DZMSCntBanditKls = true;
|
||||||
|
|
||||||
|
// Do you want AI to disappear instantly when killed?
|
||||||
|
DZMSCleanDeath = false;
|
||||||
|
|
||||||
|
// Do you want AI that players run over to not have gear?
|
||||||
|
// (If DZMSCleanDeath is true, this doesn't matter)
|
||||||
|
DZMSRunGear = false;
|
||||||
|
|
||||||
|
// How long before bodies disappear? (in seconds) (default = 2400)
|
||||||
|
//DZMSBodyTime = 2400;
|
||||||
|
DZMSBodyTime = 18000;
|
||||||
|
|
||||||
|
// Percentage of AI that must be dead before mission completes (default = 0)
|
||||||
|
//( 0 is 0% of AI / 0.50 is 50% / 1 is 100% )
|
||||||
|
DZMSRequiredKillPercent = 1;
|
||||||
|
|
||||||
|
// How long in seconds before mission scenery disappears (default = 1800 / 0 = disabled)
|
||||||
|
DZMSSceneryDespawnTimer = 18000;
|
||||||
|
|
||||||
|
// Should crates despawn with scenery? (default = false)
|
||||||
|
DZMSSceneryDespawnLoot = false;
|
||||||
|
|
||||||
|
// What side are the bandit AI on? (default = resistance)
|
||||||
|
DZMSAISide = resistance;
|
||||||
|
|
||||||
|
// Which character model should be used for the bandit AI?
|
||||||
|
// Must be the same side as DZMSAISide (default = "I_Soldier_EPOCH")
|
||||||
|
DZMSAIModel = "I_Soldier_EPOCH";
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// You can adjust the weapons that spawn in weapon crates inside DZMSWeaponCrateList.sqf
|
||||||
|
// You can adjust the AI's gear inside DZMSAIConfig.sqf in the ExtConfig folder also.
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Do you want to use static coords for missions?
|
||||||
|
// Leave this false unless you know what you are doing.
|
||||||
|
DZMSStaticPlc = false;
|
||||||
|
|
||||||
|
// Array of static locations. X,Y,Z
|
||||||
|
DZMSStatLocs = [
|
||||||
|
[0,0,0],
|
||||||
|
[0,0,0]
|
||||||
|
];
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Do you want vehicles from missions to save to the Database? (this means they will stay after a restart)
|
||||||
|
// If false, vehicles will disappear on restart. It will warn a player who gets inside of a vehicle.
|
||||||
|
// This is unsupported at this time, and off by default in this version.
|
||||||
|
DZMSSaveVehicles = false;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// These are arrays of vehicle classnames for the missions.
|
||||||
|
// Adjust to your liking.
|
||||||
|
|
||||||
|
//Helicopters
|
||||||
|
DZMSChoppers = ["B_Heli_Transport_03_unarmed_F","B_Heli_Transport_03_unarmed_green_F"];
|
||||||
|
|
||||||
|
//Small Vehicles
|
||||||
|
DZMSSmallVic = ["I_G_Offroad_01_F","I_Quadbike_01_F","I_G_Van_01_transport_F"];
|
||||||
|
|
||||||
|
//Large Vehicles
|
||||||
|
DZMSLargeVic = ["I_Truck_02_covered_F","I_Truck_02_transport_F"];
|
||||||
|
|
||||||
|
//Patrol Vehicles
|
||||||
|
DZMSPatrolVeh = ["I_G_Offroad_01_armed_F","B_G_Offroad_01_armed_EPOCH"];
|
||||||
|
|
||||||
|
/*///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
There are two types of missions that run simultaneously on a the server.
|
||||||
|
The two types are Major and Minor missions.
|
||||||
|
|
||||||
|
Major missions have a higher AI count, but also have more crates to loot.
|
||||||
|
Minor missions have less AI than Major missions, but have crates that reflect that.
|
||||||
|
|
||||||
|
Below is the array of mission file names and the minimum and maximum times they run.
|
||||||
|
Do not edit the Arrays unless you know what you are doing.
|
||||||
|
*/
|
||||||
|
DZMSMajorArray = ["EM1","SM1","SM2","SM4","SM6","SM7","SM9","SM10"];
|
||||||
|
DZMSMinorArray = ["SM1","SM2","SM4","SM5","SM6"];
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// The Minumum time in seconds before a major mission will run.
|
||||||
|
// At least this much time will pass between major missions. Default = 650 (10.8 Minutes)
|
||||||
|
DZMSMajorMin = 650;
|
||||||
|
|
||||||
|
// Maximum time in seconds before a major mission will run.
|
||||||
|
// A major mission will always run before this much time has passed. Default = 2000 (33.33 Minutes)
|
||||||
|
DZMSMajorMax = 2000;
|
||||||
|
|
||||||
|
// The Minumum time in seconds before a minor mission will run.
|
||||||
|
// At least this much time will pass between minor missions. Default = 600 (10 Minutes)
|
||||||
|
DZMSMinorMin = 600;
|
||||||
|
|
||||||
|
// Maximum time in seconds before a minor mission will run.
|
||||||
|
// A minor mission will always run before this much time has passed. Default = 990 (16.5 Minutes)
|
||||||
|
DZMSMinorMax = 990;
|
||||||
|
|
||||||
|
// Blacklist Zone Array -- missions will not spawn in these areas
|
||||||
|
// format: [[x,y,z],radius]
|
||||||
|
// Ex: [[06325,07807,0],300] //Starry Sobor
|
||||||
|
DZMSBlacklistZones = [
|
||||||
|
[[0,0,0],50]
|
||||||
|
];
|
||||||
|
|
||||||
|
/*=============================================================================================*/
|
||||||
|
// Do Not Edit Below This Line
|
||||||
|
/*=============================================================================================*/
|
||||||
|
DZMSVersion = "3.01_A3";
|
242
Server/@epochhive/addons/DZMS/DZMSFunctions.sqf
Normal file
242
Server/@epochhive/addons/DZMS/DZMSFunctions.sqf
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
/*
|
||||||
|
DayZ Mission System Functions
|
||||||
|
by Vampire
|
||||||
|
*/
|
||||||
|
|
||||||
|
diag_log text "[DZMS]: Loading ExecVM Functions.";
|
||||||
|
DZMSMajTimer = "\z\addons\dayz_server\DZMS\Scripts\DZMSMajTimer.sqf";
|
||||||
|
DZMSMinTimer = "\z\addons\dayz_server\DZMS\Scripts\DZMSMinTimer.sqf";
|
||||||
|
DZMSMarkerLoop = "\z\addons\dayz_server\DZMS\Scripts\DZMSMarkerLoop.sqf";
|
||||||
|
|
||||||
|
DZMSAddMajMarker = "\z\addons\dayz_server\DZMS\Scripts\DZMSAddMajMarker.sqf";
|
||||||
|
DZMSAddMinMarker = "\z\addons\dayz_server\DZMS\Scripts\DZMSAddMinMarker.sqf";
|
||||||
|
|
||||||
|
DZMSAIKilled = "\z\addons\dayz_server\DZMS\Scripts\DZMSAIKilled.sqf";
|
||||||
|
|
||||||
|
DZMSBoxSetup = "\z\addons\dayz_server\DZMS\Scripts\DZMSBox.sqf";
|
||||||
|
DZMSSaveVeh = "\z\addons\dayz_server\DZMS\Scripts\DZMSSaveToHive.sqf";
|
||||||
|
|
||||||
|
diag_log text "[DZMS]: Loading Compiled Functions.";
|
||||||
|
// compiled functions
|
||||||
|
DZMSAISpawn = compile preprocessFileLineNumbers "\z\addons\dayz_server\DZMS\Scripts\DZMSAISpawn.sqf";
|
||||||
|
DZMSVehiclePatrol = compile preprocessFileLineNumbers "\z\addons\dayz_server\DZMS\Scripts\DZMSVehiclePatrol.sqf";
|
||||||
|
|
||||||
|
diag_log text "[DZMS]: Loading All Other Functions.";
|
||||||
|
//Attempts to find a mission location
|
||||||
|
//If findSafePos fails it searches again until a position is found
|
||||||
|
//This fixes the issue with missions spawning in Novy Sobor on Chernarus
|
||||||
|
DZMSFindPos = {
|
||||||
|
private["_mapHardCenter","_mapRadii","_centerPos","_pos","_disCorner","_hardX","_hardY","_findRun","_posX","_posY","_feel1","_feel2","_feel3","_feel4","_noWater","_disMaj","_disMin","_okDis","_isBlack","_playerNear","_objectNear"];
|
||||||
|
|
||||||
|
_mapHardCenter = true;
|
||||||
|
_centerPos = epoch_centerMarkerPosition;
|
||||||
|
_mapRadii = EPOCH_dynamicVehicleArea;;
|
||||||
|
|
||||||
|
if (!(DZMSStaticPlc)) then {
|
||||||
|
|
||||||
|
_hardX = _centerPos select 0;
|
||||||
|
_hardY = _centerPos select 1;
|
||||||
|
|
||||||
|
//We need to loop findSafePos until it doesn't return the map center
|
||||||
|
_findRun = true;
|
||||||
|
while {_findRun} do
|
||||||
|
{
|
||||||
|
_pos = [_centerPos,0,_mapRadii,60,0,20,0] call BIS_fnc_findSafePos;
|
||||||
|
|
||||||
|
//Apparently you can't compare two arrays and must compare values
|
||||||
|
_posX = _pos select 0;
|
||||||
|
_posY = _pos select 1;
|
||||||
|
|
||||||
|
//Water Feelers. Checks for nearby water within 50meters.
|
||||||
|
_feel1 = [_posX, _posY+50, 0];
|
||||||
|
_feel2 = [_posX+50, _posY, 0];
|
||||||
|
_feel3 = [_posX, _posY-50, 0];
|
||||||
|
_feel4 = [_posX-50, _posY, 0];
|
||||||
|
|
||||||
|
//Water Check
|
||||||
|
_noWater = (!surfaceIsWater _pos && !surfaceIsWater _feel1 && !surfaceIsWater _feel2 && !surfaceIsWater _feel3 && !surfaceIsWater _feel4);
|
||||||
|
|
||||||
|
//Lets check for minimum mission separation distance
|
||||||
|
_disMaj = (_pos distance DZMSMajCoords);
|
||||||
|
_disMin = (_pos distance DZMSMinCoords);
|
||||||
|
_okDis = ((_disMaj > 1000) AND (_disMin > 1000));
|
||||||
|
|
||||||
|
//make sure the point is not blacklisted
|
||||||
|
_isBlack = false;
|
||||||
|
{
|
||||||
|
if ((_pos distance (_x select 0)) <= (_x select 1)) then {_isBlack = true;};
|
||||||
|
} forEach DZMSBlacklistZones;
|
||||||
|
|
||||||
|
_playerNear = {isPlayer _x} count (_pos nearEntities [["Epoch_Male_F","Epoch_Female_F"], 1000]) > 0;
|
||||||
|
|
||||||
|
_objectNear = nearestObjects [_pos, ["PlotPole_EPOCH","ProtectionZone_Invisible_F","Debug_static_F"], 1000];
|
||||||
|
|
||||||
|
//Lets combine all our checks to possibly end the loop
|
||||||
|
if ((_posX != _hardX) AND (_posY != _hardY) AND _noWater AND _okDis AND !_isBlack AND !_playerNear AND (count _objectNear == 0)) then {
|
||||||
|
_findRun = false;
|
||||||
|
};
|
||||||
|
// If the missions never spawn after running, use this to debug the loop.
|
||||||
|
// Will Complete if: noWater = true / Distance > 1000 / TaviHeight <= 185 / Blacklisted = false / PlayerNear = false
|
||||||
|
//diag_log text format ["[DZMS]: DEBUG: Pos:[%1,%2] / noWater?:%3 / okDistance?:%4 / isBlackListed:%5 / isPlayerNear:%6", _posX, _posY, _noWater, _okDis, _isBlack, _playerNear];
|
||||||
|
sleep 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
if (DZMSStaticPlc) then {
|
||||||
|
_pos = selectRandom DZMSStatLocs;
|
||||||
|
};
|
||||||
|
|
||||||
|
_fin = [(_pos select 0), (_pos select 1), 0];
|
||||||
|
_fin
|
||||||
|
};
|
||||||
|
|
||||||
|
//Clears the cargo and sets fuel, direction, and orientation
|
||||||
|
//Direction stops the awkwardness of every vehicle bearing 0
|
||||||
|
DZMSSetupVehicle = {
|
||||||
|
private ["_object","_ranFuel"];
|
||||||
|
_object = _this select 0;
|
||||||
|
|
||||||
|
_object call EPOCH_server_setVToken;
|
||||||
|
addToRemainsCollector [_object]; // Add the vehicle to ARMA's wreck handler
|
||||||
|
|
||||||
|
waitUntil {(!isNull _object)};
|
||||||
|
|
||||||
|
clearWeaponCargoGlobal _object;
|
||||||
|
clearMagazineCargoGlobal _object;
|
||||||
|
clearBackpackCargoGlobal _object;
|
||||||
|
clearItemCargoGlobal _object;
|
||||||
|
|
||||||
|
_ranFuel = random 1;
|
||||||
|
if (_ranFuel < .1) then {_ranFuel = .1;};
|
||||||
|
_object setFuel _ranFuel;
|
||||||
|
_object setvelocity [0,0,1];
|
||||||
|
_object setDir (round(random 360));
|
||||||
|
|
||||||
|
//If saving vehicles to the database is disabled, lets warn players it will disappear
|
||||||
|
if (!(DZMSSaveVehicles)) then {
|
||||||
|
_object addEventHandler ["GetIn",{
|
||||||
|
["Warning: This vehicle will disappear on server restart!", 5] call Epoch_message;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
|
||||||
|
true
|
||||||
|
};
|
||||||
|
|
||||||
|
//Prevents an object being cleaned up by the server anti-hack
|
||||||
|
DZMSProtectObj = {
|
||||||
|
private ["_object"];
|
||||||
|
_object = _this select 0;
|
||||||
|
|
||||||
|
if (!((typeOf _object) in ["Box_NATO_AmmoVeh_F","C_supplyCrate_F","Box_NATO_WpsSpecial_F"]) || DZMSSceneryDespawnLoot) then {
|
||||||
|
_object setVariable["DZMSCleanup",true];
|
||||||
|
};
|
||||||
|
true
|
||||||
|
};
|
||||||
|
|
||||||
|
//Gets the weapon and magazine based on skill level
|
||||||
|
DZMSGetWeapon = {
|
||||||
|
private ["_skill","_aiweapon","_weapon","_magazine","_fin"];
|
||||||
|
|
||||||
|
_skill = _this select 0;
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS]: AI Skill Func:%1",_skill];
|
||||||
|
|
||||||
|
switch (_skill) do {
|
||||||
|
case 0: {_aiweapon = DZMSWeps0;};
|
||||||
|
case 1: {_aiweapon = DZMSWeps1;};
|
||||||
|
case 2: {_aiweapon = DZMSWeps2;};
|
||||||
|
case 3: {_aiweapon = DZMSWeps3;};
|
||||||
|
};
|
||||||
|
_weapon = selectRandom _aiweapon;
|
||||||
|
_magazine = getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines") select 0;
|
||||||
|
|
||||||
|
_fin = [_weapon,_magazine];
|
||||||
|
|
||||||
|
_fin
|
||||||
|
};
|
||||||
|
|
||||||
|
//This gets the random vehicle to spawn at a mission
|
||||||
|
DZMSGetVeh = {
|
||||||
|
private ["_type","_vehArray","_choseVic"];
|
||||||
|
|
||||||
|
_type = _this select 0;
|
||||||
|
|
||||||
|
switch (_type) do {
|
||||||
|
case "heli": {_vehArray = DZMSChoppers;};
|
||||||
|
case "small": {_vehArray = DZMSSmallVic;};
|
||||||
|
case "large": {_vehArray = DZMSLargeVic;};
|
||||||
|
case "patrol": {_vehArray = DZMSPatrolVeh;};
|
||||||
|
};
|
||||||
|
|
||||||
|
_choseVic = selectRandom _vehArray;
|
||||||
|
|
||||||
|
_choseVic
|
||||||
|
};
|
||||||
|
|
||||||
|
//function to wait for mission completion
|
||||||
|
DZMSWaitMissionComp = {
|
||||||
|
private["_objective","_unitArrayName","_numSpawned","_numKillReq"];
|
||||||
|
|
||||||
|
_objective = _this select 0;
|
||||||
|
_unitArrayName = _this select 1;
|
||||||
|
|
||||||
|
call compile format["_numSpawned = count %1;",_unitArrayName];
|
||||||
|
_numKillReq = ceil(DZMSRequiredKillPercent * _numSpawned);
|
||||||
|
|
||||||
|
diag_log text format["[DZMS]: (%3) Waiting for %1/%2 Units or Less to be Alive and a Player to be Near the Objective.",(_numSpawned - _numKillReq),_numSpawned,_unitArrayName];
|
||||||
|
|
||||||
|
call compile format["waitUntil{sleep 1; ({isPlayer _x && _x distance _objective <= 30} count playableUnits > 0) && ({alive _x} count %1 <= (_numSpawned - _numKillReq));};",_unitArrayName];
|
||||||
|
|
||||||
|
if (DZMSSceneryDespawnTimer > 0) then {_objective spawn DZMSCleanupThread;};
|
||||||
|
};
|
||||||
|
|
||||||
|
//sleep function that uses diag_tickTime for accuracy
|
||||||
|
DZMSSleep = {
|
||||||
|
private["_sleepTime","_checkInterval","_startTime"];
|
||||||
|
|
||||||
|
_sleepTime = _this select 0;
|
||||||
|
_checkInterval = _this select 1;
|
||||||
|
|
||||||
|
_startTime = diag_tickTime;
|
||||||
|
waitUntil{sleep _checkInterval; (diag_tickTime - _startTime) > _sleepTime;};
|
||||||
|
};
|
||||||
|
|
||||||
|
//function to clean up mission objects
|
||||||
|
DZMSCleanupThread = {
|
||||||
|
//sleep for the despawn timer length
|
||||||
|
[DZMSSceneryDespawnTimer,20] call DZMSSleep;
|
||||||
|
|
||||||
|
//delete flagged nearby objects
|
||||||
|
{
|
||||||
|
if (_x getVariable ["DZMSCleanup",false]) then {
|
||||||
|
_x call DZMSScheduleCleanUp;
|
||||||
|
};
|
||||||
|
} forEach (_this nearObjects 50);
|
||||||
|
};
|
||||||
|
|
||||||
|
DZMSScheduleCleanUp = {
|
||||||
|
private "_group";
|
||||||
|
_this removeAllMPEventHandlers "mpkilled";
|
||||||
|
_this removeAllMPEventHandlers "mphit";
|
||||||
|
_this removeAllMPEventHandlers "mprespawn";
|
||||||
|
_this removeAllEventHandlers "FiredNear";
|
||||||
|
_this removeAllEventHandlers "HandleDamage";
|
||||||
|
_this removeAllEventHandlers "Killed";
|
||||||
|
_this removeAllEventHandlers "Fired";
|
||||||
|
_this removeAllEventHandlers "GetIn";
|
||||||
|
_this removeAllEventHandlers "GetOut";
|
||||||
|
_this removeAllEventHandlers "Local";
|
||||||
|
_this removeAllEventHandlers "Respawn";
|
||||||
|
|
||||||
|
_group = group _this;
|
||||||
|
deleteVehicle _this;
|
||||||
|
if (count units _group == 0) then {
|
||||||
|
deleteGroup _group;
|
||||||
|
};
|
||||||
|
|
||||||
|
_this = nil;
|
||||||
|
};
|
||||||
|
|
||||||
|
//------------------------------------------------------------------//
|
||||||
|
diag_log text format ["[DZMS]: Mission Functions Script Loaded!"];
|
@ -0,0 +1,3 @@
|
|||||||
|
This directory consists of extended configuration files.
|
||||||
|
Modifying these are not required, and are for users who want a customized setup.
|
||||||
|
- Vampire
|
107
Server/@epochhive/addons/DZMS/ExtConfig/DZMSAIConfig.sqf
Normal file
107
Server/@epochhive/addons/DZMS/ExtConfig/DZMSAIConfig.sqf
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
/*
|
||||||
|
DZMSAIConfig.sqf
|
||||||
|
This is a configuration for the AI that spawn at missions.
|
||||||
|
This includes their skin, weapons, gear, and skills.
|
||||||
|
You can adjust these to your liking, but it is for advanced users.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
// Array of uniform, helmet and vest classnames for the AI to use
|
||||||
|
DZMSBanditSkins = ["U_O_CombatUniform_ocamo","U_OG_Guerilla1_1","U_OG_Guerilla2_1","U_OG_Guerilla2_3","U_OG_Guerilla3_1","U_OG_Guerilla3_2","U_OG_leader","U_O_PilotCoveralls"];
|
||||||
|
DZMSBanditHelmets = [""];
|
||||||
|
DZMSBanditVests = [""];
|
||||||
|
|
||||||
|
/////////////////////
|
||||||
|
// Array of AI Skills
|
||||||
|
DZMSSkills0 = [
|
||||||
|
["aimingAccuracy",0.10,0.125],
|
||||||
|
["aimingShake",0.45,0.55],
|
||||||
|
["aimingSpeed",0.45,0.55],
|
||||||
|
["endurance",0.40,0.50],
|
||||||
|
["spotDistance",0.30,0.45],
|
||||||
|
["spotTime",0.30,0.45],
|
||||||
|
["courage",0.40,0.60],
|
||||||
|
["reloadSpeed",0.50,0.60],
|
||||||
|
["commanding",0.40,0.50],
|
||||||
|
["general",0.40,0.60]
|
||||||
|
];
|
||||||
|
|
||||||
|
DZMSSkills1 = [
|
||||||
|
["aimingAccuracy",0.125,0.15],
|
||||||
|
["aimingShake",0.60,0.70],
|
||||||
|
["aimingSpeed",0.60,0.70],
|
||||||
|
["endurance",0.55,0.65],
|
||||||
|
["spotDistance",0.45,0.60],
|
||||||
|
["spotTime",0.45,0.60],
|
||||||
|
["courage",0.55,0.75],
|
||||||
|
["reloadSpeed",0.60,0.70],
|
||||||
|
["commanding",0.55,0.65],
|
||||||
|
["general",0.55,0.75]
|
||||||
|
];
|
||||||
|
|
||||||
|
DZMSSkills2 = [
|
||||||
|
["aimingAccuracy",0.15,0.20],
|
||||||
|
["aimingShake",0.75,0.85],
|
||||||
|
["aimingSpeed",0.70,0.80],
|
||||||
|
["endurance",0.70,0.80],
|
||||||
|
["spotDistance",0.60,0.75],
|
||||||
|
["spotTime",0.60,0.75],
|
||||||
|
["courage",0.70,0.90],
|
||||||
|
["reloadSpeed",0.70,0.80],
|
||||||
|
["commanding",0.70,0.90],
|
||||||
|
["general",0.70,0.90]
|
||||||
|
];
|
||||||
|
|
||||||
|
DZMSSkills3 = [
|
||||||
|
["aimingAccuracy",0.20,0.25],
|
||||||
|
["aimingShake",0.85,0.95],
|
||||||
|
["aimingSpeed",0.80,0.90],
|
||||||
|
["endurance",0.80,0.90],
|
||||||
|
["spotDistance",0.70,0.85],
|
||||||
|
["spotTime",0.70,0.85],
|
||||||
|
["courage",0.80,1.00],
|
||||||
|
["reloadSpeed",0.80,0.90],
|
||||||
|
["commanding",0.80,0.90],
|
||||||
|
["general",0.80,1.00]
|
||||||
|
];
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// This is the primary weaponlist that can be assigned to AI based on skill level
|
||||||
|
|
||||||
|
DZMSWeps0 = [
|
||||||
|
|
||||||
|
"m16_EPOCH","m16Red_EPOCH","M14_EPOCH","M14Grn_EPOCH","m4a3_EPOCH","AKM_EPOCH","sr25_epoch","l85a2_epoch","l85a2_pink_epoch","l85a2_ugl_epoch","arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F","arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F","SMG_01_F","SMG_02_F","arifle_MXM_Black_F","arifle_MX_GL_Black_F","arifle_MX_Black_F","arifle_MXC_Black_F"
|
||||||
|
];
|
||||||
|
|
||||||
|
DZMSWeps1 = [
|
||||||
|
|
||||||
|
"m16_EPOCH","m16Red_EPOCH","M14_EPOCH","M14Grn_EPOCH","m4a3_EPOCH","AKM_EPOCH","sr25_epoch","l85a2_epoch","l85a2_pink_epoch","l85a2_ugl_epoch","arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F","arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F","SMG_01_F","SMG_02_F","arifle_MXM_Black_F","arifle_MX_GL_Black_F","arifle_MX_Black_F","arifle_MXC_Black_F"
|
||||||
|
];
|
||||||
|
|
||||||
|
DZMSWeps2 = [
|
||||||
|
|
||||||
|
"m16_EPOCH","m16Red_EPOCH","M14_EPOCH","M14Grn_EPOCH","m4a3_EPOCH","AKM_EPOCH","sr25_epoch","l85a2_epoch","l85a2_pink_epoch","l85a2_ugl_epoch","arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F","arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F","SMG_01_F","SMG_02_F","arifle_MXM_Black_F","arifle_MX_GL_Black_F","arifle_MX_Black_F","arifle_MXC_Black_F"
|
||||||
|
];
|
||||||
|
|
||||||
|
DZMSWeps3 = [
|
||||||
|
|
||||||
|
"m16_EPOCH","m16Red_EPOCH","M14_EPOCH","M14Grn_EPOCH","m4a3_EPOCH","AKM_EPOCH","sr25_epoch","l85a2_epoch","l85a2_pink_epoch","l85a2_ugl_epoch","arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F","arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F","SMG_01_F","SMG_02_F","arifle_MXM_Black_F","arifle_MX_GL_Black_F","arifle_MX_Black_F","arifle_MXC_Black_F"
|
||||||
|
];
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
// These are gear sets that will be randomly given to the AI
|
||||||
|
DZMSGear0 = ["FAK","FAK","ItemAntibiotic","ItemPainkiller","ItemSodaRbull","meatballs_epoch"];
|
||||||
|
|
||||||
|
DZMSGear1 = ["FAK","FAK","ItemPainkillers","morphine_epoch","ItemSodaPurple","redburger_epoch"];
|
||||||
|
|
||||||
|
DZMSGear2 = ["FAK","Towelette","ItemBloodbag","ItemPainkillers","ItemSodaOrangeSherbet","sardines_epoch"];
|
||||||
|
|
||||||
|
DZMSGear3 = ["FAK","FAK","morphine_epoch","ItemHeatPack","ItemSodaAlpineDude","TacticalBacon"];
|
||||||
|
|
||||||
|
DZMSGear4 = ["FAK","Towelette","atropine_epoch","ItemBloodBag_Full","FoodWalkNSons","sweetcorn_epoch"];
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
// These are the backpacks that can be assigned to AI units.
|
||||||
|
DZMSPacklist = [
|
||||||
|
"B_AssaultPack_cbr","B_AssaultPack_dgtl","B_AssaultPack_khk","B_AssaultPack_mcamo","B_AssaultPack_ocamo","B_AssaultPack_rgr","B_AssaultPack_sgg","B_TacticalPack_blk","B_TacticalPack_mcamo","B_TacticalPack_ocamo","B_TacticalPack_oli","B_TacticalPack_rgr"
|
||||||
|
];
|
38
Server/@epochhive/addons/DZMS/ExtConfig/DZMSCrateConfig.sqf
Normal file
38
Server/@epochhive/addons/DZMS/ExtConfig/DZMSCrateConfig.sqf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
Below are the lists of allowed weapons for the weapon crates. Adjust them to your liking.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Pistols
|
||||||
|
DZMSpistolList = ["hgun_ACPC2_F","hgun_Rook40_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","ruger_pistol_epoch","1911_pistol_epoch","hgun_Pistol_Signal_F","hgun_PDW2000_F"];
|
||||||
|
|
||||||
|
// Sniper Rifles
|
||||||
|
DZMSsniperList = ["m107_EPOCH","m107Tan_EPOCH","srifle_DMR_02_F","srifle_DMR_02_camo_F","srifle_DMR_02_sniper_F","srifle_DMR_03_F","srifle_DMR_03_khaki_F","srifle_DMR_03_tan_F","srifle_DMR_03_multicam_F","srifle_DMR_03_woodland_F","srifle_DMR_03_spotter_F","srifle_DMR_04_Tan_F","srifle_DMR_05_blk_F","srifle_DMR_05_hex_F","srifle_DMR_05_tan_f","srifle_DMR_06_camo_F","srifle_DMR_06_olive_F"];
|
||||||
|
|
||||||
|
// Light Machineguns
|
||||||
|
DZMSmgList = ["m249_EPOCH","m249Tan_EPOCH","MMG_01_hex_F","MMG_01_tan_F","MMG_02_camo_F","MMG_02_black_F","MMG_02_sand_F","LMG_Mk200_F","arifle_MX_SW_F","LMG_Zafir_F","arifle_MX_SW_Black_F","arifle_MX_SW_khk_F"];
|
||||||
|
|
||||||
|
// Primary Rifles
|
||||||
|
DZMSprimaryList = ["m16_EPOCH","m16Red_EPOCH","M14_EPOCH","M14Grn_EPOCH","m4a3_EPOCH","AKM_EPOCH","sr25_epoch","l85a2_epoch","l85a2_pink_epoch","l85a2_ugl_epoch","arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F","arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F","SMG_01_F","SMG_02_F","arifle_MXM_Black_F","arifle_MX_GL_Black_F","arifle_MX_Black_F","arifle_MXC_Black_F"];
|
||||||
|
|
||||||
|
//List of Grenades and Shells
|
||||||
|
DZMSGrenadeList = ["HandGrenade","UGL_FlareGreen_F","UGL_FlareWhite_F"];
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Toolbelt Items
|
||||||
|
DZMSConTools = ["Plunger","MeleeSledge","MeleeRod","Hatchet"];
|
||||||
|
|
||||||
|
//Construction Supplies
|
||||||
|
DZMSConSupply = ["PartPlankPack","ItemPlywoodPack","ItemComboLock","CinderBlocks","MortarBucket","ItemScraps","ItemCorrugated","ItemCorrugatedLg","CircuitParts","ItemBurlap","ItemBulb","ItemRope","ItemSolar","ItemCables","ItemBattery","JackKit","ItemCanvas","ItemSeedBag","ItemPipe"];
|
||||||
|
|
||||||
|
//Prefab Buildables
|
||||||
|
DZMSBuildables = ["KitStudWall","KitWoodQuarterFloor","KitWoodHalfFloor","KitWoodFloor","KitWoodStairs","KitWoodTower","KitWoodRamp","KitSpikeTrap","KitMetalTrap","KitTankTrap","KitHesco3","KitWoodLadder","KitFirePlace","KitTiPi","KitShelf","KitWoodFoundation","KitFoundation","KitSolarGen","KitPlotPole","KitCinderWall","KitWorkbench","KitBurnBarrel","KitLightPole","KitFieldToilet","KitSunShade","KitSink","KitPortableLight_Single","KitPortableLight_Double","KitWatchTower","KitSunShade","KitSandbagWall","KitSandbagWallLong","KitBagBunker","KitBarGate","KitWaterPump","Kit_Garden","KitCinderTower","KitCinderFloor","KitMetalTower","KitMetalFloor","KitBarbedWire"];
|
||||||
|
|
||||||
|
//Medical Supplies
|
||||||
|
DZMSMedicalSupplies = ["FAK","Towelette","HeatPack","ColdPack","ItemVitamins","morphine_epoch","iodide_pills_epoch","adrenaline_epoch","caffeinepills_epoch","orlistat_epoch","ItemCanteen_Empty","ItemBottlePlastic_Clean","ItemWaterPurificationTablets","ItemPainKillers","ItemBloodBag_Empty","ItemBloodBag_Full","ItemAntibiotic","nanite_cream_epoch","nanite_pills_epoch"];
|
||||||
|
|
||||||
|
//Backpacks
|
||||||
|
DZMSBackPackList = ["B_AssaultPack_cbr","B_AssaultPack_dgtl","B_AssaultPack_khk","B_AssaultPack_mcamo","B_AssaultPack_ocamo","B_AssaultPack_rgr","B_AssaultPack_sgg","B_TacticalPack_blk","B_TacticalPack_mcamo","B_TacticalPack_ocamo","B_TacticalPack_oli","B_TacticalPack_rgr"];
|
||||||
|
|
||||||
|
//High Value Items
|
||||||
|
DZMSHighValue = ["ItemBriefcaseGold100oz","ItemSafe"];
|
114
Server/@epochhive/addons/DZMS/Missions/Major/EM1.sqf
Normal file
114
Server/@epochhive/addons/DZMS/Missions/Major/EM1.sqf
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
/*
|
||||||
|
Medical C-130 Crash by lazyink (Full credit for original code to TheSzerdi & TAW_Tonic)
|
||||||
|
Modified to new format by Vampire
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_missName","_coords","_wreck","_trash","_trash1","_trash2","_trash3","_trash4","_trash5","_veh1","_veh2","_vehicle","_vehicle1","_crate","_crate1","_DZMSARRAYPICS","_MISSIONIMAGE","_msg"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "C-192 Crash";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["Land_Wreck_Plane_Transport_01_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>C-192 Crash</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A C-192 Carrying Supplies has Crashed. Bandits are Securing the Cargo!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMajMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missname] ExecVM DZMSAddMajMarker;
|
||||||
|
|
||||||
|
//We create the mission scenery
|
||||||
|
_wreck = createVehicle ["Land_Wreck_Plane_Transport_01_F",[(_coords select 0) - 8.8681, (_coords select 1) + 15.3554,0],[], 0, "NONE"];
|
||||||
|
_wreck setDir -30.165445;
|
||||||
|
[_wreck] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_trash = createVehicle ["CargoNet_01_barrels_F",[(_coords select 0) - 7.4511, (_coords select 1) + 3.8544,0],[], 0, "NONE"];
|
||||||
|
_trash setDir 61.911976;
|
||||||
|
[_trash] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_trash1 = createVehicle ["Land_Pallets_stack_F",[(_coords select 0) + 4.062, (_coords select 1) + 4.7216,0],[], 0, "NONE"];
|
||||||
|
_trash1 setDir -29.273479;
|
||||||
|
[_trash1] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_trash2 = createVehicle ["Land_Pallets_F",[(_coords select 0) - 3.4033, (_coords select 1) - 2.2256,0],[], 0, "NONE"];
|
||||||
|
[_trash2] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_trash3 = createVehicle ["Land_Tyre_F",[(_coords select 0) + 1.17, (_coords select 1) + 1.249,0],[], 0, "NONE"];
|
||||||
|
[_trash3] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_trash4 = createVehicle ["Land_CratesWooden_F",[(_coords select 0) + 3.9029, (_coords select 1) - 1.8477,0],[], 0, "NONE"];
|
||||||
|
_trash4 setDir -70.372086;
|
||||||
|
[_trash4] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_trash5 = createVehicle ["Land_WoodenCrate_01_F",[(_coords select 0) - 2.1181, (_coords select 1) + 5.9765,0],[], 0, "NONE"];
|
||||||
|
_trash5 setDir -28.122475;
|
||||||
|
[_trash5] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//We create the mission vehicles
|
||||||
|
_veh1 = ["small"] call DZMSGetVeh;
|
||||||
|
_veh2 = ["small"] call DZMSGetVeh;
|
||||||
|
_vehicle = createVehicle [_veh1,[(_coords select 0) + 14.1426, (_coords select 1) - 0.6202,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
_vehicle1 = createVehicle [_veh2,[(_coords select 0) - 6.541, (_coords select 1) - 11.5557,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSSetupVehicle prevents the vehicle from disappearing and sets fuel and such
|
||||||
|
[_vehicle] call DZMSSetupVehicle;
|
||||||
|
[_vehicle1] call DZMSSetupVehicle;
|
||||||
|
|
||||||
|
//DZMSBoxFill fills the box, DZMSProtectObj prevents it from disappearing
|
||||||
|
_crate = createVehicle ["Box_NATO_WpsSpecial_F",[(_coords select 0) - 1.5547,(_coords select 1) + 2.3486,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate,"supply2"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_crate1 = createVehicle ["Box_NATO_AmmoVeh_F",[(_coords select 0) + 0.3428,(_coords select 1) - 1.8985,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate1,"supply"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate1] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) - 10.5005,(_coords select 1) - 2.6465,0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 4.7027,(_coords select 1) + 12.2138,0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 2.918,(_coords select 1) - 9.0342,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 2.918,(_coords select 1) - 9.0342,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
|
||||||
|
//Spawn AI vehicle patrol
|
||||||
|
//Usage: [_coords, PatrolRadius , skillLevel, unitArray]
|
||||||
|
[_coords, 50, 3, "DZMSUnitsMajor"] call DZMSVehiclePatrol;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMajor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Call DZMSSaveVeh to attempt to save the vehicles to the database
|
||||||
|
//If saving is off, the script will exit.
|
||||||
|
[_vehicle] ExecVM DZMSSaveVeh;
|
||||||
|
[_vehicle1] ExecVM DZMSSaveVeh;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>C-192 Crash</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Crash Site has been Secured by Survivors!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
diag_log text format["[DZMS]: Major EM1 C130 Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMajDone = true;
|
84
Server/@epochhive/addons/DZMS/Missions/Major/SM1.sqf
Normal file
84
Server/@epochhive/addons/DZMS/Missions/Major/SM1.sqf
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/* //
|
||||||
|
Weapons Cache Mission by lazyink (Original Full Code by TheSzerdi & TAW_Tonic)
|
||||||
|
New Mission Format by Vampire
|
||||||
|
*/ //
|
||||||
|
|
||||||
|
private ["_missName","_coords","_net","_veh1","_veh2","_vehicle","_vehicle1","_crate","_crate1","_crate2","_crate3"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "NATO Weapons Cache";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["arifle_Mk20_GL_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgWeapons" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>NATO Weapons Cache</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>Bandits have Overrun a NATO Weapons Cache!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMajMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missname] ExecVM DZMSAddMajMarker;
|
||||||
|
|
||||||
|
//Lets add the scenery
|
||||||
|
//_net = createVehicle ["CamoNet_BLUFOR_big_F",[(_coords select 0) - 0.0649, (_coords select 1) + 0.6025,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
//[_net] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//We create the vehicles like normal
|
||||||
|
_veh1 = ["small"] call DZMSGetVeh;
|
||||||
|
_veh2 = ["large"] call DZMSGetVeh;
|
||||||
|
_vehicle = createVehicle [_veh1,[(_coords select 0) + 10.0303, (_coords select 1) - 12.2979,10],[], 0, "CAN_COLLIDE"];
|
||||||
|
_vehicle1 = createVehicle [_veh2,[(_coords select 0) - 6.2764, (_coords select 1) - 14.086,10],[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSSetupVehicle prevents the vehicle from disappearing and sets fuel and such
|
||||||
|
[_vehicle] call DZMSSetupVehicle;
|
||||||
|
[_vehicle1] call DZMSSetupVehicle;
|
||||||
|
|
||||||
|
_crate = createVehicle ["Box_NATO_AmmoVeh_F",_coords,[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSBoxFill fills the box, DZMSProtectObj prevents it from disappearing
|
||||||
|
[_crate,"weapons2"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMajor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Call DZMSSaveVeh to attempt to save the vehicles to the database
|
||||||
|
//If saving is off, the script will exit.
|
||||||
|
[_vehicle] ExecVM DZMSSaveVeh;
|
||||||
|
[_vehicle1] ExecVM DZMSSaveVeh;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgWeapons" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>NATO Weapons Cache</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Weapons Cache is Under Survivor Control!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Major SM1 Weapon Cache Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMajDone = true;
|
73
Server/@epochhive/addons/DZMS/Missions/Major/SM10.sqf
Normal file
73
Server/@epochhive/addons/DZMS/Missions/Major/SM10.sqf
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
CH47 Mission by lazyink (Full credit for original code to TheSzerdi & TAW_Tonic)
|
||||||
|
Updated to New Mission Format by Vampire
|
||||||
|
Edited by Fuchs for EMS
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_missName","_coords","_vehicle","_crate"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "CH67 Mission";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["B_Heli_Transport_03_unarmed_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>CH-67 Landing</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A CH-67 with building supplies has landed! Secure the chopper and the building supplies!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMajMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMajMarker;
|
||||||
|
|
||||||
|
//Create the vehicles
|
||||||
|
_vehicle = createVehicle ["B_Heli_Transport_03_unarmed_F",[(_coords select 0) + 25, (_coords select 1) - 5,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_vehicle] call DZMSSetupVehicle;
|
||||||
|
|
||||||
|
//DZMSBoxFill fills the box, DZMSProtectObj prevents it from disappearing
|
||||||
|
_crate = createVehicle ["Box_NATO_AmmoVeh_F",[(_coords select 0) - 6.1718,(_coords select 1) + 0.6426,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate,"Supply2"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMajor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Call DZMSSaveVeh to attempt to save the vehicles to the database
|
||||||
|
//If saving is off, the script will exit.
|
||||||
|
[_vehicle] ExecVM DZMSSaveVeh;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>CH-67 Landing</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>Good work you've secured the helicopter!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Major SM10 CH47 Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMajDone = true;
|
81
Server/@epochhive/addons/DZMS/Missions/Major/SM4.sqf
Normal file
81
Server/@epochhive/addons/DZMS/Missions/Major/SM4.sqf
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
Bandit Supply Heli Crash by lazyink (Full credit for original code to TheSzerdi & TAW_Tonic)
|
||||||
|
New Mission Format by Vampire
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_missName","_coords","_ranChopper","_chopper","_truck","_trash","_trash2","_crate","_crate2"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Helicopter Landing";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["B_Heli_Transport_03_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Helicopter Landing</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A Supply Helicopter has been Forced to Land! Stop the Bandits from Taking Control of it!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMajMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missname] ExecVM DZMSAddMajMarker;
|
||||||
|
|
||||||
|
//We create the vehicles like normal
|
||||||
|
_ranChopper = ["heli"] call DZMSGetVeh;
|
||||||
|
_chopper = createVehicle [_ranChopper,_coords,[], 0, "NONE"];
|
||||||
|
|
||||||
|
//DZMSSetupVehicle prevents the vehicle from disappearing and sets fuel and such
|
||||||
|
[_chopper] call DZMSSetupVehicle;
|
||||||
|
_chopper setDir -36.279881;
|
||||||
|
|
||||||
|
//DZMSBoxFill fills the box, DZMSProtectObj prevents it from disappearing
|
||||||
|
_crate = createVehicle ["Box_NATO_WpsSpecial_F",[(_coords select 0) - 6.1718,(_coords select 1) + 0.6426,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_crate2 = createVehicle ["Box_NATO_WpsSpecial_F",[(_coords select 0) - 7.1718,(_coords select 1) + 1.6426,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate2,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate2] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) - 8.4614,(_coords select 1) - 5.0527,0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) - 8.4614,(_coords select 1) - 5.0527,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 7.5337,(_coords select 1) + 4.2656,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 7.5337,(_coords select 1) + 4.2656,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMajor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Call DZMSSaveVeh to attempt to save the vehicles to the database
|
||||||
|
//If saving is off, the script will exit.
|
||||||
|
[_chopper] ExecVM DZMSSaveVeh;
|
||||||
|
[_truck] ExecVM DZMSSaveVeh;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Helicopter Landing</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Helicopter has been Taken by Survivors!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Major SM4 Helicopter Landing Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMajDone = true;
|
84
Server/@epochhive/addons/DZMS/Missions/Major/SM6.sqf
Normal file
84
Server/@epochhive/addons/DZMS/Missions/Major/SM6.sqf
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
Medical Crate by lazyink (Full credit for original code to TheSzerdi & TAW_Tonic)
|
||||||
|
Updated to new format by Vampire
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_missName","_coords","_net","_veh1","_veh2","_vehicle","_vehicle1","_crate"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Medical Cache";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["Land_Medevac_house_V1_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Medical Cache</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>Bandits have Taken Over a Survivor Medical Cache!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMajMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missname] ExecVM DZMSAddMajMarker;
|
||||||
|
|
||||||
|
//Lets add the scenery
|
||||||
|
_net = createVehicle ["CamoNet_BLUFOR_big_F",[(_coords select 0) - 0.0649, (_coords select 1) + 0.6025,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_net] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//We create the vehicles like normal
|
||||||
|
_veh1 = ["small"] call DZMSGetVeh;
|
||||||
|
_veh2 = ["large"] call DZMSGetVeh;
|
||||||
|
_vehicle = createVehicle [_veh1,[(_coords select 0) + 10.0303, (_coords select 1) - 12.2979,10],[], 0, "CAN_COLLIDE"];
|
||||||
|
_vehicle1 = createVehicle [_veh2,[(_coords select 0) - 6.2764, (_coords select 1) - 14.086,10],[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSSetupVehicle prevents the vehicle from disappearing and sets fuel and such
|
||||||
|
[_vehicle] call DZMSSetupVehicle;
|
||||||
|
[_vehicle1] call DZMSSetupVehicle;
|
||||||
|
|
||||||
|
_crate = createVehicle ["Box_IDAP_Equip_F",_coords,[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSBoxFill fills the box, DZMSProtectObj prevents it from disappearing
|
||||||
|
[_crate,"medical"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMajor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Call DZMSSaveVeh to attempt to save the vehicles to the database
|
||||||
|
//If saving is off, the script will exit.
|
||||||
|
[_vehicle] ExecVM DZMSSaveVeh;
|
||||||
|
[_vehicle1] ExecVM DZMSSaveVeh;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Medical Cache</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Medical Cache is Under Survivor Control!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Major SM6 Medical Cache Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMajDone = true;
|
66
Server/@epochhive/addons/DZMS/Missions/Major/SM7.sqf
Normal file
66
Server/@epochhive/addons/DZMS/Missions/Major/SM7.sqf
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/* //
|
||||||
|
Weapons Cache Mission by lazyink (Original Full Code by TheSzerdi & TAW_Tonic)
|
||||||
|
New Mission Format by Vampire
|
||||||
|
Edited by Fuchs for EMS
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_missName","_coords","_crate"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Large Ammo Cache";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["LMG_Mk200_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgWeapons" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Large Ammo Cache</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A gear cache has been airdropped! Secure it for yourself!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMajMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMajMarker;
|
||||||
|
|
||||||
|
_crate = createVehicle ["Box_NATO_AmmoVeh_F",_coords,[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSBoxFill fills the box, DZMSProtectObj prevents it from disappearing
|
||||||
|
[_crate,"weapons2"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 0.0352,(_coords select 1) - 6.8799, 0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
|
||||||
|
//Wait until the player is within 30meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMajor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgWeapons" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Large Ammo Cache</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The gear cache has been found, nice work, enjoy the spoils!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Major SM7 Weapon Cache Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMajDone = true;
|
73
Server/@epochhive/addons/DZMS/Missions/Major/SM9.sqf
Normal file
73
Server/@epochhive/addons/DZMS/Missions/Major/SM9.sqf
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
Fire Base Camp by lazyink (Full credit for original code to TheSzerdi & TAW_Tonic)
|
||||||
|
Updated to New Mission Format by Vampire
|
||||||
|
Edited by Fuchs for EMS
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_missName","_coords","_crate","_base1","_base2"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Bandit Firebase";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["B_HMG_01_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Bandit Firebase</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A firebase is being constructed! Stop the bandits and secure the construction materials for yourself!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMajMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMajMarker;
|
||||||
|
|
||||||
|
//Create the scenery
|
||||||
|
_base1 = createVehicle ["Land_BagBunker_Large_F",[(_coords select 0) - 20, (_coords select 1) - 10,-0.2],[], 0, "CAN_COLLIDE"];
|
||||||
|
_base2 = createVehicle ["Land_BagBunker_Tower_F",[(_coords select 0) - 10, (_coords select 1) + 10,-0.2],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_base1] call DZMSProtectObj;
|
||||||
|
[_base2] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_crate = createVehicle ["Box_NATO_AmmoVeh_F",[(_coords select 0) + 22, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate,"supply2"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) - 8.4614,(_coords select 1) - 5.0527,0],6,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) - 8.4614,(_coords select 1) - 5.0527,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 7.5337,(_coords select 1) + 4.2656,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[[(_coords select 0) + 7.5337,(_coords select 1) + 4.2656,0],4,1,"DZMSUnitsMajor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMajor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Call DZMSSaveVeh to attempt to save the vehicles to the database
|
||||||
|
//If saving is off, the script will exit.
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Bandit Firebase</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>Survivors have secured the construction materials!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Major SM9 Fire Base Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMajDone = true;
|
59
Server/@epochhive/addons/DZMS/Missions/Minor/SM1.sqf
Normal file
59
Server/@epochhive/addons/DZMS/Missions/Minor/SM1.sqf
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
Bandit Hunting Party by lazyink (Full credit to TheSzerdi & TAW_Tonic for the code)
|
||||||
|
Updated to new format by Vampire
|
||||||
|
*/
|
||||||
|
private ["_missName","_coords","_vehicle","_DZMSARRAYPICS","_MISSIONIMAGE","_msg"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Bandit Squad";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["akm_EPOCH"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgWeapons" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Bandit Squad</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A Bandit Squad has been spotted! Stop them from completing their patrol!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMinMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMinMarker;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[_coords,2,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[_coords,2,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[_coords,2,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 5;
|
||||||
|
[_coords,2,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMinor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgWeapons" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Bandit Squad</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Bandit Squad has been wiped out!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
diag_log text format["[DZMS]: Minor SM1 Bandit Squad Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMinMarker";
|
||||||
|
deleteMarker "DZMSMinDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMinDone = true;
|
97
Server/@epochhive/addons/DZMS/Missions/Minor/SM2.sqf
Normal file
97
Server/@epochhive/addons/DZMS/Missions/Minor/SM2.sqf
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
Medical Outpost by lazyink (Full credit for code to TheSzerdi & TAW_Tonic)
|
||||||
|
Updated to new format by Vampire
|
||||||
|
*/
|
||||||
|
private ["_missName","_coords","_base","_base1","_base2","_base3","_veh1","_veh2","_vehicle","_vehicle1","_crate","_crate2"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Medical Outpost";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["Land_Medevac_house_V1_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Medical Outpost</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>Bandits have established a Medical Outpost! Go Secure their Medical Supplies!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMinMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMinMarker;
|
||||||
|
|
||||||
|
//We create the scenery
|
||||||
|
_base = createVehicle ["Land_Medevac_house_V1_F",[(_coords select 0) +2, (_coords select 1)+5,-0.3],[], 0, "CAN_COLLIDE"];
|
||||||
|
_base1 = createVehicle ["Land_MedicalTent_01_digital_closed_F",[(_coords select 0) - 40, (_coords select 1) - 10,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
_base2 = createVehicle ["Land_MedicalTent_01_digital_closed_F",[(_coords select 0) - 30, (_coords select 1) - 10,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
_base3 = createVehicle ["Land_MedicalTent_01_digital_closed_F",[(_coords select 0) - 20, (_coords select 1) - 10,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSProtectObj prevents it from disappearing
|
||||||
|
[_base] call DZMSProtectObj;
|
||||||
|
[_base1] call DZMSProtectObj;
|
||||||
|
[_base2] call DZMSProtectObj;
|
||||||
|
[_base3] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//We create the vehicles
|
||||||
|
_veh1 = ["small"] call DZMSGetVeh;
|
||||||
|
_veh2 = ["small"] call DZMSGetVeh;
|
||||||
|
_vehicle = createVehicle [_veh1,[(_coords select 0) + 10, (_coords select 1) - 5,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
_vehicle1 = createVehicle [_veh2,[(_coords select 0) + 15, (_coords select 1) - 5,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSSetupVehicle prevents the vehicle from disappearing and sets fuel and such
|
||||||
|
[_vehicle] call DZMSSetupVehicle;
|
||||||
|
[_vehicle1] call DZMSSetupVehicle;
|
||||||
|
|
||||||
|
//We create and fill the crates
|
||||||
|
_crate = createVehicle ["Box_IDAP_Equip_F",[(_coords select 0) - 3, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSBoxFill fills the box, DZMSProtectObj prevents it from disappearing
|
||||||
|
[_crate,"medical"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_crate2 = createVehicle ["Box_IND_Ammo_F",[(_coords select 0) - 8, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate2,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate2] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[[(_coords select 0) - 20, (_coords select 1) - 15,0],4,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 3;
|
||||||
|
[[(_coords select 0) + 10, (_coords select 1) + 15,0],4,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 3;
|
||||||
|
[[(_coords select 0) - 10, (_coords select 1) - 15,0],4,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 3;
|
||||||
|
[[(_coords select 0) + 20, (_coords select 1) + 15,0],4,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 3;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMinor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Call DZMSSaveVeh to attempt to save the vehicles to the database
|
||||||
|
//If saving is off, the script will exit.
|
||||||
|
[_vehicle] ExecVM DZMSSaveVeh;
|
||||||
|
[_vehicle1] ExecVM DZMSSaveVeh;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Medical Outpost</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Medical Outpost is under Survivor Control!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Minor SM2 Medical Outpost Mission has Ended."];
|
||||||
|
|
||||||
|
deleteMarker "DZMSMinMarker";
|
||||||
|
deleteMarker "DZMSMinDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMinDone = true;
|
67
Server/@epochhive/addons/DZMS/Missions/Minor/SM4.sqf
Normal file
67
Server/@epochhive/addons/DZMS/Missions/Minor/SM4.sqf
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
Bandit Heli Down! by lazyink (Full credit for code to TheSzerdi & TAW_Tonic)
|
||||||
|
Updated to new format by Vampire
|
||||||
|
*/
|
||||||
|
private ["_missName","_coords","_crash","_crate"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Helicopter Crash";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["O_Heli_Attack_02_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Helicopter Crash</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A Helicopter has Crashed! Go Check for Survivors!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMinMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMinMarker;
|
||||||
|
|
||||||
|
//Add the scenery
|
||||||
|
_crash = createVehicle ["Land_Wreck_Heli_Attack_01_F", _coords,[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSProtectObj prevents it from disappearing
|
||||||
|
[_crash] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//We create and fill the crates
|
||||||
|
_crate = createVehicle ["Box_NATO_WpsSpecial_F",[(_coords select 0) - 6, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[_coords,3,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
[_coords,3,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
[_coords,3,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMinor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Helicopter Crash</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Helicopter Crash has been Secured by Survivors!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Minor SM4 Crash Site Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMinMarker";
|
||||||
|
deleteMarker "DZMSMinDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMinDone = true;
|
65
Server/@epochhive/addons/DZMS/Missions/Minor/SM5.sqf
Normal file
65
Server/@epochhive/addons/DZMS/Missions/Minor/SM5.sqf
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
Hummer Wreck by lazyink (Full credit for code to TheSzerdi & TAW_Tonic)
|
||||||
|
Updated to new format by Vampire
|
||||||
|
*/
|
||||||
|
private ["_missName","_coords","_crash","_crate"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Hunter Crash";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["B_MRAP_01_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Hunter Crash</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A Hunter has crashed!\nGo Investigate the Cause of the Wreck!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMinMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMinMarker;
|
||||||
|
|
||||||
|
//Add the scenery
|
||||||
|
_crash = createVehicle ["Land_Wreck_Hunter_F",_coords,[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSProtectObj prevents it from disappearing
|
||||||
|
[_crash] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//Add and fill the crate
|
||||||
|
_crate = createVehicle ["Box_NATO_WpsSpecial_F",[(_coords select 0) - 14, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[_coords,3,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
[_coords,3,1,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMinor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Hunter Crash</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Hunter has been Secured by Survivors!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Minor SM5 Humvee Crash Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMinMarker";
|
||||||
|
deleteMarker "DZMSMinDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMinDone = true;
|
77
Server/@epochhive/addons/DZMS/Missions/Minor/SM6.sqf
Normal file
77
Server/@epochhive/addons/DZMS/Missions/Minor/SM6.sqf
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
Weapon Truck Crash by lazyink (Full credit for code to TheSzerdi & TAW_Tonic)
|
||||||
|
Updated to new format by Vampire
|
||||||
|
*/
|
||||||
|
private ["_missName","_coords","_crash","_crate","_crate1","_crate2"];
|
||||||
|
|
||||||
|
//Name of the Mission
|
||||||
|
_missName = "Weapons Van";
|
||||||
|
|
||||||
|
//DZMSFindPos loops BIS_fnc_findSafePos until it gets a valid result
|
||||||
|
_coords = call DZMSFindPos;
|
||||||
|
|
||||||
|
_DZMSARRAYPICS = ["C_Van_01_transport_F"];
|
||||||
|
_MISSIONIMAGE = selectRandom _DZMSARRAYPICS;
|
||||||
|
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Weapons Van</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>A Weapons Van has Crashed! Go Recover the Supplies!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
|
||||||
|
//DZMSAddMinMarker is a simple script that adds a marker to the location
|
||||||
|
[_coords,_missName] ExecVM DZMSAddMinMarker;
|
||||||
|
|
||||||
|
//Add scenery
|
||||||
|
_crash = createVehicle ["Land_Wreck_Truck_dropside_F",_coords,[], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
//DZMSProtectObj prevents it from disappearing
|
||||||
|
[_crash] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//Add and fill the boxes
|
||||||
|
_crate = createVehicle ["Box_NATO_WpsSpecial_F",[(_coords select 0) + 3, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_crate1 = createVehicle ["Box_NATO_WpsSpecial_F",[(_coords select 0) - 3, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate1,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate1] call DZMSProtectObj;
|
||||||
|
|
||||||
|
_crate2 = createVehicle ["Box_NATO_AmmoVeh_F",[(_coords select 0) - 6, _coords select 1,0],[], 0, "CAN_COLLIDE"];
|
||||||
|
[_crate2,"weapons"] ExecVM DZMSBoxSetup;
|
||||||
|
[_crate2] call DZMSProtectObj;
|
||||||
|
|
||||||
|
//DZMSAISpawn spawns AI to the mission.
|
||||||
|
//Usage: [_coords, count, skillLevel, unitArray]
|
||||||
|
[_coords,3,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
[_coords,3,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
[_coords,3,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
[_coords,3,0,"DZMSUnitsMinor"] call DZMSAISpawn;
|
||||||
|
sleep 1;
|
||||||
|
|
||||||
|
//Wait until the player is within 30 meters and also meets the kill req
|
||||||
|
[_coords,"DZMSUnitsMinor"] call DZMSWaitMissionComp;
|
||||||
|
|
||||||
|
//Let everyone know the mission is over
|
||||||
|
_picture = getText (configFile >> "cfgVehicles" >> _MISSIONIMAGE >> "picture"); //this will be %1
|
||||||
|
_msg = parseText format ["
|
||||||
|
<t size='2'font='TahomaB'align='Center'color='#66CDAA'>Weapons Van</t><br/><br/>
|
||||||
|
<t align='center'><img size='7' image='%1'/></t><br/>
|
||||||
|
<t size='1'font='TahomaB'align='Center'color='#FFFFFF'>The Weapons Van has been Secured by Survivors!</t><br/>",
|
||||||
|
_picture
|
||||||
|
];
|
||||||
|
|
||||||
|
_msg remoteexec ["DZMS_Remote_Message",-2];
|
||||||
|
diag_log text format["[DZMS]: Minor SM6 Weapons Truck Mission has Ended."];
|
||||||
|
deleteMarker "DZMSMinMarker";
|
||||||
|
deleteMarker "DZMSMinDot";
|
||||||
|
|
||||||
|
//Let the timer know the mission is over
|
||||||
|
DZMSMinDone = true;
|
76
Server/@epochhive/addons/DZMS/Scripts/DZMSAIKilled.sqf
Normal file
76
Server/@epochhive/addons/DZMS/Scripts/DZMSAIKilled.sqf
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/*
|
||||||
|
DZMSAIKilled.sqf by Vampire
|
||||||
|
This function is called when an AI Unit is killed.
|
||||||
|
It handles the humanity allocation and body cleanup.
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_unit","_player","_humanity","_banditkills"];
|
||||||
|
_unit = _this select 0;
|
||||||
|
_player = _this select 1;
|
||||||
|
|
||||||
|
//If the killer is a player, lets handle the humanity
|
||||||
|
|
||||||
|
if (isPlayer _player) then {
|
||||||
|
private ["_banditkills","_humanity"];
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS]: Debug: Unit killed by %1 at %2", _player, mapGridPosition _unit];
|
||||||
|
|
||||||
|
//Lets grab some info
|
||||||
|
_humanity = _player getVariable ["humanity",0];
|
||||||
|
_banditkills = _player getVariable ["banditKills",0];
|
||||||
|
|
||||||
|
//If the player gets humanity per config, lets give it
|
||||||
|
if (DZMSMissHumanity) then {
|
||||||
|
_player setVariable ["humanity",(_humanity + DZMSCntHumanity),true];
|
||||||
|
};
|
||||||
|
|
||||||
|
//If this counts as a bandit kill, lets give it
|
||||||
|
if (DZMSCntBanditKls) then {
|
||||||
|
_player setVariable ["banditKills",(_banditkills + 1),true];
|
||||||
|
};
|
||||||
|
|
||||||
|
//Lets inform the nearby AI of roughly the players position
|
||||||
|
//This makes the AI turn and react instead of laying around
|
||||||
|
{
|
||||||
|
if (((position _x) distance (position _unit)) <= 300) then {
|
||||||
|
_x reveal [_player, 4.0];
|
||||||
|
}
|
||||||
|
} forEach allUnits;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS]: Debug: Unit killed by %1 at %2", _player, mapGridPosition _unit];
|
||||||
|
|
||||||
|
if (DZMSRunGear) then {
|
||||||
|
//Since a player ran them over, or they died from unknown causes
|
||||||
|
//Lets strip their gear
|
||||||
|
if (!isNull (unitBackpack _unit)) then {removeBackpack _unit;};
|
||||||
|
removeAllWeapons _unit;
|
||||||
|
{
|
||||||
|
_unit removeMagazine _x
|
||||||
|
} forEach magazines _unit;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
if (DZMSCleanDeath) then {
|
||||||
|
_unit call DZMSScheduleCleanUp;
|
||||||
|
if (DZMSCleanDeath) exitWith {};
|
||||||
|
};
|
||||||
|
|
||||||
|
_unit setVariable ["bodyName","unknown",false]; //Only needed on server to prevent immediate cleanup in sched_corpses.sqf
|
||||||
|
|
||||||
|
if (DZMSUseNVG) then {
|
||||||
|
_unit removeWeapon "NVGoggles";
|
||||||
|
};
|
||||||
|
|
||||||
|
if (DZMSUseRPG AND ("RPG7V" in (weapons _unit))) then {
|
||||||
|
_unit removeWeapon "CUP_launch_RPG7V";
|
||||||
|
_unit removeMagazines "CUP_PG7V_M";
|
||||||
|
};
|
||||||
|
|
||||||
|
//Dead body timer and cleanup
|
||||||
|
[DZMSBodyTime,10] call DZMSSleep;
|
||||||
|
|
||||||
|
uiSleep 15;
|
||||||
|
_unit call DZMSScheduleCleanUp;
|
172
Server/@epochhive/addons/DZMS/Scripts/DZMSAISpawn.sqf
Normal file
172
Server/@epochhive/addons/DZMS/Scripts/DZMSAISpawn.sqf
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
/* //
|
||||||
|
DZMSAISpawn.sqf by Vampire
|
||||||
|
Usage: [position,unitcount,skillLevel] execVM "dir\DZMSAISpawn.sqf";
|
||||||
|
Position is the coordinates to spawn at [X,Y,Z]
|
||||||
|
UnitCount is the number of units to spawn
|
||||||
|
SkillLevel is the skill number defined in DZMSAIConfig.sqf
|
||||||
|
*/ //
|
||||||
|
private ["_position","_unitcount","_skill","_wpRadius","_xpos","_ypos","_unitGroup","_aiskin","_aivest","_aiheadgear","_unit","_weapon","_magazine","_wppos1","_wppos2","_wppos3","_wppos4","_wp1","_wp2","_wp3","_wp4","_wpfin","_unitArrayName","_unitMissionCount"];
|
||||||
|
_position = _this select 0;
|
||||||
|
_unitcount = _this select 1;
|
||||||
|
_skill = _this select 2;
|
||||||
|
_unitArrayName = _this select 3;
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS]: AI Pos:%1 / AI UnitNum: %2 / AI SkillLev:%3",_position,_unitcount,_skill];
|
||||||
|
|
||||||
|
_wpRadius = 20;
|
||||||
|
|
||||||
|
_xpos = _position select 0;
|
||||||
|
_ypos = _position select 1;
|
||||||
|
|
||||||
|
//Create the unit group. We use east by default.
|
||||||
|
_unitGroup = createGroup DZMSAISide;
|
||||||
|
|
||||||
|
//Probably unnecessary, but prevents client AI stacking
|
||||||
|
if (!isServer) exitWith {};
|
||||||
|
|
||||||
|
for "_x" from 1 to _unitcount do {
|
||||||
|
|
||||||
|
//Lets spawn the unit
|
||||||
|
_unit = _unitGroup createUnit [DZMSAIModel, [(_position select 0),(_position select 1),(_position select 2)], [], 10, "NONE"];
|
||||||
|
|
||||||
|
//Make him join the correct team
|
||||||
|
[_unit] joinSilent _unitGroup;
|
||||||
|
|
||||||
|
//Add the behaviour
|
||||||
|
_unit enableAI "TARGET";
|
||||||
|
_unit enableAI "AUTOTARGET";
|
||||||
|
_unit enableAI "MOVE";
|
||||||
|
_unit enableAI "ANIM";
|
||||||
|
_unit enableAI "FSM";
|
||||||
|
_unit setCombatMode "YELLOW";
|
||||||
|
_unit setBehaviour "COMBAT";
|
||||||
|
|
||||||
|
//Remove the items he spawns with by default
|
||||||
|
removeAllWeapons _unit;
|
||||||
|
removeAllItems _unit;
|
||||||
|
removeAllAssignedItems _unit;
|
||||||
|
removeUniform _unit;
|
||||||
|
removeVest _unit;
|
||||||
|
removeBackpack _unit;
|
||||||
|
removeHeadgear _unit;
|
||||||
|
removeGoggles _unit;
|
||||||
|
|
||||||
|
//Add Money to AI Wallets. Credit to Zupa for the original code.
|
||||||
|
if (DZMSAICheckWallet) then {
|
||||||
|
_cash = round(random 10) * 5; // adds money to ai wallets in 5Cr increments.
|
||||||
|
_unit setVariable["Crypto",_cash,true];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//Now we need to figure out their loadout, and assign it
|
||||||
|
|
||||||
|
//Get the weapon array based on skill
|
||||||
|
_weaponArray = [_skill] call DZMSGetWeapon;
|
||||||
|
|
||||||
|
_weapon = _weaponArray select 0;
|
||||||
|
_magazine = _weaponArray select 1;
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS]: AI Weapon:%1 / AI Magazine:%2",_weapon,_magazine];
|
||||||
|
|
||||||
|
// Select a random uniform and put it on
|
||||||
|
_aiskin = selectRandom DZMSBanditSkins;
|
||||||
|
_unit forceAddUniform _aiskin;
|
||||||
|
|
||||||
|
// If an array of helmets is provided then select a random one from that list
|
||||||
|
// Otherwise select random vanilla headgear
|
||||||
|
_aiheadgear = selectRandom DZMSBanditHelmets;
|
||||||
|
if(_aiheadgear != "") then {
|
||||||
|
_unit addHeadgear _aiheadgear;
|
||||||
|
} else {
|
||||||
|
_unit addHeadgear format ["H_%1_EPOCH", floor(random 91) + 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// If an array of vests is provided then select a random one from that list
|
||||||
|
// Otherwise select a random vanilla vest
|
||||||
|
_aivest = selectRandom DZMSBanditVests;
|
||||||
|
if(_aivest != "") then {
|
||||||
|
_unit addvest _aivest;
|
||||||
|
} else {
|
||||||
|
_unit addvest format ["V_%1_EPOCH", floor(random 39) + 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
//Get the gear array
|
||||||
|
_aigearArray = [DZMSGear0,DZMSGear1,DZMSGear2,DZMSGear3,DZMSGear4];
|
||||||
|
_gearmagazines = selectRandom _aigearArray;
|
||||||
|
|
||||||
|
//Gear the AI backpack
|
||||||
|
_aipack = selectRandom DZMSPacklist;
|
||||||
|
|
||||||
|
//Lets add it to the Unit
|
||||||
|
for "_i" from 1 to 3 do {
|
||||||
|
_unit addMagazine _magazine;
|
||||||
|
};
|
||||||
|
_unit addWeapon _weapon;
|
||||||
|
_unit selectWeapon _weapon;
|
||||||
|
|
||||||
|
_unit addBackpack _aipack;
|
||||||
|
|
||||||
|
if (DZMSUseNVG) then {
|
||||||
|
_unit addWeapon "NVGoggles";
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
_unit addMagazine _x
|
||||||
|
} forEach _gearmagazines;
|
||||||
|
|
||||||
|
_aicskill = DZMSSkills1;
|
||||||
|
|
||||||
|
//Lets set the skills
|
||||||
|
switch (_skill) do {
|
||||||
|
case 0: {_aicskill = DZMSSkills0;};
|
||||||
|
case 1: {_aicskill = DZMSSkills1;};
|
||||||
|
case 2: {_aicskill = DZMSSkills2;};
|
||||||
|
case 3: {_aicskill = DZMSSkills3;};
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
_unit setSkill [(_x select 0),(_x select 1)]
|
||||||
|
} forEach _aicskill;
|
||||||
|
|
||||||
|
//Lets prepare the unit for cleanup
|
||||||
|
_unit addEventHandler ["Killed",{ [(_this select 0), (_this select 1)] ExecVM DZMSAIKilled; }];
|
||||||
|
_unit setVariable ["DZMSAI", true];
|
||||||
|
};
|
||||||
|
|
||||||
|
//Lets give a launcher if enabled
|
||||||
|
//The last _unit should still be defined from the FOR above
|
||||||
|
if (DZMSUseRPG) then {
|
||||||
|
_unit addWeapon "launch_RPG32_F";
|
||||||
|
_unit addMagazine "RPG32_F";
|
||||||
|
_unit addMagazine "RPG32_F";
|
||||||
|
};
|
||||||
|
|
||||||
|
// These are 4 waypoints in a NSEW around the center
|
||||||
|
_wppos1 = [_xpos, _ypos+20, 0];
|
||||||
|
_wppos2 = [_xpos+20, _ypos, 0];
|
||||||
|
_wppos3 = [_xpos, _ypos-20, 0];
|
||||||
|
_wppos4 = [_xpos-20, _ypos, 0];
|
||||||
|
|
||||||
|
// We add the 4 waypoints
|
||||||
|
_wp1 = _unitGroup addWaypoint [_wppos1, _wpRadius];
|
||||||
|
_wp1 setWaypointType "MOVE";
|
||||||
|
_wp2 = _unitGroup addWaypoint [_wppos2, _wpRadius];
|
||||||
|
_wp2 setWaypointType "MOVE";
|
||||||
|
_wp3 = _unitGroup addWaypoint [_wppos3, _wpRadius];
|
||||||
|
_wp3 setWaypointType "MOVE";
|
||||||
|
_wp4 = _unitGroup addWaypoint [_wppos4, _wpRadius];
|
||||||
|
_wp4 setWaypointType "MOVE";
|
||||||
|
|
||||||
|
// Then we add a center waypoint that tells them to visit the rest
|
||||||
|
_wpfin = _unitGroup addWaypoint [[_xpos,_ypos, 0], _wpRadius];
|
||||||
|
_wpfin setWaypointType "CYCLE";
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS]: Spawned %1 AI at %2",_unitcount,_position];
|
||||||
|
|
||||||
|
// load the unit groups into a passed array name so they can be cleaned up later
|
||||||
|
call compile format["
|
||||||
|
%1 = %1 + (units _unitGroup);
|
||||||
|
_unitMissionCount = count %1;
|
||||||
|
",_unitArrayName];
|
||||||
|
|
||||||
|
diag_log text format["[DZMS]: (%3) %1 AI Spawned, %2 units in mission.",count (units _unitGroup),_unitMissionCount,_unitArrayName];
|
18
Server/@epochhive/addons/DZMS/Scripts/DZMSAddMajMarker.sqf
Normal file
18
Server/@epochhive/addons/DZMS/Scripts/DZMSAddMajMarker.sqf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
Adds a marker for Major Missions. Only runs once.
|
||||||
|
DZMSMarkerLoop.sqf keeps this marker updated.
|
||||||
|
Usage: [coordinates,missionname]
|
||||||
|
*/
|
||||||
|
private["_nul","_nil"];
|
||||||
|
DZMSMajCoords = _this select 0;
|
||||||
|
DZMSMajName = _this select 1;
|
||||||
|
|
||||||
|
_nul = createMarker ["DZMSMajMarker", DZMSMajCoords];
|
||||||
|
"DZMSMajMarker" setMarkerColor "ColorBlue";
|
||||||
|
"DZMSMajMarker" setMarkerShape "ELLIPSE";
|
||||||
|
"DZMSMajMarker" setMarkerBrush "Grid";
|
||||||
|
"DZMSMajMarker" setMarkerSize [175,175];
|
||||||
|
_nil = createMarker ["DZMSMajDot", DZMSMajCoords];
|
||||||
|
"DZMSMajDot" setMarkerColor "ColorBlack";
|
||||||
|
"DZMSMajDot" setMarkerType "hd_warning";
|
||||||
|
"DZMSMajDot" setMarkerText DZMSMajName;
|
18
Server/@epochhive/addons/DZMS/Scripts/DZMSAddMinMarker.sqf
Normal file
18
Server/@epochhive/addons/DZMS/Scripts/DZMSAddMinMarker.sqf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
Adds a marker for Major Missions. Only runs once.
|
||||||
|
DZMSMarkerLoop.sqf keeps this marker updated.
|
||||||
|
Usage: [coordinates,missionname]
|
||||||
|
*/
|
||||||
|
private["_nul","_nil"];
|
||||||
|
DZMSMinCoords = _this select 0;
|
||||||
|
DZMSMinName = _this select 1;
|
||||||
|
|
||||||
|
_nul = createMarker ["DZMSMinMarker", DZMSMinCoords];
|
||||||
|
"DZMSMinMarker" setMarkerColor "ColorOrange";
|
||||||
|
"DZMSMinMarker" setMarkerShape "ELLIPSE";
|
||||||
|
"DZMSMinMarker" setMarkerBrush "Grid";
|
||||||
|
"DZMSMinMarker" setMarkerSize [150,150];
|
||||||
|
_nil = createMarker ["DZMSMinDot", DZMSMinCoords];
|
||||||
|
"DZMSMinDot" setMarkerColor "ColorBlack";
|
||||||
|
"DZMSMinDot" setMarkerType "hd_warning";
|
||||||
|
"DZMSMinDot" setMarkerText DZMSMinName;
|
224
Server/@epochhive/addons/DZMS/Scripts/DZMSBox.sqf
Normal file
224
Server/@epochhive/addons/DZMS/Scripts/DZMSBox.sqf
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
/*
|
||||||
|
Usage: [_crate,"type"] execVM "dir\DZMSBox.sqf";
|
||||||
|
_crate is the crate to fill
|
||||||
|
"type" is the type of crate
|
||||||
|
"type" can be weapons or medical
|
||||||
|
*/
|
||||||
|
//private ["_scount","_crate","_type","_sSelect","item","_ammo"];
|
||||||
|
|
||||||
|
_crate = _this select 0;
|
||||||
|
_type = _this select 1;
|
||||||
|
|
||||||
|
// Clear the current cargo
|
||||||
|
clearWeaponCargoGlobal _crate;
|
||||||
|
clearMagazineCargoGlobal _crate;
|
||||||
|
clearBackpackCargoGlobal _crate;
|
||||||
|
clearItemCargoGlobal _crate;
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////
|
||||||
|
// Medical Crates
|
||||||
|
if (_type == "medical") then {
|
||||||
|
// load medical
|
||||||
|
_scount = count DZMSMedicalSupplies;
|
||||||
|
for "_x" from 0 to 40 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSMedicalSupplies select _sSelect;
|
||||||
|
_crate addMagazineCargoGlobal [_item,(round(random 2))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Weapon Crate Small Yield
|
||||||
|
if (_type == "weapons") then {
|
||||||
|
// load grenades
|
||||||
|
_scount = count DZMSGrenadeList;
|
||||||
|
for "_x" from 0 to 2 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSGrenadeList select _sSelect;
|
||||||
|
_crate addMagazineCargoGlobal [_item,(round(random 2))];
|
||||||
|
};
|
||||||
|
|
||||||
|
// load packs
|
||||||
|
_scount = count DZMSBackPackList;
|
||||||
|
for "_x" from 0 to 3 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSBackPackList select _sSelect;
|
||||||
|
_crate addBackpackCargoGlobal [_item,1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// load pistols
|
||||||
|
_scount = count DZMSpistolList;
|
||||||
|
for "_x" from 0 to 2 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSpistolList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//load sniper
|
||||||
|
_scount = count DZMSsniperList;
|
||||||
|
for "_x" from 0 to 1 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSsniperList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//load mg
|
||||||
|
_scount = count DZMSmgList;
|
||||||
|
for "_x" from 0 to 1 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSmgList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//load primary
|
||||||
|
_scount = count DZMSprimaryList;
|
||||||
|
for "_x" from 0 to 2 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSprimaryList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Weapon Crate Large Yield
|
||||||
|
if (_type == "weapons2") then {
|
||||||
|
// load grenades
|
||||||
|
_scount = count DZMSGrenadeList;
|
||||||
|
for "_x" from 0 to 5 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSGrenadeList select _sSelect;
|
||||||
|
_crate addMagazineCargoGlobal [_item,(round(random 2))];
|
||||||
|
};
|
||||||
|
|
||||||
|
// load packs
|
||||||
|
_scount = count DZMSBackPackList;
|
||||||
|
for "_x" from 0 to 3 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSBackPackList select _sSelect;
|
||||||
|
_crate addBackpackCargoGlobal [_item,1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// load pistols
|
||||||
|
_scount = count DZMSpistolList;
|
||||||
|
for "_x" from 0 to 3 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSpistolList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//load sniper
|
||||||
|
_scount = count DZMSsniperList;
|
||||||
|
for "_x" from 0 to 3 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSsniperList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//load mg
|
||||||
|
_scount = count DZMSmgList;
|
||||||
|
for "_x" from 0 to 3 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSmgList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//load primary
|
||||||
|
_scount = count DZMSprimaryList;
|
||||||
|
for "_x" from 0 to 5 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSprimaryList select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item,1];
|
||||||
|
_ammo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
|
||||||
|
if (count _ammo > 0) then {
|
||||||
|
_crate addMagazineCargoGlobal [(_ammo select 0),(round(random 8))];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Epoch Supply Small Yield
|
||||||
|
if (_type == "supply") then {
|
||||||
|
// load tools
|
||||||
|
_scount = count DZMSConTools;
|
||||||
|
for "_x" from 0 to 2 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSConTools select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item, 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// load construction supplies
|
||||||
|
_scount = count DZMSConSupply;
|
||||||
|
for "_x" from 0 to 30 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSConSupply select _sSelect;
|
||||||
|
_crate addMagazineCargoGlobal [_item,1];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Epoch Supply Large Yield
|
||||||
|
if (_type == "supply2") then {
|
||||||
|
// load tools
|
||||||
|
_scount = count DZMSConTools;
|
||||||
|
for "_x" from 0 to 5 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSConTools select _sSelect;
|
||||||
|
_crate addWeaponCargoGlobal [_item, 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// load construction supplies
|
||||||
|
_scount = count DZMSConSupply;
|
||||||
|
for "_x" from 0 to 40 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSConSupply select _sSelect;
|
||||||
|
_crate addMagazineCargoGlobal [_item,1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// load prefab buildables
|
||||||
|
_scount = count DZMSBuildables;
|
||||||
|
for "_x" from 0 to 15 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSBuildables select _sSelect;
|
||||||
|
_crate addMagazineCargoGlobal [_item,1];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Epoch Money Crates
|
||||||
|
if (_type == "highvalue") then {
|
||||||
|
// load money
|
||||||
|
_scount = count DZMSHighValue;
|
||||||
|
for "_x" from 0 to 3 do {
|
||||||
|
_sSelect = floor(random _sCount);
|
||||||
|
_item = DZMSHighValue select _sSelect;
|
||||||
|
_crate addMagazineCargoGlobal [_item,1];
|
||||||
|
};
|
||||||
|
};
|
44
Server/@epochhive/addons/DZMS/Scripts/DZMSMajTimer.sqf
Normal file
44
Server/@epochhive/addons/DZMS/Scripts/DZMSMajTimer.sqf
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
DayZ Mission System Timer by Vampire
|
||||||
|
Based on fnc_hTime by TAW_Tonic and SMFinder by Craig
|
||||||
|
This function is launched by the Init and runs continuously.
|
||||||
|
*/
|
||||||
|
private["_run","_timeDiff","_timeVar","_wait","_cntMis","_ranMis","_varName"];
|
||||||
|
|
||||||
|
//Let's get our time Min and Max
|
||||||
|
_timeDiff = DZMSMajorMax - DZMSMajorMin;
|
||||||
|
_timeVar = _timeDiff + DZMSMajorMin;
|
||||||
|
|
||||||
|
diag_log text format ["[DZMS]: Major Mission Clock Starting!"];
|
||||||
|
|
||||||
|
//Lets get the loop going
|
||||||
|
_run = true;
|
||||||
|
while {_run} do
|
||||||
|
{
|
||||||
|
//Lets wait the random time
|
||||||
|
_wait = round(random _timeVar);
|
||||||
|
[_wait,5] call DZMSSleep;
|
||||||
|
|
||||||
|
//Let's check that there are missions in the array.
|
||||||
|
//If there are none, lets end the timer.
|
||||||
|
_cntMis = count DZMSMajorArray;
|
||||||
|
if (_cntMis == 0) exitWith { /* Exit The Loop */ };
|
||||||
|
|
||||||
|
//Lets pick a mission
|
||||||
|
_ranMis = floor (random _cntMis);
|
||||||
|
_varName = DZMSMajorArray select _ranMis;
|
||||||
|
|
||||||
|
// clean up all the existing units before starting a new one
|
||||||
|
{if (alive _x) then {_x call DZMSScheduleCleanUp;};} forEach DZMSUnitsMajor;
|
||||||
|
|
||||||
|
// rebuild the array for the next mission
|
||||||
|
DZMSUnitsMajor = [];
|
||||||
|
|
||||||
|
//Let's Run the Mission
|
||||||
|
[] execVM format ["\z\addons\dayz_server\DZMS\Missions\Major\%1.sqf",_varName];
|
||||||
|
diag_log text format ["[DZMS]: Running Major Mission %1.",_varName];
|
||||||
|
|
||||||
|
//Let's wait for it to finish or timeout
|
||||||
|
waitUntil {DZMSMajDone};
|
||||||
|
DZMSMajDone = false;
|
||||||
|
};
|
49
Server/@epochhive/addons/DZMS/Scripts/DZMSMarkerLoop.sqf
Normal file
49
Server/@epochhive/addons/DZMS/Scripts/DZMSMarkerLoop.sqf
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
Marker Resetter by Vampire
|
||||||
|
Marker Resetter checks if a Mission is running and resets the marker for JIPs
|
||||||
|
*/
|
||||||
|
private["_run","_nul","_nil"];
|
||||||
|
|
||||||
|
diag_log text format ["[DZMS]: Mission Marker Loop for JIPs Starting!"];
|
||||||
|
|
||||||
|
//Lets define these
|
||||||
|
if (isNil "DZMSMajCoords")then{DZMSMajCoords = [0,0,0];};
|
||||||
|
if (isNil "DZMSMinCoords")then{DZMSMinCoords = [0,0,0];};
|
||||||
|
|
||||||
|
//Lets start the timer
|
||||||
|
_run = true;
|
||||||
|
while {_run} do
|
||||||
|
{
|
||||||
|
[25,5] call DZMSSleep; // sleep 25 seconds
|
||||||
|
//If the marker exists (meaning the mission is active) lets delete it and re-add it
|
||||||
|
if (!(getMarkerColor "DZMSMajMarker" == "")) then {
|
||||||
|
deleteMarker "DZMSMajMarker";
|
||||||
|
deleteMarker "DZMSMajDot";
|
||||||
|
//Re-Add the markers
|
||||||
|
_nul = createMarker ["DZMSMajMarker", DZMSMajCoords];
|
||||||
|
"DZMSMajMarker" setMarkerColor "ColorBlue";
|
||||||
|
"DZMSMajMarker" setMarkerShape "ELLIPSE";
|
||||||
|
"DZMSMajMarker" setMarkerBrush "Grid";
|
||||||
|
"DZMSMajMarker" setMarkerSize [175,175];
|
||||||
|
_zap = createMarker ["DZMSMajDot", DZMSMajCoords];
|
||||||
|
"DZMSMajDot" setMarkerColor "ColorBlack";
|
||||||
|
"DZMSMajDot" setMarkerType "hd_warning";
|
||||||
|
"DZMSMajDot" setMarkerText DZMSMajName;
|
||||||
|
};
|
||||||
|
//Lets do the same for the minor mission
|
||||||
|
if (!(getMarkerColor "DZMSMinMarker" == "")) then {
|
||||||
|
deleteMarker "DZMSMinMarker";
|
||||||
|
deleteMarker "DZMSMinDot";
|
||||||
|
//Re-Add the markers
|
||||||
|
_nil = createMarker ["DZMSMinMarker", DZMSMinCoords];
|
||||||
|
"DZMSMinMarker" setMarkerColor "ColorOrange";
|
||||||
|
"DZMSMinMarker" setMarkerShape "ELLIPSE";
|
||||||
|
"DZMSMinMarker" setMarkerBrush "Grid";
|
||||||
|
"DZMSMinMarker" setMarkerSize [150,150];
|
||||||
|
_zip = createMarker ["DZMSMinDot", DZMSMinCoords];
|
||||||
|
"DZMSMinDot" setMarkerColor "ColorBlack";
|
||||||
|
"DZMSMinDot" setMarkerType "hd_warning";
|
||||||
|
"DZMSMinDot" setMarkerText DZMSMinName;
|
||||||
|
};
|
||||||
|
//Now we wait another 25 seconds
|
||||||
|
};
|
44
Server/@epochhive/addons/DZMS/Scripts/DZMSMinTimer.sqf
Normal file
44
Server/@epochhive/addons/DZMS/Scripts/DZMSMinTimer.sqf
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
DayZ Mission System Timer by Vampire
|
||||||
|
Based on fnc_hTime by TAW_Tonic and SMFinder by Craig
|
||||||
|
This function is launched by the Init and runs continuously.
|
||||||
|
*/
|
||||||
|
private["_run","_timeDiff","_timeVar","_wait","_cntMis","_ranMis","_varName"];
|
||||||
|
|
||||||
|
//Let's get our time Min and Max
|
||||||
|
_timeDiff = DZMSMinorMax - DZMSMinorMin;
|
||||||
|
_timeVar = _timeDiff + DZMSMinorMin;
|
||||||
|
|
||||||
|
diag_log text format ["[DZMS]: Minor Mission Clock Starting!"];
|
||||||
|
|
||||||
|
//Lets get the loop going
|
||||||
|
_run = true;
|
||||||
|
while {_run} do
|
||||||
|
{
|
||||||
|
//Lets wait the random time
|
||||||
|
_wait = round(random _timeVar);
|
||||||
|
[_wait,5] call DZMSSleep;
|
||||||
|
|
||||||
|
//Let's check that there are missions in the array.
|
||||||
|
//If there are none, lets end the timer.
|
||||||
|
_cntMis = count DZMSMinorArray;
|
||||||
|
if (_cntMis == 0) exitWith { /* Exit The Loop */ };
|
||||||
|
|
||||||
|
//Lets pick a mission
|
||||||
|
_ranMis = floor (random _cntMis);
|
||||||
|
_varName = DZMSMinorArray select _ranMis;
|
||||||
|
|
||||||
|
// clean up all the existing units before starting a new one
|
||||||
|
{if (alive _x) then {_x call DZMSScheduleCleanUp;};} forEach DZMSUnitsMinor;
|
||||||
|
|
||||||
|
// rebuild the array for the next mission
|
||||||
|
DZMSUnitsMinor = [];
|
||||||
|
|
||||||
|
//Let's Run the Mission
|
||||||
|
[] execVM format ["\z\addons\dayz_server\DZMS\Missions\Minor\%1.sqf",_varName];
|
||||||
|
diag_log text format ["[DZMS]: Running Minor Mission %1.",_varName];
|
||||||
|
|
||||||
|
//Let's wait for it to finish or timeout
|
||||||
|
waitUntil {DZMSMinDone};
|
||||||
|
DZMSMinDone = false;
|
||||||
|
};
|
38
Server/@epochhive/addons/DZMS/Scripts/DZMSSaveToHive.sqf
Normal file
38
Server/@epochhive/addons/DZMS/Scripts/DZMSSaveToHive.sqf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
Save To Hive by Vampire
|
||||||
|
This function attempts to save vehicles to the database if enabled when a mission ends.
|
||||||
|
Usage: [Vehicle]
|
||||||
|
*/
|
||||||
|
_object = _this select 0;
|
||||||
|
_class = typeOf _object;
|
||||||
|
_dir = getDir _object;
|
||||||
|
_pos = getPos _object;
|
||||||
|
_worldspace = [_dir,_pos];
|
||||||
|
|
||||||
|
//If they have vehicle saving off, then this script needs to do nothing.
|
||||||
|
if (!(DZMSSaveVehicles)) exitWith {};
|
||||||
|
|
||||||
|
//Check if vehicle is null or dead
|
||||||
|
if (isNull _object OR !alive _object OR (damage _object) > .97) exitWith {};
|
||||||
|
|
||||||
|
//Get a random fuel count to set
|
||||||
|
_ranFuel = random 1;
|
||||||
|
if (_ranFuel < .1) then {_ranFuel = .1;};
|
||||||
|
|
||||||
|
//Lets get it ready for the user
|
||||||
|
_object setvelocity [0,0,1];
|
||||||
|
_object setFuel _ranFuel;
|
||||||
|
_object setVehicleLock "UNLOCKED";
|
||||||
|
|
||||||
|
clearWeaponCargoGlobal _object;
|
||||||
|
clearMagazineCargoGlobal _object;
|
||||||
|
clearBackpackCargoGlobal _object;
|
||||||
|
clearItemCargoGlobal _object;
|
||||||
|
|
||||||
|
//_object allowDamage false;
|
||||||
|
//_object setVariable ["lastUpdate", time];
|
||||||
|
//_object setVariable ["CharacterID", "0", true];
|
||||||
|
|
||||||
|
//sleep 1;
|
||||||
|
//_object allowDamage true;
|
||||||
|
|
255
Server/@epochhive/addons/DZMS/Scripts/DZMSVehiclePatrol.sqf
Normal file
255
Server/@epochhive/addons/DZMS/Scripts/DZMSVehiclePatrol.sqf
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
if (!isServer)exitWith{};
|
||||||
|
|
||||||
|
private ["_position","_skill","_wpRadius","_xpos","_ypos","_unitGroup","_aiskin","_weapon","_magazine","_wppos1","_wppos2","_wppos3","_wppos4","_wp1","_wp2","_wp3","_wp4","_wpfin","_unitArrayName","_unitMissionCount","_patrol","_pilot","_gunner"];
|
||||||
|
|
||||||
|
_position = _this select 0;
|
||||||
|
_wpRadius = _this select 1;
|
||||||
|
_skill = _this select 2;
|
||||||
|
_unitArrayName = _this select 3;
|
||||||
|
|
||||||
|
_xpos = _position select 0;
|
||||||
|
_ypos = _position select 1;
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS_Patrol]: AI Pos:%1 / AI SkillLev:%2",_position,_skill];
|
||||||
|
|
||||||
|
_unitGroup = createGroup DZMSAISide;
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS_Patrol]: Create the Driver"];
|
||||||
|
|
||||||
|
_pilot = _unitGroup createUnit [DZMSAIModel, [0,0,0], [], 1, "NONE"];
|
||||||
|
[_pilot] joinSilent _unitGroup;
|
||||||
|
|
||||||
|
//Add the behaviour
|
||||||
|
_pilot enableAI "TARGET";
|
||||||
|
_pilot enableAI "AUTOTARGET";
|
||||||
|
_pilot enableAI "MOVE";
|
||||||
|
_pilot enableAI "ANIM";
|
||||||
|
_pilot enableAI "FSM";
|
||||||
|
_pilot setCombatMode "RED";
|
||||||
|
_pilot setBehaviour "COMBAT";
|
||||||
|
|
||||||
|
//Remove the items he spawns with by default
|
||||||
|
removeAllWeapons _pilot;
|
||||||
|
removeAllItems _pilot;
|
||||||
|
removeAllAssignedItems _pilot;
|
||||||
|
removeUniform _pilot;
|
||||||
|
removeVest _pilot;
|
||||||
|
removeBackpack _pilot;
|
||||||
|
removeHeadgear _pilot;
|
||||||
|
removeGoggles _pilot;
|
||||||
|
|
||||||
|
//Now we need to figure out their loadout, and assign it
|
||||||
|
|
||||||
|
//Get the weapon array based on skill
|
||||||
|
_weaponArray = [_skill - 1] call DZMSGetWeapon;
|
||||||
|
|
||||||
|
_weapon = _weaponArray select 0;
|
||||||
|
_magazine = _weaponArray select 1;
|
||||||
|
|
||||||
|
// Select a random uniform and put it on
|
||||||
|
_aiskin = selectRandom DZMSBanditSkins;
|
||||||
|
_pilot forceAddUniform _aiskin;
|
||||||
|
|
||||||
|
// If an array of helmets is provided then select a random one from that list
|
||||||
|
// Otherwise select random vanilla headgear
|
||||||
|
_aiheadgear = selectRandom DZMSBanditHelmets;
|
||||||
|
if(_aiheadgear != "") then {
|
||||||
|
_pilot addHeadgear _aiheadgear;
|
||||||
|
} else {
|
||||||
|
_pilot addHeadgear format ["H_%1_EPOCH", floor(random 91) + 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// If an array of vests is provided then select a random one from that list
|
||||||
|
// Otherwise select a random vanilla vest
|
||||||
|
_aivest = selectRandom DZMSBanditVests;
|
||||||
|
if(_aivest != "") then {
|
||||||
|
_pilot addvest _aivest;
|
||||||
|
} else {
|
||||||
|
_pilot addvest format ["V_%1_EPOCH", floor(random 39) + 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
//Get the gear array
|
||||||
|
_aigearArray = [DZMSGear0,DZMSGear1,DZMSGear2,DZMSGear3,DZMSGear4];
|
||||||
|
_gearmagazines = _aigearArray call BIS_fnc_selectRandom;
|
||||||
|
|
||||||
|
//Gear the AI backpack
|
||||||
|
_aipack = selectRandom DZMSPacklist;
|
||||||
|
|
||||||
|
//Lets add it to the Unit
|
||||||
|
for "_i" from 1 to 3 do {
|
||||||
|
_pilot addMagazine _magazine;
|
||||||
|
};
|
||||||
|
_pilot addWeapon _weapon;
|
||||||
|
_pilot selectWeapon _weapon;
|
||||||
|
|
||||||
|
_pilot addBackpack _aipack;
|
||||||
|
|
||||||
|
if (DZMSUseNVG) then {
|
||||||
|
_pilot addWeapon "NVGoggles";
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
_pilot addMagazine _x
|
||||||
|
} forEach _gearmagazines;
|
||||||
|
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS_Patrol]: Create Gunner"];
|
||||||
|
|
||||||
|
_aiskin = DZMSBanditSkins call BIS_fnc_selectRandom;
|
||||||
|
_gunner = _unitGroup createUnit [DZMSAIModel, [0,0,0], [], 1, "NONE"];
|
||||||
|
[_gunner] joinSilent _unitGroup;
|
||||||
|
|
||||||
|
//Add the behaviour
|
||||||
|
_gunner enableAI "TARGET";
|
||||||
|
_gunner enableAI "AUTOTARGET";
|
||||||
|
_gunner enableAI "MOVE";
|
||||||
|
_gunner enableAI "ANIM";
|
||||||
|
_gunner enableAI "FSM";
|
||||||
|
_gunner setCombatMode "RED";
|
||||||
|
_gunner setBehaviour "COMBAT";
|
||||||
|
|
||||||
|
//Remove the items he spawns with by default
|
||||||
|
removeAllWeapons _gunner;
|
||||||
|
removeAllItems _gunner;
|
||||||
|
removeAllAssignedItems _gunner;
|
||||||
|
removeUniform _gunner;
|
||||||
|
removeVest _gunner;
|
||||||
|
removeBackpack _gunner;
|
||||||
|
removeHeadgear _gunner;
|
||||||
|
removeGoggles _gunner;
|
||||||
|
|
||||||
|
//Now we need to figure out their loadout, and assign it
|
||||||
|
|
||||||
|
//Get the weapon array based on skill
|
||||||
|
_weaponArray = [_skill - 1] call DZMSGetWeapon;
|
||||||
|
|
||||||
|
_weapon = _weaponArray select 0;
|
||||||
|
_magazine = _weaponArray select 1;
|
||||||
|
|
||||||
|
// Select a random uniform and put it on
|
||||||
|
_aiskin = selectRandom DZMSBanditSkins;
|
||||||
|
_gunner forceAddUniform _aiskin;
|
||||||
|
|
||||||
|
// If an array of helmets is provided then select a random one from that list
|
||||||
|
// Otherwise select random vanilla headgear
|
||||||
|
_aiheadgear = selectRandom DZMSBanditHelmets;
|
||||||
|
if(_aiheadgear != "") then {
|
||||||
|
_gunner addHeadgear _aiheadgear;
|
||||||
|
} else {
|
||||||
|
_gunner addHeadgear format ["H_%1_EPOCH", floor(random 91) + 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
// If an array of vests is provided then select a random one from that list
|
||||||
|
// Otherwise select a random vanilla vest
|
||||||
|
_aivest = selectRandom DZMSBanditVests;
|
||||||
|
if(_aivest != "") then {
|
||||||
|
_gunner addvest _aivest;
|
||||||
|
} else {
|
||||||
|
_gunner addvest format ["V_%1_EPOCH", floor(random 39) + 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
//Get the gear array
|
||||||
|
_aigearArray = [DZMSGear0,DZMSGear1,DZMSGear2,DZMSGear3,DZMSGear4];
|
||||||
|
_gearmagazines = _aigearArray call BIS_fnc_selectRandom;
|
||||||
|
|
||||||
|
//Gear the AI backpack
|
||||||
|
_aipack = selectRandom DZMSPacklist;
|
||||||
|
|
||||||
|
//Lets add it to the Unit
|
||||||
|
for "_i" from 1 to 3 do {
|
||||||
|
_gunner addMagazine _magazine;
|
||||||
|
};
|
||||||
|
_gunner addWeapon _weapon;
|
||||||
|
_gunner selectWeapon _weapon;
|
||||||
|
|
||||||
|
_gunner addBackpack _aipack;
|
||||||
|
|
||||||
|
if (DZMSUseNVG) then {
|
||||||
|
_gunner addWeapon "NVGoggles";
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
_gunner addMagazine _x
|
||||||
|
} forEach _gearmagazines;
|
||||||
|
|
||||||
|
_aicskill = DZMSSkills1;
|
||||||
|
|
||||||
|
//Lets set the skills
|
||||||
|
switch (_skill) do {
|
||||||
|
case 0: {_aicskill = DZMSSkills0;};
|
||||||
|
case 1: {_aicskill = DZMSSkills1;};
|
||||||
|
case 2: {_aicskill = DZMSSkills2;};
|
||||||
|
case 3: {_aicskill = DZMSSkills3;};
|
||||||
|
};
|
||||||
|
|
||||||
|
{_gunner setSkill [(_x select 0),(_x select 1)]} forEach _aicskill;
|
||||||
|
{_pilot setSkill [(_x select 0),(_x select 1)]} forEach _aicskill;
|
||||||
|
|
||||||
|
|
||||||
|
//Lets prepare the unit for cleanup
|
||||||
|
_pilot addEventHandler ["Killed",{ [(_this select 0), (_this select 1)] ExecVM DZMSAIKilled; }];
|
||||||
|
_pilot setVariable ["DZMSAI", true];
|
||||||
|
_gunner addEventHandler ["Killed",{ [(_this select 0), (_this select 1)] ExecVM DZMSAIKilled; }];
|
||||||
|
_gunner setVariable ["DZMSAI", true];
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS_Patrol]: Create the Vehicle"];
|
||||||
|
|
||||||
|
_patrol = ["patrol"] call DZMSGetVeh;
|
||||||
|
_patrol = createVehicle [_patrol, [(_position select 0) + _wpRadius,(_position select 1) + _wpRadius, 0], [], 0, "CAN_COLLIDE"];
|
||||||
|
[_patrol] call DZMSSetupVehicle;
|
||||||
|
_patrol setFuel 1;
|
||||||
|
_patrol engineOn true;
|
||||||
|
_patrol setVehicleAmmo 1;
|
||||||
|
_patrol allowCrewInImmobile true;
|
||||||
|
clearWeaponCargoGlobal _patrol;
|
||||||
|
clearMagazineCargoGlobal _patrol;
|
||||||
|
clearBackpackCargoGlobal _patrol;
|
||||||
|
clearItemCargoGlobal _patrol;
|
||||||
|
|
||||||
|
//PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_patrol];
|
||||||
|
|
||||||
|
_pilot assignAsDriver _patrol;
|
||||||
|
_pilot moveInDriver _patrol;
|
||||||
|
_gunner assignAsGunner _patrol;
|
||||||
|
_gunner moveingunner _patrol;
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS_Patrol]: Spawn the Patrol Group"];
|
||||||
|
_patrol call EPOCH_server_setVToken;
|
||||||
|
addToRemainsCollector [_patrol]; // Add the vehicle to ARMA's wreck handler
|
||||||
|
|
||||||
|
_unitGroup allowFleeing 0;
|
||||||
|
_unitGroup setBehaviour "AWARE";
|
||||||
|
// These are 4 waypoints in a NorthSEW around the center
|
||||||
|
_wppos1 = [_xpos, _ypos+50, 0];
|
||||||
|
_wppos2 = [_xpos+50, _ypos, 0];
|
||||||
|
_wppos3 = [_xpos, _ypos-50, 0];
|
||||||
|
_wppos4 = [_xpos-50, _ypos, 0];
|
||||||
|
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS_Patrol]: Add Waypoints"];
|
||||||
|
|
||||||
|
// We add the 4 waypoints
|
||||||
|
_wp1 = _unitGroup addWaypoint [_wppos1, _wpRadius];
|
||||||
|
_wp1 setWaypointType "MOVE";
|
||||||
|
_wp2 = _unitGroup addWaypoint [_wppos2, _wpRadius];
|
||||||
|
_wp2 setWaypointType "MOVE";
|
||||||
|
_wp3 = _unitGroup addWaypoint [_wppos3, _wpRadius];
|
||||||
|
_wp3 setWaypointType "MOVE";
|
||||||
|
_wp4 = _unitGroup addWaypoint [_wppos4, _wpRadius];
|
||||||
|
_wp4 setWaypointType "MOVE";
|
||||||
|
|
||||||
|
|
||||||
|
// Then we add a center waypoint that tells them to visit the rest
|
||||||
|
_wpfin = _unitGroup addWaypoint [[_xpos,_ypos, 0], _wpRadius];
|
||||||
|
_wpfin setWaypointType "CYCLE";
|
||||||
|
_wpfin setWaypointCompletionRadius 150;
|
||||||
|
|
||||||
|
// load the unit groups into a passed array name so they can be cleaned up later
|
||||||
|
call compile format["
|
||||||
|
%1 = %1 + (units _unitGroup);
|
||||||
|
_unitMissionCount = count %1;
|
||||||
|
",_unitArrayName];
|
||||||
|
|
||||||
|
diag_log text format["[DZMS]: (%3) %1 AI Spawned in patrol vehicle, %2 units in mission.",count (units _unitGroup),_unitMissionCount,_unitArrayName];
|
||||||
|
|
||||||
|
//diag_log text format ["[DZMS_Patrol]: Finished the Patrol Create"];
|
34
Server/@epochhive/addons/DZMS/config.cpp
Normal file
34
Server/@epochhive/addons/DZMS/config.cpp
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
for DBD Clan
|
||||||
|
By Ghostrider-DBD-
|
||||||
|
Copyright 2016
|
||||||
|
Last Modified 3-14-17
|
||||||
|
|
||||||
|
--------------------------
|
||||||
|
License
|
||||||
|
--------------------------
|
||||||
|
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CfgPatches {
|
||||||
|
class DZMS {
|
||||||
|
units[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
requiredVersion = 0.1;
|
||||||
|
requiredAddons[] = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class CfgFunctions {
|
||||||
|
class DZMS_init {
|
||||||
|
class DZMS_start {
|
||||||
|
file = "\z\addons\dayz_server\DZMS";
|
||||||
|
class DZMSInit {
|
||||||
|
//preInit = 1;
|
||||||
|
postInit = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
62
Server/@epochhive/addons/DZMS/fn_DZMSInit.sqf
Normal file
62
Server/@epochhive/addons/DZMS/fn_DZMSInit.sqf
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
DZMSInit.sqf by Vampire
|
||||||
|
This is the file that every other file branches off from.
|
||||||
|
It checks that it is safe to run, sets relations, and starts mission timers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Error Check
|
||||||
|
if (!isServer) exitWith { diag_log text format ["[DZMS]: <ERROR> DZMS is Installed Incorrectly! DZMS is not Running!"]; };
|
||||||
|
if (!isnil("DZMSInstalled")) exitWith { diag_log text format ["[DZMS]: <ERROR> DZMS is Installed Twice or Installed Incorrectly!"]; };
|
||||||
|
|
||||||
|
// Global for other scripts to check if DZMS is installed.
|
||||||
|
DZMSInstalled = true;
|
||||||
|
|
||||||
|
diag_log text format ["[DZMS]: Starting DayZ Mission System."];
|
||||||
|
|
||||||
|
// Let's Load the Mission Configuration
|
||||||
|
call compile preprocessFileLineNumbers "\z\addons\dayz_server\DZMS\DZMSConfig.sqf";
|
||||||
|
|
||||||
|
// These are Extended configuration files the user can adjust if wanted
|
||||||
|
call compile preprocessFileLineNumbers "\z\addons\dayz_server\DZMS\ExtConfig\DZMSCrateConfig.sqf";
|
||||||
|
call compile preprocessFileLineNumbers "\z\addons\dayz_server\DZMS\ExtConfig\DZMSAIConfig.sqf";
|
||||||
|
|
||||||
|
// Report the version
|
||||||
|
diag_log text format ["[DZMS]: Currently Running Version: %1", DZMSVersion];
|
||||||
|
|
||||||
|
// Lets check for a copy-pasted config file
|
||||||
|
if (DZMSVersion != "3.01_A3") then {
|
||||||
|
diag_log text format ["[DZMS]: Outdated Configuration Detected! Please Update DZMS!"];
|
||||||
|
diag_log text format ["[DZMS]: Old Versions are not supported by the Mod Author!"];
|
||||||
|
};
|
||||||
|
|
||||||
|
diag_log text format ["[DZMS]: Mission and Extended Configuration Loaded!"];
|
||||||
|
|
||||||
|
// Lets get the map name for mission location purposes
|
||||||
|
DZMSWorldName = toLower format ["%1", worldName];
|
||||||
|
diag_log text format["[DZMS]: %1 Detected. Map Specific Settings Adjusted!", DZMSWorldName];
|
||||||
|
|
||||||
|
DZMS_Remote_Message = compilefinal "
|
||||||
|
_this spawn {
|
||||||
|
|
||||||
|
hintSilent _this;
|
||||||
|
playSound 'RadioAmbient6';
|
||||||
|
|
||||||
|
};
|
||||||
|
";
|
||||||
|
publicvariable 'DZMS_Remote_Message';
|
||||||
|
|
||||||
|
// Lets load our functions
|
||||||
|
call compile preprocessFileLineNumbers "\z\addons\dayz_server\DZMS\DZMSFunctions.sqf";
|
||||||
|
|
||||||
|
// these arrays are used to hold units for each mission type
|
||||||
|
DZMSUnitsMinor = [];
|
||||||
|
DZMSUnitsMajor = [];
|
||||||
|
|
||||||
|
// Let's get the clocks running!
|
||||||
|
[] ExecVM DZMSMajTimer;
|
||||||
|
[] ExecVM DZMSMinTimer;
|
||||||
|
DZMSMajDone = false;
|
||||||
|
DZMSMinDone = false;
|
||||||
|
|
||||||
|
// Let's get the Marker Re-setter running for JIPs to stay updated
|
||||||
|
[] ExecVM DZMSMarkerLoop;
|
@ -3,7 +3,7 @@
|
|||||||
:::::::::::::: CONFIG ::::::::::::::::::
|
:::::::::::::: CONFIG ::::::::::::::::::
|
||||||
|
|
||||||
:: Set your Arma3 Epoch Base installation directory. LEAVE OFF THE ENDING \
|
:: Set your Arma3 Epoch Base installation directory. LEAVE OFF THE ENDING \
|
||||||
set arma3srvpath=C:\Program Files (x86)\Steam\SteamApps\common\Arma 3
|
set arma3srvpath=F:\GameServers\Arma3\arma3epoch
|
||||||
|
|
||||||
:: Set your Default server profile name. This is the name of the directory that stores your server.cfg
|
:: Set your Default server profile name. This is the name of the directory that stores your server.cfg
|
||||||
:: This will be used in the case that you don't launch this script without the server param.
|
:: This will be used in the case that you don't launch this script without the server param.
|
||||||
@ -88,6 +88,7 @@ copy "%arma3srvpath%\%servername%\BattlEye\mpeventhandler.log" "%arma3srvpath%\%
|
|||||||
copy "%arma3srvpath%\DB\dump.rdb" "%arma3srvpath%\DBbackups\RotatedLogs\%dtStamp%\DBbackups\dump.rdb"
|
copy "%arma3srvpath%\DB\dump.rdb" "%arma3srvpath%\DBbackups\RotatedLogs\%dtStamp%\DBbackups\dump.rdb"
|
||||||
copy "%arma3srvpath%\%servername%\A3Master_*.log" "%arma3srvpath%\%servername%\RotatedLogs\%dtStamp%\A3Master_*.log"
|
copy "%arma3srvpath%\%servername%\A3Master_*.log" "%arma3srvpath%\%servername%\RotatedLogs\%dtStamp%\A3Master_*.log"
|
||||||
copy "%arma3srvpath%\%servername%\arma3server_*.rpt" "%arma3srvpath%\%servername%\RotatedLogs\%dtStamp%\arma3server_*.rpt"
|
copy "%arma3srvpath%\%servername%\arma3server_*.rpt" "%arma3srvpath%\%servername%\RotatedLogs\%dtStamp%\arma3server_*.rpt"
|
||||||
|
copy "%arma3srvpath%\%servername%\Epochserver_*.rpt" "%arma3srvpath%\%servername%\RotatedLogs\%dtStamp%\arma3server_*.rpt"
|
||||||
|
|
||||||
|
|
||||||
echo (%date%) (%time%) Logs are backed up now...
|
echo (%date%) (%time%) Logs are backed up now...
|
||||||
@ -108,6 +109,7 @@ del /Q /F "%arma3srvpath%\%servername%\BattlEye\mpeventhandler.log"
|
|||||||
del /Q /F "%arma3srvpath%\%servername%\BattlEye\setdamage.log"
|
del /Q /F "%arma3srvpath%\%servername%\BattlEye\setdamage.log"
|
||||||
del /Q /F "%arma3srvpath%\%servername%\A3Master_*.log"
|
del /Q /F "%arma3srvpath%\%servername%\A3Master_*.log"
|
||||||
del /Q /F "%arma3srvpath%\%servername%\arma3server_*.rpt"
|
del /Q /F "%arma3srvpath%\%servername%\arma3server_*.rpt"
|
||||||
|
del /Q /F "%arma3srvpath%\%servername%\Epochserver_*.rpt"
|
||||||
|
|
||||||
if %debug% == 1 (
|
if %debug% == 1 (
|
||||||
timeout %dbsecs%
|
timeout %dbsecs%
|
||||||
|
Loading…
Reference in New Issue
Block a user