mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 12:12:34 +03:00
Update insert.sqf
Replace switch do block with call scope using if exitWith statements. The most common spawned item is a magazine class so it is placed at the top.
This commit is contained in:
@@ -11,46 +11,43 @@ Author:
|
|||||||
Foxy
|
Foxy
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "\z\addons\dayz_code\util\debug.hpp"
|
|
||||||
#include "Loot.hpp"
|
#include "Loot.hpp"
|
||||||
|
|
||||||
if (!local (_this select 0)) exitWith
|
private ["_unit","_group","_count","_type","_item"];
|
||||||
{
|
|
||||||
diag_log format ["ERROR: Loot_Insert unit must be local. (%1)", _this select 0];
|
_unit = _this select 0;
|
||||||
|
_group = _this select 1;
|
||||||
|
_count = _this select 2;
|
||||||
|
|
||||||
|
// Prevent loot spawning on non-local zombies - this check is needed if the server is running safezones that delete zombies.
|
||||||
|
if (!local _unit) exitWith {
|
||||||
|
diag_log format ["ERROR: Loot_Insert unit must be local. (%1)", _unit];
|
||||||
};
|
};
|
||||||
|
|
||||||
{
|
{
|
||||||
switch (_x select 0) do
|
_type = _x select 0;
|
||||||
{
|
|
||||||
case Loot_WEAPON:
|
|
||||||
{
|
|
||||||
(_this select 0) addWeapon (_x select 1);
|
|
||||||
|
|
||||||
Debug_Assert(typeName (_x select 1) == typeName "" && { (_x select 1) != "" });
|
|
||||||
//Debug_Log(String_Format2("DEBUG: Loot_Insert Weapon: %1 Unit: %2", _x select 1, _this select 0));
|
|
||||||
};
|
|
||||||
|
|
||||||
case Loot_MAGAZINE:
|
|
||||||
{
|
|
||||||
private "_item";
|
|
||||||
_item = _x select 1;
|
_item = _x select 1;
|
||||||
|
|
||||||
|
call {
|
||||||
|
if (_type == Loot_MAGAZINE) exitWith {
|
||||||
if (dayz_classicBloodBagSystem && _item in dayz_typedBags) then {
|
if (dayz_classicBloodBagSystem && _item in dayz_typedBags) then {
|
||||||
if (_item in ["bloodTester","bloodBagAPOS","bloodBagABPOS"]) then { // reduce ItemBloodBag output slightly since typed bags spawn in bulk
|
if (_item in ["emptyBloodBag","bloodTester","bloodBagAPOS","bloodBagABPOS"]) then { // reduce ItemBloodBag output slightly since typed bags spawn in bulk
|
||||||
_item = ["ItemBandage","ItemPainkiller","ItemMorphine","ItemHeatPack","ItemAntibacterialWipe"] call BIS_fnc_selectRandom;
|
_item = ["ItemBandage","ItemPainkiller","ItemMorphine","ItemHeatPack","ItemAntibacterialWipe"] call BIS_fnc_selectRandom;
|
||||||
} else {
|
} else {
|
||||||
_item = "ItemBloodbag";
|
_item = "ItemBloodbag";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
(_this select 0) addMagazine _item;
|
_unit addMagazine _item;
|
||||||
};
|
};
|
||||||
|
|
||||||
case Loot_BACKPACK:
|
if (_type == Loot_WEAPON) exitWith {
|
||||||
{
|
_unit addWeapon _item;
|
||||||
if (!isNull unitBackpack (_this select 0)) then
|
};
|
||||||
{
|
|
||||||
(_this select 0) addBackpack (_x select 1);
|
if (_type == Loot_BACKPACK) exitWith {
|
||||||
|
if (!isNull unitBackpack _unit) then {
|
||||||
|
_unit addBackpack _item;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} count Loot_Select(_this select 1, _this select 2);
|
} count Loot_Select(_group,_count);
|
||||||
//foreach ([_this select 1, _this select 2] call loot_select);
|
|
||||||
|
|||||||
Reference in New Issue
Block a user