mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
145 lines
3.8 KiB
Plaintext
145 lines
3.8 KiB
Plaintext
/*
|
|
Get Loot Position
|
|
Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
|
|
*/
|
|
private ["_target","_type","_ppos","_veh","_worldPos","_zheightChanged","_pos","_tagColor","_new"];
|
|
|
|
_new = (_this select 3) select 0;
|
|
|
|
if (isNil "Base_Z_height") then {
|
|
Base_Z_height = 0.5;
|
|
};
|
|
|
|
if(_new == "select") then {
|
|
if(!isnull(cursortarget)) then {
|
|
DZE_target = cursortarget;
|
|
hintsilent str(typeOf DZE_target);
|
|
};
|
|
};
|
|
|
|
if(_new == "generateloot") then {
|
|
|
|
if(!isnull(cursortarget)) then {
|
|
DZE_target = cursortarget;
|
|
hintsilent str(typeOf DZE_target);
|
|
};
|
|
|
|
_type = toLower(typeOf DZE_target);
|
|
|
|
//diag_log format["Spawning loot for: %1", _type];
|
|
_config = configFile >> "CfgBuildingLoot" >> _type;
|
|
_positions = [] + getArray (_config >> "lootPos");
|
|
{
|
|
|
|
_iPos = DZE_target modelToWorld _x;
|
|
_nearBy = nearestObjects [_iPos, ["ReammoBox","WeaponHolder","WeaponHolderBase"], 1];
|
|
if (count _nearBy == 0) then {
|
|
|
|
|
|
_item = createVehicle ["WeaponHolder", _iPos, [], 0.0, "CAN_COLLIDE"];
|
|
_item addMagazineCargoGlobal ["CinderBlocks",1];
|
|
if ((count _iPos) > 2) then
|
|
{
|
|
_item setPosATL _iPos;
|
|
};
|
|
|
|
} else {
|
|
diag_log format["position too close: %1", _iPos];
|
|
};
|
|
|
|
} forEach _positions;
|
|
|
|
_positionsSmall = [] + getArray (_config >> "lootPosSmall");
|
|
{
|
|
_iPos = DZE_target modelToWorld _x;
|
|
_nearBy = nearestObjects [_iPos, ["ReammoBox","WeaponHolder","WeaponHolderBase"], 1];
|
|
if (count _nearBy == 0) then {
|
|
|
|
_item = createVehicle ["WeaponHolder", _iPos, [], 0.0, "CAN_COLLIDE"];
|
|
_item addMagazineCargoGlobal ["ItemPainkiller",1]; //ItemDocument
|
|
if ((count _iPos) > 2) then
|
|
{
|
|
_item setPosATL _iPos;
|
|
};
|
|
|
|
} else {
|
|
diag_log format["position too close: %1", _iPos];
|
|
};
|
|
|
|
} forEach _positionsSmall;
|
|
|
|
_positionsZombie = [] + getArray (_config >> "lootPosZombie");
|
|
{
|
|
_iPos = DZE_target modelToWorld _x;
|
|
|
|
_veh = createVehicle ["Sign_sphere10cm_EP1", _iPos, [], 0, "CAN_COLLIDE"];
|
|
_veh setPosATL _iPos;
|
|
_tagColor = "#(argb,8,8,3)color(0,1,0,0.5,ca)";
|
|
_veh setobjecttexture [0,_tagColor];
|
|
|
|
} forEach _positionsZombie;
|
|
|
|
};
|
|
|
|
|
|
if (isnil "DZE_target") then {
|
|
_target = nearestObject [player, "Building"];
|
|
} else {
|
|
_target = DZE_target;
|
|
};
|
|
|
|
_type = toLower(typeOf _target);
|
|
|
|
_zheightChanged = false;
|
|
|
|
switch (_new) do
|
|
{
|
|
case "up": {Base_Z_height = Base_Z_height + 0.1; _zheightChanged = true;};
|
|
case "down": {Base_Z_height = Base_Z_height - 0.1; _zheightChanged = true;};
|
|
case "up_small": {Base_Z_height = Base_Z_height + 0.01; _zheightChanged = true;};
|
|
case "down_small": {Base_Z_height = Base_Z_height - 0.01; _zheightChanged = true;};
|
|
};
|
|
|
|
_pos = player modeltoworld [0,1.5,Base_Z_height];
|
|
|
|
if(_new == "tagzspawn") then {
|
|
_pos = player modeltoworld [0,0,0.875];
|
|
};
|
|
|
|
_ppos = _target worldToModel _pos;
|
|
_worldPos = _pos;
|
|
|
|
if (isnil "DZE_vehTarget") then {
|
|
DZE_vehTarget = createVehicle ["Sign_arrow_down_EP1", _worldPos, [], 0, "CAN_COLLIDE"];
|
|
DZE_vehTarget setPosATL _worldPos;
|
|
DZE_vehTarget attachto [player];
|
|
};
|
|
|
|
if (!isnull(DZE_vehTarget) and _zheightChanged) then {
|
|
detach DZE_vehTarget;
|
|
DZE_vehTarget setPosATL _worldPos;
|
|
DZE_vehTarget attachto [player];
|
|
};
|
|
|
|
if(_new == "tagzspawn") then {
|
|
_veh = createVehicle ["Sign_sphere10cm_EP1", _worldPos, [], 0, "CAN_COLLIDE"];
|
|
_veh setPosATL _worldPos;
|
|
_tagColor = "#(argb,8,8,3)color(0,1,0,0.5,ca)";
|
|
_veh setobjecttexture [0,_tagColor];
|
|
};
|
|
|
|
if(_new == "tag" or _new == "tagpile") then {
|
|
_veh = createVehicle ["Sign_arrow_down_EP1", _worldPos, [], 0, "CAN_COLLIDE"];
|
|
_veh setPosATL _worldPos;
|
|
};
|
|
|
|
if(_new == "tagpile") then {
|
|
_tagColor = "#(argb,8,8,3)color(0,0,1,0.5,ca)";
|
|
_veh setobjecttexture [0,_tagColor];
|
|
};
|
|
|
|
if(_new == "tag" or _new == "tagzspawn" or _new == "tagpile") then {
|
|
diag_log text format ["%1 : %2 | %3", _type,_ppos,_new];
|
|
copyToClipboard format ["%1 : %2", _type,_ppos];
|
|
hintsilent format ["SAVED %1\n%2", _type,_ppos];
|
|
}; |