diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server.pbo index 1d995561..0d003460 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server.pbo differ diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo index 3934f2b7..8efa94b1 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo differ diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo index 12614f55..f4f11ba2 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Altis.pbo b/Server_Install_Pack/mpmissions/epoch.Altis.pbo index b281b069..2c329f8f 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Altis.pbo and b/Server_Install_Pack/mpmissions/epoch.Altis.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Australia.pbo b/Server_Install_Pack/mpmissions/epoch.Australia.pbo index 3d0c41c5..cefd40c1 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Australia.pbo and b/Server_Install_Pack/mpmissions/epoch.Australia.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo index 3687e3f4..75b77a39 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo b/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo index f1258891..8f4aec26 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo and b/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo index bbd9686e..839982a7 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo and b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo index c4b6e1c9..b82364fc 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo and b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo index d261ce65..ab93a4f2 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo and b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Esseker.pbo b/Server_Install_Pack/mpmissions/epoch.Esseker.pbo index e25e6ce8..a42f5f29 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Esseker.pbo and b/Server_Install_Pack/mpmissions/epoch.Esseker.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo index ed9259ad..a82edf8a 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Napf.pbo b/Server_Install_Pack/mpmissions/epoch.Napf.pbo index 74a5f1fe..2d4297f1 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Napf.pbo and b/Server_Install_Pack/mpmissions/epoch.Napf.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Porto.pbo b/Server_Install_Pack/mpmissions/epoch.Porto.pbo index 1183b842..fd20f85c 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Porto.pbo and b/Server_Install_Pack/mpmissions/epoch.Porto.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo index 324c0746..0e125ebb 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo and b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Sara.pbo b/Server_Install_Pack/mpmissions/epoch.Sara.pbo index 10d5539e..28b37e7e 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Sara.pbo and b/Server_Install_Pack/mpmissions/epoch.Sara.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo index a4043b2e..345b3829 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo and b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo index b01eed15..c7abbc30 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo and b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo index 0b0032fd..8ce8014f 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo and b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo index 79925f34..f657e1c0 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo and b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Takistan.pbo b/Server_Install_Pack/mpmissions/epoch.Takistan.pbo index f400a633..8174d61a 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Takistan.pbo and b/Server_Install_Pack/mpmissions/epoch.Takistan.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Tanoa.pbo b/Server_Install_Pack/mpmissions/epoch.Tanoa.pbo index 6a534f6f..a4a744c2 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Tanoa.pbo and b/Server_Install_Pack/mpmissions/epoch.Tanoa.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.VR.pbo b/Server_Install_Pack/mpmissions/epoch.VR.pbo index f278ae96..9892e9b6 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.VR.pbo and b/Server_Install_Pack/mpmissions/epoch.VR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo index 75b6aeb0..f308ebc3 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo index 2cad01c6..aaf58866 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo and b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.utes.pbo b/Server_Install_Pack/mpmissions/epoch.utes.pbo index d5fec9c4..634d8e35 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.utes.pbo and b/Server_Install_Pack/mpmissions/epoch.utes.pbo differ diff --git a/Server_Install_Pack/sc/BattlEye/scripts.txt b/Server_Install_Pack/sc/BattlEye/scripts.txt index 0dda58b5..0524ba53 100644 --- a/Server_Install_Pack/sc/BattlEye/scripts.txt +++ b/Server_Install_Pack/sc/BattlEye/scripts.txt @@ -33,7 +33,7 @@ 7 createVehicleCrew !="createvehiclecrew _x;" 7 createVehicleLocal !"\"#particlesource\" createVehicleLocal" !"\"#lightpoint\" createVehicleLocal" !"\"BloodSplat\" createVehicleLocal" !"[\"lightning1_F\", \"lightning2_F\"] call BIS_fnc_selectRandom;\n_lighting = _class createVehicleLocal" !="SLX_XEH_DUMMY createVehicleLocal [0, 0, 0];" !="CBA_eventHandlers = "Logic" createVehicleLocal [0, 0];" 7 createUnit !="_unit = _grp createUnit[(_arrUnits select _i), _pos, [], 0, \"FORM\"];" !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit ["I_officer_F", axeGeneralPos, [], 1, "CAN_COLLIDE"];" -7 createAgent !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent ["Epoch_Sapper_F", getPos _cage2, [], 0, "FORM"];" +7 createAgent !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent ["Epoch_Sapper_F", getPos _cage2, [], 0, "FORM"];" !="_unit = createAgent[_unitClass, position player, [], _zRange, \"FORM\"];" 7 createTeam 7 createDialog !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog _tapDiag;" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';" 7 createDisplay !="createDisplay \"rmx_dynamenu\";" !="_parent createdisplay _displayClass;" !="finddisplay 151 createdisplay 'RscDisplayOptionsLayout'" diff --git a/Sources/epoch_code/compile/EPOCH_zombieSpawn.sqf b/Sources/epoch_code/compile/EPOCH_zombieSpawn.sqf index 0e4a957f..b90fd195 100644 --- a/Sources/epoch_code/compile/EPOCH_zombieSpawn.sqf +++ b/Sources/epoch_code/compile/EPOCH_zombieSpawn.sqf @@ -27,7 +27,8 @@ _unitClass = selectRandom ["EPOCH_RyanZombie_1","EPOCH_RyanZombie_2","EPOCH_Ryan _unit = createAgent[_unitClass, position player, [], _zRange, "FORM"]; _clutterPos = getPosATL _unit; if!(isOnRoad _unit)then{ - createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"]; + // todo cleanup this object after some time + // _grave = createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"]; }; _unit call _disableAI; _unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut"; diff --git a/Sources/epoch_config/build.hpp b/Sources/epoch_config/build.hpp index b2def5cc..afa3410b 100644 --- a/Sources/epoch_config/build.hpp +++ b/Sources/epoch_config/build.hpp @@ -1 +1 @@ -build=513; +build=515; diff --git a/Sources/epoch_server/build.hpp b/Sources/epoch_server/build.hpp index b2def5cc..afa3410b 100644 --- a/Sources/epoch_server/build.hpp +++ b/Sources/epoch_server/build.hpp @@ -1 +1 @@ -build=513; +build=515; diff --git a/Sources/epoch_server_core/build.hpp b/Sources/epoch_server_core/build.hpp index b2def5cc..afa3410b 100644 --- a/Sources/epoch_server_core/build.hpp +++ b/Sources/epoch_server_core/build.hpp @@ -1 +1 @@ -build=513; +build=515; diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index b2def5cc..afa3410b 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=513; +build=515; diff --git a/Sources/mpmissions/epoch.Altis/treeView.txt b/Sources/mpmissions/epoch.Altis/treeView.txt index 054f9bf0..f2a8072e 100644 Binary files a/Sources/mpmissions/epoch.Altis/treeView.txt and b/Sources/mpmissions/epoch.Altis/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Australia/treeView.txt b/Sources/mpmissions/epoch.Australia/treeView.txt index 5c56b449..e518875d 100644 Binary files a/Sources/mpmissions/epoch.Australia/treeView.txt and b/Sources/mpmissions/epoch.Australia/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Bootcamp_ACR/treeView.txt b/Sources/mpmissions/epoch.Bootcamp_ACR/treeView.txt index b75f30e2..a48ced59 100644 Binary files a/Sources/mpmissions/epoch.Bootcamp_ACR/treeView.txt and b/Sources/mpmissions/epoch.Bootcamp_ACR/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Bornholm/treeView.txt b/Sources/mpmissions/epoch.Bornholm/treeView.txt index 7a2fa4c7..5dfab56e 100644 Binary files a/Sources/mpmissions/epoch.Bornholm/treeView.txt and b/Sources/mpmissions/epoch.Bornholm/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Chernarus/treeView.txt b/Sources/mpmissions/epoch.Chernarus/treeView.txt index f029088f..09a53764 100644 Binary files a/Sources/mpmissions/epoch.Chernarus/treeView.txt and b/Sources/mpmissions/epoch.Chernarus/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Chernarus_Summer/treeView.txt b/Sources/mpmissions/epoch.Chernarus_Summer/treeView.txt index a58f49af..89d44af5 100644 Binary files a/Sources/mpmissions/epoch.Chernarus_Summer/treeView.txt and b/Sources/mpmissions/epoch.Chernarus_Summer/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Desert_E/treeView.txt b/Sources/mpmissions/epoch.Desert_E/treeView.txt index 56bb1057..d6999418 100644 Binary files a/Sources/mpmissions/epoch.Desert_E/treeView.txt and b/Sources/mpmissions/epoch.Desert_E/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Esseker/treeView.txt b/Sources/mpmissions/epoch.Esseker/treeView.txt index 42b219d7..b4a9d7d3 100644 Binary files a/Sources/mpmissions/epoch.Esseker/treeView.txt and b/Sources/mpmissions/epoch.Esseker/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Mountains_ACR/treeView.txt b/Sources/mpmissions/epoch.Mountains_ACR/treeView.txt index 47643bf0..c1dc6fb7 100644 Binary files a/Sources/mpmissions/epoch.Mountains_ACR/treeView.txt and b/Sources/mpmissions/epoch.Mountains_ACR/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Napf/treeView.txt b/Sources/mpmissions/epoch.Napf/treeView.txt index 41cdf6a9..b130377f 100644 Binary files a/Sources/mpmissions/epoch.Napf/treeView.txt and b/Sources/mpmissions/epoch.Napf/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Porto/treeView.txt b/Sources/mpmissions/epoch.Porto/treeView.txt index ed3e7c54..8a104161 100644 Binary files a/Sources/mpmissions/epoch.Porto/treeView.txt and b/Sources/mpmissions/epoch.Porto/treeView.txt differ diff --git a/Sources/mpmissions/epoch.ProvingGrounds_PMC/treeView.txt b/Sources/mpmissions/epoch.ProvingGrounds_PMC/treeView.txt index 10c6a25e..71cf0909 100644 Binary files a/Sources/mpmissions/epoch.ProvingGrounds_PMC/treeView.txt and b/Sources/mpmissions/epoch.ProvingGrounds_PMC/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Sara/treeView.txt b/Sources/mpmissions/epoch.Sara/treeView.txt index 2d5043c8..18b92aa4 100644 Binary files a/Sources/mpmissions/epoch.Sara/treeView.txt and b/Sources/mpmissions/epoch.Sara/treeView.txt differ diff --git a/Sources/mpmissions/epoch.SaraLite/treeView.txt b/Sources/mpmissions/epoch.SaraLite/treeView.txt index 289b41dd..784a3e8b 100644 Binary files a/Sources/mpmissions/epoch.SaraLite/treeView.txt and b/Sources/mpmissions/epoch.SaraLite/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Sara_dbe1/treeView.txt b/Sources/mpmissions/epoch.Sara_dbe1/treeView.txt index 7d590bc8..05865a10 100644 Binary files a/Sources/mpmissions/epoch.Sara_dbe1/treeView.txt and b/Sources/mpmissions/epoch.Sara_dbe1/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Shapur_BAF/treeView.txt b/Sources/mpmissions/epoch.Shapur_BAF/treeView.txt index c4f2c2c0..1b0ae0a6 100644 Binary files a/Sources/mpmissions/epoch.Shapur_BAF/treeView.txt and b/Sources/mpmissions/epoch.Shapur_BAF/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Stratis/treeView.txt b/Sources/mpmissions/epoch.Stratis/treeView.txt index ddaace7f..c14402c3 100644 Binary files a/Sources/mpmissions/epoch.Stratis/treeView.txt and b/Sources/mpmissions/epoch.Stratis/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Takistan/treeView.txt b/Sources/mpmissions/epoch.Takistan/treeView.txt index 1c1a517b..91d3ebfa 100644 Binary files a/Sources/mpmissions/epoch.Takistan/treeView.txt and b/Sources/mpmissions/epoch.Takistan/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Tanoa/treeView.txt b/Sources/mpmissions/epoch.Tanoa/treeView.txt index 5efafcbc..86feedc2 100644 Binary files a/Sources/mpmissions/epoch.Tanoa/treeView.txt and b/Sources/mpmissions/epoch.Tanoa/treeView.txt differ diff --git a/Sources/mpmissions/epoch.VR/treeView.txt b/Sources/mpmissions/epoch.VR/treeView.txt index ee1b79d9..306fa3c8 100644 Binary files a/Sources/mpmissions/epoch.VR/treeView.txt and b/Sources/mpmissions/epoch.VR/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Woodland_ACR/treeView.txt b/Sources/mpmissions/epoch.Woodland_ACR/treeView.txt index d051d47c..85957809 100644 Binary files a/Sources/mpmissions/epoch.Woodland_ACR/treeView.txt and b/Sources/mpmissions/epoch.Woodland_ACR/treeView.txt differ diff --git a/Sources/mpmissions/epoch.Zargabad/treeView.txt b/Sources/mpmissions/epoch.Zargabad/treeView.txt index d73a0153..7e94d106 100644 Binary files a/Sources/mpmissions/epoch.Zargabad/treeView.txt and b/Sources/mpmissions/epoch.Zargabad/treeView.txt differ diff --git a/Sources/mpmissions/epoch.utes/treeView.txt b/Sources/mpmissions/epoch.utes/treeView.txt index 589cf43c..41686ebe 100644 Binary files a/Sources/mpmissions/epoch.utes/treeView.txt and b/Sources/mpmissions/epoch.utes/treeView.txt differ diff --git a/Tools/SQF/saveLootPositionsVector.sqf b/Tools/SQF/saveLootPositionsVector.sqf index ac4a79f3..1a255a3c 100644 --- a/Tools/SQF/saveLootPositionsVector.sqf +++ b/Tools/SQF/saveLootPositionsVector.sqf @@ -24,17 +24,56 @@ Up/Down Arrow = Raise /lower loot placement (Alt = Slow, Ctrl = Fast) Right/Left Arrow = Rotate placement (Alt = Slow, Ctrl = Fast) L = Load loot objects from mission config, if not found defaults from config are loaded. Ctrl+L = Load all existing configured buildings into EPB array. +Ctrl+X = remove loot objects Q or Z = Move object in or out. R = Loot / UnLoot Object. */ -EPB = ["Land_Ind_SawMillPen","Land_seno_balik","Land_Shed_W03","Land_Ind_TankSmall","Land_Nasypka","Land_Shed_W4","Land_HouseV_1T","Land_HouseV_3I4","Land_Wall_Gate_Village","Land_Ind_TankSmall2","Land_HouseV_2I","Land_HouseV2_03","Land_Dum_olezlina","Land_Gate_wood2_5","Land_SignB_Pub_CZ2","Land_Ind_Expedice_2","Land_IndPipe2_bigBuild2_L","Land_Gate_Wood1_5","Land_IndPipe2_big_18ladder","Land_Ind_Expedice_3","Land_IndPipe2_big_18","Land_houseV_2T1","Land_IndPipe2_bigBuild1_R","Land_Misc_Cargo1Bo","Land_Ind_MalyKomin","Land_IndPipe2_big_ground1","Land_Lampa_ind","Land_Misc_Cargo1Ao","Land_Misc_GContainer_Big","Land_sloup_vn_drat","Land_sloup_vn","Land_Misc_Cargo1F","Land_IndPipe2_big_9","Land_Misc_Cargo1B","Land_HouseV_3I1","Land_Fuel_tank_big","Land_Ind_Stack_Big","Land_Dum_mesto3","Land_Sara_domek_vilka","Land_ladder","Land_Misc_Cargo1C","Land_MBG_Killhouse_4","Land_MBG_Warehouse","Land_Farm_WTower","Land_Nav_Boathouse_PierL","Land_Nav_Boathouse","Land_Trafostanica_velka_draty","Land_Kontejner","Land_aif_tovarna1","Land_Fuel_tank_stairs","Land_Trafostanica_velka","Land_Ind_Workshop01_02","Land_Wall_Gate_Ind1_R","Land_Dum_mesto2l","Land_Lampa_sidl","Land_MBG_Cinderwall_5","Land_MBG_Cinderwall_5_Corner","Land_HouseV2_03B","Land_Ind_Timbers","land_nav_pier_m_end","Land_CncBlock","Land_Ind_SawMill","land_nav_pier_m_1","Land_MBG_Killhouse_3","Land_fuel_tank_small","Land_MBG_Killhouse_2","Land_Nav_Boathouse_PierT","Land_A_Castle_Bastion","Land_Plot_green_branka","Land_Wall_Gate_Ind2A_R","Land_A_Castle_Wall2_30","Land_water_tank","land_nav_pier_m","Land_Ind_Shed_02_end","Land_Ind_Shed_02_main","Land_aif_zluty_statek_in","Land_A_Castle_Wall1_20","land_mbg_brickhouse_01","Land_A_Castle_Wall1_Corner","Land_A_Castle_Wall1_End_2","Land_A_Castle_Wall1_End","Land_aif_hotel","Land_A_Castle_Wall2_End_2","Land_A_Castle_Wall2_End","Land_Shed_M03","Land_Cihlovej_Dum_in","Land_HouseV_3I3","Land_MBG_Killhouse_1","Land_HouseV_3I2","Land_Misc_Scaffolding","Land_SignB_Pub_CZ3","Land_Sara_domek_ruina","Land_HouseBlock_C4","Land_HouseBlock_C5","Land_HouseBlock_B5","Land_House_C_4_EP1","Land_HouseBlock_B3","Land_HouseBlock_B2","Land_HouseBlock_B6","Land_HouseV2_01B","Land_HouseBlock_C1","Land_HouseBlock_B1","Land_HouseBlock_A1","Land_HouseBlock_D1","Land_MBG_GER_HUS_4","Land_Brana02nodoor","Land_HouseBlock_C3","Land_SignB_Hotel_CZ","Land_HouseBlock_A2","Land_SignB_Hotel_CZ3","Land_HouseBlock_D2","Land_SignB_Pharmacy","Land_House_C_10_EP1","Land_kolotoc","Land_HouseBlock_C2","Land_MBG_Cinderwall_5_SteelDoor","Land_Company3_2","Land_Wall_Gate_Ind2B_L","land_mbg_apartments_big_04","Land_Misc_Coltan_Heap_EP1","Land_MBG_Cinderwall_5_Gate","Land_Wall_Gate_Ind2A_L","Land_Misc_WaterStation","Land_Misc_Cargo1E","Land_zavora_2","Land_A_FuelStation_Feed","Land_A_FuelStation_Shed","Land_MBG_GER_RHUS_5","Land_Ind_Mlyn_D1","Land_Nav_Boathouse_PierR","Land_Lampa_ind_zebr","Land_HouseV2_05","Land_Wall_Gate_Wood1","land_mbg_apartments_big_01","Land_BoatSmall_1","Land_Dum_zboreny_total","Land_MBG_Cinderwall_5_WoodDoor","Land_Kostel","Land_A_Villa_EP1","Land_PowLine_wire_A_right_EP1","Land_Plot_green_vrata","Land_PowLine_wire_AB_EP1","Land_PowLine_wire_BB_EP1","Land_PowLine_wire_A_left_EP1","Land_Budova4_in","Land_IndPipe2_bigL_L","Land_Ind_Pec_03","Land_IndPipe2_bigL_R","Land_Misc_Cargo2E","Land_Ind_Coltan_Main_EP1","Land_Ind_Shed_01_end","Land_Ind_Shed_01_main","Land_Ind_Coltan_Hopper_EP1","Land_Trafostanica_mala","Land_MBG_GER_ESTATE_2","Land_sloup_vn_dratZ","Land_BoatSmall_2a","Land_BoatSmall_2b","Land_Dam_Barrier_40","Land_A_TVTower_Top","Land_A_TVTower_Mid","Land_MBG_GER_PUB_2","land_nav_pier_c_90","Land_Ind_Workshop01_03","land_nav_pier_c_t15","Land_Misc_CargoMarket1a_EP1","Land_Wall_Gate_Ind1_L","Land_Gate_IndVar2_5","Land_MBG_Shoothouse_1","Land_Leseni2x","Land_Komin","land_nav_pier_C_L30","land_nav_pier_c2","land_nav_pier_c","Land_Misc_Cargo1D","land_nav_pier_c2_end","Land_A_Crane_02b","Land_A_Crane_02a","Land_Dum_m2","Land_Misc_Cargo2C","land_nav_pier_C_R30","Land_Misc_Cargo2D","Land_Misc_Cargo1G","Land_Misc_Cargo2B","Land_HouseBlock_A1_2","Land_Ind_SiloVelke_02","Land_Ind_SiloVelke_most","Land_NAV_Lighthouse","Land_Shed_M01","Land_KBud","land_nav_pier_F_23","Land_Pumpa","Land_Shed_W02","Land_Church_05R","Land_ruin_01_PMC","Land_HouseBlock_A2_1","Land_Domek_rosa","Land_Bouda1","land_mbg_brickhouse_03","Land_Bouda_plech","Land_MBG_GER_RHUS_2","Land_MBG_GER_RHUS_1","Land_MBG_Garage_Single_B","Land_Terrace_K_1_EP1","Land_Stoplight02","Land_A_Castle_WallS_10","Land_A_Castle_WallS_5_D","land_nav_pier_c_270","Land_SignB_Hotel_CZ2","Land_A_Castle_Wall1_20_Turn","Land_HouseV_1I2","Land_aif_watertower1","Land_MBG_Cinderwall_2p5","Land_Statek_hl_bud","Land_Plot_rust_branka","Land_Wall_Gate_Kolchoz","Land_mbg_cinderwall_5_low","Land_Ind_BoardsPack1","Land_Bouda3","Land_A_statue01","Land_Sara_domek_kovarna","Land_Deutshe","Land_Lampa_sidl_2","Land_Wall_CGry_5_D","Land_Ind_BoardsPack2","Land_houpacka","Land_Mil_Barracks_L","Land_aif_strazni_vez","Land_NavigLight","Land_runway_edgelight","Land_Dirthump03_EP1","Land_Dirthump02_EP1","Land_Church_tomb_3","Land_Church_tomb_2","Land_Dirthump01_EP1","Land_Wall_Gate_Ind2B_R","Land_Kostel3","Land_IndPipe1_stair","land_nav_pier_C_L","land_nav_pier_C_R","Land_MBG_ATC_Tower","Land_MBG_ATC_Segment","Land_MBG_ATC_Base","land_nav_pier_C_R10","Land_aif_hlaska","Land_aif_kasarna_rohova","Land_aif_kasarna_prujezd","Land_aif_kasarna","Land_Mil_Barracks","Land_aif_heavyf","land_nav_pier_C_L10","Land_aif_hotel_bio","Land_Plot_Ohrada_Pruchozi","Land_A_Castle_WallS_End","Land_HouseV2_04_interier_dam","Land_Zed_dira_civil","Land_Wall_Gate_Ind2Rail_R","Land_Wall_Gate_Ind2Rail_L","Land_HouseV_2L_dam","Land_Fort_Watchtower","Land_Dam_Conc_20","Land_HouseV2_03B_dam","Land_Lampa_sidl_3","Land_HouseV2_01B_dam","Land_HouseV2_01A_dam","Land_HouseV2_03_dam","Land_Ind_Pec_02","Land_Dam_ConcP_20","Land_Kostel_trosky","Land_HouseV_1I3","Land_Wall_CBrk_5_D"]; + +BIS_fnc_returnVector = { + private ["_v","_d","_x","_y"]; + _v = +(_this select 0); + _d = _this select 1; + _x = _v select 0; + _y = _v select 1; + _v set [0, (cos _d)*_x - (sin _d)*_y]; + _v set [1, (sin _d)*_x + (cos _d)*_y]; + _v +}; + +_import = ["Land_Slum_01_F","Land_Shed_03_F","Land_Slum_02_F","Land_House_Native_02_F","Land_House_Small_03_F","Land_House_Native_01_F","Land_Shed_05_F","Land_Shed_04_F","Land_Addon_05_F","Land_Shed_06_F","Land_House_Small_04_F","Land_House_Small_01_F","Land_Shop_Town_04_F","Land_Shop_Town_01_F","Land_House_Small_05_F","Land_Slum_05_F","Land_WaterTower_01_F","Land_Shed_02_F","Land_House_Small_06_F","Land_Shop_Town_02_F","Land_House_Small_02_F","Land_Shed_01_F","Land_Shop_Town_03_F","Land_Addon_03_F","Land_MetalShelter_01_F","Land_MetalShelter_02_F","Land_Slum_03_F","Land_Supermarket_01_F","Land_Shop_City_04_F","Land_Addon_02_F","Land_Addon_04_F","Land_House_Big_05_F","Land_Shop_City_07_F","Land_Addon_01_F","Land_House_Big_03_F","Land_House_Big_01_F","Land_Hotel_02_F","Land_Slum_04_F","Land_GarageShelter_01_F","Land_WoodenShelter_01_F","Land_PierWooden_02_hut_F","Land_Church_03_F","Land_Shed_07_F","Land_School_01_F","Land_Temple_Native_01_F","Land_Shop_City_06_F","Land_Shop_Town_05_F","Land_Shop_City_03_F","Land_Church_01_F","Land_Warehouse_03_F","Land_FireEscape_01_short_F","Land_House_Big_04_F","Land_Shop_City_02_F","Land_Shop_City_01_F","Land_Hotel_01_F","Land_WindmillPump_01_F","Land_Shop_Town_05_addon_F","Land_FuelStation_01_shop_F","Land_FuelStation_01_workshop_F","Land_FuelStation_01_pump_F","Land_FuelStation_02_workshop_F","Land_Mausoleum_01_F","Land_Barracks_01_grey_F","Land_Church_02_F","Land_SCF_01_warehouse_F","Land_Shed_Small_F","Land_GuardHouse_01_F","Land_Airport_01_controlTower_F","Land_Airport_01_terminal_F","Land_FuelStation_02_pump_F","Land_dp_smallTank_F","Land_Barracks_01_camo_F","Land_spp_Transformer_F","Land_TBox_F","Land_FuelStation_02_roof_F","Land_House_Big_02_F","Land_PierWooden_01_dock_F","Land_PierWooden_01_hut_F","Land_SCF_01_storageBin_medium_F","Land_ContainerLine_01_F","Land_DPP_01_waterCooler_F","Land_DPP_01_smallFactory_F","Land_GantryCrane_01_F","Land_ContainerLine_03_F","Land_StorageTank_01_small_F","Land_MobileCrane_01_F","Land_SCF_01_shed_F","Land_ContainerLine_02_F","Land_FireEscape_01_tall_F","Land_MobileCrane_01_hook_F","Land_Shop_City_05_F","Land_MultistoryBuilding_01_F","Land_MultistoryBuilding_03_F","Land_MultistoryBuilding_04_F","Land_Cathedral_01_F","Land_Airport_01_hangar_F","Land_Airport_02_controlTower_F","Land_Airport_02_terminal_F","Land_Airport_02_hangar_right_F","Land_Airport_02_hangar_left_F","Land_BasaltWall_01_gate_F","Land_DPP_01_mainFactory_F","Land_CombineHarvester_01_wreck_F","Land_SCF_01_heap_bagasse_F","Land_SCF_01_generalBuilding_F","Land_SCF_01_washer_F","Land_SCF_01_shredder_F","Land_SCF_01_clarifier_F","Land_SCF_01_feeder_F","Land_SCF_01_chimney_F","Land_SCF_01_boilerBuilding_F","Land_SCF_01_crystallizer_F","Land_SCF_01_crystallizerTowers_F","Land_Radar_Small_F","Land_MiningShovel_01_abandoned_F","Land_SM_01_reservoirTower_F","Land_HaulTruck_01_abandoned_F","Land_Warehouse_01_F","Land_Warehouse_02_F","Land_SM_01_shelter_narrow_F","Land_SM_01_shelter_wide_F","Land_SM_01_shed_unfinished_F","Land_WarehouseShelter_01_F","Land_SY_01_reclaimer_F","Land_SY_01_stockpile_01_F","Land_SY_01_stockpile_02_F","Land_ContainerCrane_01_F","Land_SM_01_shed_F"]; + +EPB = []; +{ + if !(_x in EPB) then { + EPB pushBack _x; + }; +} forEach _import; + EPBCount = count EPB; player allowDamage false; player enableFatigue false; EP_distance = 2; EPOCH_vehTarget = objNull; + +Bed_EPOCH = [[[0,0,0.6],[0,0,-0.1]],[[0,0,0.6],[0,0,0.9]],[[0,0,0.5],[1.1,0,0.5]],[[0,0,0.5],[-0.7,0,0.5]],[[0,0,0.5],[0,1.4,0.5]],[[0,0,0.5],[0,-1.4,0.5]]]; +Fridge_EPOCH = [[[0,0,1.1],[0,0,-0.1]],[[0,0,1.1],[0,0,2.1]],[[0,0,1.1],[0.5,0,1.1]],[[0,0,1.1],[-0.5,0,1.1]],[[0,0,1.1],[0,0.4,1.1]],[[0,0,1.1],[0,-0.9,1.1]]]; +Shelf_EPOCH = [[[0,0,1],[0,0,-0.1]],[[0,0,1],[0,0,1.8]],[[0,0,1],[0.5,0,1]],[[0,0,1],[-0.5,0,1]],[[0,0,1],[0,0.2,1]],[[0,0,1],[0,-0.6,1]]]; +Couch_EPOCH = [[[0,0,0.4],[0,0,-0.1]],[[0,0,0.4],[0,0,1.2]],[[0,0,0.4],[1.3,0,0.4]],[[0,0,0.4],[-0.3,0,0.4]],[[0,0,0.4],[0,1.4,0.4]],[[0,0,0.4],[0,-1.4,0.4]]]; +wardrobe_epoch = [[[0,0,1.3],[0,0,-0.1]],[[0,0,1.3],[0,0,2.3]],[[0,0,1.3],[0.7,0,1.3]],[[0,0,1.3],[-0.7,0,1.3]],[[0,0,1.3],[0,0.4,1.3]],[[0,0,1.3],[0,-0.6,1.3]]]; +cooker_epoch = [[[0,0,0],[0,0,-0.7]],[[0,0,0],[0,0,0.7]],[[0,0,0],[0.4,0,0]],[[0,0,0],[-0.4,0,0]],[[0,0,0],[0,0.5,0]],[[0,0,0],[0,-0.7,0]]]; +Chair_EPOCH = [[[0,0,0.5],[0,0,-0.1]],[[0,0,0.5],[0,0,1.5]],[[0,0,0.6],[0.6,0,0.6]],[[0,0,0.6],[-0.6,0,0.6]],[[0,0,0.6],[0,0.6,0.6]],[[0,0,0.5],[0,-0.6,0.5]]]; +Filing_epoch = [[[0,0,0.8],[0,0,-0.1]],[[0,0,0.8],[0,0,1.6]],[[0,0,0.8],[0.3,0,0.8]],[[0,0,0.8],[-0.3,0,0.8]],[[0,0,0.8],[0,0.4,0.8]],[[0,0,0.8],[0,-0.5,0.8]]]; +Pelican_EPOCH = [[[0,0,0.2],[0,0,-0.1]],[[0,0,0.2],[0,0,0.7]],[[0,0,0.2],[0.9,0,0.2]],[[0,0,0.2],[-0.9,0,0.2]],[[0,0,0.2],[0,0.6,0.2]],[[0,0,0.2],[0,-0.4,0.2]]]; +Table_EPOCH = [[[0,0,0.5],[0,0,-0.1]],[[0,0,0.5],[0,0,0.8]],[[0,0,0.5],[1.1,0,0.5]],[[0,0,0.5],[-1,0,0.5]],[[0,0,0.5],[0,0.5,0.5]],[[0,0,0.5],[0,-0.7,0.5]]]; +Locker_EPOCH = [[[0,0,1.1],[0,0,-0.1]],[[0,0,1.1],[0,0,2.1]],[[0,0,1.1],[1,0,1.1]],[[0,0,1.1],[-0.9,0,1.1]],[[0,0,1.1],[0,0.4,1.1]],[[0,0,1.1],[0,-0.5,1.1]]]; +ToolRack_EPOCH = [[[0,0,1.5],[0,0,-0.1]],[[0,0,1.5],[0,0,2.3]],[[0,0,1.5],[1,0,1.5]],[[0,0,1.5],[-0.9,0,1.5]],[[0,0,1.5],[0,0.05,1.5]],[[0,0,1.5],[0,-0.4,1.5]]]; +Shoebox_EPOCH = [[[0,0,0.1],[0,0,-0.1]],[[0,0,0.1],[0,0,0.3]],[[0,0,0.1],[0.3,0,0.1]],[[0,0,0.1],[-0.3,0,0.1]],[[0,0,0.1],[0,0.2,0.1]],[[0,0,0.1],[0,-0.2,0.1]]]; +Tarp_EPOCH = [[[0,0,0.2],[0,0,-0.1]],[[0,0,0.2],[0,0,1]],[[0,0,0.2],[0.9,0,0.2]],[[0,0,0.2],[-0.9,0,0.2]],[[0,0,0.2],[0,1,0.2]],[[0,0,0.2],[0,-0.9,0.2]]]; +Freezer_EPOCH = [[[0,0,0.5],[0,0,-0.2]],[[0,0,0.5],[0,0,1.1]],[[0,0,0.5],[0.7,0,0.5]],[[0,0,0.5],[-0.7,0,0.5]],[[0,0,0.5],[0,0.5,0.5]],[[0,0,0.5],[0,-0.6,0.5]]]; +Cabinet_EPOCH = [[[0,0,0],[0,0,-0.4]],[[0,0,0],[0,0,0.4]],[[0,0,0],[0.2,0,0]],[[0,0,0],[-0.1,0,0]],[[0,0,0],[0,0.3,0]],[[0,0,0],[0,-0.3,0]]]; + EPOCH_lootClassesRaw = [ ["shelfPos", "Shelf_EPOCH", true], ["fridgePos", "Fridge_EPOCH", true], @@ -51,7 +90,7 @@ EPOCH_lootClassesRaw = [ ["shoeboxPos", "Shoebox_EPOCH", false], ["palletPos", "Tarp_EPOCH", false], ["freezerPos", "Freezer_EPOCH", false], - ["cabinetPos", "Cabinet_EPOCH", false] + ["cabinetPos", "Cabinet_EPOCH", false] ]; EPOCH_lootSIMClassesRaw = [ ["shelfPos", "Shelf_SIM_EPOCH", true], @@ -69,7 +108,7 @@ EPOCH_lootSIMClassesRaw = [ ["shoeboxPos", "Shoebox_SIM_EPOCH", false], ["palletPos", "Tarp_SIM_EPOCH", false], ["freezerPos", "Freezer_SIM_EPOCH", false], - ["cabinetPos", "Cabinet_EPOCH", false] + ["cabinetPos", "Cabinet_EPOCH", false] ]; EPOCH_lootClassesCustom = []; @@ -84,6 +123,18 @@ EPOCH_lootClassesCustom2 = []; } forEach EPOCH_lootSIMClassesRaw; EPOCH_lootClasses2Count = count EPOCH_lootClassesCustom2 - 1; +EPOCH_KeyUpCustom = { + _dikCode = _this select 1; + _shift = _this select 2; + _ctrl = _this select 3; + _alt = _this select 4; + _handled = false; + + + + _handled +}; + EPOCH_KeyDownCustom = { _dikCode = _this select 1; _shift = _this select 2; @@ -128,10 +179,20 @@ EPOCH_KeyDownCustom = { } }; + case 0x2D: { + + if (_ctrl) then { + hint "removed loot objects"; + { + {deleteVehicle _x} forEach allMissionObjects _x; + } forEach EPOCH_lootClassesCustom; + } + }; + case 0xD3: { - if !(isNull(cursorTarget)) then { - deleteVehicle cursorTarget; + if !(isNull(cursorObject)) then { + deleteVehicle cursorObject; hint "Deleted Object"; }; }; @@ -142,8 +203,8 @@ EPOCH_KeyDownCustom = { }; case 0x1C: { - if !(isNull(cursorTarget)) then { - EP_building = cursorTarget; + if !(isNull(cursorObject)) then { + EP_building = cursorObject; hint format["Target Changed: %1", typeOf EP_building]; }; }; @@ -152,15 +213,16 @@ EPOCH_KeyDownCustom = { hint "tilde"; - if (isnil "EPOCH_vehTarget") then { + if (isNull EPOCH_vehTarget) then { EPOCH_vehTarget = createVehicle [_selectedClass, _worldPos, [], 0, "CAN_COLLIDE"]; + EPOCH_vehTarget disableCollisionWith player; + EPOCH_vehTarget setDir Base_angle; EPOCH_vehTarget setPosATL _worldPos; hint str(EPOCH_vehTarget); } else { deleteVehicle EPOCH_vehTarget; - EPOCH_vehTarget = nil; hint "deleted"; }; _handled = true; @@ -221,7 +283,12 @@ EPOCH_KeyDownCustom = { if (_ctrl) then { _num = _num * 10; }; - Base_Z_height = Base_Z_height + _num; + if (_shift) then { + _playerZ = getposATL player select 2; + Base_Z_height = _playerZ; + } else { + Base_Z_height = Base_Z_height + _num; + }; _zheightChanged = true; _handled = true; }; @@ -304,12 +371,11 @@ EPOCH_KeyDownCustom = { case 0x39 : { hint "space"; _handled = true; - if (isnil "EPOCH_vehTarget") then { + if (isNull EPOCH_vehTarget) then { + if (!isnull(cursorObject)) then { + if (cursorObject isKindOf "WH_Loot" or cursorObject isKindOf "Constructions_modular_F" or cursorObject isKindOf "Animated_Loot") then { - if (!isnull(cursorTarget)) then { - if (cursorTarget isKindOf "WH_Loot" or cursorTarget isKindOf "Constructions_modular_F" or cursorTarget isKindOf "Animated_Loot") then { - - EPOCH_vehTarget = cursorTarget; + EPOCH_vehTarget = cursorObject; _selectedClass = typeOF EPOCH_vehTarget; _index1 = EPOCH_lootClassesCustom find _selectedClass; @@ -325,82 +391,77 @@ EPOCH_KeyDownCustom = { Base_Z_height = (getposATL EPOCH_vehTarget) select 2; }; }; - } else { + EPOCH_vehTarget = objNull; + }; + }; - if (!isnull(EPOCH_vehTarget)) then { - detach EPOCH_vehTarget; - EPOCH_vehTarget = nil; + case 0x13 : { + + if(({(_x find typeof cursortarget) > -1} count EPOCH_lootClassesRaw) > 0)then{ + if(damage cursorObject < 1)then{ + cursorObject setDamage 1; + Hint format ["%1 Looted",typeof cursorObject]; + }else{ + cursorObject setDamage 0; + Hint format ["%1 Un-Looted",typeof cursorObject]; }; }; }; - case 0x13 : { - - if(({(_x find typeof cursortarget) > -1} count EPOCH_lootClassesRaw) > 0)then{ - if(damage cursorTarget < 1)then{ - cursorTarget setDamage 1; - Hint format ["%1 Looted",typeof cursorTarget]; - }else{ - cursorTarget setDamage 0; - Hint format ["%1 Un-Looted",typeof cursorTarget]; - }; - }; - }; - - case 0x26 : { + case 0x26 : { - if (_ctrl) then { + if (_ctrl) then { EPB = []; "if (isclass _x) then {EPB pushBack (configName _x); true}" configClasses (configFile >> "CfgBuildingLootPos") } else { - _buildLoading = objNull; - if !(isNull(EP_building)) then { - _buildLoading = EP_building - }else{ - _buildLoading = cursorTarget; - }; + _buildLoading = objNull; + if !(isNull(EP_building)) then { + _buildLoading = EP_building + }else{ + _buildLoading = cursorObject; + }; - _buildingPos = getPosATL _buildLoading; - _config = missionConfigFile; - _customLoot = true; - _lootCount = 0; + _buildingPos = getPosATL _buildLoading; + _config = missionConfigFile; + _customLoot = true; + _lootCount = 0; - if!(isClass (_config >> "CfgBuildingLootPos" >> typeOf _buildLoading))then{ - _config = configFile; - _customLoot = false; - }; + if!(isClass (_config >> "CfgBuildingLootPos" >> typeOf _buildLoading))then{ + _config = configFile; + _customLoot = false; + }; - if(isClass (_config >> "CfgBuildingLootPos" >> typeOf _buildLoading))then{ + if(isClass (_config >> "CfgBuildingLootPos" >> typeOf _buildLoading))then{ - { - _thisLoot = _x select 1; - _thisRawLootPos = _x select 0; + { + _thisLoot = _x select 1; + _thisRawLootPos = _x select 0; - { - _pos = _buildLoading modelToWorld [(_x select 0 select 0),(_x select 0 select 1),(_x select 0 select 2)]; - _newLoot = createVehicle [_thisLoot,_pos, [], 0, "CAN_COLLIDE"]; + { + _pos = _buildLoading modelToWorld [(_x select 0 select 0),(_x select 0 select 1),(_x select 0 select 2)]; + _newLoot = createVehicle [_thisLoot,_pos, [], 0, "CAN_COLLIDE"]; - _dir = (_x select 1) + (getDir _buildLoading); - if (_dir > 360) then { - _dir = _dir - 360; - }; + _dir = (_x select 1) + (getDir _buildLoading); + if (_dir > 360) then { + _dir = _dir - 360; + }; - _newLoot setDir _dir; - _lootCount = _lootCount + 1; - }forEach getArray(_config >> "CfgBuildingLootPos" >> typeOf _buildLoading >> _thisRawLootPos); + _newLoot setDir _dir; + _lootCount = _lootCount + 1; + }forEach getArray(_config >> "CfgBuildingLootPos" >> typeOf _buildLoading >> _thisRawLootPos); - } forEach EPOCH_lootClassesRaw; + } forEach EPOCH_lootClassesRaw; - hint format["Loading House %2\nCustom Loot: %1\nLoot Count: %3",_customLoot,typeOf _buildLoading, _lootCount]; - }else{ - hint format["House %1 Not Found",typeOf _buildLoading]; + hint format["Loading House %2\nCustom Loot: %1\nLoot Count: %3",_customLoot,typeOf _buildLoading, _lootCount]; + }else{ + hint format["House %1 Not Found",typeOf _buildLoading]; - }; - }; + }; + }; - }; + }; }; @@ -411,6 +472,7 @@ EPOCH_KeyDownCustom = { deleteVehicle EPOCH_vehTarget; EPOCH_vehTarget = createVehicle [_selectedClass, _curPos, [], 0, "CAN_COLLIDE"]; + EPOCH_vehTarget disableCollisionWith player; EPOCH_vehTarget setDir Base_angle; EPOCH_vehTarget setPosATL _curPos; } @@ -460,14 +522,14 @@ EPOCH_dbg_saveLootPos = { _simClass = EPOCH_lootSIMClassesRaw select _forEachIndex; _objectsArray = nearestObjects [EP_building, [_x select 1, _simClass select 1], 100]; if !(_objectsArray isEqualTo []) then { - _config_str = _config_str + format['%1[] = {%2',_x select 0,_br]; + _config_str = _config_str + format[' %1[] = {%2',_x select 0,_br]; _countArray = (count _objectsArray) - 1; { _ppos = EP_building worldToModel (getposATL _x); _directionOffset = [_x,EP_building] call EPOCH_dirOffset; - _config_str = _config_str + format['{ %1, %2 }%3', _ppos call EPOCH_dbg_replaceBrackets, _directionOffset,if (_forEachIndex isEqualTo _countArray) then {_br} else {("," + _br)}]; + _config_str = _config_str + format[' { %1, %2 }%3', _ppos call EPOCH_dbg_replaceBrackets, _directionOffset,if (_forEachIndex isEqualTo _countArray) then {_br} else {("," + _br)}]; } forEach _objectsArray; - _config_str = _config_str + "};" + _br; + _config_str = _config_str + " };" + _br; }; } forEach EPOCH_lootClassesRaw; _config_str = _config_str + "};" + _br; @@ -583,31 +645,86 @@ KK_boundingBox = { [] spawn { - (findDisplay 46) displayRemoveAllEventHandlers "KeyDown"; + (findDisplay 46) displayAddEventHandler["KeyDown",{_this call EPOCH_KeyDownCustom}]; + (findDisplay 46) displayAddEventHandler["KeyUp",{_this call EPOCH_KeyUpCustom}]; }; -onEachFrame { + +"EPOCH_onEachFrame" call BIS_fnc_removeaddStackedEventHandler; +["EPOCH_onEachFrame", "onEachFrame", { + if (!isnull(EPOCH_vehTarget)) then { - _worldPos = player modelToWorld[0, EP_distance, 0]; - _worldPos set [2,Base_Z_height]; - if !(surfaceIsWater _worldPos) then { - _worldPos = ATLToASL _worldPos; + if (!isnull(DUMMY)) then { + deleteVehicle DUMMY; }; + DUMMY = "Sign_Arrow_Direction_F" createVehicle getpos player; + _blocked = false; + _target = player; if (!isnull(EP_building)) then { - _target = EP_building; + _target = EP_building; }; - _finalVectorDir = [vectorDir _target, Base_angle] call EPOCH_returnVector; - EP = [getPosASL EPOCH_vehTarget,_worldPos,velocity EPOCH_vehTarget,velocity player,vectorDir EPOCH_vehTarget,_finalVectorDir,vectorUp EPOCH_vehTarget,vectorUp player,1]; - EPOCH_vehTarget setVelocityTransformation [getPosASL EPOCH_vehTarget,_worldPos,velocity EPOCH_vehTarget,velocity player,vectorDir EPOCH_vehTarget,_finalVectorDir,vectorUp EPOCH_vehTarget,vectorUp player,1]; - }; + _worldPos = player modelToWorld[0, EP_distance, 0]; + _worldPos set [2,Base_Z_height]; + + if (_worldPos distance player > 10) then { + _blocked = true; + }; + _worldPos = AGLtoASL _worldPos; + + _finalVectorDir = [vectorDir _target, Base_angle] call BIS_fnc_returnVector; + DUMMY setVelocityTransformation [getPosASL DUMMY,_worldPos,velocity DUMMY,velocity DUMMY,vectorDir DUMMY,_finalVectorDir,vectorUp DUMMY,vectorUp player,1]; + _targetType = typeof EPOCH_vehTarget; + + + { + _x params ["_startV","_stopV"]; + + _start = DUMMY modelToWorld _startV; + _stop = DUMMY modelToWorld _stopV; + + _color = [1,1,1,1]; + _ins = lineIntersectsSurfaces [AGLToASL _start,AGLToASL _stop,EPOCH_vehTarget,player,true,1,"FIRE","NONE"]; + if !(_ins isEqualTo []) then { + _color = [1,0,0,1]; + (_ins select 0) params ["_intersectPosASL","_surfaceNormal","_intersectObject","_parentObject"]; + hint str ([_forEachIndex,EPOCH_vehTarget]); + switch (_forEachIndex) do { + case 0: { + _worldPos set [2, _intersectPosASL select 2]; + }; + case 1: { + _worldPos set [2, _intersectPosASL select 2]; + }; + case 2; + case 3; + case 4; + case 5: { + _blocked = true; + }; + }; + }; + + drawLine3D [ + _start, + _stop, + _color + ]; + + } forEach (missionNamespace getVariable [_targetType,[]]); + + if (_blocked) then { + _worldPos = getPosASL EPOCH_vehTarget; + }; + EPOCH_vehTarget setVelocityTransformation [getPosASL EPOCH_vehTarget,_worldPos,velocity EPOCH_vehTarget,velocity EPOCH_vehTarget,vectorDir EPOCH_vehTarget,_finalVectorDir,vectorUp EPOCH_vehTarget,vectorUp player,1]; + }; if (!isnull(EP_building)) then { EP_building call KK_boundingBox; }; -}; +}] call BIS_fnc_addStackedEventHandler; diff --git a/build.txt b/build.txt index 3fb73a59..2c4ebf51 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -513 +515