From 6631fac33796903b41d01c19d12447b518d1350f Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 8 Jun 2019 20:29:37 +0200 Subject: [PATCH] Weird symbols removed (no changes) --- .../saveLootPositions_v2_Codes.sqf | 793 +++++++++--------- 1 file changed, 410 insertions(+), 383 deletions(-) diff --git a/Tools/SQF/saveLootPositions_v2/saveLootPositions_v2_Codes.sqf b/Tools/SQF/saveLootPositions_v2/saveLootPositions_v2_Codes.sqf index b262db08..823a43ba 100644 --- a/Tools/SQF/saveLootPositions_v2/saveLootPositions_v2_Codes.sqf +++ b/Tools/SQF/saveLootPositions_v2/saveLootPositions_v2_Codes.sqf @@ -1,383 +1,410 @@ -if (isnil "LootMarkersPositions" && isnil "LootMarkers") then { - _Skipbuildings = [ - "Land_Mil_Barracks_L", - "Land_Mil_Guardhouse", - "Land_Mil_ControlTower_ruins", - "Land_Mil_ControlTower", - "Land_Mil_Barracks", - "Land_Mil_House", - "Land_SS_hangar", - "Land_a_stationhouse", - "Land_Misc_WaterStation", - "Land_HouseV_3I4", - "Land_HouseV_3I3", - "Land_HouseV_3I2", - "Land_HouseV_3I1", - "Land_HouseV_2T2", - "Land_HouseV_2T1", - "Land_HouseV_2L", - "Land_HouseV_2I", - "Land_HouseV_1t", - "Land_HouseV_1L2", - "Land_StoneWell_01_F", "Land_FeedRack_01_F", "Land_HighVoltageTower_largeCorner_F", "Land_HighVoltageTower_large_F", "Land_Hutch_01_F", "Land_Communication_F", "Land_ChickenCoop_01_F", "Land_MysteriousBell_01_F", "Land_Calvary_03_F", "Land_Chapel_02_white_ruins_F", "Land_Sawmill_01_illuminati_tower_F", "Land_DryToilet_01_F", "Land_House_2B02_ruins_F", "Land_House_1W08_ruins_F", "Land_FuelStation_Shed_F", "Land_FuelStation_Feed_F", "Land_Greenhouse_01_damaged_F", "Land_Slums02_4m", - "Land_Metal_Shed_ruins_F", "Land_FeedShack_01_F", "Land_TBox_ruins_F", "Land_Slum_House03_ruins_F", "Land_Smokestack_03_ruins_F", "Land_Slum_House02_ruins_F", "Land_TTowerSmall_2_F", "Land_Chapel_02_yellow_ruins_F", "Land_Radar_01_antenna_F", "Land_FeedStorage_01_F", "Land_House_1W04_ruins_F" - ]; - _skipstrings = [ - "land_containerline", - "land_telephoneline", - "land_power_pole", - "land_netfence", - "land_woodenwall", - "land_brickwall", - "land_grave", - "sign", - "powerline", - "stairs", - "protection", - "invisible", - "concrete", - "light", - "lamp", - "runway", - "pier", - "pipe", - "cargo", - "bridge", - "boat", - "castle", - "mirror", - "gate", - "wreck", - "powerlines", - "tank", - "plot", - "garbage", - "wired", - "barrier", - "bagfence", - "luggage", - "helipad" - ]; - LootMarkersPositions = []; - LootMarkers = []; - if (isnil 'LootArray') then {LootArray = []}; - _allbuildingtypes = []; - _allmapbuildings = nearestobjects [player,['building'],40000]; - _masterConfig = (missionConfigFile >> "CfgBuildingLootPos"); - _c = 1; - { - _building = _x; - if !(typeof _building in _Skipbuildings) then { - if !(typeof _building in _allbuildingtypes) then { - if ({typeof _building == (_x select 0)} count LootArray == 0) then { - _config = _masterConfig >> (typeOf _building); - if !(isClass(_config)) then { - _skip = false; - { - if (tolower (typeOf _building) find _x > -1) exitwith { - _skip = true; - }; - } foreach _skipstrings; - if !(_skip) then { - _allbuildingtypes pushback (typeof _building); - _marker = createMarker [typeof _building, (getpos _building)]; - _marker setmarkertype "mil_dot"; - _marker setMarkerColor 'ColorRed'; - _marker setMarkerText (typeof _building); - LootMarkersPositions pushback (getpos _building); - LootMarkers pushback (typeof _building); - _c = _c+1; - }; - }; - }; - }; - }; - } foreach _allmapbuildings; - publicvariable "LootMarkersPositions"; - publicvariable "LootMarkers"; -}; - - -Itemarray = ["toilet_epoch","Shelf_EPOCH","Fridge_EPOCH","Bunk_EPOCH","Couch_EPOCH","wardrobe_epoch","cooker_epoch","ChairRed_EPOCH","Filing_epoch","Pelican_EPOCH","Table_EPOCH","Locker_EPOCH","ToolRack_EPOCH","Shoebox_EPOCH","Tarp_EPOCH","Freezer_EPOCH","Cabinet_EPOCH","KitchenSink_epoch"]; -Skipbuildings = ["Land_Mil_Barracks_L","Land_Mil_Guardhouse","Land_Mil_ControlTower_ruins","Land_Mil_ControlTower","Land_Mil_Barracks","Land_Mil_House","Land_SS_hangar","Land_a_stationhouse","Land_Misc_WaterStation","Land_HouseV_3I4","Land_HouseV_3I3","Land_HouseV_3I2","Land_HouseV_3I1","Land_HouseV_2T2","Land_HouseV_2T1","Land_HouseV_2L","Land_HouseV_2I","Land_HouseV_1t","Land_HouseV_1L2"]; -ItemArrayCount = count Itemarray; -SkippedBuildings = []; -Item = objNull; -Building = ObjNull; -SelectedItem = 0; -if (isnil 'LootArray') then {LootArray = []}; -player allowdamage false; - -(findDisplay 12 displayCtrl 51) ctrlAddEventHandler ['MouseButtonDown',{ - params ["_displayorcontrol", "_button", "_xPos", "_yPos", "_shift", "_ctrl", "_alt"]; - if (_ctrl) then { - params ["","",""]; - _pos = (_displayorcontrol posScreenToWorld [_xPos, _yPos]); - vehicle player setPosATL _pos; - }; -}]; -(findDisplay 12 displayCtrl 51) ctrlAddEventHandler['Draw',{ - params ["_control"]; - _veh = vehicle player; - _type = typeOf _veh; - _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon'); - _clr = [0,0,1,1]; - _txt = (name player); - _control drawIcon [ - _icon, - _clr, - getPosASL _veh, - ((1 - ctrlMapScale _control) max .2) * 28, - ((1 - ctrlMapScale _control) max .2) * 28, - getdir _veh, - _txt - ]; -}]; -(findDisplay 46) displayAddEventHandler ["KeyDown", - { - params ["_ctrl", "_dikCode", "_shift", "_ctrlKey", "_alt"]; - _handled = false; - _stepspeed = if (_ctrlKey) then {0.15} else {0.05}; - _dirspeed = if (_ctrlKey) then {1.5} else {0.5}; - switch _dikCode do { - case 0x1C: { - if (cursorobject iskindof 'building') then { - Building = cursorobject; - } - else { - Building = nearestbuilding player; - }; - if (isClass(missionConfigFile >> "CfgBuildingLootPos" >> (typeof cursorobject)) || (typeof Building) in Skipbuildings) then { - systemchat format ['WARNING !!! %1 is already in LootList!!!',typeof Building]; - hint format ['WARNING !!! %1 is already in LootList!!!',typeof Building]; - Building = ObjNull; - } - else { - systemchat format ['Selected Building = %1',typeof Building]; - hint format ['Selected Building = %1',typeof Building]; - }; - }; - case 0x4B: { - if (!isNull Item) then { - _oldPos = getposasl Item; - _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)-90]; - _newpos set [2,_oldPos select 2]; - Item setposasl _newpos; - _handled = true; - }; - }; - case 0x4D: { - if (!isNull Item) then { - _oldPos = getposasl Item; - _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)+90]; - _newpos set [2,_oldPos select 2]; - Item setposasl _newpos; - _handled = true; - }; - }; - case 0x48: { - if (!isNull Item) then { - _oldPos = getposasl Item; - _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)]; - _newpos set [2,_oldPos select 2]; - Item setposasl _newpos; - _handled = true; - }; - }; - case 0x50: { - if (!isNull Item) then { - _oldPos = getposasl Item; - _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)+180]; - _newpos set [2,_oldPos select 2]; - Item setposasl _newpos; - _handled = true; - }; - }; - case 0xC7: { - SelectedItem = ((SelectedItem + 1) min (ItemArrayCount-1)) max 0; - if !(isNull Item) then { - deletevehicle Item; - }; - _pos = player modeltoworld [0,5,0]; - _selectedClass = Itemarray select SelectedItem; - Item = createVehicle [_selectedClass, _pos, [], 0, "CAN_COLLIDE"]; - Item setvectorup [0,0,1]; - if (surfaceiswater _pos) then { - Item setposasl _pos; - }; - }; - case 0xCF: { - SelectedItem = ((SelectedItem - 1) min (ItemArrayCount-1)) max 0; - if !(isNull Item) then { - deletevehicle Item; - }; - _pos = player modeltoworld [0,5,0]; - _selectedClass = Itemarray select SelectedItem; - Item = createVehicle [_selectedClass, _pos, [], 0, "CAN_COLLIDE"]; - Item setvectorup [0,0,1]; - if (surfaceiswater _pos) then { - Item setposasl _pos; - }; - }; - case 0xC9: { - if (!isNull Item) then { - _newpos = getposasl Item; - _newpos set [2,((getposasl Item) select 2)+_stepspeed]; - Item setposasl _newpos; - _handled = true; - }; - }; - case 0xD1: { - - if (!isNull Item) then { - _newpos = getposasl Item; - _newpos set [2,((getposasl Item) select 2)-_stepspeed]; - Item setposasl _newpos; - _handled = true; - }; - }; - case 0x47: { - if (!isNull Item) then { - _dir = getdir Item; - _newdir = _dir - _dirspeed; - Item setdir _newdir; - _handled = true; - }; - }; - case 0x49: { - if (!isNull Item) then { - _dir = getdir Item; - _newdir = _dir + _dirspeed; - Item setdir _newdir; - _handled = true; - }; - }; - case 0x39: { - if (!isNull Item && !isnull Building) then { - if !(Building distance Item > 80) then { - _c = 0; - _found = false; - { - if (typeof Building == (_x select 0)) exitwith {_found = true;}; - _c = _c+1; - } foreach Lootarray; - if (_found) then { - - _Buildingarray = Lootarray select _c; - _allitemsarray = _Buildingarray select 1; - _d = 0; - _found2 = false; - { - if (typeof Item == (_x select 0)) exitwith {_found2 = true}; - _d = _d+1; - } foreach _allitemsarray; - if (_found2) then { - _Itemarray = _allitemsarray select _d; - _Itemsposarray = _Itemarray select 1; - _Itemsposarray pushback [Building worldToModel (getposatl Item),getdir Item - getdir Building]; - } - else { - _allitemsarray pushback [typeof Item,[[Building worldToModel (getposatl Item),getdir Item - getdir Building]]]; - }; - } - else { - Lootarray pushback [typeof Building, [[typeof Item,[[Building worldToModel (getposatl Item),getdir Item - getdir Building]]]]]; - _idx = LootMarkers find (typeof Building); - if (_idx > -1) then { - LootMarkers deleteat _idx; - LootMarkersPositions deleteat _idx; - publicvariable "LootMarkersPositions"; - publicvariable "LootMarkers"; - }; - deleteMarker (typeof Building); - }; - systemchat format ['saved %1 position to %2',typeof Item, typeof Building]; - hint format ['saved %1 position to %2',typeof Item, typeof Building]; - {diag_log str (lootarray select _foreachindex)}foreach lootarray; - publicvariable 'lootarray'; - Item = ObjNull; - } - else { - systemchat format ['WARNING, the Item is to far away from the Building! - not safed!']; - hint format ['WARNING, the Item is to far away from the Building! - not saved!']; - }; - _handled = true; - } - else { - if (isnull Building) exitwith { - systemchat format ['Select a Building first!']; - hint format ['Select a Building first!']; - }; - if (isnull Item) exitwith { - systemchat format ['Place a Loot-Item first!']; - hint format ['Place a Loot-Item first!']; - }; - }; - }; - case 1: { - if (!isNull Item) then { - deletevehicle Item; - Item = ObjNull; - _handled = true; - }; - }; - case 0x57: { - if (count LootMarkersPositions > 0) then { - _idx = round (random ((count LootMarkersPositions)-1)); - systemchat format ["Index = %1",_idx]; - player setpos (LootMarkersPositions select _idx); - Building = nearestObject [player, LootMarkers select _idx]; - systemchat format ['Selected Building = %1',typeof Building]; - hint format ['Selected Building = %1',typeof Building]; - } - else { - hint "No more positions found!"; - }; - }; - case 0x43: { - if (isnull Building) exitwith { - hint "No Building selected to remove from List"; - }; - if (Building distance2D player > 20) exitwith { - - hint "Building too far away to remove from List"; - }; - _idx = LootMarkers find (typeof Building); - if (_idx > -1) then { - LootMarkers deleteat _idx; - LootMarkersPositions deleteat _idx; - publicvariable "LootMarkersPositions"; - publicvariable "LootMarkers"; - }; - deleteMarker (typeof Building); - SkippedBuildings pushback (typeof Building); - publicvariable "SkippedBuildings"; - Building = objnull; - hint "Building removed from list without defining lootpositions"; - }; - case 0x06: { - _plr = vehicle player; - _dir = getdir _plr; - _dist = 10; - if (surfaceIsWater position _plr) then { - _pos = getPosASL _plr; - _pos = [(_pos select 0)+_dist*sin(_dir),(_pos select 1)+_dist*cos(_dir),(_pos select 2)]; - _plr setPosASL _pos; - } - else { - _pos = getPosATL _plr; - _pos = [(_pos select 0)+_dist*sin(_dir),(_pos select 1)+_dist*cos(_dir),(_pos select 2)]; - _plr setPosATL _pos; - }; - player setdamage 0; - }; - case 0x05: { - player allowdamage false; - _vel = velocity player; - player setVelocity [(_vel select 0),(_vel select 1),8]; - player setdamage 0; - }; - }; - _handled - } -]; +if (isnil "LootMarkersPositions" && isnil "LootMarkers") then { + _Skipbuildings = [ + "Land_Mil_Barracks_L", + "Land_Mil_Guardhouse", + "Land_Mil_ControlTower_ruins", + "Land_Mil_ControlTower", + "Land_Mil_Barracks", + "Land_Mil_House", + "Land_SS_hangar", + "Land_a_stationhouse", + "Land_Misc_WaterStation", + "Land_HouseV_3I4", + "Land_HouseV_3I3", + "Land_HouseV_3I2", + "Land_HouseV_3I1", + "Land_HouseV_2T2", + "Land_HouseV_2T1", + "Land_HouseV_2L", + "Land_HouseV_2I", + "Land_HouseV_1t", + "Land_HouseV_1L2", + "Land_StoneWell_01_F", + "Land_FeedRack_01_F", + "Land_HighVoltageTower_largeCorner_F", + "Land_HighVoltageTower_large_F", + "Land_Hutch_01_F", + "Land_Communication_F", + "Land_ChickenCoop_01_F", + "Land_MysteriousBell_01_F", + "Land_Calvary_03_F", + "Land_Chapel_02_white_ruins_F", + "Land_Sawmill_01_illuminati_tower_F", + "Land_DryToilet_01_F", + "Land_House_2B02_ruins_F", + "Land_House_1W08_ruins_F", + "Land_FuelStation_Shed_F", + "Land_FuelStation_Feed_F", + "Land_Greenhouse_01_damaged_F", + "Land_Slums02_4m", + "Land_Metal_Shed_ruins_F", + "Land_FeedShack_01_F", + "Land_TBox_ruins_F", + "Land_Slum_House03_ruins_F", + "Land_Smokestack_03_ruins_F", + "Land_Slum_House02_ruins_F", + "Land_TTowerSmall_2_F", + "Land_Chapel_02_yellow_ruins_F", + "Land_Radar_01_antenna_F", + "Land_FeedStorage_01_F", + "Land_House_1W04_ruins_F" + ]; + _skipstrings = [ + "land_containerline", + "land_telephoneline", + "land_power_pole", + "land_netfence", + "land_woodenwall", + "land_brickwall", + "land_grave", + "sign", + "powerline", + "stairs", + "protection", + "invisible", + "concrete", + "light", + "lamp", + "runway", + "pier", + "pipe", + "cargo", + "bridge", + "boat", + "castle", + "mirror", + "gate", + "wreck", + "powerlines", + "tank", + "plot", + "garbage", + "wired", + "barrier", + "bagfence", + "luggage", + "helipad" + ]; + LootMarkersPositions = []; + LootMarkers = []; + if (isnil 'LootArray') then {LootArray = []}; + _allbuildingtypes = []; + _allmapbuildings = nearestobjects [player,['building'],40000]; + _masterConfig = (missionConfigFile >> "CfgBuildingLootPos"); + _c = 1; + { + _building = _x; + if !(typeof _building in _Skipbuildings) then { + if !(typeof _building in _allbuildingtypes) then { + if ({typeof _building == (_x select 0)} count LootArray == 0) then { + _config = _masterConfig >> (typeOf _building); + if !(isClass(_config)) then { + _skip = false; + { + if (tolower (typeOf _building) find _x > -1) exitwith { + _skip = true; + }; + } foreach _skipstrings; + if !(_skip) then { + _allbuildingtypes pushback (typeof _building); + _marker = createMarker [typeof _building, (getpos _building)]; + _marker setmarkertype "mil_dot"; + _marker setMarkerColor 'ColorRed'; + _marker setMarkerText (typeof _building); + LootMarkersPositions pushback (getpos _building); + LootMarkers pushback (typeof _building); + _c = _c+1; + }; + }; + }; + }; + }; + } foreach _allmapbuildings; + publicvariable "LootMarkersPositions"; + publicvariable "LootMarkers"; +}; + + +Itemarray = ["toilet_epoch","Shelf_EPOCH","Fridge_EPOCH","Bunk_EPOCH","Couch_EPOCH","wardrobe_epoch","cooker_epoch","ChairRed_EPOCH","Filing_epoch","Pelican_EPOCH","Table_EPOCH","Locker_EPOCH","ToolRack_EPOCH","Shoebox_EPOCH","Tarp_EPOCH","Freezer_EPOCH","Cabinet_EPOCH","KitchenSink_epoch"]; +Skipbuildings = ["Land_Mil_Barracks_L","Land_Mil_Guardhouse","Land_Mil_ControlTower_ruins","Land_Mil_ControlTower","Land_Mil_Barracks","Land_Mil_House","Land_SS_hangar","Land_a_stationhouse","Land_Misc_WaterStation","Land_HouseV_3I4","Land_HouseV_3I3","Land_HouseV_3I2","Land_HouseV_3I1","Land_HouseV_2T2","Land_HouseV_2T1","Land_HouseV_2L","Land_HouseV_2I","Land_HouseV_1t","Land_HouseV_1L2"]; +ItemArrayCount = count Itemarray; +SkippedBuildings = []; +Item = objNull; +Building = ObjNull; +SelectedItem = 0; +if (isnil 'LootArray') then {LootArray = []}; +player allowdamage false; + +(findDisplay 12 displayCtrl 51) ctrlAddEventHandler ['MouseButtonDown',{ + params ["_displayorcontrol", "_button", "_xPos", "_yPos", "_shift", "_ctrl", "_alt"]; + if (_ctrl) then { + params ["","",""]; + _pos = (_displayorcontrol posScreenToWorld [_xPos, _yPos]); + vehicle player setPosATL _pos; + }; +}]; +(findDisplay 12 displayCtrl 51) ctrlAddEventHandler['Draw',{ + params ["_control"]; + _veh = vehicle player; + _type = typeOf _veh; + _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon'); + _clr = [0,0,1,1]; + _txt = (name player); + _control drawIcon [ + _icon, + _clr, + getPosASL _veh, + ((1 - ctrlMapScale _control) max .2) * 28, + ((1 - ctrlMapScale _control) max .2) * 28, + getdir _veh, + _txt + ]; +}]; +(findDisplay 46) displayAddEventHandler ["KeyDown", + { + params ["_ctrl", "_dikCode", "_shift", "_ctrlKey", "_alt"]; + _handled = false; + _stepspeed = if (_ctrlKey) then {0.15} else {0.05}; + _dirspeed = if (_ctrlKey) then {1.5} else {0.5}; + switch _dikCode do { + case 0x1C: { + if (cursorobject iskindof 'building') then { + Building = cursorobject; + } + else { + Building = nearestbuilding player; + }; + if (isClass(missionConfigFile >> "CfgBuildingLootPos" >> (typeof cursorobject)) || (typeof Building) in Skipbuildings) then { + systemchat format ['WARNING !!! %1 is already in LootList!!!',typeof Building]; + hint format ['WARNING !!! %1 is already in LootList!!!',typeof Building]; + Building = ObjNull; + } + else { + systemchat format ['Selected Building = %1',typeof Building]; + hint format ['Selected Building = %1',typeof Building]; + }; + }; + case 0x4B: { + if (!isNull Item) then { + _oldPos = getposasl Item; + _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)-90]; + _newpos set [2,_oldPos select 2]; + Item setposasl _newpos; + _handled = true; + }; + }; + case 0x4D: { + if (!isNull Item) then { + _oldPos = getposasl Item; + _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)+90]; + _newpos set [2,_oldPos select 2]; + Item setposasl _newpos; + _handled = true; + }; + }; + case 0x48: { + if (!isNull Item) then { + _oldPos = getposasl Item; + _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)]; + _newpos set [2,_oldPos select 2]; + Item setposasl _newpos; + _handled = true; + }; + }; + case 0x50: { + if (!isNull Item) then { + _oldPos = getposasl Item; + _newpos = (getposasl Item) getPos [_stepspeed,(getdir player)+180]; + _newpos set [2,_oldPos select 2]; + Item setposasl _newpos; + _handled = true; + }; + }; + case 0xC7: { + SelectedItem = ((SelectedItem + 1) min (ItemArrayCount-1)) max 0; + if !(isNull Item) then { + deletevehicle Item; + }; + _pos = player modeltoworld [0,5,0]; + _selectedClass = Itemarray select SelectedItem; + Item = createVehicle [_selectedClass, _pos, [], 0, "CAN_COLLIDE"]; + Item setvectorup [0,0,1]; + if (surfaceiswater _pos) then { + Item setposasl _pos; + }; + }; + case 0xCF: { + SelectedItem = ((SelectedItem - 1) min (ItemArrayCount-1)) max 0; + if !(isNull Item) then { + deletevehicle Item; + }; + _pos = player modeltoworld [0,5,0]; + _selectedClass = Itemarray select SelectedItem; + Item = createVehicle [_selectedClass, _pos, [], 0, "CAN_COLLIDE"]; + Item setvectorup [0,0,1]; + if (surfaceiswater _pos) then { + Item setposasl _pos; + }; + }; + case 0xC9: { + if (!isNull Item) then { + _newpos = getposasl Item; + _newpos set [2,((getposasl Item) select 2)+_stepspeed]; + Item setposasl _newpos; + _handled = true; + }; + }; + case 0xD1: { + + if (!isNull Item) then { + _newpos = getposasl Item; + _newpos set [2,((getposasl Item) select 2)-_stepspeed]; + Item setposasl _newpos; + _handled = true; + }; + }; + case 0x47: { + if (!isNull Item) then { + _dir = getdir Item; + _newdir = _dir - _dirspeed; + Item setdir _newdir; + _handled = true; + }; + }; + case 0x49: { + if (!isNull Item) then { + _dir = getdir Item; + _newdir = _dir + _dirspeed; + Item setdir _newdir; + _handled = true; + }; + }; + case 0x39: { + if (!isNull Item && !isnull Building) then { + if !(Building distance Item > 80) then { + _c = 0; + _found = false; + { + if (typeof Building == (_x select 0)) exitwith {_found = true;}; + _c = _c+1; + } foreach Lootarray; + if (_found) then { + + _Buildingarray = Lootarray select _c; + _allitemsarray = _Buildingarray select 1; + _d = 0; + _found2 = false; + { + if (typeof Item == (_x select 0)) exitwith {_found2 = true}; + _d = _d+1; + } foreach _allitemsarray; + if (_found2) then { + _Itemarray = _allitemsarray select _d; + _Itemsposarray = _Itemarray select 1; + _Itemsposarray pushback [Building worldToModel (getposatl Item),getdir Item - getdir Building]; + } + else { + _allitemsarray pushback [typeof Item,[[Building worldToModel (getposatl Item),getdir Item - getdir Building]]]; + }; + } + else { + Lootarray pushback [typeof Building, [[typeof Item,[[Building worldToModel (getposatl Item),getdir Item - getdir Building]]]]]; + _idx = LootMarkers find (typeof Building); + if (_idx > -1) then { + LootMarkers deleteat _idx; + LootMarkersPositions deleteat _idx; + publicvariable "LootMarkersPositions"; + publicvariable "LootMarkers"; + }; + deleteMarker (typeof Building); + }; + systemchat format ['saved %1 position to %2',typeof Item, typeof Building]; + hint format ['saved %1 position to %2',typeof Item, typeof Building]; + {diag_log str (lootarray select _foreachindex)}foreach lootarray; + publicvariable 'lootarray'; + Item = ObjNull; + } + else { + systemchat format ['WARNING, the Item is to far away from the Building! - not safed!']; + hint format ['WARNING, the Item is to far away from the Building! - not saved!']; + }; + _handled = true; + } + else { + if (isnull Building) exitwith { + systemchat format ['Select a Building first!']; + hint format ['Select a Building first!']; + }; + if (isnull Item) exitwith { + systemchat format ['Place a Loot-Item first!']; + hint format ['Place a Loot-Item first!']; + }; + }; + }; + case 1: { + if (!isNull Item) then { + deletevehicle Item; + Item = ObjNull; + _handled = true; + }; + }; + case 0x57: { + if (count LootMarkersPositions > 0) then { + _idx = round (random ((count LootMarkersPositions)-1)); + systemchat format ["Index = %1",_idx]; + player setpos (LootMarkersPositions select _idx); + Building = nearestObject [player, LootMarkers select _idx]; + systemchat format ['Selected Building = %1',typeof Building]; + hint format ['Selected Building = %1',typeof Building]; + } + else { + hint "No more positions found!"; + }; + }; + case 0x43: { + if (isnull Building) exitwith { + hint "No Building selected to remove from List"; + }; + if (Building distance2D player > 20) exitwith { + + hint "Building too far away to remove from List"; + }; + _idx = LootMarkers find (typeof Building); + if (_idx > -1) then { + LootMarkers deleteat _idx; + LootMarkersPositions deleteat _idx; + publicvariable "LootMarkersPositions"; + publicvariable "LootMarkers"; + }; + deleteMarker (typeof Building); + SkippedBuildings pushback (typeof Building); + publicvariable "SkippedBuildings"; + Building = objnull; + hint "Building removed from list without defining lootpositions"; + }; + case 0x06: { + _plr = vehicle player; + _dir = getdir _plr; + _dist = 10; + if (surfaceIsWater position _plr) then { + _pos = getPosASL _plr; + _pos = [(_pos select 0)+_dist*sin(_dir),(_pos select 1)+_dist*cos(_dir),(_pos select 2)]; + _plr setPosASL _pos; + } + else { + _pos = getPosATL _plr; + _pos = [(_pos select 0)+_dist*sin(_dir),(_pos select 1)+_dist*cos(_dir),(_pos select 2)]; + _plr setPosATL _pos; + }; + player setdamage 0; + }; + case 0x05: { + player allowdamage false; + _vel = velocity player; + player setVelocity [(_vel select 0),(_vel select 1),8]; + player setdamage 0; + }; + }; + _handled + } +];