Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Get Loot Position
- Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected].
- */
- 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;
- };
- 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;};
- case "up_large": {Base_Z_height = Base_Z_height + 0.5; _zheightChanged = true;};
- case "down_large": {Base_Z_height = Base_Z_height - 0.5; _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 }", _type,_ppos];
- copyToClipboard format ["%1 : %2", _type,_ppos];
- hintsilent format ["SAVED %1\n%2", _type,_ppos];
- };
- _marker = "Sign_arrow_down_EP1";
- //_distanceMarker = player distance _marker;
- //_badMarker = _distanceMarker > 3;
- //_badMarker = nearestObject [player, "Sign_arrow_down_EP1"];
- _playerObject = player;
- _playerPosition = getPosATL _playerObject;
- _goodMarker = nearestObject [player, "Sign_arrow_down_EP1"];
- //_distOK = player distance "Sign_arrow_down_EP1";
- //_deleteOK = _goodMarker > 3;
- if(_new == "removemarker") then {
- if (player distance _goodMarker > 3) then {deleteVehicle _marker};
- systemChat "Marker Deleted";
- };
Advertisement
Add Comment
Please, Sign In to add comment