Jump to content

Adding Custom loot crates when using DZAI mission system.


Cyrus

Recommended Posts

I know of some questions in the forums regarding custom loot crates with available missions systems. I have managed to create a custom loot crate thanks to @DAmNRelentless help, that randomizes items and weapons from user customizable arrays and integrate this with the mission system. This for the time being works for DZAI on Epoch 1.0.6.2. 

Following is my custom lootcrate.sqf , all the classnames used is from the official epoch 1.0.6.2 github repo with thanks to @salival found >here<

Spoiler

if (isServer) then {

// Delete if crate exists
deleteVehicle _vehicle_999999; 

//Then recreate it at the same position.
_vehicle_999999 = objNull;

	while {true} do {
		_refreshTime = 180;
		_this = createVehicle ["TKVehicleBox_EP1", [726.63354, 9610.8154, 0], [], 0, "CAN_COLLIDE"];
		_vehicle_999999 = _this;
		_this setDir 20;
		_vehicle_999999 setVariable ["ObjectID","1",true];
		_vehicle_999999 setVariable ["permaLoot",true];
		_vehicle_999999 allowDamage false;

		//Clears the possible random content from the crate
		clearWeaponCargoGlobal _this;
		clearMagazineCargoGlobal _this;

//All items and Weapons arrays. User customizable.

		_weaponAmmoArray = [[["DMR_DZ",2],["20Rnd_762x51_DMR",5]],
							[["L115A3_DZ",2],["5Rnd_86x70_L115A1",5]],
							[["m107_DZ"],["10Rnd_127x99_m107",5]],
							[["PMC_AS50_scoped"],["5Rnd_127x99_as50",5]],
							[["M249_m145_EP1_DZE",2],["200Rnd_556x45_M249",5]]
		];
	
		_toolArray = [["ItemEtool",5],
					  ["ItemCrowbar",5]
		];

		_magazineArray = [["150Rnd_127x107_DSHKM",7],
						  ["150Rnd_127x108_KORD",7],
						  ["2000Rnd_762x51_M134",7],
						  ["CinderBlocks",20],["FoodCanRusPork",10],
						  ["FoodMRE",10],["ItemBriefcase100oz",2],
						  ["ItemComboLock",5],
						  ["ItemLightBulb",5],
						  ["ItemLockbox",2],
						  ["ItemMorphine",10],
						  ["ItemPainkiller",10],
						  ["ItemPole",2],
						  ["ItemSodaMzly",10],
						  ["ItemSodaR4z0r",10],
						  ["ItemVault",2],
						  ["cinder_door_kit",5],
						  ["cinder_garage_kit",5],
						  ["full_cinder_wall_kit",10],
						  ["metal_floor_kit",10],
						  ["ItemBloodbag",10]
		];

		_gemArray = [["ItemEmerald",2],
				  	 ["ItemSapphire",2],
					 ["ItemTopaz",2],
					 ["ItemCitrine",2],
					 ["ItemAmethyst",2]
		];


		_counterWeaponsAmmo = 0;

//Random Crate filling

		while {_counterWeaponsAmmo < 5} do {
			_randomWeapAmmo = _weaponAmmoArray call BIS_fnc_selectRandom;
			_weaponAmmoArray = _weaponAmmoArray - _randomWeapAmmo;
			_weapon = _randomWeapAmmo select 0;
			_ammo = _randomWeapAmmo select 1;
			_randomAmmo = round(random(_ammo select 1));
			_ammo set[1,_randomAmmo];
			_this addWeaponCargoGlobal _weapon;
			_this addMagazineCargoGlobal _ammo;
			_counterWeaponsAmmo = _counterWeaponsAmmo + 1;
		};
	
		_counterTool = 0;
	
		while {_counterTool < 2} do {
			_randomTool = _toolArray call BIS_fnc_selectRandom;
			_tooldArray = _toolArray - _randomTool;
			_this addMagazineCargoGlobal _randomTool;
			_counterTool = _counterTool + 1;
		};
	
		_counterMagazine = 0;
	
		while {_counterMagazine < 25} do {
			_randomMagazine = _magazineArray call BIS_fnc_selectRandom;
			_magazineArray = _magazineArray - _randomMagazine;
			_this addMagazineCargoGlobal _randomMagazine;
			_counterMagazine = _counterMagazine + 1;
		};
	
		_counterGem = 0;
	
		while {_counterGem < 3} do {
			_randomGem = _gemArray call BIS_fnc_selectRandom;
			_gemArray = _gemArray - _randomGem;
			_this addMagazineCargoGlobal _randomGem;
			_counterGem = _counterGem + 1;
		};
	sleep _refreshTime;
	};
};

 

From here I have added the following script to my custom DZAI spawns found in \z\addons\dayz_server\DZAI\init\world_spawn_configs\custom_spawns\cust_spawns_panthera2.sqf. Obviously you will use the sqf appropriate to your map etc.

["staticspawn",10,2,true] call DZAI_spawn_units;

if {DZAI_spawn_units && DZAI_despawnWait == true} then {
	execVM "\z\addons\dayz_server\custom\lootcrate.sqf";
};

This method might need some tweaking and someone else might have a more effective way of doing this, but for me this works perfectly. Fully tested with random loot spawns after new AI group spawned.

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...