mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
1.0.1.6 Developer Build
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
private ["_iItem","_iClass","_iPos","_radius","_itemTypes","_index","_item","_qty","_max","_tQty","_canType","_weights","_cntWeights","_dateNow","_mags"];
|
||||
|
||||
private ["_iItem","_iClass","_iPos","_radius","_item","_itemTypes","_index","_weights","_cntWeights","_qty","_max","_tQty","_canType","_mags"];
|
||||
|
||||
_iItem = _this select 0;
|
||||
_iClass = _this select 1;
|
||||
diag_log format["DEBUG spawn loot class: %1", _iClass];
|
||||
_iPos = _this select 2;
|
||||
_radius = _this select 3;
|
||||
|
||||
//_iPosZ = _iPos select 2;
|
||||
//if( _iPosZ < 0 ) then { _iPos = [_iPos select 0,_iPos select 1,0]; };
|
||||
|
||||
switch (_iClass) do {
|
||||
default {
|
||||
switch (_iClass) do
|
||||
{
|
||||
default
|
||||
{
|
||||
//Item is food, add random quantity of cans along with an item (if exists)
|
||||
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
|
||||
|
||||
@@ -17,42 +19,63 @@ switch (_iClass) do {
|
||||
_weights = dayz_CLChances select _index;
|
||||
_cntWeights = count _weights;
|
||||
_qty = 0;
|
||||
|
||||
// If clothing just spawn one bag of clothes
|
||||
if(_iClass == "clothes" or _iClass == "militaryclothes" or _iClass == "specialclothes") then {
|
||||
_max = 1;
|
||||
} else {
|
||||
_max = (ceil(random 2)) + 1;
|
||||
};
|
||||
|
||||
while {_qty < _max} do {
|
||||
_tQty = (round(random 1)) + 1;
|
||||
_index = floor(random _cntWeights);
|
||||
_index = _weights select _index;
|
||||
_canType = _itemTypes select _index;
|
||||
_max = 1 + ceil(random 2);
|
||||
while {_qty < _max} do
|
||||
{
|
||||
_tQty = 1 + round(random 1);
|
||||
_index = floor(random _cntWeights);
|
||||
_index = _weights select _index;
|
||||
_canType = _itemTypes select _index;
|
||||
_item addMagazineCargoGlobal [_canType,_tQty];
|
||||
_qty = _qty + _tQty;
|
||||
};
|
||||
if (_iItem != "") then {
|
||||
if (_iItem != "") then
|
||||
{
|
||||
_item addWeaponCargoGlobal [_iItem,1];
|
||||
};
|
||||
};
|
||||
case "weapon": {
|
||||
case "single":
|
||||
{
|
||||
//Item is sigle, add 1 item from cfgloot
|
||||
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
|
||||
|
||||
_itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iItem)) select 0);
|
||||
_index = dayz_CLBase find _iItem;
|
||||
_weights = dayz_CLChances select _index;
|
||||
_cntWeights = count _weights;
|
||||
|
||||
_index = floor(random _cntWeights);
|
||||
_index = _weights select _index;
|
||||
_canType = _itemTypes select _index;
|
||||
_item addMagazineCargoGlobal [_canType,1];
|
||||
};
|
||||
|
||||
case "weapon":
|
||||
{
|
||||
//Item is a weapon, add it and a random quantity of magazines
|
||||
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
|
||||
_item addWeaponCargoGlobal [_iItem,1];
|
||||
_mags = [] + getArray (configFile >> "cfgWeapons" >> _iItem >> "magazines");
|
||||
if ((count _mags) > 0) then {
|
||||
if ((count _mags) > 0) then
|
||||
{
|
||||
if (_mags select 0 == "Quiver") then { _mags set [0, "WoodenArrow"] }; // Prevent spawning a Quiver
|
||||
_item addMagazineCargoGlobal [(_mags select 0), (round(random 2))];
|
||||
};
|
||||
};
|
||||
case "magazine": {
|
||||
case "weaponnomags":
|
||||
{
|
||||
//Item is a weapon, and spawns no mags
|
||||
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
|
||||
_item addWeaponCargoGlobal [_iItem,1];
|
||||
};
|
||||
case "magazine":
|
||||
{
|
||||
//Item is one magazine
|
||||
_item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
|
||||
_item addMagazineCargoGlobal [_iItem,1];
|
||||
};
|
||||
case "object": {
|
||||
case "object":
|
||||
{
|
||||
//Item is one magazine
|
||||
_item = createVehicle [_iItem, _iPos, [], _radius, "CAN_COLLIDE"];
|
||||
};
|
||||
@@ -62,6 +85,7 @@ switch (_iClass) do {
|
||||
_dateNow = (DateToNumber date);
|
||||
_item setVariable ["looted",_dateNow,true];
|
||||
|
||||
if ((count _iPos) > 2) then {
|
||||
if ((count _iPos) > 2) then
|
||||
{
|
||||
_item setPosATL _iPos;
|
||||
};
|
||||
Reference in New Issue
Block a user