From 0315cfa549e00d3a3d6772e7f05599e1eacdd01a Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 5 Nov 2017 08:17:51 -0600 Subject: [PATCH 01/94] remove build and version tracked on the dev server --- build.txt | 1 - version.txt | 1 - 2 files changed, 2 deletions(-) delete mode 100644 build.txt delete mode 100644 version.txt diff --git a/build.txt b/build.txt deleted file mode 100644 index b039bdc3..00000000 --- a/build.txt +++ /dev/null @@ -1 +0,0 @@ -826 diff --git a/version.txt b/version.txt deleted file mode 100644 index 2d1c8c89..00000000 --- a/version.txt +++ /dev/null @@ -1 +0,0 @@ -0.5.0.0 \ No newline at end of file From 79364774126e68f8b65c9c76cf5dec20f040a236 Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 5 Nov 2017 12:41:31 -0600 Subject: [PATCH 02/94] changelog --- changelog.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/changelog.md b/changelog.md index 78b359b2..d7b8ff7a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,39 @@ # Change Log All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) are listed in this changelog. +## [1.1.0.0] - Unreleased +### Added +Plant Spawner: vehicle object for sunflower. @Helion4 + +## Build: 1077 +## [1.0.0.1077] - 2017-11-05 +### Added +- Make temp Vehicles Lockable + Lock hints. +- FuelTank to Loot / Crafting / Pricing. +- Missing itemPipe to loot tables. +### Fixed +- Rpt error for community stats. +- CameraView Check moved to master loop. +### Changed +- Make use of traderUniforms config for AI trader classes. +- Adjust the order of marker sets. + +## [1.0.0.1074] - 2017-10-30 +### Added +- Missing Prices / Itemsorts + Objectinteracts configs. +- Note about a possible crash point on server startup if Redis is not running. +- Hint for Building to move / remove / upgrade. +- Config variable radiationEffectsThreshold to control what level PP effects are seen, (default 10%). +### Fixed +- Fix for radiation post process effects when under 10% irradiated. +- Fix inherits for metal and cinder floor. +- Forced restart is now working properly again. +- Fav Bar now returns "Not enough Space" message if there isn't enough space to store current accessory. +- Fix for Horizontal Barrel Bomb BE kick. +### Changed +- Random attributes now use 2 decimal places instead of rounding. +- Shipwrecks now use safe pos for shipwreck loot containers positions. + ## [1.0.0.0] - 2017-10-26 ### Added - Favorites bar. Users can pin (almost) any item to the bar by dragging items from inventory to equip/un-equip (Weapons, attachments, head gear, etc.) or consume (eat, drink, build, etc.) using keyboard mapping without having gear open. Use ESC menu to change the mappings. Server admins, see client_init.sqf for config. @raymix From 33153562af068cf7216548119c7285b3f884f3c4 Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 5 Nov 2017 12:43:58 -0600 Subject: [PATCH 03/94] changelog --- changelog.md | 1 - 1 file changed, 1 deletion(-) diff --git a/changelog.md b/changelog.md index d7b8ff7a..33eeda05 100644 --- a/changelog.md +++ b/changelog.md @@ -5,7 +5,6 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a ### Added Plant Spawner: vehicle object for sunflower. @Helion4 -## Build: 1077 ## [1.0.0.1077] - 2017-11-05 ### Added - Make temp Vehicles Lockable + Lock hints. From 6f42a5f47ffdf0d28b69480a6d2a730ce23f3bb2 Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 5 Nov 2017 12:50:33 -0600 Subject: [PATCH 04/94] bump experimental version to 1.1 --- Sources/epoch_config/Configs/CfgEpochClient.hpp | 2 +- Sources/epoch_server/config.cpp | 4 ++-- Sources/epoch_server_settings/config.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index bb6b4aaf..47da1b07 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -14,7 +14,7 @@ /*[[[cog from arma_config_tools import *; json_to_arma()]]]*/ class CfgEpochClient { - epochVersion = "1.0.0"; + epochVersion = "1.1.0"; ArmAVersion = 176; debug = "true"; // true = enable extra rpt debug lines, false to disable diff --git a/Sources/epoch_server/config.cpp b/Sources/epoch_server/config.cpp index 423b610e..f4a03418 100644 --- a/Sources/epoch_server/config.cpp +++ b/Sources/epoch_server/config.cpp @@ -144,7 +144,7 @@ class CfgServerFunctions }; class CfgServerVersion { - client = "1.0.0"; - config = "1.0.0"; + client = "1.1.0"; + config = "1.1.0"; hive = "0.6.0.0"; }; diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 3b80f5e4..7524d3f5 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -20,7 +20,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = 0.1; - epochVersion = "1.0.0"; + epochVersion = "1.1.0"; requiredAddons[] = {}; #include "build.hpp" }; From 82041a33b2ad1b35305b2c37e4ac2fe69045edf5 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 6 Nov 2017 19:46:03 -0600 Subject: [PATCH 05/94] add missing isMovingCoefValue CfgDynamicSimulation var --- Sources/epoch_config/Configs/CfgDynamicSimulation.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp b/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp index 2f716b87..7ecb0fcb 100644 --- a/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp +++ b/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp @@ -1,7 +1,7 @@ class CfgDynamicSimulation { //If this is false none of the below settings matter - enableDynamicSimulationSystem = true; + enableDynamicSimulationSystem = true; //Individual toggles for testing vehicleDynamicSimulationSystem = true; // type car, air, boat @@ -9,8 +9,9 @@ class CfgDynamicSimulation baseDynamicSimulationSystem = true; // plot pole and base pieces // Distances and Coef + isMovingCoefValue = 2; groupDynSimDistance = 1600; vehicleDynSimDistance = 1600; emptyVehicleDynSimDistance = 1600; propDynSimDistance = 1600; -}; \ No newline at end of file +}; From 3eaf9927e6f8a08231fb820bec544f74975d4728 Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 8 Nov 2017 09:19:54 -0600 Subject: [PATCH 06/94] bump to 3 DB - Today at 8:00 AM For some reason, that effects moving vehicles (mostly helis) with crew, so if you have vehicle set to 1600, with the default multiplier of 2, if it isn't within 3200m of another player it can sometimes freeze --- Sources/epoch_config/Configs/CfgDynamicSimulation.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp b/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp index 7ecb0fcb..268d8ef4 100644 --- a/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp +++ b/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp @@ -9,7 +9,7 @@ class CfgDynamicSimulation baseDynamicSimulationSystem = true; // plot pole and base pieces // Distances and Coef - isMovingCoefValue = 2; + isMovingCoefValue = 3; groupDynSimDistance = 1600; vehicleDynSimDistance = 1600; emptyVehicleDynSimDistance = 1600; From 362ec1217bfb06ee655c50a29e414ada844ae1af Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 8 Nov 2017 19:24:31 +0100 Subject: [PATCH 07/94] Reworked Lock Storage + Lock / Unlock hints --- .../EPOCH_server_lockStorage.sqf | 94 +++++++------------ 1 file changed, 36 insertions(+), 58 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockStorage.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockStorage.sqf index aa85c99e..98deb299 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockStorage.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockStorage.sqf @@ -13,81 +13,59 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockStorage.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cfgBaseBuilding","_fnc_lock","_fnc_unlock","_gArray","_owners","_playerGroup","_playerUID","_response","_type"]; +private ["_cfgBaseBuilding","_owners","_playerGroup","_playerUID","_response","_type","_locked","_LockStateChanged","_msg"]; //[[[end]]] params ["_unit","_lockStatus","_player",["_token","",[""]] ]; if !([_player, _token] call EPOCH_server_getPToken) exitWith{}; if (isNull _unit) exitWith{}; if (_player distance _unit > 20) exitWith{}; +_VehLockMessages = ['CfgEpochClient' call EPOCH_returnConfig, "VehLockMessages", true] call EPOCH_fnc_returnConfigEntry; _type = typeOf _unit; _playerUID = getPlayerUID _player; -_playerGroup = _player getVariable ["GROUP",""]; +_playerGroup = _player getVariable["GROUP", ""]; -_fnc_lock = { - _this setVariable ["EPOCH_Locked", true, true]; - EPOCH_saveStorQueue pushBackUnique _this; -}; -_fnc_unlock = { - _this setVariable ["EPOCH_Locked", false, true]; +_fnc_Lock_Unlock = { + _locked = !_locked; + _unit setVariable ["EPOCH_Locked", _locked, true]; + _LockStateChanged = true; }; _cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig; -if (getNumber(_cfgBaseBuilding >> _type >> "isSecureStorage") == 1) then{ - +if (getNumber(_cfgBaseBuilding >> _type >> "isSecureStorage") == 1) then { _owners = _unit getVariable["STORAGE_OWNERS", []]; - - // locked > unlocked - if !(_unit getVariable ["EPOCH_Locked", true]) then { - - // allow group members and owner access + _locked = _unit getVariable ["EPOCH_Locked", true]; + _LockStateChanged = false; + if (_playerUID in _owners) then { + call _fnc_Lock_Unlock; + } + else { if (_playerGroup != "") then { if (_playerGroup in _owners) then { - _unit call _fnc_lock; - } else { - + call _fnc_Lock_Unlock; + } + else { _response = ["Group", _playerGroup] call EPOCH_fnc_server_hiveGETRANGE; - if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { - _gArray = _response select 1; - if ( - {(_x select 0) in _owners}count(_gArray select 3) > 0 || - {(_x select 0) in _owners}count(_gArray select 4) > 0 || - _playerUID in _owners - ) then { - _unit call _fnc_lock; - }; + (_response param [1,[]]) params ["","","",["_modArray",[]],["_memberArray",[]]]; + if ( + {(_x select 0) in _owners} count _modArray > 0 || + {(_x select 0) in _owners} count _memberArray > 0 + ) then { + call _fnc_Lock_Unlock; }; }; - - } else { - if (_playerUID in _owners) then { - _unit call _fnc_lock; - }; - }; - - // unlocked > locked - } else { - - // allow group members and owner access - if (_playerGroup != "") then { - if (_playerGroup in _owners) then { - _unit call _fnc_unlock; - } else { - _response = ["Group", _playerGroup] call EPOCH_fnc_server_hiveGETRANGE; - if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { - _gArray = _response select 1; - if ( - {(_x select 0) in _owners }count(_gArray select 3) > 0 || - {(_x select 0) in _owners}count(_gArray select 4) > 0 || - _playerUID in _owners - ) then { - _unit call _fnc_unlock; - }; - }; - }; - } else { - if (_playerUID in _owners) then { - _unit call _fnc_unlock; - }; }; }; + _msg = "You are not the owner"; + if (_LockStateChanged) then { + if (_locked) then { + EPOCH_saveStorQueue pushBackUnique _unit; + _msg = "Storage Locked"; + } + else { + _msg = "Storage Unlocked"; + }; + }; + if (_VehLockMessages) then { + [_msg,5] remoteExec ["Epoch_Message",_player]; + }; }; From 8ff511d3ee9ebdc15b4a5e9b2dc842941842b66a Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 8 Nov 2017 19:27:01 +0100 Subject: [PATCH 08/94] Reworked GetOutMan EH - Allows to park closer to walls - Better prevent against Wall Glitching - Now works for all Buildings (not only Epoch Walls) --- .../event_handlers/EPOCH_getOutMan.sqf | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf b/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf index 55684ae5..1f4d9767 100644 --- a/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf +++ b/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf @@ -13,19 +13,26 @@ Github: https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_getOutMan_EH.sqf */ -//[[[cog import generate_private_arrays ]]] -private ["_dirTo","_end","_start"]; -//[[[end]]] + params ["_unit","_position","_vehicle"]; if (_unit == player) then { - _start = getPosWorld _vehicle; - // _worldPos set[2, (_worldPos select 2) + 1]; - _dirTo = _vehicle getDir player; - _end = _vehicle getPos [(_vehicle distance player) + 1, _dirTo]; - { - if (_x isKindOf "Const_All_Walls_F") exitWith{ - player moveInAny _vehicle; - EPOCH_antiWallCount = EPOCH_antiWallCount + 1; - }; - } forEach lineintersectsobjs[_start, AGLToASL _end, player, _vehicle, true, 2]; + _this spawn { + private ["_animationstate","_StartTime","_eyepos","_dirTo","_end","_start"]; + params ["_unit","_position","_vehicle"]; + _animationstate = animationstate player; + _StartTime = diag_ticktime; + waituntil {diag_ticktime - _StartTime > 5 || _animationstate != (animationstate player)}; + if (diag_ticktime - _StartTime > 5) exitwith {}; + _start = getPosWorld _vehicle; + _eyepos = eyepos player; + _dirTo = _start getDir _eyepos; + _end = _start getPos [(_start distance _eyepos) + 0.5, _dirTo]; + _end set [2,_eyepos select 2]; + { + if (_x isKindOf "Building") exitWith{ + player moveInAny _vehicle; + EPOCH_antiWallCount = EPOCH_antiWallCount + 1; + }; + } forEach lineintersectsobjs [_start, _end, player, _vehicle, true, 2]; + }; }; From de1e15374b3938b9d9cb684bd5c5683858376b3b Mon Sep 17 00:00:00 2001 From: Raymix Date: Sun, 12 Nov 2017 15:10:40 +0000 Subject: [PATCH 09/94] Reduces rads over time at a cost of immunity. --- .../compile/setup/masterLoop/Event2.sqf | 1 - .../compile/setup/masterLoop/Event5.sqf | 16 +++++++++++----- .../epoch_code/compile/setup/masterLoop/init.sqf | 2 ++ Sources/epoch_config/Configs/CfgEpochClient.hpp | 5 ++++- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf index 833ddfd8..750d4d9f 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf @@ -140,7 +140,6 @@ if ((getFatigue player) >= 0.7 && _airTemp > 100) then { // toxic fever and immunity increase _playerToxicity = missionNamespace getVariable [_playerToxicityKey, _playerToxicityDefault]; -// _playerImmunity = missionNamespace getVariable [_playerImmunityKey, _playerImmunityDefault]; if (_playerToxicity > 0) then { _playerImmunity = [_playerImmunityKey,0.1,_playerImmunityMax,_playerImmunityMin] call EPOCH_fnc_setVariableLimited; _playerToxicity = [_playerToxicityKey,-0.1,_playerToxicityMax,_playerToxicityMin] call EPOCH_fnc_setVariableLimited; diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf index 956b4b02..15c677de 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf @@ -6,7 +6,7 @@ _powerSources = nearestObjects[player, ["Land_spp_Tower_F","Land_wpp_Turbine_V2_ // TODO: add more sources and config based check instead of global var // _nearestLocations removed as they don't support getVariable -// All sources used as a temp solution +// All sources used as a temp solution, please re-use as much as you can. _allSources = nearestObjects[player, ["All"], _radiatedObjMaxRange]; _nearbyRadioactiveObjects = _allSources select {(_x getVariable ["EPOCH_Rads", []]) select 0 > 0}; @@ -75,11 +75,17 @@ if (uniform player == "hazmat_placeholder") then { }; // Radiation Handler -if (_radsLevel > 0) then { - // increase rads based on radiation levels - _playerRadiation = [_playerRadiationKey,_radsLevel,_playerRadiationMax,_playerRadiationMin] call EPOCH_fnc_setVariableLimited; -}; +_playerRadiation = missionNamespace getVariable [_playerRadiationKey, _playerRadiationDefault]; +_playerImmunity = missionNamespace getVariable [_playerImmunityKey, _playerImmunityDefault]; +if (_radsLevel > 0) then { // increase rads based on radiation levels + _playerRadiation = [_playerRadiationKey,_radsLevel,_playerRadiationMax,_playerRadiationMin] call EPOCH_fnc_setVariableLimited; +} else { //Decrease rad level, but at a cost of immunity loss + if (_playerRadiation > 0) then { + _playerRadiation = [_playerRadiationKey,(_baseRadiationLoss * _playerImmunity / 100),_playerRadiationMax,_playerRadiationMin] call EPOCH_fnc_setVariableLimited; + _playerImmunity = [_playerImmunityKey,_baseRadiationLossImmunityPenalty,_playerImmunityMax,_playerImmunityMin] call EPOCH_fnc_setVariableLimited; + }; +}; if !(surfaceIsWater _position) then { if (_nearestLocations isEqualTo []) then{ if (count(player nearEntities["Animal_Base_F", 800]) < 2) then { diff --git a/Sources/epoch_code/compile/setup/masterLoop/init.sqf b/Sources/epoch_code/compile/setup/masterLoop/init.sqf index 6cd5cf6d..1e41c494 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/init.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/init.sqf @@ -115,6 +115,8 @@ _prevEnergy = missionNamespace getVariable [_playerEnergyKey, _playerEnergyDefau // init config data _antagonistRndChance = ["CfgEpochClient", "antagonistRngChance", 100] call EPOCH_fnc_returnConfigEntryV2; +_baseRadiationLoss = ["CfgEpochClient", "baseRadiationLoss", -0.1] call EPOCH_fnc_returnConfigEntryV2; +_baseRadiationLossImmunityPenalty = ["CfgEpochClient", "baseRadiationLossImmunityPenalty", -0.1] call EPOCH_fnc_returnConfigEntryV2; _baseHungerLoss = ["CfgEpochClient", "baseHungerLoss", 2] call EPOCH_fnc_returnConfigEntryV2; _baseThirstLoss = ["CfgEpochClient", "baseThirstLoss", 2] call EPOCH_fnc_returnConfigEntryV2; _baseAlcoholLoss = ["CfgEpochClient", "baseAlcoholLoss", 0.17] call EPOCH_fnc_returnConfigEntryV2; diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index 47da1b07..ff327dc7 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -24,7 +24,10 @@ class CfgEpochClient radiatedObjMaxFalloutDist = 125; // max distance radiated object can affect player (number in meters) geigerCounterEnergyUsage = 10; // default loss of 10 energy every 10sec of use radiationEffectsThreshold = 10; // default level for screen effects to indicate a player's rad dosage (0-100) - + + baseRadiationLoss = -1; //default radiation loss every 1 minute, calculated from total immunity. No immunity no reduction. + baseRadiationLossImmunityPenalty = -1; //immunity is reduced as a penalty for radiation loss effect + baseHungerLoss = 2; // increase number to speed up rate of Hunger loss baseThirstLoss = 2; // increase number to speed up rate of Thirst loss accelerateHTALoss = "true"; // use server's time acceleration to increase the rate of Hunger, Thirst and Alcohol loss From 8fb45fc35c6e7818f13f009eb0cc4b994a6df3d2 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Sun, 12 Nov 2017 17:39:03 -0600 Subject: [PATCH 10/94] events overhaul Streamline all events to Events Monitor within Server Monitor fsm. Cycles and removes events as they decay or are looted. --- .../EPOCH_server_spawnBoatLoot.sqf | 52 +- .../EPOCH_server_isNearChecks.sqf | 55 + Sources/epoch_server/config.cpp | 1 + .../epoch_server/system/server_monitor.fsm | 1004 +++++++++-------- .../EpochEvents/CarnivalSpawner.sqf | 91 +- .../EpochEvents/ContainerSpawner.sqf | 78 +- .../EpochEvents/EarthQuake.sqf | 77 +- .../EpochEvents/PlantSpawner.sqf | 148 ++- .../EpochEvents/Satellite.sqf | 86 +- Sources/epoch_server_settings/config.cpp | 70 +- 10 files changed, 1077 insertions(+), 585 deletions(-) create mode 100644 Sources/epoch_server/compile/epoch_server/EPOCH_server_isNearChecks.sqf diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf index d9c55968..f2d9f828 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf @@ -13,29 +13,39 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_worldSize","_shipwrecks","_total","_count","_distFromOthers","_tooClose","_spawnedLoot","_wreck","_item","_markers"]; +private ["_cfgEpoch","_debug","_showBoatMarkers","_decayMarkerColor","_compromisedColor","_worldSize","_shipwrecks","_total","_count","_distFromOthers","_tooClose","_spawnedLoot","_wreck","_item","_markers","_position","_debugMkr","_heightenedPVP"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; +_debug = if(getNumber(_cfgEpoch >> "debugShipwreckLoot") isEqualTo 1)then{true}else{false}; +_showBoatMarkers = if(getNumber(_cfgEpoch >> "showBoatLootMarkers") isEqualTo 1)then{true}else{false}; +_decayMarkerColor = getText(_cfgEpoch >> "shipwreckDecayMarkerColor"); +_compromisedColor = getText(_cfgEpoch >> "shipwreckCompromisedColor"); +_heightenedPVP = if(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{true}else{false}; +_markers = []; +_originalColors = []; + if (getNumber(_cfgEpoch >> "shipwreckLootEnabled") isEqualTo 1) then { _worldSize = worldSize/2; _shipwrecks = nearestTerrainObjects [ [_worldSize, _worldSize], ["SHIPWRECK"], _worldSize]; _total = getNumber(_cfgEpoch >> "maxSpawnedShipwrecks"); - if(_shipwrecks isEqualTo [])exitWith{diag_log "EPOCHDebug: no shipwrecks found"}; - if(_total isEqualTo 0)exitWith{diag_log "EPOCHDebug: no shipwrecks allowed"}; + if(_shipwrecks isEqualTo [])exitWith{if(_debug)then{diag_log "EPOCHDebug: no shipwrecks found"}}; + if(_total isEqualTo 0)exitWith{if(_debug)then{diag_log "EPOCHDebug: no shipwrecks allowed"}}; + _count = count(_shipwrecks); - if(_count < _total)then{diag_log "EPOCHDebug: not enough shipwrecks to fill your needs on this map, trying all available locations!"}; + if(_count < _total)then{if(_debug)then{diag_log "EPOCHDebug: not enough shipwrecks to fill your needs on this map, trying all available locations!"}}; _distFromOthers = getNumber(_cfgEpoch >> "distFromOtherShipwrecks"); _spawnedLoot = []; for "_i" from 1 to _total do { - if(_shipwrecks isEqualTo [])exitWith{diag_log "EPOCHDebug: no more shipwrecks found"}; + if(_shipwrecks isEqualTo [])exitWith{if(_debug)then{diag_log "EPOCHDebug: no more shipwrecks found"}}; + _tooClose = false; _wreck = selectRandom _shipwrecks; if(isNil "_wreck")exitWith{}; { if(!(_spawnedLoot isEqualTo []) && ((_wreck distance _x) < _distFromOthers))exitWith{ - diag_log "EPOCHDebug: Shipwreck too close to another shipwreck"; + if(_debug)then{diag_log "EPOCHDebug: Shipwreck too close to another shipwreck"}; _tooClose = true; _i = (_i - 1); }; @@ -46,12 +56,32 @@ if (getNumber(_cfgEpoch >> "shipwreckLootEnabled") isEqualTo 1) then { _position = [_wreck,1,20,3,1,20,0] call BIS_fnc_findSafePos; _item = createVehicle["container_epoch",_position, [], 0, "NONE"]; _spawnedLoot pushback _wreck; - _item setMass 220; - - if (EPOCH_SHOW_BOATLOOT) then { - _markers = ["Shipwreck",_wreck] call EPOCH_server_createGlobalMarkerSet; + if(_debug)then{ + _debugMkr = createMarker [str(_position),_position]; + _debugMkr setMarkerShape "ICON"; + _debugMkr setMarkerType "mil_dot"; + _debugMkr setMarkerColor "ColorRed"; }; + _item setMass 220; + _item setVariable["EPOCH_Loot",false,true]; + if (_showBoatMarkers) then { + _markers = ["Shipwreck",_wreck] call EPOCH_server_createGlobalMarkerSet; + { + _originalColors pushBack (getMarkerColor _x); + }forEach _markers; + }; + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if((_showBoatMarkers) && !(_heightenedPVP))then{ + _compromisedColor = getMarkerColor (_markers select 0); + }; + + _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; + _shipwreckEvent = [_position, [_item], [], "shipwreckCounter", diag_tickTime, 99999, _showBoatMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_shipwreckEvent]]; }; }; - diag_log format["EPOCHDebug: Safely spawned %1 loot container(s) at these shipwreck locations:%2",count _spawnedLoot , _spawnedLoot]; + if(_debug)then{ + diag_log format["EPOCHDebug: Safely spawned %1 loot container(s) at these shipwreck locations:%2",count _spawnedLoot , _spawnedLoot]; + }; }; \ No newline at end of file diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_server_isNearChecks.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_server_isNearChecks.sqf new file mode 100644 index 00000000..13484ab0 --- /dev/null +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_server_isNearChecks.sqf @@ -0,0 +1,55 @@ +/* + EPOCH_server_isNearChecks + + Author: DirtySanchez + + Description: + Checks the position provided against distances configured for Traders, Jammers and Players. + + _position - position on map + _traderCheck - BOOL - check _position distance near ProtectionZone_Invisible_F + _jammerCheck - BOOL - check _position distance near PlotPole_EPOCH + _playerCheck - BOOL - check _position distance near other Players + _others - ARRAY - positions to check with _distFromOthers + _distFromOthers - NUMBER - How far away from _others array in meters +*/ + +params [ ["_position",[]], ["_traderCheck",true], ["_jammerCheck",true], ["_playerCheck",true], ["_others",[[0,0,0]]], ["_distFromOthers",2000] ]; +_distFromTraders = getNumber(_cfgEpoch >> "spawnDistanceFromTraders"); +_distFromJammers = getNumber(_cfgEpoch >> "spawnDistanceFromJammers"); +_distFromPlayers = getNumber(_cfgEpoch >> "spawnDistanceFromPlayers"); +_return = true; + +//CHECK FOR PROTECTED AREA WITIN CONFIG RANGE +if(_traderCheck)then{ + _restricted = nearestObjects [_position, ["ProtectionZone_Invisible_F"], _distFromTraders]; + if(count _restricted > 0) then { + _return = false; + }; +}; + +//CHECK FOR JAMMERS IN THE AREA WITHIN CONFIG RANGE +if(_jammerCheck)then{ + _jammers = nearestObjects[_position, ["PlotPole_EPOCH"], _distFromJammers]; + if(count _jammers > 0) then { + _return = false; + }; +}; + +//CHECK TO SEE IF PLAYERS WITHIN CONFIG RANGE +if(_playerCheck)then{ + _playersNearby = _position nearEntities[["Epoch_Male_F", "Epoch_Female_F"], _distFromPlayers]; + if(count _playersNearby > 0) then { + _return = false; + }; +}; + +//CHECK FOR OTHERS +if!(_others isEqualTo [[0,0,0]])then{ + { + if!(_x distance _position > _distFromOthers)then{ + _return = false; + }; + }forEach _others; +}; +_return \ No newline at end of file diff --git a/Sources/epoch_server/config.cpp b/Sources/epoch_server/config.cpp index f4a03418..8632f8a5 100644 --- a/Sources/epoch_server/config.cpp +++ b/Sources/epoch_server/config.cpp @@ -125,6 +125,7 @@ class CfgServerFunctions class server_removeMarker {}; class server_createGlobalMarkerSet {}; class server_deleteGlobalMarkerSet {}; + class server_isNearChecks {}; }; class epoch_missions { class Server_createObject {}; diff --git a/Sources/epoch_server/system/server_monitor.fsm b/Sources/epoch_server/system/server_monitor.fsm index e224aaaa..671dee37 100644 --- a/Sources/epoch_server/system/server_monitor.fsm +++ b/Sources/epoch_server/system/server_monitor.fsm @@ -1,4 +1,4 @@ -/*%FSM*/ +/*%FSM*/ /*%FSM*/ /* item0[] = {"Init",0,250,600.000000,-575.000000,700.000000,-525.000000,0.000000,"Init"}; @@ -12,7 +12,22 @@ item7[] = {"Events_Manager",4,218,599.992371,-192.435822,699.992371,-142.435822, item8[] = {"Save_Vehicles",4,218,450.000000,-300.000000,550.000000,-250.000000,4.000000,"Save" \n "Vehicles"}; item9[] = {"Cleanup_Handler",4,218,750.000000,-450.000000,850.000000,-400.000000,8.000000,"Cleanup" \n "Handler"}; item10[] = {"Server_FPS",4,218,746.045227,-248.683014,846.045227,-198.683014,0.000000,"Server FPS"}; -item11[] = {"Forced_Restart",4,4314,684.856567,-214.145233,784.856567,-164.145233,0.000000,"Forced" \n "Restart"}; +item11[] = {"Forced_Restart",4,218,684.856567,-214.145233,784.856567,-164.145233,0.000000,"Forced" \n "Restart"}; +item12[] = {"Events_Monitor",4,4314,516.730896,-213.251221,616.730896,-163.251221,0.000000,"Events" \n "Monitor"}; +item13[] = {"_",-1,250,532.894043,-183.108612,548.753357,-175.178955,0.000000,""}; +version=1; +class LayoutItems +{ + class Item13 + { + class ItemInfo + { + FontFace="Arial"; + FontHeight=10; + lStyle=1; + }; + }; +}; link0[] = {0,1}; link1[] = {1,2}; link2[] = {2,3}; @@ -24,459 +39,550 @@ link7[] = {2,8}; link8[] = {2,9}; link9[] = {2,10}; link10[] = {2,11}; -link11[] = {3,2}; -link12[] = {4,2}; -link13[] = {5,2}; -link14[] = {6,2}; -link15[] = {7,2}; -link16[] = {8,2}; -link17[] = {9,2}; -link18[] = {10,2}; -link19[] = {11,2}; -globals[] = {0.000000,0,0,0,0,640,480,1,5,6316128,1,275.180084,1161.319580,208.497711,-659.879456,898,884,1}; -window[] = {2,-1,-1,-1,-1,864,104,1396,104,3,916}; +link11[] = {2,12}; +link12[] = {3,2}; +link13[] = {4,2}; +link14[] = {5,2}; +link15[] = {6,2}; +link16[] = {7,2}; +link17[] = {8,2}; +link18[] = {9,2}; +link19[] = {10,2}; +link20[] = {11,2}; +link21[] = {12,2}; +globals[] = {0.000000,0,0,0,0,640,480,1,6,6316128,1,275.180084,1161.319580,208.497711,-659.879456,896,844,1}; +window[] = {2,-1,-1,-32000,-32000,984,224,1516,224,3,918}; *//*%FSM*/ class FSM { - fsmName = "Server Monitor"; - class States - { - /*%FSM*/ - class Init - { - name = "Init"; - init = /*%FSM*/"diag_log ""Loaded Server FSM"";" \n - "" \n - "_cfgSecConf = (configFile >> ""CfgSecConf"");" \n - "_cfgSecConf_vehicles = (_cfgSecConf >> ""vehicles"");" \n - "_safeVehicles = [_cfgSecConf_vehicles, ""safeVehicles"", [""I_UAV_01_F"",""B_Heli_Transport_01_F"",""Steerable_Parachute_F"",""NonSteerable_Parachute_F"",""Land_Camping_Light_F"",""container_epoch""]] call EPOCH_fnc_returnConfigEntry;" \n - "" \n - "_serverSettingsConfig = configFile >> ""CfgEpochServer"";" \n - "_ahInitAuthCfg = [_serverSettingsConfig, ""antihack_ahInitAuthCfg"", [0,180]] call EPOCH_fnc_returnConfigEntry;" \n - "_events = [_serverSettingsConfig, ""events"", []] call EPOCH_fnc_returnConfigEntry;" \n - "" \n - "_initAhInitBanOrLog = _ahInitAuthCfg select 0;" \n - "_initTimeLimit = _ahInitAuthCfg select 1;" \n - "" \n - "// Load Epoch Events 3.0" \n - "{" \n - " diag_log format[""Loading Settings for %1 event..."",configName _x];" \n - " _events pushBack [getNumber (_x >> ""delay""),getText (_x >> ""script""),getNumber (_x >> ""runOnStart""),getNumber (_x >> ""usePrefix""),getNumber (_x >> ""runNumTimes""),getArray (_x >> ""input""),getArray (_x >> ""disallowedWorlds"")];" \n - "} forEach (""isClass _x"" configClasses (configFile >> ""CfgEpochServerEvents""));" \n - "" \n - "_cmdDelay = EPOCH_hiveAdminCmdTime;" \n - "_cmdRun = EPOCH_hiveAdminCmdExec;" \n - "_savePlayerList = EPOCH_hiveAdminSavePlayerList;" \n - "" \n - "_scriptBasedRestart = EPOCH_ServerRestart;" \n - "_forceRestartTime = EPOCH_forceRestartTime;" \n - "_forceRestartTimeWarning = _forceRestartTime-300;" \n - "" \n - "_prevRestartIn = 0;" \n - "_serverLocked = false;" \n - "_serverRestarting = false;" \n - "_players = [];" \n - "_prevPlayers = [];" \n - "_cleanupItems = [];" \n - "_oldFPS = -1;" \n - "EPOCH_diag_fps = -1;" \n - "_serverFpsTime = diag_tickTime;" \n - "_serverFPSCheckFine = true;" \n - "" \n - "_delayTimeSim = diag_tickTime;" \n - "_delayTimeCMD = diag_tickTime;" \n - "_delayTimeDeSim = diag_tickTime;" \n - "_delayTimeSaveVeh = diag_tickTime;" \n - "_lastWeatherChange = diag_tickTime;" \n - "_lastObjectCleanup = diag_tickTime;" \n - "_lastObjectCleanup1 = diag_tickTime;" \n - "" \n - "_pvehTime = diag_tickTime;" \n - "_forcedrestartTimer = diag_tickTime;" \n - "" \n - "_instanceID = call EPOCH_fn_InstanceID;" \n - "" \n - "_checkAuth = {" \n - " params [""_puid"",""_player""];" \n - " if !(isNull _player) then {" \n - " if !(_puid call EPOCH_server_Authed) then {" \n - " private _lastCheck = _player getVariable ""LAST_AUTH_CHECK"";" \n - " if (isNil ""_lastCheck"") then {" \n - " _player setVariable[""LAST_AUTH_CHECK"", diag_tickTime];" \n - " _lastCheck = diag_tickTime;" \n - " };" \n - " if (diag_tickTime - _lastCheck > _initTimeLimit) then {" \n - " _player setVariable[""LAST_AUTH_CHECK"", nil];" \n - " if (_initAhInitBanOrLog == 0) then {" \n - " 'epochserver' callExtension format['820|%1|EpochMod.com Autoban #R2', _puid];" \n - " ['ahb', format['%1 (%2): Player not Authenticated', name _player, _puid]] call EPOCH_fnc_server_hiveLog;" \n - " } else {" \n - " ['ahl', format['%1 (%2): Player not Authenticated', name _player, _puid]] call EPOCH_fnc_server_hiveLog;" \n - " };" \n - " };" \n - " } else {" \n - " _player setVariable[""LAST_AUTH_CHECK"", nil];" \n - " };" \n - " };" \n - "};" \n - "" \n - "_cleanIt = {" \n - " if !(isNull _this) then {" \n - " private _lastCheck = _this getVariable ""LAST_CHECK"";" \n - " if (isNil ""_lastCheck"") then {" \n - " _this setVariable[""LAST_CHECK"", diag_tickTime];" \n - " _lastCheck = diag_tickTime;" \n - " };" \n - " if (diag_tickTime - _lastCheck > 1200) then {" \n - " private _list = (_this nearEntities [[""Epoch_Male_F"",""Epoch_Female_F"",""LandVehicle"",""Ship"",""Air"",""Tank""], 45]) select {isPlayer _x};" \n - " if (_list isEqualTo []) then {" \n - " _this setVariable [""LAST_CHECK"",nil];" \n - " //diag_log format[""DEBUG: _cleanIT del %1"", _this];" \n - " deleteVehicle _this;" \n - " };" \n - " };" \n - " };" \n - "};" \n - "" \n - "_cleanIt2 = {" \n - " if !(isNull _this) then {" \n - " private _removed = false;" \n - " private _lastCheck = _this getVariable ""LAST_CHECK"";" \n - " if (isNil ""_lastCheck"") then {" \n - " _this setVariable[""LAST_CHECK"", diag_tickTime];" \n - " _lastCheck = diag_tickTime;" \n - " };" \n - " if (diag_tickTime - _lastCheck > 1200) then {" \n - " private _list = (_this nearEntities [[""Epoch_Male_F"",""Epoch_Female_F"",""LandVehicle"",""Ship"",""Air"",""Tank""], 45]) select {isPlayer _x};" \n - " if (_list isEqualTo []) then {" \n - " {" \n - " deleteVehicle _x;" \n - " }forEach nearestObjects[_this, [""WeaponHolder""], 2];" \n - " _this setVariable [""LAST_CHECK"",nil];" \n - " //diag_log format[""DEBUG: _cleanIT2 del %1"", _this];" \n - " deleteVehicle _this;" \n - " _removed = true;" \n - " };" \n - " };" \n - " if !(_removed) then {" \n - " EPOCH_cleanupQueue pushBack _this;" \n - " };" \n - " };" \n - "};" \n - ""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class _ + fsmName = "Server Monitor"; + class States { - priority = 0.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"true"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; + /*%FSM*/ + class Init + { + name = "Init"; + itemno = 0; + init = /*%FSM*/"diag_log ""Loaded Server FSM"";" \n + "" \n + "_cfgSecConf = (configFile >> ""CfgSecConf"");" \n + "_cfgSecConf_vehicles = (_cfgSecConf >> ""vehicles"");" \n + "_safeVehicles = [_cfgSecConf_vehicles, ""safeVehicles"", [""I_UAV_01_F"",""B_Heli_Transport_01_F"",""Steerable_Parachute_F"",""NonSteerable_Parachute_F"",""Land_Camping_Light_F"",""container_epoch""]] call EPOCH_fnc_returnConfigEntry;" \n + "" \n + "_serverSettingsConfig = configFile >> ""CfgEpochServer"";" \n + "_ahInitAuthCfg = [_serverSettingsConfig, ""antihack_ahInitAuthCfg"", [0,180]] call EPOCH_fnc_returnConfigEntry;" \n + "_events = [_serverSettingsConfig, ""events"", []] call EPOCH_fnc_returnConfigEntry;" \n + "_events2Check = [];" \n + "" \n + "_initAhInitBanOrLog = _ahInitAuthCfg select 0;" \n + "_initTimeLimit = _ahInitAuthCfg select 1;" \n + "" \n + "// Load Epoch Events 3.0" \n + "{" \n + " diag_log format[""Loading Settings for %1 event..."",configName _x];" \n + " _events pushBack [getNumber (_x >> ""delay""),getText (_x >> ""script""),getNumber (_x >> ""runOnStart""),getNumber (_x >> ""usePrefix""),getNumber (_x >> ""runNumTimes""),getArray (_x >> ""input""),getArray (_x >> ""disallowedWorlds"")];" \n + "} forEach (""isClass _x"" configClasses (configFile >> ""CfgEpochServerEvents""));" \n + "" \n + "_cmdDelay = EPOCH_hiveAdminCmdTime;" \n + "_cmdRun = EPOCH_hiveAdminCmdExec;" \n + "_savePlayerList = EPOCH_hiveAdminSavePlayerList;" \n + "" \n + "_scriptBasedRestart = EPOCH_ServerRestart;" \n + "_forceRestartTime = EPOCH_forceRestartTime;" \n + "_forceRestartTimeWarning = _forceRestartTime-300;" \n + "" \n + "_prevRestartIn = 0;" \n + "_serverLocked = false;" \n + "_serverRestarting = false;" \n + "_players = [];" \n + "_prevPlayers = [];" \n + "_cleanupItems = [];" \n + "_oldFPS = -1;" \n + "EPOCH_diag_fps = -1;" \n + "_serverFpsTime = diag_tickTime;" \n + "_serverFPSCheckFine = true;" \n + "" \n + "_delayTimeSim = diag_tickTime;" \n + "_delayTimeCMD = diag_tickTime;" \n + "_delayTimeDeSim = diag_tickTime;" \n + "_delayTimeSaveVeh = diag_tickTime;" \n + "_lastWeatherChange = diag_tickTime;" \n + "_lastObjectCleanup = diag_tickTime;" \n + "_lastObjectCleanup1 = diag_tickTime;" \n + "" \n + "_pvehTime = diag_tickTime;" \n + "_forcedrestartTimer = diag_tickTime;" \n + "_pvemTime = diag_tickTime;" \n + "" \n + "_instanceID = call EPOCH_fn_InstanceID;" \n + "" \n + "_checkAuth = {" \n + " params [""_puid"",""_player""];" \n + " if !(isNull _player) then {" \n + " if !(_puid call EPOCH_server_Authed) then {" \n + " private _lastCheck = _player getVariable ""LAST_AUTH_CHECK"";" \n + " if (isNil ""_lastCheck"") then {" \n + " _player setVariable[""LAST_AUTH_CHECK"", diag_tickTime];" \n + " _lastCheck = diag_tickTime;" \n + " };" \n + " if (diag_tickTime - _lastCheck > _initTimeLimit) then {" \n + " _player setVariable[""LAST_AUTH_CHECK"", nil];" \n + " if (_initAhInitBanOrLog == 0) then {" \n + " 'epochserver' callExtension format['820|%1|EpochMod.com Autoban #R2', _puid];" \n + " ['ahb', format['%1 (%2): Player not Authenticated', name _player, _puid]] call EPOCH_fnc_server_hiveLog;" \n + " } else {" \n + " ['ahl', format['%1 (%2): Player not Authenticated', name _player, _puid]] call EPOCH_fnc_server_hiveLog;" \n + " };" \n + " };" \n + " } else {" \n + " _player setVariable[""LAST_AUTH_CHECK"", nil];" \n + " };" \n + " };" \n + "};" \n + "" \n + "_cleanIt = {" \n + " if !(isNull _this) then {" \n + " private _lastCheck = _this getVariable ""LAST_CHECK"";" \n + " if (isNil ""_lastCheck"") then {" \n + " _this setVariable[""LAST_CHECK"", diag_tickTime];" \n + " _lastCheck = diag_tickTime;" \n + " };" \n + " if (diag_tickTime - _lastCheck > 1200) then {" \n + " private _list = (_this nearEntities [[""Epoch_Male_F"",""Epoch_Female_F"",""LandVehicle"",""Ship"",""Air"",""Tank""], 45]) select {isPlayer _x};" \n + " if (_list isEqualTo []) then {" \n + " _this setVariable [""LAST_CHECK"",nil];" \n + " //diag_log format[""DEBUG: _cleanIT del %1"", _this];" \n + " deleteVehicle _this;" \n + " };" \n + " };" \n + " };" \n + "};" \n + "" \n + "_cleanIt2 = {" \n + " if !(isNull _this) then {" \n + " private _removed = false;" \n + " private _lastCheck = _this getVariable ""LAST_CHECK"";" \n + " if (isNil ""_lastCheck"") then {" \n + " _this setVariable[""LAST_CHECK"", diag_tickTime];" \n + " _lastCheck = diag_tickTime;" \n + " };" \n + " if (diag_tickTime - _lastCheck > 1200) then {" \n + " private _list = (_this nearEntities [[""Epoch_Male_F"",""Epoch_Female_F"",""LandVehicle"",""Ship"",""Air"",""Tank""], 45]) select {isPlayer _x};" \n + " if (_list isEqualTo []) then {" \n + " {" \n + " deleteVehicle _x;" \n + " }forEach nearestObjects[_this, [""WeaponHolder""], 2];" \n + " _this setVariable [""LAST_CHECK"",nil];" \n + " //diag_log format[""DEBUG: _cleanIT2 del %1"", _this];" \n + " deleteVehicle _this;" \n + " _removed = true;" \n + " };" \n + " };" \n + " if !(_removed) then {" \n + " EPOCH_cleanupQueue pushBack _this;" \n + " };" \n + " };" \n + "};" \n + ""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 1; + priority = 0.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"true"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Process + { + name = "Process"; + itemno = 2; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class CMD_queue + { + itemno = 4; + priority = 10.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_cmdRun && ((diag_tickTime - _delayTimeCMD) > _cmdDelay)"/*%FSM*/; + action=/*%FSM*/"_delayTimeCMD = diag_tickTime;" \n + "" \n + "// Execute next item from CMD queue" \n + "_response = ""epochserver"" callExtension format[""600|%1"",_instanceID];" \n + "if (_response != '[1,""""]') then { " \n + " _output = call compile _response; " \n + " if (_output select 0 == 1 && _output select 1 != """") then {" \n + " 0 spawn compile (_output select 1);" \n + " };" \n + "};" \n + ""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Cleanup_Handler + { + itemno = 9; + priority = 8.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _lastObjectCleanup) > 300)"/*%FSM*/; + action=/*%FSM*/"_lastObjectCleanup = diag_tickTime;" \n + "" \n + "// TODO need better way allMissionObjects is not performant" \n + "if (_cleanupItems isEqualTo []) then {" \n + " _cleanupItems = allMissionObjects ""groundWeaponHolder"" + entities ""WeaponHolderSimulated"";" \n + "};"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Cleanup + { + itemno = 6; + priority = 8.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _lastObjectCleanup1) > 1)"/*%FSM*/; + action=/*%FSM*/"_lastObjectCleanup1 = diag_tickTime;" \n + "" \n + "if !(_cleanupItems isEqualTo []) then {" \n + " (_cleanupItems deleteAt 0) call _cleanIt;" \n + "};" \n + "if !(EPOCH_cleanupQueue isEqualTo []) then {" \n + " (EPOCH_cleanupQueue deleteAt 0) call _cleanIt2;" \n + "};"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Save_Vehicles + { + itemno = 8; + priority = 4.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _delayTimeSaveVeh) > 1)"/*%FSM*/; + action=/*%FSM*/"_delayTimeSaveVeh = diag_tickTime;" \n + "if !(EPOCH_saveVehQueue isEqualTo []) then {" \n + " _saveVehicle = EPOCH_saveVehQueue deleteAt 0;" \n + " if !(isNull _saveVehicle) then {" \n + " _saveVehicle call EPOCH_server_save_vehicle;" \n + " };" \n + "};" \n + "if !(EPOCH_saveStorQueue isEqualTo []) then {" \n + " _saveStorage = EPOCH_saveStorQueue deleteAt 0;" \n + " if !(isNull _saveStorage) then {" \n + " _saveStorage call EPOCH_server_save_storage;" \n + " };" \n + "};" \n + "if !(EPOCH_saveBuildQueue isEqualTo []) then {" \n + " _saveBuilding = EPOCH_saveBuildQueue deleteAt 0;" \n + " if !(isNull _saveBuilding) then {" \n + " _saveBuilding call EPOCH_saveBuilding;" \n + " };" \n + "};"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Save_Players + { + itemno = 5; + priority = 3.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(_players isEqualTo _prevPlayers)"/*%FSM*/; + action=/*%FSM*/"_prevPlayers = _players;" \n + "" \n + "if (_savePlayerList) then {" \n + " [""PLAYERS"", (call EPOCH_fn_InstanceID), _players] call EPOCH_fnc_server_hiveSET;" \n + "};" \n + "// Group cleanup" \n + "{if (units _x isEqualTo []) then {deleteGroup _x}}forEach allGroups"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Vehicle_and_Player + { + itemno = 3; + priority = 1.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _delayTimeSim) > 5)"/*%FSM*/; + action=/*%FSM*/"_delayTimeSim = diag_tickTime;" \n + "_playersTemp = [];" \n + "{" \n + " private _vehicle = vehicle _x;" \n + " // if player is inside a vehicle check vehicle is in allowed safe vehicles list." \n + " if (_vehicle != _x && {!(typeOf _vehicle in _safeVehicles)}) then {" \n + " // check if vehicle has token set server side and ignore vehicle if was spawned by a Curator (zeus)" \n + " if ((objectCurators _vehicle) isEqualTo [] && {!(_vehicle call EPOCH_server_getVToken)}) then {" \n + " diag_log format[""ADMIN: Invalid Vehicle detected and deleted %1 with %2 driving"",_vehicle,_x];" \n + " deleteVehicle _vehicle;" \n + " };" \n + " };" \n + "" \n + " private _pUID = getPlayerUID _x;" \n + " // Add all player UIDs to array for use later." \n + " if (_pUID != """") then { _playersTemp pushBack _pUID; };" \n + "" \n + " // If player is not admin check perform checks." \n + " if !(_x call EPOCH_server_isPAdmin) then {" \n + " // check if player is hidden and if so force back visable." \n + " if (isObjectHidden _x) then {" \n + " _x hideObjectGlobal false;" \n + " diag_log format[""ADMIN: Warning!!! player was hidden and forced visable %1"",_x];" \n + " };" \n + " // check player has authenticated with reverse token check." \n + " if (_pUID != """") then {" \n + " [_pUID, _x] call _checkAuth;" \n + " };" \n + " };" \n + "" \n + "}forEach allPlayers;" \n + "_players = _playersTemp;" \n + ""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Server_FPS + { + itemno = 10; + priority = 0.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _serverFpsTime) > 30) && _serverFPSCheckFine"/*%FSM*/; + action=/*%FSM*/"_serverFpsTime = diag_tickTime;" \n + "" \n + "if (_oldFPS isEqualTo EPOCH_diag_fps) then {" \n + " _currentFPS = round(diag_fps);" \n + " if !(_oldFPS isEqualTo _currentFPS) then {" \n + " missionNamespace setVariable [""EPOCH_diag_fps"",_currentFPS,true];" \n + " _oldFPS = _currentFPS;" \n + " };" \n + "} else {" \n + " missionNamespace setVariable [""EPOCH_diag_fps"", compileFinal """",true];" \n + " _serverFPSCheckFine = false;" \n + "};" \n + ""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Forced_Restart + { + itemno = 11; + priority = 0.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _forcedrestartTimer) > 20)"/*%FSM*/; + action=/*%FSM*/"// restart script" \n + "_forcedrestartTimer = diag_tickTime;" \n + "if (_scriptBasedRestart) then {" \n + " if (diag_tickTime >= _forceRestartTimeWarning) then {" \n + " if (!_serverLocked) then {" \n + " diag_log ""server shutdown: locked"";" \n + " _serverLocked = true;" \n + " [""lock""] call EPOCH_serverCommand;" \n + " } else {" \n + " if (allPlayers isEqualTo []) then {" \n + " [""shutdown""] call EPOCH_serverCommand;" \n + " diag_log ""server shutdown: now"";" \n + " };" \n + " };" \n + " _restartIn = round((_forceRestartTime-diag_tickTime)/60);" \n + " if (_prevRestartIn != _restartIn) then {" \n + " _prevRestartIn = _restartIn;" \n + " if (_restartIn > 1) then {" \n + " [""message"", format[""Server restart in %1 minutes"",_restartIn]] call EPOCH_serverCommand;" \n + " } else {" \n + " [""message"", format[""Server restart in %1 minute"",1]] call EPOCH_serverCommand;" \n + " };" \n + " };" \n + " };" \n + " // kick all remaining players before shutdown to force player save" \n + " if (diag_tickTime >= _forceRestartTime) then {" \n + " if (_serverRestarting) then {" \n + " [""shutdown""] call EPOCH_serverCommand;" \n + " diag_log ""server shutdown: now"";" \n + " } else {" \n + " {" \n + " [""kick"", _x , ""Server Restarting""] call EPOCH_serverCommand;" \n + " } forEach allPlayers;" \n + " _serverRestarting = true;" \n + " };" \n + " };" \n + "};" \n + ""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Events_Monitor + { + itemno = 12; + priority = 0.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _pvemTime) > 5)"/*%FSM*/; + action=/*%FSM*/"// Epoch Events Monitor" \n + "_pvemTime = diag_tickTime;" \n + "_events2Check append (missionNamespace getVariable [""EPOCH_RunningEvents"", []]);" \n + "missionNamespace setVariable [""EPOCH_RunningEvents"", nil];" \n + "_newEventsArray = [];" \n + "{" \n + " _x params [""_position"", ""_objs"", ""_extraObjs"", ""_countName"", ""_timeStamp"", ""_decayTime"", ""_showMarkers"", ""_markers"", ""_originalColors"", ""_decayColor"", ""_interactedColor""];" \n + " _formatted = format[""EPOCH_%1"",_countName];" \n + " _current = missionNameSpace getVariable[_formatted,0];" \n + " // check objects" \n + " _objsLeft = [];" \n + " _nearPlayers = (count (_position nearEntities[[""Epoch_Male_F"", ""Epoch_Female_F""], 500]) > 0);" \n + " {" \n + " _isOpenLid = (_x animationPhase 'open_lid' > 0.5); " \n + " _isEPOCH_looted = (_x getVariable [""EPOCH_Loot"",false]);" \n + " _isOpenDoor = (_x animationPhase 'Door_1_rot' > 0.5);" \n + " if(!isNull _x)then{" \n + " _objsLeft pushBack _x;" \n + " };" \n + " if(!(_nearPlayers) && !(_objsLeft isEqualTo []))then{" \n + " if(((_x iskindof 'container_epoch') && {_isOpenLid || _isEPOCH_looted}) || ((_x iskindof 'Cargo_Container') && {_isOpenDoor || _isEPOCH_looted}) || (damage _x isEqualTo 1))then{" \n + " _objsLeft = _objsLeft - [_x];" \n + " };" \n + " };" \n + " }forEach _objs;" \n + " // check event" \n + " if (!(_nearPlayers) && {_objsLeft isEqualTo [] || (diag_tickTime - _timeStamp) > _decayTime}) then {" \n + " // event ends" \n + " missionNameSpace setVariable[_formatted,(_current - 1)];" \n + " if (_showMarkers) then{" \n + " [_markers] call EPOCH_server_deleteGlobalMarkerSet;" \n + " };" \n + " {deleteVehicle _x} forEach _objs;" \n + " {deleteVehicle _x} forEach _extraObjs;" \n + " }else{" \n + " // event continues" \n + " _newEventsArray pushBack _x;" \n + " // check for compromised objs or area" \n + " if (_showMarkers) then{" \n + " if((count(_objsLeft) != count(_objs)) || (count (_position nearEntities[[""Epoch_Male_F"", ""Epoch_Female_F""], 150]) > 0)) then {" \n + " if !((getMarkerColor (_markers select 0)) isEqualTo _interactedColor) then {" \n + " (_markers select 0) setMarkerColor _interactedColor;" \n + " };" \n + " }else{" \n + " if ((getMarkerColor (_markers select 0)) isEqualTo _interactedColor) then {" \n + " if !((diag_tickTime - _timeStamp) > (_decayTime/2)) then {" \n + " (_markers select 0) setMarkerColor (_originalColors select 0);" \n + " }else{" \n + " (_markers select 0) setMarkerColor _decayColor;" \n + " };" \n + " };" \n + " };" \n + " // check for decay and change to configured preset decay color" \n + " if ((diag_tickTime - _timeStamp) > (_decayTime/2)) then {" \n + " if !((getMarkerColor (_markers select 2)) isEqualTo _decayColor) then {" \n + " {" \n + " _x setMarkerColor _decayColor;" \n + " }forEach _markers;" \n + " };" \n + " };" \n + " };" \n + " };" \n + "} forEach _events2Check;" \n + "// remove expired events" \n + "_events2Check = _newEventsArray;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Events_Manager + { + itemno = 7; + priority = 0.000000; + to="Process"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _pvehTime) > 1)"/*%FSM*/; + action=/*%FSM*/"// Epoch Events" \n + "_pvehTime = diag_tickTime;" \n + "_events append (missionNamespace getVariable [""EPOCH_dynamicEvents"", []]);" \n + "missionNamespace setVariable [""EPOCH_dynamicEvents"", nil];" \n + "_newEvents = [];" \n + "{" \n + " _x params [""_time"", ""_scriptName"", [""_runAtStart"",0], [""_usePrePostfix"",1], [""_runNumTimes"",-1], [""_input"",[]], [""_disallowedWorlds"",[]] ];" \n + " _scriptParams = [];" \n + " _scriptcmdMode = ""execVM"";" \n + " if (_scriptName isEqualType []) then {" \n + " _scriptParams = _scriptName param [0,[]];" \n + " _scriptcmdMode = _scriptName param [1,""call""];" \n + " _scriptName = _scriptName param [2,""""];" \n + " };" \n + " _eventKey = format[""EPOCH_EVENT_%1"", _scriptName];" \n + " _eventCounter = format[""EPOCH_EVENT_COUNTER_%1"", _scriptName];" \n + " _lastTime = missionNamespace getVariable _eventKey;" \n + " _counter = missionNamespace getVariable [_eventCounter,0];" \n + " if (isNil ""_lastTime"") then {" \n + " _startTime = diag_tickTime;" \n + " if (_runAtStart isEqualTo 1) then {" \n + " _startTime = diag_tickTime - _time;" \n + " };" \n + " missionNamespace setVariable[_eventKey, _startTime];" \n + " _lastTime = _startTime;" \n + " };" \n + " if ((_counter >= _runNumTimes && _runNumTimes != -1) || worldName in _disallowedWorlds) then {" \n + " diag_log format[""DEBUG: server event removed %1"", _scriptName];" \n + " missionNamespace setVariable[_eventKey, nil];" \n + " missionNamespace setVariable[_eventCounter, nil];" \n + " } else {" \n + " _newEvents pushBack _x;" \n + " if ((diag_tickTime - _lastTime) >= _time) then {" \n + " missionNamespace setVariable[_eventKey, diag_tickTime];" \n + " _preFix = """";" \n + " _postFix = """";" \n + " if (_usePrePostfix == 1) then {" \n + " _preFix = ""\epoch_server_settings\EpochEvents\"";" \n + " _postFix = "".sqf"";" \n + " };" \n + " if (_usePrePostfix == 2) then {" \n + " _preFix = ""\epoch_server_events\EpochEvents\"";" \n + " _postFix = "".sqf"";" \n + " };" \n + " switch (_scriptcmdMode) do {" \n + " case (""call""): {" \n + " // call" \n + " _scriptParams call (missionNamespace getVariable [_scriptName, {}]);" \n + " };" \n + " case (""spawn""): {" \n + " // spawn" \n + " _scriptParams spawn (missionNamespace getVariable [_scriptName, {}]);" \n + " };" \n + " default {" \n + " // execVM" \n + " _handle = _input execVM format[""%1%2%3"",_preFix,_scriptName,_postFix];" \n + " };" \n + " };" \n + " _counter = _counter + 1;" \n + " missionNamespace setVariable[_eventCounter, _counter];" \n + " diag_log format[""DEBUG: server event %1"", _scriptName];" \n + " };" \n + " };" \n + "} forEach _events;" \n + "// remove expired events" \n + "_events = _newEvents;"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Process - { - name = "Process"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class CMD_queue + initState="Init"; + finalStates[] = { - priority = 10.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_cmdRun && ((diag_tickTime - _delayTimeCMD) > _cmdDelay)"/*%FSM*/; - action=/*%FSM*/"_delayTimeCMD = diag_tickTime;" \n - "" \n - "// Execute next item from CMD queue" \n - "_response = ""epochserver"" callExtension format[""600|%1"",_instanceID];" \n - "if (_response != '[1,""""]') then { " \n - " _output = call compile _response; " \n - " if (_output select 0 == 1 && _output select 1 != """") then {" \n - " 0 spawn compile (_output select 1);" \n - " };" \n - "};" \n - ""/*%FSM*/; }; - /*%FSM*/ - /*%FSM*/ - class Cleanup - { - priority = 8.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _lastObjectCleanup1) > 1)"/*%FSM*/; - action=/*%FSM*/"_lastObjectCleanup1 = diag_tickTime;" \n - "" \n - "if !(_cleanupItems isEqualTo []) then {" \n - " (_cleanupItems deleteAt 0) call _cleanIt;" \n - "};" \n - "if !(EPOCH_cleanupQueue isEqualTo []) then {" \n - " (EPOCH_cleanupQueue deleteAt 0) call _cleanIt2;" \n - "};"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Cleanup_Handler - { - priority = 8.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _lastObjectCleanup) > 300)"/*%FSM*/; - action=/*%FSM*/"_lastObjectCleanup = diag_tickTime;" \n - "" \n - "// TODO need better way allMissionObjects is not performant" \n - "if (_cleanupItems isEqualTo []) then {" \n - " _cleanupItems = allMissionObjects ""groundWeaponHolder"" + entities ""WeaponHolderSimulated"";" \n - "};"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Save_Vehicles - { - priority = 4.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _delayTimeSaveVeh) > 1)"/*%FSM*/; - action=/*%FSM*/"_delayTimeSaveVeh = diag_tickTime;" \n - "if !(EPOCH_saveVehQueue isEqualTo []) then {" \n - " _saveVehicle = EPOCH_saveVehQueue deleteAt 0;" \n - " if !(isNull _saveVehicle) then {" \n - " _saveVehicle call EPOCH_server_save_vehicle;" \n - " };" \n - "};" \n - "if !(EPOCH_saveStorQueue isEqualTo []) then {" \n - " _saveStorage = EPOCH_saveStorQueue deleteAt 0;" \n - " if !(isNull _saveStorage) then {" \n - " _saveStorage call EPOCH_server_save_storage;" \n - " };" \n - "};" \n - "if !(EPOCH_saveBuildQueue isEqualTo []) then {" \n - " _saveBuilding = EPOCH_saveBuildQueue deleteAt 0;" \n - " if !(isNull _saveBuilding) then {" \n - " _saveBuilding call EPOCH_saveBuilding;" \n - " };" \n - "};"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Save_Players - { - priority = 3.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(_players isEqualTo _prevPlayers)"/*%FSM*/; - action=/*%FSM*/"_prevPlayers = _players;" \n - "" \n - "if (_savePlayerList) then {" \n - " [""PLAYERS"", (call EPOCH_fn_InstanceID), _players] call EPOCH_fnc_server_hiveSET;" \n - "};" \n - "// Group cleanup" \n - "{if (units _x isEqualTo []) then {deleteGroup _x}}forEach allGroups"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Vehicle_and_Player - { - priority = 1.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _delayTimeSim) > 5)"/*%FSM*/; - action=/*%FSM*/"_delayTimeSim = diag_tickTime;" \n - "_playersTemp = [];" \n - "{" \n - " private _vehicle = vehicle _x;" \n - " // if player is inside a vehicle check vehicle is in allowed safe vehicles list." \n - " if (_vehicle != _x && {!(typeOf _vehicle in _safeVehicles)}) then {" \n - " // check if vehicle has token set server side and ignore vehicle if was spawned by a Curator (zeus)" \n - " if ((objectCurators _vehicle) isEqualTo [] && {!(_vehicle call EPOCH_server_getVToken)}) then {" \n - " diag_log format[""ADMIN: Invalid Vehicle detected and deleted %1 with %2 driving"",_vehicle,_x];" \n - " deleteVehicle _vehicle;" \n - " };" \n - " };" \n - "" \n - " private _pUID = getPlayerUID _x;" \n - " // Add all player UIDs to array for use later." \n - " if (_pUID != """") then { _playersTemp pushBack _pUID; };" \n - "" \n - " // If player is not admin check perform checks." \n - " if !(_x call EPOCH_server_isPAdmin) then {" \n - " // check if player is hidden and if so force back visable." \n - " if (isObjectHidden _x) then {" \n - " _x hideObjectGlobal false;" \n - " diag_log format[""ADMIN: Warning!!! player was hidden and forced visable %1"",_x];" \n - " };" \n - " // check player has authenticated with reverse token check." \n - " if (_pUID != """") then {" \n - " [_pUID, _x] call _checkAuth;" \n - " };" \n - " };" \n - "" \n - "}forEach allPlayers;" \n - "_players = _playersTemp;" \n - ""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Events_Manager - { - priority = 0.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _pvehTime) > 1)"/*%FSM*/; - action=/*%FSM*/"// Epoch Events" \n - "_pvehTime = diag_tickTime;" \n - "_events append (missionNamespace getVariable [""EPOCH_dynamicEvents"", []]);" \n - "missionNamespace setVariable [""EPOCH_dynamicEvents"", nil];" \n - "_newEvents = [];" \n - "{" \n - " _x params [""_time"", ""_scriptName"", [""_runAtStart"",0], [""_usePrePostfix"",1], [""_runNumTimes"",-1], [""_input"",[]], [""_disallowedWorlds"",[]] ];" \n - " _scriptParams = [];" \n - " _scriptcmdMode = ""execVM"";" \n - " if (_scriptName isEqualType []) then {" \n - " _scriptParams = _scriptName param [0,[]];" \n - " _scriptcmdMode = _scriptName param [1,""call""];" \n - " _scriptName = _scriptName param [2,""""];" \n - " };" \n - " _eventKey = format[""EPOCH_EVENT_%1"", _scriptName];" \n - " _eventCounter = format[""EPOCH_EVENT_COUNTER_%1"", _scriptName];" \n - " _lastTime = missionNamespace getVariable _eventKey;" \n - " _counter = missionNamespace getVariable [_eventCounter,0];" \n - " if (isNil ""_lastTime"") then {" \n - " _startTime = diag_tickTime;" \n - " if (_runAtStart isEqualTo 1) then {" \n - " _startTime = diag_tickTime - _time;" \n - " };" \n - " missionNamespace setVariable[_eventKey, _startTime];" \n - " _lastTime = _startTime;" \n - " };" \n - " if ((_counter >= _runNumTimes && _runNumTimes != -1) || worldName in _disallowedWorlds) then {" \n - " diag_log format[""DEBUG: server event removed %1"", _scriptName];" \n - " missionNamespace setVariable[_eventKey, nil];" \n - " missionNamespace setVariable[_eventCounter, nil];" \n - " } else {" \n - " _newEvents pushBack _x;" \n - " if ((diag_tickTime - _lastTime) >= _time) then {" \n - " missionNamespace setVariable[_eventKey, diag_tickTime];" \n - " _preFix = """";" \n - " _postFix = """";" \n - " if (_usePrePostfix == 1) then {" \n - " _preFix = ""\epoch_server_settings\EpochEvents\"";" \n - " _postFix = "".sqf"";" \n - " };" \n - " if (_usePrePostfix == 2) then {" \n - " _preFix = ""\epoch_server_events\EpochEvents\"";" \n - " _postFix = "".sqf"";" \n - " };" \n - " switch (_scriptcmdMode) do {" \n - " case (""call""): {" \n - " // call" \n - " _scriptParams call (missionNamespace getVariable [_scriptName, {}]);" \n - " };" \n - " case (""spawn""): {" \n - " // spawn" \n - " _scriptParams spawn (missionNamespace getVariable [_scriptName, {}]);" \n - " };" \n - " default {" \n - " // execVM" \n - " _handle = _input execVM format[""%1%2%3"",_preFix,_scriptName,_postFix];" \n - " };" \n - " };" \n - " _counter = _counter + 1;" \n - " missionNamespace setVariable[_eventCounter, _counter];" \n - " diag_log format[""DEBUG: server event %1"", _scriptName];" \n - " };" \n - " };" \n - "} forEach _events;" \n - "// remove expired events" \n - "_events = _newEvents;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Server_FPS - { - priority = 0.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _serverFpsTime) > 30) && _serverFPSCheckFine"/*%FSM*/; - action=/*%FSM*/"_serverFpsTime = diag_tickTime;" \n - "" \n - "if (_oldFPS isEqualTo EPOCH_diag_fps) then {" \n - " _currentFPS = round(diag_fps);" \n - " if !(_oldFPS isEqualTo _currentFPS) then {" \n - " missionNamespace setVariable [""EPOCH_diag_fps"",_currentFPS,true];" \n - " _oldFPS = _currentFPS;" \n - " };" \n - "} else {" \n - " missionNamespace setVariable [""EPOCH_diag_fps"", compileFinal """",true];" \n - " _serverFPSCheckFine = false;" \n - "};" \n - ""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Forced_Restart - { - priority = 0.000000; - to="Process"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _forcedrestartTimer) > 20)"/*%FSM*/; - action=/*%FSM*/"// restart script" \n - "_forcedrestartTimer = diag_tickTime;" \n - "if (_scriptBasedRestart) then {" \n - " if (diag_tickTime >= _forceRestartTimeWarning) then {" \n - " if (!_serverLocked) then {" \n - " diag_log ""server shutdown: locked"";" \n - " _serverLocked = true;" \n - " [""lock""] call EPOCH_serverCommand;" \n - " } else {" \n - " if (allPlayers isEqualTo []) then {" \n - " [""shutdown""] call EPOCH_serverCommand;" \n - " diag_log ""server shutdown: now"";" \n - " };" \n - " };" \n - " _restartIn = round((_forceRestartTime-diag_tickTime)/60);" \n - " if (_prevRestartIn != _restartIn) then {" \n - " _prevRestartIn = _restartIn;" \n - " if (_restartIn > 1) then {" \n - " [""message"", format[""Server restart in %1 minutes"",_restartIn]] call EPOCH_serverCommand;" \n - " } else {" \n - " [""message"", format[""Server restart in %1 minute"",1]] call EPOCH_serverCommand;" \n - " };" \n - " };" \n - " };" \n - " // kick all remaining players before shutdown to force player save" \n - " if (diag_tickTime >= _forceRestartTime) then {" \n - " if (_serverRestarting) then {" \n - " [""shutdown""] call EPOCH_serverCommand;" \n - " diag_log ""server shutdown: now"";" \n - " } else {" \n - " {" \n - " [""kick"", _x , ""Server Restarting""] call EPOCH_serverCommand;" \n - " } forEach allPlayers;" \n - " _serverRestarting = true;" \n - " };" \n - " };" \n - "};" \n - ""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - }; - initState="Init"; - finalStates[] = - { - }; }; /*%FSM*/ \ No newline at end of file diff --git a/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf b/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf index b4def8fc..8974ec15 100644 --- a/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf +++ b/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf @@ -6,18 +6,89 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_ferrisPosition","_item","_markers"]; +private ["_cfgEpoch", "_debug", "_showMarkers", "_limit", "_counter", "_decayTime", "_distFromOthers", "_others", "_position", "_goodPos", "_objs","_item", "_lootPos", "_lootPos", "_loot", "_debugMkr", "_markers", "_originalColors", "_decayMarkerColor", "_compromisedColor", "_rEvents", "_thisEvent"]; //[[[end]]] -_ferrisPosition = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 4000, 0] call BIS_fnc_findSafePos; -if ((count _ferrisPosition) == 2) then{ - _item = createVehicle["ferrisWheel_EPOCH", _ferrisPosition, [], 0.0, "CAN_COLLIDE"]; +_cfgEpoch = configFile >> "CfgEpoch" >> worldname; +_debug = if(getNumber(_cfgEpoch >> "debugCarnivalSpawner") isEqualTo 1)then{true}else{false}; +_limit = getNumber(_cfgEpoch >> "maxCarnivalSpawns"); +_counter = missionNameSpace getVariable["EPOCH_carnivalCounter",0]; +_others = missionNameSpace getVariable["EPOCH_carnivals", [[0,0,0]] ]; +_distFromOthers = getNumber(_cfgEpoch >> "distFromOtherCarnivals"); - { - _item = createVehicle[_x, _ferrisPosition, [], 80, "NONE"]; - sleep 1; - } forEach["Carnival_Tent", "Land_Slide_F", "Carnival_Tent", "Land_Carousel_01_F", "Carnival_Tent", "Carnival_Tent"]; +//STOP THE SCRIPT AND EXIT IF THE COUNTER IS TOO HIGH. +if (_counter >= _limit) exitWith { + if (_debug) then {diag_log "DEBUG: suppressed carnival spawn over limit"}; +}; - if (EPOCH_showShippingContainers) then{ - _markers = ["Carnival",_ferrisPosition] call EPOCH_server_createGlobalMarkerSet; +for "_i" from 0 to 100 step 1 do { + _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 1000, 0] call BIS_fnc_findSafePos; + _goodPos = true; + + _goodPos = [_position, true, true, true, _others, _distFromOthers] call EPOCH_server_isNearChecks; + + if(_goodPos)then{ + _i = 100; + }else{ + _position = []; + }; +}; + +_objs = []; +if ((count _position) == 2) then{ + // CREATE THE CARNIVAL AREA AND LOOT + _item = createVehicle["ferrisWheel_EPOCH", _position, [], 0.0, "CAN_COLLIDE"]; + _objs pushBack _item; + _lootPos = [_position,1,20,3,1,20,0] call BIS_fnc_findSafePos; + _loot = createVehicle["container_epoch", _lootPos, [], 0.0, "CAN_COLLIDE"]; + _loot setMass 220; + _loot setVariable["EPOCH_Loot",false,true]; + + if(_debug)then{ + _debugMkr = createMarker [str(_lootPos),_lootPos]; + _debugMkr setMarkerShape "ICON"; + _debugMkr setMarkerType "mil_dot"; + _debugMkr setMarkerColor "ColorRed"; + }; + + { + _item = createVehicle[_x, _position, [], 80, "NONE"]; + _objs pushBack _item; + sleep 1; + } forEach (getArray(_cfgEpoch >> "carnivalSpawnedObjects")); + + // SET UP THE MARKER. + _markers = []; + _originalColors = []; + _showMarkers = if(getNumber(_cfgEpoch >> "showCarnivalMarkers") isEqualTo 1)then{true}else{false}; + _decayMarkerColor = getText(_cfgEpoch >> "carnivalDecayMarkerColor"); + _compromisedColor = getText(_cfgEpoch >> "carnivalCompromisedColor"); + if (_showMarkers) then{ + _markers = ["Carnival",_position] call EPOCH_server_createGlobalMarkerSet; + { + _originalColors pushBack (getMarkerColor _x); + }forEach _markers; + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if!(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{ + _compromisedColor = getMarkerColor (_markers select 0); + }; + }; + + // TICK COUNTER + 1 SPAWNED PLANT PATCH. + _counter = _counter + 1; + missionNameSpace setVariable["EPOCH_carnivalCounter",_counter]; + + // ADD POSITION TO OTHERS ARRAY + missionNameSpace setVariable["EPOCH_carnivals", _others + [_position]]; + + // SEND EVENT TO MONITOR + _decayTime = getNumber(_cfgEpoch >> "carnivalDecayTime"); + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _timeMultiplier = ([_serverSettingsConfig, "timeMultiplier", 1] call EPOCH_fnc_returnConfigEntry); + _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; + _thisEvent = [_lootPos, [_loot], _objs,"carnivalCounter", diag_tickTime, (_decayTime * _timeMultiplier), _showMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; + if (_debug) then { + diag_log format["EPOCHDebug: carnivalSpawner-%1", missionNameSpace getVariable["EPOCH_RunningEvents",[]]]; }; }; diff --git a/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf b/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf index 18286054..ee23767c 100644 --- a/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf +++ b/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf @@ -6,12 +6,78 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/ContainterSpawner.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cargoPosition","_item","_markers"]; +private ["_position","_item","_markers"]; //[[[end]]] -_cargoPosition = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 4000, 1] call BIS_fnc_findSafePos; -if ((count _cargoPosition) == 2) then{ - _item = createVehicle["Cargo_Container", _cargoPosition, [], 0.0, "CAN_COLLIDE"]; - if (EPOCH_showShippingContainers) then{ - _markers = ["Container",_cargoPosition] call EPOCH_server_createGlobalMarkerSet; +_cfgEpoch = configFile >> "CfgEpoch" >> worldname; +_debug = if(getNumber(_cfgEpoch >> "debugContainerSpawner") isEqualTo 1)then{true}else{false}; +_limit = getNumber(_cfgEpoch >> "maxContainerSpawns"); +_counter = missionNameSpace getVariable["EPOCH_containerCounter",0]; +_others = missionNameSpace getVariable["EPOCH_containers", [[0,0,0]] ]; +_distFromOthers = getNumber(_cfgEpoch >> "distFromOtherContainers"); + +//STOP THE SCRIPT AND EXIT IF THE COUNTER IS TOO HIGH. +if (_counter >= _limit) exitWith { + if (_debug) then {diag_log "DEBUG: suppressed CONTAINER spawn over limit"}; +}; + +// FIND A POSITION +for "_i" from 0 to 100 step 1 do { + _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 4000, 1] call BIS_fnc_findSafePos; + _goodPos = true; + + _goodPos = [_position, true, true, true, _others, _distFromOthers] call EPOCH_server_isNearChecks; + + if(_goodPos)then{ + _i = 100; + }else{ + _position = []; }; }; + +if ((count _position) == 2) then{ + // CREATE THE CARGO CONTAINER + _item = createVehicle["Cargo_Container", _position, [], 0.0, "CAN_COLLIDE"]; + if(_debug)then{ + _debugMkr = createMarker [str(_position), _position]; + _debugMkr setMarkerShape "ICON"; + _debugMkr setMarkerType "mil_dot"; + _debugMkr setMarkerColor "ColorRed"; + }; + + // SET UP THE MARKER. + _markers = []; + _originalColors = []; + _showMarkers = if(getNumber(_cfgEpoch >> "showContainerMarkers") isEqualTo 1)then{true}else{false}; + _decayMarkerColor = getText(_cfgEpoch >> "containerDecayMarkerColor"); + _compromisedColor = getText(_cfgEpoch >> "containerCompromisedColor"); + if (_showMarkers) then{ + _markers = ["Container",_position] call EPOCH_server_createGlobalMarkerSet; + { + _originalColors pushBack (getMarkerColor _x); + }forEach _markers; + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if!(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{ + _compromisedColor = getMarkerColor (_markers select 0); + }; + }; + + // TICK COUNTER + 1 + _counter = _counter + 1; + missionNameSpace setVariable["EPOCH_containerCounter",_counter]; + + // ADD POSITION TO OTHERS ARRAY + missionNameSpace setVariable["EPOCH_containers", _others + [_position]]; + + // SEND EVENT TO MONITOR + _decayTime = getNumber(_cfgEpoch >> "containerDecayTime"); + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _timeMultiplier = ([_serverSettingsConfig, "timeMultiplier", 1] call EPOCH_fnc_returnConfigEntry); + _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; + _thisEvent = [_position, [_item], [], "containerCounter", diag_tickTime, (_decayTime * _timeMultiplier), _showMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; + if (_debug) then { + diag_log format["EPOCHDebug: containerSpawner-%1", missionNameSpace getVariable["EPOCH_RunningEvents",[]]]; + }; +}; +// END SCRIPT. \ No newline at end of file diff --git a/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf b/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf index cef11b69..e2948fa8 100644 --- a/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf +++ b/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf @@ -1,14 +1,40 @@ /* - Earthquake and Mineral Deposit Event + Earthquake and Mineral Deposit Event by Aaron Clark - EpochMod.com - + + Events Overhaul by DirtySanchez + Improvements and or bugfixes and other contributions are welcome via the github: https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/Earthquake.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_chance","_item","_markers","_minerals","_playersNearEpicenter","_position"]; +private ["_cfgEpoch", "_debug", "_limit", "_counter", "_others", "_distFromOthers", "_position", "_goodPos", "_playersNearEpicenter", "_chance", "_minerals", "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_spawned", "_decayTime", "_rEvents", "_thisEvent"]; //[[[end]]] -_position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 1000, 0] call BIS_fnc_findSafePos; +_cfgEpoch = configFile >> "CfgEpoch" >> worldname; +_debug = if(getNumber(_cfgEpoch >> "debugEarthquakeSpawner") isEqualTo 1)then{true}else{false}; +_limit = getNumber(_cfgEpoch >> "maxEarthquakeSpawns"); +_counter = missionNameSpace getVariable["EPOCH_earthquakeCounter",0]; +_others = missionNameSpace getVariable["EPOCH_earthquakes", [[0,0,0]] ]; +_distFromOthers = getNumber(_cfgEpoch >> "distFromOtherEarthquakes"); + +//STOP THE SCRIPT AND EXIT IF THE COUNTER IS TOO HIGH. +if (_counter >= _limit) exitWith { + if (_debug) then {diag_log "DEBUG: suppressed EARTHQUAKE spawn over limit"}; +}; + +for "_i" from 0 to 100 step 1 do { + _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 1000, 0] call BIS_fnc_findSafePos; + _goodPos = true; + + _goodPos = [_position, true, true, false, _others, _distFromOthers] call EPOCH_server_isNearChecks; + + if(_goodPos)then{ + _i = 100; + }else{ + _position = []; + }; +}; + if ((count _position) == 2) then{ _playersNearEpicenter = _position nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 1000]; // decrease chance with more players @@ -21,10 +47,49 @@ if ((count _position) == 2) then{ }; // Mineral veins - _minerals = ["MineralDepositCopper_EPOCH", "MineralDepositGold_EPOCH", "MineralDepositSilver_EPOCH"]; + _minerals = getArray(_cfgEpoch >> "availableMinerals"); _item = createVehicle[(selectRandom _minerals), _position, [], 0.0, "CAN_COLLIDE"]; - if (EPOCH_showEarthQuakes) then{ + if(_debug)then{ + _debugMkr = createMarker [str(_position), _position]; + _debugMkr setMarkerShape "ICON"; + _debugMkr setMarkerType "mil_dot"; + _debugMkr setMarkerColor "ColorRed"; + }; + + // Place markers and get decay, compromised and original colors + _markers = []; + _originalColors = []; + _showMarkers = if(getNumber(_cfgEpoch >> "showEarthquakeMarkers") isEqualTo 1)then{true}else{false}; + _decayMarkerColor = getText(_cfgEpoch >> "earthquakeDecayMarkerColor"); + _compromisedColor = getText(_cfgEpoch >> "earthquakeCompromisedColor"); + if (_showMarkers) then{ _markers = ["EarthQuake",_position] call EPOCH_server_createGlobalMarkerSet; + { + _originalColors pushBack (getMarkerColor _x); + }forEach _markers; + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if!(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{ + _compromisedColor = getMarkerColor (_markers select 0); + }; + }; + + // Tick Counter +1 + _counter = _counter + 1; + missionNameSpace setVariable["EPOCH_earthquakeCounter",_counter]; + + // ADD POSITION TO OTHERS ARRAY + missionNameSpace setVariable["EPOCH_earthquakes", _others + [_position]]; + + // SEND EVENT TO MONITOR + _decayTime = getNumber(_cfgEpoch >> "earthquakeDecayTime"); + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _timeMultiplier = ([_serverSettingsConfig, "timeMultiplier", 1] call EPOCH_fnc_returnConfigEntry); + _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; + _thisEvent = [_position, [_item], [], "earthquakeCounter", diag_tickTime, (_decayTime * _timeMultiplier), _showMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; + if (_debug) then { + diag_log format["EPOCHDebug: earthquakeSpawner-%1", missionNameSpace getVariable["EPOCH_RunningEvents",[]]]; }; }; }; diff --git a/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf b/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf index dbdbfa9c..d61051c7 100644 --- a/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf +++ b/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf @@ -3,6 +3,8 @@ Redbeard Actual Aaron Clark - EpochMod.com + Events Overhaul by DirtySanchez + Description: Improved Plant Spawner - Plant Patch Spawner Event spawns a random number of plants based on plant type. @@ -15,64 +17,49 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_debug","_decayTime","_jammers","_markers","_nearbyLocations","_plant","_plantCount","_plants","_playersNearby","_position","_restricted","_scatter","_selectedLocation","_showPlantMarkers","_timeStamp"]; +private ["_cfgEpoch", "_debug", "_limit", "_counter", "_distFromOthers", "_others", "_nearbyLocations", "_position", "_selectedLocation", "_goodPos", "_plantsArray", "_plant", "_plantCount", "_scatter", "_plants", "_plantPos", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_decayTime", "_rEvents","_thisEvent"]; //[[[end]]] - -// SET THIS TO TRUE TO GET MESSAGES IN LOG. -_debug = true; -_showPlantMarkers = true; - -// select a plant type to spawn -_plant = selectRandom ["Goldenseal_EPOCH", "Goldenseal_EPOCH", "Goldenseal_EPOCH", "Poppy_EPOCH", "Pumpkin_EPOCH"]; - -// START PLANT PATCH SPAWN LIMIT CODE IF EPOCH_plantCounter HAS NOT BEEN INITIATED. -// THIS MAKES SURE IT ONLY DOES THIS BIT THE FIRST TIME THE EVENT RUNS. -if (isNil "EPOCH_plantCounter") then { - //SET COUNTER TO ZERO. - EPOCH_plantCounter = 0; - //SET LIMIT TO FIVE. - EPOCH_plantLimit = 5; -}; +_cfgEpoch = configFile >> "CfgEpoch" >> worldname; +_debug = if(getNumber(_cfgEpoch >> "debugPlantSpawner") isEqualTo 1)then{true}else{false}; +_limit = getNumber(_cfgEpoch >> "maxPlantSpawns"); +_counter = missionNameSpace getVariable["EPOCH_plantCounter",0]; +_others = missionNameSpace getVariable["EPOCH_plants", [[0,0,0]] ]; +_distFromOthers = getNumber(_cfgEpoch >> "distFromOtherPlants"); //STOP THE SCRIPT AND EXIT IF THE COUNTER IS TOO HIGH. -if (EPOCH_plantCounter >= EPOCH_plantLimit) exitWith { +if (_counter >= _limit) exitWith { if (_debug) then {diag_log "DEBUG: suppressed plant spawn over limit"}; }; // FIND A POSITION FOR PLANT PATCH prefer Hills and Vineyards _nearbyLocations = nearestLocations [epoch_centerMarkerPosition,["VegetationVineyard","Hill"],EPOCH_dynamicVehicleArea]; -if (_nearbyLocations isEqualTo []) then { - _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 4000, 0] call BIS_fnc_findSafePos; -} else { - _selectedLocation = locationPosition (selectRandom _nearbyLocations); - _position = [_selectedLocation, 0, 1000, 10, 0, 4000, 0] call BIS_fnc_findSafePos; -}; +for "_i" from 0 to 100 step 1 do { + if (_nearbyLocations isEqualTo []) then { + _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 4000, 0] call BIS_fnc_findSafePos; + } else { + _selectedLocation = locationPosition (selectRandom _nearbyLocations); + _position = [_selectedLocation, 0, 1000, 10, 0, 4000, 0] call BIS_fnc_findSafePos; + }; + _goodPos = true; + + _goodPos = [_position, true, true, true, _others, _distFromOthers] call EPOCH_server_isNearChecks; -//CHECK FOR PROTECTED AREA WITIN 2000 METERS. -_restricted = nearestObjects [_position, ["ProtectionZone_Invisible_F"], 2000]; -if(count _restricted > 0) exitWith { - if (_debug) then {diag_log "DEBUG: suppressed PLANT PATCH spawn TRADER too close"}; -}; - -//CHECK FOR JAMMERS IN THE AREA WITHIN 1000 METERS. -_jammers = nearestObjects[_position, ["PlotPole_EPOCH"], 1000]; -if(count _jammers > 0) exitWith { - if (_debug) then {diag_log "DEBUG: suppressed PLANT PATCH spawn jammer too close"}; -}; - -//CHECK TO SEE IF PLAYERS WITHIN 900 METERS. -_playersNearby = _position nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 900]; -if(count _playersNearby > 0) exitWith { - if (_debug) then {diag_log "DEBUG: suppressed PLANT PATCH spawn PLAYER too close"}; + if(_goodPos)then{ + _i = 100; + }else{ + _position = []; + }; }; // IF WE MADE IT THIS FAR, WE CAN SPAWN SOME SHIT. if ((count _position) == 2) then{ - + // select a plant type to spawn + _plantsArray = getArray(_cfgEpoch >> "availablePlants"); + _plant = selectRandom _plantsArray; + // vary plant count and scatter by plant type - _plantCount = 1; + _plantCount = (floor(random(2))); _scatter = 10; - _decayTime = 1200; switch _plant do { case "Goldenseal_EPOCH": { _plantCount = (floor(random(4)))+3; @@ -90,52 +77,51 @@ if ((count _position) == 2) then{ _plants = []; // CREATE THE PATCH OF PLANTS. - for "_i" from 1 to _plantCount step 1 do { + for "_i" from 0 to (_plantCount - 1) step 1 do { _plants pushBack createVehicle[_plant, _position, [], _scatter, "NONE"]; + if(_debug)then{ + _plantPos = getPosATL (_plants select _i); + _debugMkr = createMarker [str(_plantPos), _plantPos]; + _debugMkr setMarkerShape "ICON"; + _debugMkr setMarkerType "mil_dot"; + _debugMkr setMarkerColor "ColorRed"; + }; }; - _timeStamp = diag_tickTime; // SET UP THE MARKER. - if (_showPlantMarkers) then{ + _markers = []; + _originalColors = []; + _showMarkers = if(getNumber(_cfgEpoch >> "showPlantMarkers") isEqualTo 1)then{true}else{false}; + _decayMarkerColor = getText(_cfgEpoch >> "plantDecayMarkerColor"); + _compromisedColor = getText(_cfgEpoch >> "plantCompromisedColor"); + if (_showMarkers) then{ _markers = ["PlantSpawn",_position] call EPOCH_server_createGlobalMarkerSet; - }; - - // TICK COUNTER + 1 SPAWNED PLANT PATCH. - EPOCH_plantCounter = EPOCH_plantCounter + 1; - - // wait loop to handle plant patch - while {true} do { - private _plantsLeft = _plants select {!isNull _x}; - // Wait for all plants to be picked or to decay - if (_plantsLeft isEqualTo [] || (diag_tickTime - _timeStamp) > _decayTime) exitWith { - // TICK THE COUNTER DOWN SO A NEW PLANT PATCH WILL SPAWN TO TAKE ITS PLACE. - EPOCH_plantCounter = EPOCH_plantCounter - 1; - // DELETE THAT MARKER. - if (_showPlantMarkers) then{ - [_markers] call EPOCH_server_deleteGlobalMarkerSet; - }; - // remove any left over "dead" plants (only if decayTime is reached) - {deleteVehicle _x} forEach _plantsLeft; - }; - // set marker to brown to show 50% decay but not if already marked as picked (red). { - if !(getMarkerColor _x in ["ColorRed","ColorBrown"]) then { - if ((diag_tickTime - _timeStamp) > (_decayTime/2)) then { - _x setMarkerColor "ColorBrown"; - }; - }; + _originalColors pushBack (getMarkerColor _x); }forEach _markers; - // WAIT FOR A PLAYER TO Pick one plant then set marker to red - if (count _plantsLeft != _plantCount) then { - if (_showPlantMarkers) then{ - { - if (getMarkerColor _x != "ColorRed") then { - _x setMarkerColor "ColorRed"; - }; - }forEach _markers; - }; + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if!(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{ + _compromisedColor = getMarkerColor (_markers select 0); }; - sleep 30; + }; + + // TICK COUNTER + 1 + _counter = _counter + 1; + missionNameSpace setVariable["EPOCH_plantCounter",_counter]; + + // ADD POSITION TO OTHERS ARRAY + missionNameSpace setVariable["EPOCH_plants", _others + [_position]]; + + // SEND EVENT TO MONITOR + _decayTime = getNumber(_cfgEpoch >> "plantDecayTime"); + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _timeMultiplier = ([_serverSettingsConfig, "timeMultiplier", 1] call EPOCH_fnc_returnConfigEntry); + _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; + _thisEvent = [_position, _plants, [], "plantCounter", diag_tickTime, (_decayTime * _timeMultiplier), _showMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; + if (_debug) then { + diag_log format["EPOCHDebug: plantSpawner-EPOCH_PlantSpawns:%1", missionNameSpace getVariable["EPOCH_RunningEvents",[]]]; }; }; // END SCRIPT. \ No newline at end of file diff --git a/Sources/epoch_server_settings/EpochEvents/Satellite.sqf b/Sources/epoch_server_settings/EpochEvents/Satellite.sqf index f73216a2..5b59919f 100644 --- a/Sources/epoch_server_settings/EpochEvents/Satellite.sqf +++ b/Sources/epoch_server_settings/EpochEvents/Satellite.sqf @@ -8,23 +8,77 @@ //[[[cog import generate_private_arrays ]]] private ["_satellite","_markers","_playersNearEpicenter","_position","_satellites"]; //[[[end]]] -_position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 1000, 0] call BIS_fnc_findSafePos; -if ((count _position) == 2) then{ +_cfgEpoch = configFile >> "CfgEpoch" >> worldname; +_debug = if(getNumber(_cfgEpoch >> "debugSatelliteSpawner") isEqualTo 1)then{true}else{false}; +_limit = getNumber(_cfgEpoch >> "maxSatelliteSpawns"); +_counter = missionNameSpace getVariable["EPOCH_satelliteCounter",0]; +_others = missionNameSpace getVariable["EPOCH_satellites", [[0,0,0]] ]; +_distFromOthers = getNumber(_cfgEpoch >> "distFromOtherSatellites"); - // spawn Satellite - _satellites = ["Land_Wreck_Satellite_EPOCH"]; - _satellite = createVehicle[(selectRandom _satellites), _position, [], 0.0, "CAN_COLLIDE"]; +//STOP THE SCRIPT AND EXIT IF THE COUNTER IS TOO HIGH. +if (_counter >= _limit) exitWith { + if (_debug) then {diag_log "DEBUG: suppressed SATELLITE spawn over limit"}; +}; - // send shockwave + effects to each player in zone at time of crash - _playersNearEpicenter = _position nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 1000]; - if !(_playersNearEpicenter isEqualTo[]) then{ - [_satellite, -1, 0.8, false] remoteExec ['BIS_fnc_sandstorm',_playersNearEpicenter]; - }; - - // set rads - _satellite setVariable ["EPOCH_Rads", [30,50], true]; //30 rads within 50 meters - - if (EPOCH_showSatellites) then{ - _markers = ["Satellite",_position] call EPOCH_server_createGlobalMarkerSet; +// FIND A POSITION +for "_i" from 0 to 100 step 1 do { + _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 1000, 0] call BIS_fnc_findSafePos; + _goodPos = true; + + _goodPos = [_position, true, true, true, _others, _distFromOthers] call EPOCH_server_isNearChecks; + + if(_goodPos)then{ + _i = 100; + }else{ + _position = []; }; }; + +if ((count _position) == 2) then{ + // select a Satellite type to spawn + _satellites = getArray(_cfgEpoch >> "availableSatellites"); + _satellite = createVehicle[(selectRandom _satellites), _position, [], 0.0, "CAN_COLLIDE"]; + if(_debug)then{ + _debugMkr = createMarker [str(_position), _position]; + _debugMkr setMarkerShape "ICON"; + _debugMkr setMarkerType "mil_dot"; + _debugMkr setMarkerColor "ColorRed"; + }; + + // SET UP THE MARKER. + _markers = []; + _originalColors = []; + _showMarkers = if(getNumber(_cfgEpoch >> "showSatelliteMarkers") isEqualTo 1)then{true}else{false}; + _decayMarkerColor = getText(_cfgEpoch >> "satelliteDecayMarkerColor"); + _compromisedColor = getText(_cfgEpoch >> "satelliteCompromisedColor"); + if (_showMarkers) then{ + _markers = ["Satellite",_position] call EPOCH_server_createGlobalMarkerSet; + { + _originalColors pushBack (getMarkerColor _x); + }forEach _markers; + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if!(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{ + _compromisedColor = getMarkerColor (_markers select 0); + }; + }; + + // TICK COUNTER + 1 + _counter = _counter + 1; + missionNameSpace setVariable["EPOCH_satelliteCounter",_counter]; + + // ADD POSITION TO OTHERS ARRAY + missionNameSpace setVariable["EPOCH_satellites", _others + [_position]]; + + // SEND EVENT TO MONITOR + _decayTime = getNumber(_cfgEpoch >> "satelliteDecayTime"); + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _timeMultiplier = ([_serverSettingsConfig, "timeMultiplier", 1] call EPOCH_fnc_returnConfigEntry); + _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; + _thisEvent = [_position, [_satellite], [], "satelliteCounter", diag_tickTime, (_decayTime * _timeMultiplier), _showMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; + if (_debug) then { + diag_log format["EPOCHDebug: satelliteSpawner-%1", missionNameSpace getVariable["EPOCH_RunningEvents",[]]]; + }; +}; +// END SCRIPT. \ No newline at end of file diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 7524d3f5..9ec4313a 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -52,7 +52,6 @@ class CfgEpoch class Default { worldSize = 12000; - plantLimit = 10; vehicleSpawnTypes[] = { {"FlatAreaCity",1}, {"FlatAreaCitySmall",1}, @@ -79,11 +78,6 @@ class CfgEpoch traderHomes[] = {"House", "Building"}; traderUniforms[] = {"U_OG_leader", "U_C_Poloshirt_stripped", "U_C_Poloshirt_blue", "U_C_Poloshirt_burgundy", "U_C_Poloshirt_tricolour", "U_C_Poloshirt_salmon", "U_C_Poloshirt_redwhite", "U_C_Poor_1", "U_C_WorkerCoveralls", "U_C_Journalist", "U_C_Scientist", "U_OrestesBody"}; - // Shipwrecks - shipwreckLootEnabled = 1; - maxSpawnedShipwrecks = 12; - distFromOtherShipwrecks = 750; - // Debug Box telePos[] = {}; lightPos[] = { @@ -93,6 +87,70 @@ class CfgEpoch debugBoxClass = "Debug_static_F"; cloneClasses[] = {"clone_empty_static_F", "clone_male_static_F", "clone_female_static_F"}; + // Settings for Events, Missions, etc + spawnDistanceFromPlayers = 500; + spawnDistanceFromJammers = 1000; + spawnDistanceFromTraders = 2000; + HeightenedPlayerVsPlayer = 1; // 0 = OFF + + // Shipwrecks Loot Box Spawner + shipwreckLootEnabled = 1; // 0 = OFF + debugShipwreckLoot = 0; // 1 = ON + showBoatLootMarkers = 1; + maxSpawnedShipwrecks = 12; + distFromOtherShipwrecks = 750; + shipwreckDecayMarkerColor = "ColorBrown"; // decay changes icon (_markers select 2) + shipwreckCompromisedColor = "ColorRed"; // compromised changes active surround (_markers select 0) + + // Plant Spawner + debugPlantSpawner = 0; + showPlantMarkers = 1; + maxPlantSpawns = 5; + distFromOtherPlants = 2500; + plantDecayTime = 1200; //Half this time results in decayMarkerColor marker + plantDecayMarkerColor = "ColorBrown"; + plantCompromisedColor = "ColorRed"; + availablePlants[] = {"Goldenseal_EPOCH", "Goldenseal_EPOCH", "Goldenseal_EPOCH", "Poppy_EPOCH", "Pumpkin_EPOCH"}; + + // Carnival and Loot Box Spawner + debugCarnivalSpawner = 0; + showCarnivalMarkers = 1; + maxCarnivalSpawns = 2; + distFromOtherCarnivals = 5000; + carnivalDecayTime = 3600; + carnivalDecayMarkerColor = "ColorBrown"; + carnivalCompromisedColor = "ColorRed"; + carnivalSpawnedObjects[] = {"Carnival_Tent", "Land_Slide_F", "Carnival_Tent", "Land_Carousel_01_F", "Carnival_Tent", "Carnival_Tent"}; + + // EarthQuake and Mineral Deposit Spawner + debugEarthquakeSpawner = 0; + showEarthquakeMarkers = 1; + maxEarthquakeSpawns = 3; + distFromOtherEarthquakes = 1500; + earthquakeDecayTime = 2400; + earthquakeDecayMarkerColor = "ColorBrown"; + earthquakeCompromisedColor = "ColorRed"; + availableMinerals[] = {"MineralDepositCopper_EPOCH", "MineralDepositGold_EPOCH", "MineralDepositSilver_EPOCH"}; + + // Container Spawner + debugContainerSpawner = 0; + showContainerMarkers = 1; + maxContainerSpawns = 5; + distFromOtherContainers = 3500; + containerDecayTime = 1200; + containerDecayMarkerColor = "ColorBrown"; + containerCompromisedColor = "ColorRed"; + + // Satellite Crash Spawner + debugSatelliteSpawner = 0; + showSatelliteMarkers = 1; + maxSatelliteSpawns = 5; + distFromOtherSatellites = 2500; + satelliteDecayTime = 2700; + satelliteDecayMarkerColor = "ColorBrown"; + satelliteCompromisedColor = "ColorRed"; + availableSatellites[] = {"Land_Wreck_Satellite_EPOCH"}; + propsPos[] = {}; staticNpcPos[] = {}; forcedVehicleSpawnTable = ""; From d88922beba1e7266d0619c5f1c7e80ddf8839fd7 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Sun, 12 Nov 2017 17:52:50 -0600 Subject: [PATCH 11/94] vehicle smoke screen be filter addition --- Server_Install_Pack/sc/battleye/scripts.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index de2bfb1c..934b5c19 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -11,7 +11,7 @@ 5 callExtension 5 showCommandingMenu !="showCommandingMenu '';" !="showCommandingMenu '#USER:" 5 enableCollisionWith -5 setvelocity !="setVelocityTarget" !="_bolt setPosATL _pos;\n_bolt setVelocity [0, 0, -10];" !="EPOCH_target setvelocitytransformation" !="_currentTarget setVelocity [0,0,-0.01];" !="_head setVelocity [\n(sin _dir * _speed), \n(cos _dir * _speed)" !="_vel = velocity this; _dir = getDir player; this setVelocity[(_vel select 0)+(sin _dir * 2),(_vel select 1)+(cos _dir * 2),(_vel select 2)];" !="_head setVelocity [random 2,random 2,10];" !="_bobber setVelocity [0,-1,-10];" !="_x setvelocity [0,0,0.1];" !="_veh setVelocity [0,0,0];" !="_this select 0 setvelocity (_this select 1)" !="_zombie setVelocityTransformation [_aslPos,_aslPos,_unitV,_unitV,_unitvDir,_vDir,_unitvUp,_unitvUp,2];" +5 setvelocity !="setVelocityTarget" !="_bolt setPosATL _pos;\n_bolt setVelocity [0, 0, -10];" !="EPOCH_target setvelocitytransformation" !="_currentTarget setVelocity [0,0,-0.01];" !="_head setVelocity [\n(sin _dir * _speed), \n(cos _dir * _speed)" !="_vel = velocity this; _dir = getDir player; this setVelocity[(_vel select 0)+(sin _dir * 2),(_vel select 1)+(cos _dir * 2),(_vel select 2)];" !="_head setVelocity [random 2,random 2,10];" !="_bobber setVelocity [0,-1,-10];" !="_x setvelocity [0,0,0.1];" !="_veh setVelocity [0,0,0];" !="_this select 0 setvelocity (_this select 1)" !="_zombie setVelocityTransformation [_aslPos,_aslPos,_unitV,_unitV,_unitvDir,_vDir,_unitvUp,_unitvUp,2];" !="_smokeg setVelocity _Gvel;" 5 assignAs !"assignAsCargo" !="_unit assignAsGunner _axeCopter;" !="_driver assignAsDriver _axeCopter;" !="axeVIP assignAsDriver vehicle axeVIP;" 5 assignAsCargo !="_x assignAsCargo axeGeneralsBoat;" !="axeVIP assignAsCargo vehicle player;" !="axeVIP assignAsCargo vehicle axeVIP;" 5 allowDamage !="_unit allowDamage false;" !="_unit allowDamage true;" !="player allowDamage true;" !="vehicle player allowDamage true;" !="player allowDamage false;" !="_target allowDamage true;" !="_cargo allowDamage false;" From bd3e331f5b1be5c764cf6e60c6f647407f857cb8 Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 13 Nov 2017 15:40:10 +0100 Subject: [PATCH 12/94] Tarp Loot Positions --- Sources/epoch_config/Configs/CfgBuildingLootPos.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp b/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp index 3befffe6..c4f39004 100644 --- a/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp +++ b/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp @@ -1151,13 +1151,13 @@ class CfgBuildingLootPos class Land_i_Addon_03_V1_F : Default { chairPos[] = {{{2.5,-0.929688,-0.0765305},346.611},{{-2.61914,-1.03125,-0.0765266},17.8128}}; - palletPos[] = {{{3.56641,2.50391,-10},344},{{-3.58594,2.75,-10},15}}; + palletPos[] = {{{3.56641,2.50391,-0.0765305},344},{{-3.58594,2.75,-0.0765305},15}}; }; class Land_i_Addon_04_V1_F : Default { chairPos[] = {{{-3.78711,-1.16211,0.050499},21.1258}}; pelicanPos[] = {{{-2.04883,0.263672,0.0532227},215.663}}; - palletPos[] = {{{-0.130859,2.37695,-10},344}}; + palletPos[] = {{{-0.130859,2.37695,0.050499},344}}; }; class Land_LightHouse_F : Default { From 5b0931cfcc8941349f0cdd46f9a87ccd4a4fc401 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Mon, 13 Nov 2017 14:54:50 -0600 Subject: [PATCH 13/94] add missing and sort private arrays --- .../EPOCH_server_spawnBoatLoot.sqf | 33 ++++++++++--------- .../EpochEvents/CarnivalSpawner.sqf | 2 +- .../EpochEvents/ContainerSpawner.sqf | 2 +- .../EpochEvents/EarthQuake.sqf | 2 +- .../EpochEvents/PlantSpawner.sqf | 2 +- .../EpochEvents/Satellite.sqf | 2 +- 6 files changed, 22 insertions(+), 21 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf index f2d9f828..445d0717 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf @@ -13,16 +13,10 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cfgEpoch","_debug","_showBoatMarkers","_decayMarkerColor","_compromisedColor","_worldSize","_shipwrecks","_total","_count","_distFromOthers","_tooClose","_spawnedLoot","_wreck","_item","_markers","_position","_debugMkr","_heightenedPVP"]; +private ["_cfgEpoch", "_debug", "_worldSize", "_shipwrecks", "_total", "_count", "_distFromOthers", "_spawnedLoot","_tooClose", "_wreck", "_position", "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_rEvents", "_thisEvent"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; _debug = if(getNumber(_cfgEpoch >> "debugShipwreckLoot") isEqualTo 1)then{true}else{false}; -_showBoatMarkers = if(getNumber(_cfgEpoch >> "showBoatLootMarkers") isEqualTo 1)then{true}else{false}; -_decayMarkerColor = getText(_cfgEpoch >> "shipwreckDecayMarkerColor"); -_compromisedColor = getText(_cfgEpoch >> "shipwreckCompromisedColor"); -_heightenedPVP = if(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{true}else{false}; -_markers = []; -_originalColors = []; if (getNumber(_cfgEpoch >> "shipwreckLootEnabled") isEqualTo 1) then { _worldSize = worldSize/2; @@ -64,21 +58,28 @@ if (getNumber(_cfgEpoch >> "shipwreckLootEnabled") isEqualTo 1) then { }; _item setMass 220; _item setVariable["EPOCH_Loot",false,true]; - if (_showBoatMarkers) then { - _markers = ["Shipwreck",_wreck] call EPOCH_server_createGlobalMarkerSet; + + // SET UP THE MARKER. + _markers = []; + _originalColors = []; + _showMarkers = if(getNumber(_cfgEpoch >> "showBoatLootMarkers") isEqualTo 1)then{true}else{false}; + _decayMarkerColor = getText(_cfgEpoch >> "shipwreckDecayMarkerColor"); + _compromisedColor = getText(_cfgEpoch >> "shipwreckCompromisedColor"); + if (_showMarkers) then{ + _markers = ["Shipwreck",_position] call EPOCH_server_createGlobalMarkerSet; { _originalColors pushBack (getMarkerColor _x); }forEach _markers; - }; - - // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring - if((_showBoatMarkers) && !(_heightenedPVP))then{ - _compromisedColor = getMarkerColor (_markers select 0); + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if!(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{ + _compromisedColor = getMarkerColor (_markers select 0); + }; }; _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; - _shipwreckEvent = [_position, [_item], [], "shipwreckCounter", diag_tickTime, 99999, _showBoatMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; - missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_shipwreckEvent]]; + _thisEvent = [_position, [_item], [], "shipwreckCounter", diag_tickTime, 99999, _showBoatMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; }; }; if(_debug)then{ diff --git a/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf b/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf index 8974ec15..d759dce5 100644 --- a/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf +++ b/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf @@ -6,7 +6,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cfgEpoch", "_debug", "_showMarkers", "_limit", "_counter", "_decayTime", "_distFromOthers", "_others", "_position", "_goodPos", "_objs","_item", "_lootPos", "_lootPos", "_loot", "_debugMkr", "_markers", "_originalColors", "_decayMarkerColor", "_compromisedColor", "_rEvents", "_thisEvent"]; +private ["_cfgEpoch", "_debug", "_showMarkers", "_limit", "_counter", "_others", "_distFromOthers", "_position", "_goodPos", "_objs","_item", "_lootPos", "_loot", "_debugMkr", "_markers", "_originalColors", "_decayMarkerColor", "_compromisedColor", "_decayTime", "_serverSettingsConfig", "_timeMultiplier", "_rEvents", "_thisEvent"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; _debug = if(getNumber(_cfgEpoch >> "debugCarnivalSpawner") isEqualTo 1)then{true}else{false}; diff --git a/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf b/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf index ee23767c..e6dcb8ce 100644 --- a/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf +++ b/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf @@ -6,7 +6,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/ContainterSpawner.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_position","_item","_markers"]; +private ["_cfgEpoch", "_debug", "_limit", "_counter", "_others", "_distFromOthers", "_position", "_goodPos", "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_decayTime", "_serverSettingsConfig", "_timeMultiplier", "_rEvents", "_thisEvent"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; _debug = if(getNumber(_cfgEpoch >> "debugContainerSpawner") isEqualTo 1)then{true}else{false}; diff --git a/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf b/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf index e2948fa8..77547740 100644 --- a/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf +++ b/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf @@ -8,7 +8,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/Earthquake.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cfgEpoch", "_debug", "_limit", "_counter", "_others", "_distFromOthers", "_position", "_goodPos", "_playersNearEpicenter", "_chance", "_minerals", "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_spawned", "_decayTime", "_rEvents", "_thisEvent"]; +private ["_cfgEpoch", "_debug", "_limit", "_counter", "_others", "_distFromOthers", "_position", "_goodPos", "_playersNearEpicenter", "_chance", "_minerals", "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_spawned", "_decayTime", "_serverSettingsConfig", "_timeMultiplier", "_rEvents", "_thisEvent"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; _debug = if(getNumber(_cfgEpoch >> "debugEarthquakeSpawner") isEqualTo 1)then{true}else{false}; diff --git a/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf b/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf index d61051c7..7849e797 100644 --- a/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf +++ b/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf @@ -17,7 +17,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cfgEpoch", "_debug", "_limit", "_counter", "_distFromOthers", "_others", "_nearbyLocations", "_position", "_selectedLocation", "_goodPos", "_plantsArray", "_plant", "_plantCount", "_scatter", "_plants", "_plantPos", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_decayTime", "_rEvents","_thisEvent"]; +private ["_cfgEpoch", "_debug", "_limit", "_counter", "_others", "_distFromOthers", "_nearbyLocations", "_position", "_selectedLocation", "_goodPos", "_plantsArray", "_plant", "_plantCount", "_scatter", "_plants", "_plantPos", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_decayTime", "_serverSettingsConfig", "_timeMultiplier", "_rEvents","_thisEvent"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; _debug = if(getNumber(_cfgEpoch >> "debugPlantSpawner") isEqualTo 1)then{true}else{false}; diff --git a/Sources/epoch_server_settings/EpochEvents/Satellite.sqf b/Sources/epoch_server_settings/EpochEvents/Satellite.sqf index 5b59919f..79d8b8bd 100644 --- a/Sources/epoch_server_settings/EpochEvents/Satellite.sqf +++ b/Sources/epoch_server_settings/EpochEvents/Satellite.sqf @@ -6,7 +6,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/Satellite.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_satellite","_markers","_playersNearEpicenter","_position","_satellites"]; +private ["_cfgEpoch", "_debug", "_limit", "_counter", "_others", "_distFromOthers", "_position", "_goodPos", "_satellites", "_satellite", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_decayTime", "_serverSettingsConfig", "_timeMultiplier", "_rEvents","_thisEvent"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; _debug = if(getNumber(_cfgEpoch >> "debugSatelliteSpawner") isEqualTo 1)then{true}else{false}; From a6f43e934b6939b74d7b1b8696b75d70acf95344 Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 15 Nov 2017 21:53:14 +0100 Subject: [PATCH 14/94] Make Nuisance by shooting configureable Also reduced it, because it is very high on default --- .../epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf | 2 +- Sources/epoch_code/init/client_init.sqf | 4 ++-- Sources/epoch_config/Configs/CfgEpochClient.hpp | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf index 6ffcd511..e5ad6234 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf @@ -108,7 +108,7 @@ switch true do { }; default { _ammoConfig = (configFile >> "CfgAmmo" >> _ammo); - _nuisanceLevel = ceil(getNumber (_ammoConfig >> "audibleFire") * getNumber (_ammoConfig >> "caliber")); + _nuisanceLevel = ceil ((getNumber (_ammoConfig >> "audibleFire") * getNumber (_ammoConfig >> "caliber"))*Epoch_NuisanceMulti); // reduce when not in a city or town if (EPOCH_nearestLocations isEqualTo[]) then{ _nuisanceLevel = _nuisanceLevel / 2; diff --git a/Sources/epoch_code/init/client_init.sqf b/Sources/epoch_code/init/client_init.sqf index e3dee9e1..ec1049bf 100644 --- a/Sources/epoch_code/init/client_init.sqf +++ b/Sources/epoch_code/init/client_init.sqf @@ -80,8 +80,8 @@ EPOCH_keysActionPressed = false; //prevents EH spam 0 call EPOCH_clientKeyMap; // load some frequently used configs to variables -private _CfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig; -EPOCH_maxBuildingHeight = getNumber(_CfgEpochClient >> "maxBuildingHeight"); +EPOCH_maxBuildingHeight = ["CfgEpochClient", "maxBuildingHeight", 100] call EPOCH_fnc_returnConfigEntryV2; +Epoch_NuisanceMulti = ["CfgEpochClient", "NuisanceMulti", 0.5] call EPOCH_fnc_returnConfigEntryV2; //ON INIT and RESPAWN call EPOCH_clientInit; diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index ff327dc7..96b4d2e1 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -19,6 +19,8 @@ class CfgEpochClient debug = "true"; // true = enable extra rpt debug lines, false to disable antagonistRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 + NuisanceMulti = 0.5; // Multi for Nuisance increase on shooting - higher Nuisance effect at least antagonist spawn change. (0-1, default 0.5) + outOfBoundsRadiation = 10; // how much rads per tick (10sec), when outside play area. radioactiveLocations[] = {"NameCityCapital", "NameCity", "Airport"}; // used for random radioactive locations and to suppress animal spawns within cities. radiatedObjMaxFalloutDist = 125; // max distance radiated object can affect player (number in meters) From 8c955fe4346f174d285723e5a3468602c7c3277f Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 20 Nov 2017 00:00:17 +0100 Subject: [PATCH 15/94] Usage of Epoch_message_stack --- .../epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp index f8a4d85f..ddd62cd0 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp @@ -116,7 +116,7 @@ class base_mode_attach class Drink { condition = "_nearObjects = nearestObjects [player, [], 2];_check = 'water';_ok = false;{if (alive _x) then {_ok = [_x, _check] call EPOCH_worldObjectType;};if (_ok) exitWith {};} forEach _nearObjects;_ok"; - action = "if (currentweapon player == '') then {player playmove 'AinvPknlMstpSnonWnonDnon_Putdown_AmovPknlMstpSnonWnonDnon';}else {if (currentweapon player == handgunweapon player) then {player playmove 'AinvPknlMstpSrasWpstDnon_Putdown_AmovPknlMstpSrasWpstDnon';}else { player playmove 'AinvPknlMstpSrasWrflDnon_Putdown_AmovPknlMstpSrasWrflDnon';};};{_output = _x call EPOCH_giveAttributes;if (_output != '') then {[_output, 5] call Epoch_message;};} foreach [['Toxicity',4,1],['Stamina',10],['Thirst',100]];"; + action = "if (currentweapon player == '') then {player playmove 'AinvPknlMstpSnonWnonDnon_Putdown_AmovPknlMstpSnonWnonDnon';}else {if (currentweapon player == handgunweapon player) then {player playmove 'AinvPknlMstpSrasWpstDnon_Putdown_AmovPknlMstpSrasWpstDnon';}else { player playmove 'AinvPknlMstpSrasWrflDnon_Putdown_AmovPknlMstpSrasWrflDnon';};};{_output = _x call EPOCH_giveAttributes;if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Toxicity',4,1],['Stamina',10],['Thirst',100]];"; icon = "x\addons\a3_epoch_code\Data\UI\buttons\Drink.paa"; tooltip = "Drink"; }; From 5be86214c609277d88d402e9d40c82b578130f8f Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 20 Nov 2017 09:06:29 -0600 Subject: [PATCH 16/94] use default passwords --- Server_Install_Pack/@epochhive/EpochServer.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Server_Install_Pack/@epochhive/EpochServer.ini b/Server_Install_Pack/@epochhive/EpochServer.ini index 70586730..88d18cf6 100644 --- a/Server_Install_Pack/@epochhive/EpochServer.ini +++ b/Server_Install_Pack/@epochhive/EpochServer.ini @@ -5,13 +5,13 @@ LogAbuse = 1 LogLimit = 999 IP = 127.0.0.1 Port = 2306 -Password = changeme +Password = changemen0w [Redis] IP = 127.0.0.1 Port = 6379 DB = 0 -Password = foobared +Password = Changeme9832 [SteamAPI] Logging = 0 From 1085060421c52255320ca9a3ef7fa06a46b3b26e Mon Sep 17 00:00:00 2001 From: SirDice Date: Mon, 20 Nov 2017 21:31:53 +0100 Subject: [PATCH 17/94] Missed variable rename _showBoatMarkers was replaced with _showMarkers with commit bd3e331 but one was forgotten. --- .../compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf index 445d0717..a7aac746 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf @@ -78,11 +78,11 @@ if (getNumber(_cfgEpoch >> "shipwreckLootEnabled") isEqualTo 1) then { }; _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; - _thisEvent = [_position, [_item], [], "shipwreckCounter", diag_tickTime, 99999, _showBoatMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + _thisEvent = [_position, [_item], [], "shipwreckCounter", diag_tickTime, 99999, _showMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; }; }; if(_debug)then{ diag_log format["EPOCHDebug: Safely spawned %1 loot container(s) at these shipwreck locations:%2",count _spawnedLoot , _spawnedLoot]; }; -}; \ No newline at end of file +}; From 8a452e639415f2bf90230f2133b36c0239e7d740 Mon Sep 17 00:00:00 2001 From: He-Man Date: Fri, 24 Nov 2017 19:30:44 +0100 Subject: [PATCH 18/94] Prevent Basebuilding Storages from Auto-Cleanup --- Sources/epoch_server/system/server_monitor.fsm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server/system/server_monitor.fsm b/Sources/epoch_server/system/server_monitor.fsm index 671dee37..aeecc828 100644 --- a/Sources/epoch_server/system/server_monitor.fsm +++ b/Sources/epoch_server/system/server_monitor.fsm @@ -171,7 +171,7 @@ class FSM " if (_list isEqualTo []) then {" \n " {" \n " deleteVehicle _x;" \n - " }forEach nearestObjects[_this, [""WeaponHolder""], 2];" \n + " }forEach ((nearestObjects [_this, [""WeaponHolder""], 2]) select {!(_x iskindof ""Constructions_lockedstatic_F"" || _x iskindof ""Buildable_Storage"")});" \n " _this setVariable [""LAST_CHECK"",nil];" \n " //diag_log format[""DEBUG: _cleanIT2 del %1"", _this];" \n " deleteVehicle _this;" \n From 165ea3ccd53b4f9575d70b252b98a0227a649404 Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 27 Nov 2017 21:55:56 +0100 Subject: [PATCH 19/94] Adv. Veh. Repair effected Veh. Upgrade --- .../Configs/CfgActionMenu/CfgActionMenu_target.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp index 7f9680e1..f9272048 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp @@ -163,13 +163,13 @@ class pack_safe class VehMaintanance { - condition = "dyna_isVehicle && !EPOCH_Vehicle_MaintainLock && EPOCH_AdvancedVehicleRepair_Enabled"; + condition = "dyna_isVehicle && !EPOCH_Vehicle_MaintainLock"; action = "dyna_cursorTarget call EPOCH_client_VehicleMaintananceCheck;"; icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_man.paa"; tooltip = "Vehicle Maintanance"; class Repair { - condition = "!((EPOCH_VehicleRepairs select 0) isequalto []) || !((EPOCH_VehicleRepairs select 2) isequalto [])"; + condition = "(!((EPOCH_VehicleRepairs select 0) isequalto []) || !((EPOCH_VehicleRepairs select 2) isequalto [])) && EPOCH_AdvancedVehicleRepair_Enabled"; action = ""; icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa"; tooltip = "Repair Vehicle"; @@ -393,7 +393,7 @@ class VehMaintanance }; class Remove { - condition = "!((EPOCH_VehicleRepairs select 1) isequalto [])"; + condition = "!((EPOCH_VehicleRepairs select 1) isequalto []) && EPOCH_AdvancedVehicleRepair_Enabled"; action = ""; icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa"; tooltip = "Remove Parts"; From f58231133106ca97978544c528821d3a7cbdd1b4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Mon, 27 Nov 2017 18:05:31 -0600 Subject: [PATCH 20/94] add optional entries in props array add dyn sim, allow dmg and set dmg --- .../EPOCH_server_createTeleport.sqf | 32 ++++++++++--------- Sources/epoch_server_settings/config.cpp | 17 +++++++++- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf index 078fc706..10bcc469 100644 --- a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf @@ -81,30 +81,32 @@ if !(_debugBox isEqualTo "") then { // spawn area props { - _class = _x select 0; - _pos = _x select 1; - _dir = _x select 2; - - _deSimulate = _class isKindOf "ThingX"; - if (count _x >= 4) then { - _deSimulate = (_x select 3) isEqualTo "true"; - }; + _x params [ + ["_class",""], + ["_pos",[0,0,0]], + ["_dir",0], + ["_disableSim","true"], + ["_dynSim","false"], + ["_allowDmg","false"], + ["_dmg",0] + ]; _ep = createVehicle[_class, _pos, [], 0, "CAN_COLLIDE"]; - - _ep allowDamage false; + _ep setposATL _pos; if (_dir isEqualType []) then{ - _ep setposATL _pos; _ep setVectorDirAndUp _dir; } else { - _ep setposATL _pos; _ep setDir _dir; }; - - if (_deSimulate) then{ + _deSimulate = _class isKindOf "ThingX"; + if((_deSimulate) || (_disableSim isEqualTo "true"))then{ _ep enableSimulationGlobal false; }; - + if(["CfgDynamicSimulation", "enableDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then{ + _ep enableDynamicSimulation (_dynSim isEqualTo "true"); + }; + _ep allowDamage (_allowDmg isEqualTo "true"); + _ep setDamage (_dmg min 0.75); } forEach(getArray(_configWorld >> "propsPos")); { diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 9ec4313a..e7dbdb3b 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -151,7 +151,22 @@ class CfgEpoch satelliteCompromisedColor = "ColorRed"; availableSatellites[] = {"Land_Wreck_Satellite_EPOCH"}; - propsPos[] = {}; + propsPos[] = { + // Will accept several variations of this entry to place objects on the map + // _className - STRING - Class name of the object to spawn + // _position - ARRAY - posATL of the object placement + // _direction - NUMBER or ARRAY - Accepts direction 0-360 or accepts Vector Direction and UP array + // _deSimulate - BOOLEAN - Turns simulation off at spawn to save on performance + // _dynamicSimulation(OPTIONAL) - BOOLEAN - Add the object to arma3 dynamic sim system + // _destruction(OPTIONAL) - BOOLEAN - Setting this to true will allow damage to the object + // _damage(OPTIONAL) - NUMBER - Preset damage limited to maximum 0.75 (75% damaged) + + // EXAMPLES: + // {_classname, _position, _direction, _deSimulate, _dynamicSimulation, _destruction, _damage}, + // 1 {"Land_MarketShelter_F", { 13315.3, 14512.4, 0.0361125 }, 119.966, true}, + // 2 {"Land_MarketShelter_F", { 13315.3, 14512.4, 0.0361125 }, {{0,0,0},{0,0,1}}, true}, + // 3 {"Land_MarketShelter_F", { 13315.3, 14512.4, 0.0361125 }, {{0,0,0},{0,0,1}}, true, true, false, 0}, + }; staticNpcPos[] = {}; forcedVehicleSpawnTable = ""; forcedLootSpawnTable = ""; From 8ab05047e9e6f114d458ca916f4b8bf75658db7b Mon Sep 17 00:00:00 2001 From: He-Man Date: Thu, 30 Nov 2017 22:59:29 +0100 Subject: [PATCH 21/94] Simulation tweaks - Added an option to completely disable Simulation for specific Base Parts. - Added Base Parts without animations to this array. - Removed Base Objects Init (mpAddEventhandler "mpKilled") from indestructible Base Objects, as it is not needed. - Moved Dynamicsimulation server side (not needed client side) - Resorted epochonfig.hpp All changes are running on our Server without any problems and with a good performance boost, as the dynamicsimulationhandler has not to handle a few thousand objects anymore --- .../@epochhive/epochconfig.hpp | 226 ++++++++++-------- Sources/epoch_code/init/both_init.sqf | 15 +- .../Configs/CfgDynamicSimulation.hpp | 17 -- Sources/epoch_config/sandbox_config.hpp | 1 - .../EPOCH_server_loadBuildings.sqf | 32 ++- .../epoch_bases/EPOCH_server_saveBuilding.sqf | 31 +-- .../epoch_bases/EPOCH_server_simulSwap.sqf | 6 +- .../epoch_bases/EPOCH_server_upgradeBUILD.sqf | 4 +- .../epoch_bases/EPOCH_swapBuilding.sqf | 41 +++- .../epoch_player/EPOCH_server_loadPlayer.sqf | 2 +- .../EPOCH_server_revivePlayer.sqf | 2 +- .../EPOCH_server_createTeleport.sqf | 2 +- .../epoch_vehicle/EPOCH_load_vehicles.sqf | 3 +- .../EPOCH_server_upgrade_vehicle.sqf | 2 +- .../epoch_vehicle/EPOCH_spawn_vehicle.sqf | 2 +- Sources/epoch_server/init/server_init.sqf | 12 +- 16 files changed, 217 insertions(+), 181 deletions(-) delete mode 100644 Sources/epoch_config/Configs/CfgDynamicSimulation.hpp diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index a1be095f..c1f2228a 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -1,123 +1,153 @@ -serverRestart = "false"; // true sends #shutdown command to server after the time specified in ForceRestartTime -forceRestartTime = 14400; // 4 hour restarts - -StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the number lower performance. -BuildingSlotsLimit = 1500; // Max building slots allowed. Warning! Higher the number lower performance. +serverRestart = "false"; // true sends #shutdown command to server after the time specified in ForceRestartTime +forceRestartTime = 14400; // 4 hour restarts // Time based -StaticDateTime[] = {}; // {0,0,0,8,0} would forces the server to start at 8am each time it is started while allowing the year, month and day to stay real time. Any values left at 0 will result in no change. -timeDifference = 0; // Server uses real time this will allow you to offset just the hour. -timeMultiplier = 4; // Sets a time multiplier for in-game time. The command range is now capped at 0.1 - 120 to avoid performance problems. -lootMultiplier = 0.5; // 1 = max loot bias. This controls how much loot can payout per Epoch loot container. + StaticDateTime[] = {}; // {0,0,0,8,0} would forces the server to start at 8am each time it is started while allowing the year, month and day to stay real time. Any values left at 0 will result in no change. + timeDifference = 0; // Server uses real time this will allow you to offset just the hour. + timeMultiplier = 4; // Sets a time multiplier for in-game time. The command range is now capped at 0.1 - 120 to avoid performance problems. + lootMultiplier = 0.5; // 1 = max loot bias. This controls how much loot can payout per Epoch loot container. + // Events -WeatherStaticForecast[] = {}; // Default: {75.5,0,{0,0,0},0,{1,1}}; // Clear day; {19,1,{1,1,40},1,{5,5}}; // Cold Foggy Rainy Overcast Windy; Format: {temp ,rain ,fog ,overcast ,wind } -events[] = { - { 3600, "CarnivalSpawner", 0 , 1, -1, {} ,{"VR"}}, // SECOND , EVENT , INIT 1 = run script at startup or 0 normal delay, PREPOSTFIX 1 = use pre/postfix path (inside epoch settings pbo) 0 = use full file path, RUNNUMTIMES -1 infinite, execVM payload , disallowed worlds - // { 1800, "PaydayEvent", 0, 1}, - // { 1200, "MessageServer", 0, 1}, - { 2700, "AirDrop", 0 , 1, -1, {} ,{"VR"}}, - { 2400, "EarthQuake", 0 , 1, -1, {} ,{"VR"}}, - { 2700, "Satellite", 0 , 1, -1, {} ,{"VR"}}, - { 900, "ChangeWeather", 1 , 1, -1, {} ,{"VR"}}, - { 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}}, - { 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}}, - { 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry -}; + WeatherStaticForecast[] = {}; // Default: {75.5,0,{0,0,0},0,{1,1}}; // Clear day; {19,1,{1,1,40},1,{5,5}}; // Cold Foggy Rainy Overcast Windy; Format: {temp ,rain ,fog ,overcast ,wind } + events[] = { + { 3600, "CarnivalSpawner", 0 , 1, -1, {} ,{"VR"}}, // SECOND , EVENT , INIT 1 = run script at startup or 0 normal delay, PREPOSTFIX 1 = use pre/postfix path (inside epoch settings pbo) 0 = use full file path, RUNNUMTIMES -1 infinite, execVM payload , disallowed worlds + // { 1800, "PaydayEvent", 0, 1}, + // { 1200, "MessageServer", 0, 1}, + { 2700, "AirDrop", 0 , 1, -1, {} ,{"VR"}}, + { 2400, "EarthQuake", 0 , 1, -1, {} ,{"VR"}}, + { 2700, "Satellite", 0 , 1, -1, {} ,{"VR"}}, + { 900, "ChangeWeather", 1 , 1, -1, {} ,{"VR"}}, + { 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}}, + { 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}}, + { 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry + }; // Antagonists -antagonistChancePDeath = 0.33; //33% chance when player was killed from a other player (selfkill doesn't count) + antagonistChancePDeath = 0.33; //33% chance when player was killed from a other player (selfkill doesn't count) // Player Related -cloneCost = 100; // debt incurred on player death -MaxBankDebitforTrade = -50000; // If Player has less money on Bank, Crypto from Trade goes directly to Bank instead to Player + cloneCost = 100; // debt incurred on player death + MaxBankDebitforTrade = -50000; // If Player has less money on Bank, Crypto from Trade goes directly to Bank instead to Player // Default Loadout -defaultUniformFemale = "U_Test_uniform"; -defaultVestFemale = "V_F41_EPOCH"; -defaultUniformMale = "U_Test1_uniform"; -defaultVestMale = "V_41_EPOCH"; -defaultGoggles = ""; -defaultHeadgear = ""; -defaultBackpack = ""; -defaultprimaryWeapon[] = {}; // {"arifle_MX_pointer_F","","acc_pointer_IR","",{"30Rnd_65x39_caseless_mag",29},{},""}; -defaultsecondaryWeapon[] = {}; // {"launch_NLAW_F","","","",{"NLAW_F",1},{},""}; -defaulthandgunWeapon[] = {}; // {"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""}; -defaultuniformItems[] = {}; // {{"FAK",1},{"30Rnd_65x39_caseless_mag",2,30},{"Chemlight_green",1,1}}; -defaultvestItems[] = {}; // {{"30Rnd_65x39_caseless_mag",3,30},{"16Rnd_9x21_Mag",2,16},{"SmokeShell",1,1},{"SmokeShellGreen",1,1},{"SmokeShellBlue",1,1},{"SmokeShellOrange",1,1},{"Chemlight_green",1,1}}; -defaultbackpackItems[] = {}; // {{"Medikit",1},{"FAK",10},{{"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""},1}}; -defaultassignedItems[] = {}; // {"Rangefinder","","","",{},{},""} -defaultlinkedItems[] = { - "ItemMap", // "ItemMap" - "", // "ItemGPS" or "ItemGeigerCounter_EPOCH", - "EpochRadio0", // "EpochRadio0" through "EpochRadio9" - "", // "ItemCompass" - "", // "ItemWatch" - "" // "NVG_EPOCH" or "radiation_mask_epoch" -}; + defaultUniformFemale = "U_Test_uniform"; + defaultVestFemale = "V_F41_EPOCH"; + defaultUniformMale = "U_Test1_uniform"; + defaultVestMale = "V_41_EPOCH"; + defaultGoggles = ""; + defaultHeadgear = ""; + defaultBackpack = ""; + defaultprimaryWeapon[] = {}; // {"arifle_MX_pointer_F","","acc_pointer_IR","",{"30Rnd_65x39_caseless_mag",29},{},""}; + defaultsecondaryWeapon[] = {}; // {"launch_NLAW_F","","","",{"NLAW_F",1},{},""}; + defaulthandgunWeapon[] = {}; // {"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""}; + defaultuniformItems[] = {}; // {{"FAK",1},{"30Rnd_65x39_caseless_mag",2,30},{"Chemlight_green",1,1}}; + defaultvestItems[] = {}; // {{"30Rnd_65x39_caseless_mag",3,30},{"16Rnd_9x21_Mag",2,16},{"SmokeShell",1,1},{"SmokeShellGreen",1,1},{"SmokeShellBlue",1,1},{"SmokeShellOrange",1,1},{"Chemlight_green",1,1}}; + defaultbackpackItems[] = {}; // {{"Medikit",1},{"FAK",10},{{"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""},1}}; + defaultassignedItems[] = {}; // {"Rangefinder","","","",{},{},""} + defaultlinkedItems[] = { + "ItemMap", // "ItemMap" + "", // "ItemGPS" or "ItemGeigerCounter_EPOCH", + "EpochRadio0", // "EpochRadio0" through "EpochRadio9" + "", // "ItemCompass" + "", // "ItemWatch" + "" // "NVG_EPOCH" or "radiation_mask_epoch" + }; // vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance. -disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup. -simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps. -vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle. -VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked -removevehweapons[] = { // remove these Weapons from spawned Vehicles - "missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F", - "Rocket_03_AP_Plane_CAS_02_F","Bomb_03_Plane_CAS_02_F","Bomb_04_Plane_CAS_01_F","Rocket_04_AP_Plane_CAS_01_F","Rocket_04_HE_Plane_CAS_01_F","Missile_AGM_02_Plane_CAS_01_F","Missile_AA_04_Plane_CAS_01_F", - "Gatling_30mm_Plane_CAS_01_F","GBU12BombLauncher_Plane_Fighter_03_F","missiles_ASRAAM","missiles_SCALPEL","Twin_Cannon_20mm","missiles_Zephyr","rockets_skyfire","gatling_30mm_vtol_02" -}; -removevehmagazinesturret[] = { // Remove these Magazines from the given Turret from spawned Vehicles - {"24Rnd_missiles",{-1}}, - {"200Rnd_40mm_G_belt",{0}} -}; -disableVehicleTIE = "true"; + disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup. + simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps. + vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle. + VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked + removevehweapons[] = { // remove these Weapons from spawned Vehicles + "missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F", + "Rocket_03_AP_Plane_CAS_02_F","Bomb_03_Plane_CAS_02_F","Bomb_04_Plane_CAS_01_F","Rocket_04_AP_Plane_CAS_01_F","Rocket_04_HE_Plane_CAS_01_F","Missile_AGM_02_Plane_CAS_01_F","Missile_AA_04_Plane_CAS_01_F", + "Gatling_30mm_Plane_CAS_01_F","GBU12BombLauncher_Plane_Fighter_03_F","missiles_ASRAAM","missiles_SCALPEL","Twin_Cannon_20mm","missiles_Zephyr","rockets_skyfire","gatling_30mm_vtol_02" + }; + removevehmagazinesturret[] = { // Remove these Magazines from the given Turret from spawned Vehicles + {"24Rnd_missiles",{-1}}, + {"200Rnd_40mm_G_belt",{0}} + }; + disableVehicleTIE = "true"; // BaseBuilding -UseIndestructible = "false"; // Enable / Disable Indestructible BaseObjects -IndestructibleBaseObjects[] = { // Can be Names or Classes - "Constructions_static_F", - "Buildable_Storage", - "PlotPole_EPOCH", - "LockBox_EPOCH", - "Safe_EPOCH" - }; -ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of IndestructibleBaseObjects - "CinderWallGarage_EPOCH", - "WoodLargeWallDoorL_EPOCH", - "WoodLargeWallDoor_EPOCH", - "WoodWall4_EPOCH" + StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the number lower performance. + BuildingSlotsLimit = 1500; // Max building slots allowed. Warning! Higher the number lower performance. + UseIndestructible = "false"; // Enable / Disable Indestructible BaseObjects + IndestructibleBaseObjects[] = { // Can be Names or Classes + "Constructions_static_F", + "Buildable_Storage", + "PlotPole_EPOCH", + "LockBox_EPOCH", + "Safe_EPOCH" + }; + ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of IndestructibleBaseObjects + "CinderWallGarage_EPOCH", + "WoodLargeWallDoorL_EPOCH", + "WoodLargeWallDoor_EPOCH", + "WoodWall4_EPOCH" + }; + UseDeSimulateObjects = "true"; // Disable Simulation for specifed Base Objects + DeSimulateObjects[] = { // Base Objects to disable Simulation. Can be Names or Classes + "PlotPole_EPOCH", + "WoodFoundation_EPOCH","Foundation_EPOCH", + "WoodQuarterFloor_EPOCH","WoodHalfFloor_EPOCH","WoodFloor_EPOCH", + "MetalQuarterFloor_EPOCH","MetalHalfFloor_EPOCH","MetalFloor_EPOCH", + "CinderQuarterFloor_EPOCH","CinderHalfFloor_EPOCH","CinderFloor_EPOCH", + "WoodLargeWall_EPOCH","WoodLargeWallDoorway_EPOCH","WoodLargeWallCor_EPOCH","WoodWall1_EPOCH","WoodWall2_EPOCH","WoodWallWindow_EPOCH", + "CinderWallHalf_EPOCH","CinderWall_EPOCH", + "WoodRamp_EPOCH","WoodStairs_EPOCH","WoodStairs2_EPOCH", + "SolarGen_EPOCH","SandbagWall_EPOCH","BarbedWire_EPOCH","Sink_EPOCH","BagBunker_EPOCH","WaterPump_EPOCH","Scaffolding_EPOCH","SunShade_EPOCH","WatchTower_EPOCH","SandbagWallLong_EPOCH","TankTrap_EPOCH" + }; + ExceptedDeSymObjects[] = { // Not Desymulated, also if in a Class of DeSimulateObjects }; +// Dynamic Simulation System + enableDynamicSimulationSystem = "true"; // enable / disable the complete dynamic simulation system + //Individual toggles for testing + vehicleDynamicSimulationSystem = "true"; // type car, air, boat + playerDynamicSimulationSystem = "true"; // clients + baseDynamicSimulationSystem = "true"; // plot pole and base pieces + // Distances and Coef + isMovingCoefValue = 2; + groupDynSimDistance = 500; + vehicleDynSimDistance = 350; + emptyVehicleDynSimDistance = 250; + propDynSimDistance = 50; + // Traders -taxRate = 0.1; // controls the price increase for purchases -starterTraderItems[] = { { "ItemSodaBurst", "meatballs_epoch", "MortarBucket", "CinderBlocks", "VehicleRepair", "CircuitParts", "ItemCorrugated", "PartPlankPack", "ItemRock", "ItemRope", "ItemStick" }, { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 } }; // Starter Items for fresh spawned trader first array is classnames second is quantity. -NPCSlotsLimit = 30; // Max number of traders static or dynamic. Warning! Higher the number lower performance. -forceStaticTraders = "true"; // disables traders moving from work to home + taxRate = 0.1; // controls the price increase for purchases + starterTraderItems[] = { // Starter Items for fresh spawned trader first array is classnames second is quantity. + {"ItemSodaBurst","meatballs_epoch","MortarBucket","CinderBlocks","VehicleRepair","CircuitParts","ItemCorrugated","PartPlankPack","ItemRock","ItemRope","ItemStick"}, + {5,5,5,5,5,5,5,5,5,5,5} + }; + NPCSlotsLimit = 30; // Max number of traders static or dynamic. Warning! Higher the number lower performance. + forceStaticTraders = "true"; // disables traders moving from work to home -forcedVehicleSpawnTable = ""; // leave blank for default. Options: "allowedVehiclesList","allowedVehiclesList_CUP","allowedVehiclesList_MAD","allowedVehiclesList_MADCUP" -forcedLootSpawnTable = ""; // leave blank for default. Options: "CfgLootTable","CfgLootTable_CUP","CfgLootTable_MAD","CfgLootTable_MADCUP" + forcedVehicleSpawnTable = ""; // leave blank for default. Options: "allowedVehiclesList","allowedVehiclesList_CUP","allowedVehiclesList_MAD","allowedVehiclesList_MADCUP" + forcedLootSpawnTable = ""; // leave blank for default. Options: "CfgLootTable","CfgLootTable_CUP","CfgLootTable_MAD","CfgLootTable_MADCUP" // Markers -showEarthQuakes = "true"; // show mineral viens caused by earthquakes -showSatellites = "true"; // show crashed Satellites -showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival) -SHOW_TRADERS = "true"; // Show locations of traders -SHOW_JAMMERS = "false"; // Shows location of base jammers -SHOW_BOATLOOT = "true"; // Shows the location of shipwreck loot -DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles + showEarthQuakes = "true"; // show mineral viens caused by earthquakes + showSatellites = "true"; // show crashed Satellites + showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival) + SHOW_TRADERS = "true"; // Show locations of traders + SHOW_JAMMERS = "false"; // Shows location of base jammers + SHOW_BOATLOOT = "true"; // Shows the location of shipwreck loot + DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles // Hive Related -expiresBuilding = "604800"; // expiration date in seconds for buildings -expiresPlayer = "2592000"; // expiration date in seconds for players -expiresBank = "7776000"; // expiration date in seconds for players bank -expiresVehicle = "604800"; // expiration date in seconds for vehicles -expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory -expiresCommunityStats = "7776000"; // expiration date in seconds for players community stats + expiresBuilding = "604800"; // expiration date in seconds for buildings + expiresPlayer = "2592000"; // expiration date in seconds for players + expiresBank = "7776000"; // expiration date in seconds for players bank + expiresVehicle = "604800"; // expiration date in seconds for vehicles + expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory + expiresCommunityStats = "7776000"; // expiration date in seconds for players community stats // Admin Features -hiveAdminCmdExec = "false"; // true = enables extra (To Be Released) feature to allow execution of code via hive. -hiveAdminSavePlayerList = "true"; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID. -hiveAdminCmdTime = 5; // how many seconds between each command queue call. + hiveAdminCmdExec = "false"; // true = enables extra (To Be Released) feature to allow execution of code via hive. + hiveAdminSavePlayerList = "true"; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID. + hiveAdminCmdTime = 5; // how many seconds between each command queue call. // DEBUG -useOldLoadVehicles = "false"; -enableUnitTestOnStart = 1; // enable extra debug for database calls. 1 = enabled. + useOldLoadVehicles = "false"; + enableUnitTestOnStart = 1; // enable extra debug for database calls. 1 = enabled. diff --git a/Sources/epoch_code/init/both_init.sqf b/Sources/epoch_code/init/both_init.sqf index 50094a96..eb161e1a 100644 --- a/Sources/epoch_code/init/both_init.sqf +++ b/Sources/epoch_code/init/both_init.sqf @@ -13,7 +13,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/init/both_init.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cfgDynamicSimulation","_communityStatsInit","_customVarsInit","_dynSimToggle"]; +private ["_communityStatsInit","_customVarsInit","_dynSimToggle"]; //[[[end]]] // Check if Advanced Vehicle Repair is enabled @@ -71,16 +71,3 @@ EPOCH_group_upgrade_lvl = ["CfgEpochClient", "group_upgrade_lvl", [4,"100",6,"30 // disable remote sensors on server and client as all Epoch AI is local to the side controlling it. disableRemoteSensors (["CfgEpochClient", "disableRemoteSensors", true] call EPOCH_fnc_returnConfigEntryV2); -// Enable Dynamic simulation on both server and clients (maybe only needed server side) -// DynSim is handled locally and yes server and clients will need these configurations -_dynSimToggle = ["CfgDynamicSimulation", "enableDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2; -enableDynamicSimulationSystem _dynSimToggle; -if(_dynSimToggle)then -{ - _cfgDynamicSimulation = 'CfgDynamicSimulation' call EPOCH_returnConfig; - "IsMoving" setDynamicSimulationDistanceCoef getNumber(_cfgDynamicSimulation >> "isMovingCoefValue"); - "Group" setDynamicSimulationDistance getNumber(_cfgDynamicSimulation >> "groupDynSimDistance"); - "Vehicle" setDynamicSimulationDistance getNumber(_cfgDynamicSimulation >> "vehicleDynSimDistance"); - "EmptyVehicle" setDynamicSimulationDistance getNumber(_cfgDynamicSimulation >> "emptyVehicleDynSimDistance"); - "Prop" setDynamicSimulationDistance getNumber(_cfgDynamicSimulation >> "propDynSimDistance"); -}; diff --git a/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp b/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp deleted file mode 100644 index 268d8ef4..00000000 --- a/Sources/epoch_config/Configs/CfgDynamicSimulation.hpp +++ /dev/null @@ -1,17 +0,0 @@ -class CfgDynamicSimulation -{ - //If this is false none of the below settings matter - enableDynamicSimulationSystem = true; - - //Individual toggles for testing - vehicleDynamicSimulationSystem = true; // type car, air, boat - playerDynamicSimulationSystem = true; // clients - baseDynamicSimulationSystem = true; // plot pole and base pieces - - // Distances and Coef - isMovingCoefValue = 3; - groupDynSimDistance = 1600; - vehicleDynSimDistance = 1600; - emptyVehicleDynSimDistance = 1600; - propDynSimDistance = 1600; -}; diff --git a/Sources/epoch_config/sandbox_config.hpp b/Sources/epoch_config/sandbox_config.hpp index d9da3aa9..90637cc1 100644 --- a/Sources/epoch_config/sandbox_config.hpp +++ b/Sources/epoch_config/sandbox_config.hpp @@ -88,7 +88,6 @@ showHUD[] = #include "Configs\CfgSwitchMovehandler.hpp" #include "Configs\CfgVehicleUpgrades.hpp" #include "Configs\CfgReadingDocuments.hpp" -#include "Configs\CfgDynamicSimulation.hpp" #include "Configs\CfgMarkerSets.hpp" // A3 specific configs diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf index 729994ee..6c24d02d 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf @@ -13,13 +13,17 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_ExceptedBaseObjects","_IndestructibleBaseObjects","_UseIndestructible","_VAL","_ammoClass","_ammoObj","_anims","_animsData","_arr","_arrCount","_baseObj","_buildingJammerRange","_cfgBaseBuilding","_cfgEpochClient","_class","_color","_damage","_location","_marker","_maxTTL","_owner","_response","_serverSettingsConfig","_storageSlot","_textureSlot","_ttl","_vehHiveKey","_worldspace"]; +private ["_Simulated","_DamageAllowed","_ExceptedBaseObjects","_IndestructibleBaseObjects","_UseIndestructible","_VAL","_ammoClass","_ammoObj","_anims","_animsData","_arr","_arrCount","_baseObj","_buildingJammerRange","_cfgBaseBuilding","_cfgEpochClient","_class","_color","_damage","_location","_marker","_maxTTL","_owner","_response","_serverSettingsConfig","_storageSlot","_textureSlot","_ttl","_vehHiveKey","_worldspace"]; //[[[end]]] _maxTTL = parseNumber EPOCH_expiresBuilding; _serverSettingsConfig = configFile >> "CfgEpochServer"; +_baseDynamicSimulationSystem = [_serverSettingsConfig, "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry; _UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry; _IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry; _ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry; +_UseDeSimulateObjects = [_serverSettingsConfig, "UseDeSimulateObjects", true] call EPOCH_fnc_returnConfigEntry; +_DeSimulateObjects = [_serverSettingsConfig, "DeSimulateObjects", []] call EPOCH_fnc_returnConfigEntry; +_ExceptedDeSymObjects = [_serverSettingsConfig, "ExceptedDeSymObjects", []] call EPOCH_fnc_returnConfigEntry; _cfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig; _cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig; _buildingJammerRange = getNumber(_cfgEpochClient >> "buildingJammerRange"); @@ -30,6 +34,8 @@ _VAL = ["", [], "", "", 0, []]; for "_i" from 0 to _this do { _vehHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID),_i]; _response = ["Building", _vehHiveKey] call EPOCH_fnc_server_hiveGETTTL; + _Simulated = true; + _DamageAllowed = true; if ((_response select 0) == 1 && (_response select 1) isEqualType [] && !((_response select 1) isEqualTo [])) then { _arr = _response select 1; @@ -81,20 +87,30 @@ for "_i" from 0 to _this do { _baseObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; if (_UseIndestructible) then { - if ({_baseObj iskindof _x} count _ExceptedBaseObjects == 0) then { + if ({_class iskindof _x} count _ExceptedBaseObjects == 0) then { { - if (_baseObj iskindof _x) exitwith { + if (_class iskindof _x) exitwith { _baseObj allowdamage false; + _DamageAllowed = false; }; } foreach _IndestructibleBaseObjects; }; }; + if (_UseDeSimulateObjects) then { + if ({_class iskindof _x} count _ExceptedDeSymObjects == 0) then { + { + if (_class iskindof _x) exitwith { + _baseObj enablesimulationglobal false; + _Simulated = false; + }; + } foreach _DeSimulateObjects; + }; + }; _baseObj setposATL _location; _baseObj setVectorDirAndUp _worldspace; - // new Dynamicsimulation - if(["CfgDynamicSimulation", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then - { + if (_Simulated && _baseDynamicSimulationSystem) then { // Only needed, if simulation is not disabled + // new Dynamicsimulation _baseObj enableSimulationGlobal false; // turn off sim on server start, let dynSim activate it to true _baseObj enableDynamicSimulation true; _baseObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server @@ -138,7 +154,9 @@ for "_i" from 0 to _this do { }; _baseObj setDamage _damage; - _baseObj call EPOCH_server_buildingInit; + if (_DamageAllowed) then { // Only needed, if damage is allowed + _baseObj call EPOCH_server_buildingInit; + }; _baseObj setVariable ["BUILD_SLOT", _i, true]; if (_owner != "-1") then { diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf index fa7237ee..36d97aa4 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf @@ -13,7 +13,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_ExceptedBaseObjects","_IndestructibleBaseObjects","_UseIndestructible","_cfgBaseBuilding","_findnextslot","_newVehicle","_objSlot","_oemType","_playerUID","_serverSettingsConfig","_slot","_staticClass","_staticClassConfig","_storageObj","_vehiclePos"]; +private ["_cfgBaseBuilding","_findnextslot","_newVehicle","_objSlot","_oemType","_playerUID","_serverSettingsConfig","_slot","_staticClass","_staticClassConfig","_storageObj","_vehiclePos"]; //[[[end]]] params ["_vehicle", "_player", ["_token","",[""]] ]; @@ -25,10 +25,6 @@ _playerUID = getPlayerUID _player; if (!isNull ropeAttachedTo _vehicle) exitWith{}; _oemType = typeOf _vehicle; -_serverSettingsConfig = configFile >> "CfgEpochServer"; -_UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry; -_IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry; -_ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry; _cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig; _staticClassConfig = (_cfgBaseBuilding >> _oemType >> "staticClass"); if (isText _staticClassConfig) then { @@ -51,16 +47,6 @@ if (isText _staticClassConfig) then { EPOCH_activeGardens pushBackUnique _storageObj; }; - if (_UseIndestructible) then { - if ({_storageObj iskindof _x} count _ExceptedBaseObjects == 0) then { - { - if (_storageObj iskindof _x) exitwith { - _storageObj allowdamage false; - }; - } foreach _IndestructibleBaseObjects; - }; - }; - if (getNumber(_cfgBaseBuilding >> _staticClass >> "isSecureStorage") == 1) then{ _storageObj setVariable["EPOCH_Locked", false, true]; }; @@ -70,8 +56,9 @@ if (isText _staticClassConfig) then { _storageObj setVariable["STORAGE_SLOT", _slot, true]; _storageObj call EPOCH_server_save_storage; - _storageObj call EPOCH_server_storageInit; - + if (isDamageAllowed _storageObj) then { // Only needed, if damage is allowed + _storageObj call EPOCH_server_storageInit; + }; diag_log format["Epoch: STORAGE: %1 created storage %2 at %3 with slot %4", _playerUID, _staticClass, _vehiclePos, _slot]; }; @@ -95,16 +82,6 @@ if (isText _staticClassConfig) then { if (_objSlot != -1) then { _newVehicle = [_vehicle, false] call EPOCH_server_simulSwap; - if (_UseIndestructible) then { - if ({_newVehicle iskindof _x} count _ExceptedBaseObjects == 0) then { - { - if (_newVehicle iskindof _x) exitwith { - _newVehicle allowdamage false; - }; - } foreach _IndestructibleBaseObjects; - }; - }; - _newVehicle setVariable["BUILD_OWNER", _playerUID, true]; _newVehicle call EPOCH_saveBuilding; }; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf index 91988f24..89c6b2cd 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf @@ -35,12 +35,12 @@ if (_objSlot != -1) then { _textureSlot = _object getVariable["TEXTURE_SLOT", 0]; _damage = damage _object; - //_worldspace = [getposATL _object,vectordir _object,vectorup _object]; - //_newObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _newObj = [_class,_object] call EPOCH_swapBuilding; _newObj setVariable ["BUILD_SLOT",_objSlot,true]; - _newObj call EPOCH_server_buildingInit; + if (isDamageAllowed _newObj) then { // Only needed, if damage is allowed + _newObj call EPOCH_server_buildingInit; + }; if (_textureSlot != 0) then { // get texture path from index diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf index 9d7fb5f7..767ea248 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf @@ -29,7 +29,9 @@ if (_objSlot != -1) then { _class = _upgrade select 0; _newObj = [_class,_object] call EPOCH_swapBuilding; _newObj setVariable ["BUILD_SLOT",_objSlot,true]; - _newObj call EPOCH_server_buildingInit; + if (isDamageAllowed _newObj) then { // Only needed, if damage is allowed + _newObj call EPOCH_server_buildingInit; + }; _newObj call EPOCH_saveBuilding; }; } else { diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf index dbcfb0b2..7c78b309 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf @@ -10,13 +10,42 @@ if (!isNull _object && !(_class isEqualTo "")) then { if (!isNull _newObj) then { _object hideObjectGlobal true; - // new Dynamicsimulation - if(["CfgDynamicSimulation", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then - { - _newObj enableDynamicSimulation true; - _newObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry; + _IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry; + _ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry; + _UseDeSimulateObjects = [_serverSettingsConfig, "UseDeSimulateObjects", true] call EPOCH_fnc_returnConfigEntry; + _DeSimulateObjects = [_serverSettingsConfig, "DeSimulateObjects", []] call EPOCH_fnc_returnConfigEntry; + _ExceptedDeSymObjects = [_serverSettingsConfig, "ExceptedDeSymObjects", []] call EPOCH_fnc_returnConfigEntry; + _Simulated = true; + if (_UseIndestructible) then { + if ({_class iskindof _x} count _ExceptedBaseObjects == 0) then { + { + if (_class iskindof _x) exitwith { + _newObj allowdamage false; + }; + } foreach _IndestructibleBaseObjects; + }; }; - + if (_UseDeSimulateObjects) then { + if ({_class iskindof _x} count _ExceptedDeSymObjects == 0) then { + { + if (_class iskindof _x) exitwith { + _newObj enablesimulationglobal false; + _Simulated = false; + }; + } foreach _DeSimulateObjects; + }; + }; + if (_Simulated) then { // Only needed, if simulation is not disabled + // new Dynamicsimulation + if([configFile >> "CfgEpochServer", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then + { + _newObj enableDynamicSimulation true; + _newObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server + }; + }; + switch (_method) do { case 0: { _newObj setposATL (getPosATL _object); diff --git a/Sources/epoch_server/compile/epoch_player/EPOCH_server_loadPlayer.sqf b/Sources/epoch_server/compile/epoch_player/EPOCH_server_loadPlayer.sqf index c72a7bce..d1bf022c 100644 --- a/Sources/epoch_server/compile/epoch_player/EPOCH_server_loadPlayer.sqf +++ b/Sources/epoch_server/compile/epoch_player/EPOCH_server_loadPlayer.sqf @@ -369,7 +369,7 @@ if (!isNull _player) then { // [] remoteExec ["bis_fnc_reviveInit",_player]; // new Dynamicsimulation - if(["CfgDynamicSimulation", "playerDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then + if([configFile >> "CfgEpochServer", "playerDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then { _newPlyr enableDynamicSimulation true; _newPlyr triggerDynamicSimulation true; diff --git a/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf b/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf index b6f657e6..0e025846 100644 --- a/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf +++ b/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf @@ -102,7 +102,7 @@ if (!local _player) then { _newPlyr = _group createUnit[_class, _location, [], 0, "CAN_COLLIDE"]; // new Dynamicsimulation - if(["CfgDynamicSimulation", "playerDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then + if([configFile >> "CfgEpochServer", "playerDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then { _newPlyr enableDynamicSimulation true; _newPlyr triggerDynamicSimulation true; diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf index 10bcc469..2fa303e5 100644 --- a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf @@ -102,7 +102,7 @@ if !(_debugBox isEqualTo "") then { if((_deSimulate) || (_disableSim isEqualTo "true"))then{ _ep enableSimulationGlobal false; }; - if(["CfgDynamicSimulation", "enableDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then{ + if([configFile >> "CfgEpochServer", "enableDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then _ep enableDynamicSimulation (_dynSim isEqualTo "true"); }; _ep allowDamage (_allowDmg isEqualTo "true"); diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf index ae9185de..ff5ac7e7 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf @@ -29,6 +29,7 @@ _jammerRange = getNumber(_config >> "buildingJammerRange"); _serverSettingsConfig = configFile >> "CfgEpochServer"; _immuneIfStartInBase = [_serverSettingsConfig, "immuneIfStartInBase", true] call EPOCH_fnc_returnConfigEntry; +_vehicleDynamicSimulationSystem = [_serverSettingsConfig, "vehicleDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry; _removeweapons = [_serverSettingsConfig, "removevehweapons", []] call EPOCH_fnc_returnConfigEntry; _removemagazinesturret = [_serverSettingsConfig, "removevehmagazinesturret", []] call EPOCH_fnc_returnConfigEntry; @@ -213,7 +214,7 @@ for "_i" from 1 to _maxVehicleLimit do { }; // new Dynamicsimulation - if(["CfgDynamicSimulation", "vehicleDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then + if(_vehicleDynamicSimulationSystem)then { _vehicle enableSimulationGlobal false; // turn it off until activated by dynamicSim _vehicle enableDynamicSimulation true; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf index 95c86838..7c4c8de4 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf @@ -99,7 +99,7 @@ _newHitpoints = getAllHitPointsDamage _newVeh; } foreach (_OldHitPoints select 0); // new Dynamicsimulation -if(["CfgDynamicSimulation", "vehicleDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then +if([configFile >> "CfgEpochServer", "vehicleDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then { _newveh enableSimulationGlobal false; // turn it off until activated by dynamicSim _newveh enableDynamicSimulation true; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf index b28e4f43..2435f2e0 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf @@ -115,7 +115,7 @@ if !(isNull _vehObj) then{ }; // new Dynamicsimulation - if(["CfgDynamicSimulation", "vehicleDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then + if([configFile >> "CfgEpochServer", "vehicleDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then { _vehObj enableSimulationGlobal false; // turn it off until activated by dynamicSim _vehObj enableDynamicSimulation true; diff --git a/Sources/epoch_server/init/server_init.sqf b/Sources/epoch_server/init/server_init.sqf index b018e9ae..13596588 100644 --- a/Sources/epoch_server/init/server_init.sqf +++ b/Sources/epoch_server/init/server_init.sqf @@ -91,7 +91,17 @@ diag_log "Epoch: Init Variables"; call compile preprocessFileLineNumbers "\epoch_server\init\server_variables.sqf"; call compile preprocessFileLineNumbers "\epoch_server\init\server_securityfunctions.sqf"; - +// Enable Dynamic simulation +_dynSimToggle = [_serverSettingsConfig, "enableDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry; +enableDynamicSimulationSystem _dynSimToggle; +if(_dynSimToggle)then +{ + "IsMoving" setDynamicSimulationDistanceCoef ([_serverSettingsConfig, "isMovingCoefValue", 2] call EPOCH_fnc_returnConfigEntry); + "Group" setDynamicSimulationDistance ([_serverSettingsConfig, "groupDynSimDistance", 500] call EPOCH_fnc_returnConfigEntry); + "Vehicle" setDynamicSimulationDistance ([_serverSettingsConfig, "vehicleDynSimDistance", 350] call EPOCH_fnc_returnConfigEntry); + "EmptyVehicle" setDynamicSimulationDistance ([_serverSettingsConfig, "emptyVehicleDynSimDistance", 250] call EPOCH_fnc_returnConfigEntry); + "Prop" setDynamicSimulationDistance ([_serverSettingsConfig, "propDynSimDistance", 500] call EPOCH_fnc_returnConfigEntry); +}; ["I", _instanceID, "86400", ["CONTINUE"]] call EPOCH_fnc_server_hiveSETEX; diag_log format["Epoch: Start Hive, Instance ID: '%1'", _instanceID]; From cbb0184a0e8ce0adc96865f0da2863c890132ead Mon Sep 17 00:00:00 2001 From: He-Man Date: Thu, 30 Nov 2017 23:02:50 +0100 Subject: [PATCH 22/94] Changed propDynSimDistance 500->50 --- Sources/epoch_server/init/server_init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server/init/server_init.sqf b/Sources/epoch_server/init/server_init.sqf index 13596588..861a2539 100644 --- a/Sources/epoch_server/init/server_init.sqf +++ b/Sources/epoch_server/init/server_init.sqf @@ -100,7 +100,7 @@ if(_dynSimToggle)then "Group" setDynamicSimulationDistance ([_serverSettingsConfig, "groupDynSimDistance", 500] call EPOCH_fnc_returnConfigEntry); "Vehicle" setDynamicSimulationDistance ([_serverSettingsConfig, "vehicleDynSimDistance", 350] call EPOCH_fnc_returnConfigEntry); "EmptyVehicle" setDynamicSimulationDistance ([_serverSettingsConfig, "emptyVehicleDynSimDistance", 250] call EPOCH_fnc_returnConfigEntry); - "Prop" setDynamicSimulationDistance ([_serverSettingsConfig, "propDynSimDistance", 500] call EPOCH_fnc_returnConfigEntry); + "Prop" setDynamicSimulationDistance ([_serverSettingsConfig, "propDynSimDistance", 50] call EPOCH_fnc_returnConfigEntry); }; ["I", _instanceID, "86400", ["CONTINUE"]] call EPOCH_fnc_server_hiveSETEX; diag_log format["Epoch: Start Hive, Instance ID: '%1'", _instanceID]; From 755bef4284537c147d25f58e37071904983dc619 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 2 Dec 2017 21:22:43 +0100 Subject: [PATCH 23/94] Hints for Multigun Useage --- Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf index e5ad6234..549d8d7f 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf @@ -74,12 +74,14 @@ switch true do { }forEach((getAllHitPointsDamage _cursorTarget) param[2,[]]); if (_highestDMG > 0) then { _newDMG = ((_highestDMG - 0.5) max 0); + ["Partially healed / repaired",5] call epoch_message; if (local _cursorTarget) then { [_cursorTarget,[[_currentHIT,_newDMG]]] call EPOCH_client_repairVehicle; } else { [_cursorTarget,[[_currentHIT,_newDMG]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2]; }; } else { + ["Full healed / repaired or too much damaged",5] call epoch_message; if ((damage _cursorTarget) > 0) then { [_cursorTarget,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2]; }; From bdfee35a1836d176c67bafbfc9cd518d1ca4cad9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Tue, 5 Dec 2017 18:20:08 -0600 Subject: [PATCH 24/94] CfgActions overriding - fire on/off req - a3 hooking ++ [FIXED] BurnBarrel and FirePlace02 UserActions requiring lighter_epoch did not need lighter when performed. [NEW] CfgActions event handler for "Action" ("PrevAction" and "NextAction" - not implemented yet) -Allows ability to override any of the CfgActions/UserActions in Arma 3 and other mods. [ADDED] usedItemRepack function to remove 1 use from the lighter. [ADDED] Require fire extinguisher to "Put Out Fire" on the Burn Barrel [CHANGED] ItemFireExtinguisher now has count = 5 for 5 uses to put out a small fire [ADDED] ItemFireExtinguisher to CfgItemSort and CfgPricing [ADDED] Arma Sling Loading requires ItemRope to sling and returns rope upon release.. [ADDED] Checks for R3F can_lift and Advanced Slingload InitVar. [ADDED] If above mod/script is present disable Arma SlingLoad Hook/Unhook action and key press. [CHANGED] While working with keyDown EH, debug logs show the DIKCodes are being pushed as whole numbers and not the 0x01 as the escape keyDown handler was setup to use and why my tests were failing using the 0x30 for the letter B(Hook/Unhook). [UPGRADED] Changed over the 0x01 and 0x30 to the actionKeys name in order to properly handle those with client using custom keys. [TEASED] Have a commented line in the Light Fire case showing future plans for a fire system(BURN BABY BURN!). [NEW] EPOCH_usedItemRepack Description: Allows adjusting of "ammo" counts in a magazine. Can be used locally and on the server for a remote unit. ``` [_player,_magazine,_change] call EPOCH_usedItemRepack; --- .../EPOCH_KeyDown.sqf | 27 ++++++- .../EPOCH_handleUIActions.sqf | 81 +++++++++++++++++++ .../inventory/EPOCH_usedItemRepack.sqf | 65 +++++++++++++++ .../compile/setup/EPOCH_clientInit.sqf | 12 +++ .../Configs/CfgClientFunctions.hpp | 2 + Sources/epoch_config/Configs/CfgItemSort.hpp | 3 +- Sources/epoch_config/Configs/CfgPricing.hpp | 4 + 7 files changed, 192 insertions(+), 2 deletions(-) create mode 100644 Sources/epoch_code/compile/interface_event_handlers/EPOCH_handleUIActions.sqf create mode 100644 Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf index 295c0f7c..4a2ede58 100644 --- a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf +++ b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf @@ -72,7 +72,7 @@ if (_ctrl && _dikCode == EPOCH_keysVolumeDown) then { }; // ESC default to cancel -if (_dikCode == 0x01) then { +if (_dikCode in (actionKeys "ingamePause")) then { if !(isNull EPOCH_Target) then { if !(EPOCH_Target isKindOf "ThingX") then { deleteVehicle EPOCH_Target; @@ -264,4 +264,29 @@ if (_dikCode in (actionKeys "NightVision")) then { }; }; +if(!_ctrl && (_dikCode in (actionKeys "HeliRopeAction")))then{ + _msg = ""; + if(EPOCH_ArmaSlingLoad)then{ + if(driver vehicle player isEqualTo player)then{ + _slung = ropeAttachedObjects vehicle player; + if(_slung isEqualTo [])then{ + if!('ItemRope' in magazines player) then { + _msg = "You need rope to hook"; + _handled = true; + }else{ + player removeItem 'ItemRope'; + }; + }else{ + player addItem 'ItemRope'; + }; + }; + }else{ + _msg = "Hook/Unhook Malfunction, overrode by R3F or AdvSlingLoad"; + _handled = true; + }; + if!(_msg isEqualTo "")then{ + [_msg,5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack; + }; +}; + _handled diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_handleUIActions.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_handleUIActions.sqf new file mode 100644 index 00000000..e8ed286b --- /dev/null +++ b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_handleUIActions.sqf @@ -0,0 +1,81 @@ +/* + Author: DirtySanchez - ported from DonkeyPunch eXpoch http://DonkeyPunch.INFO + + Contributors: + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/interface_event_handlers/EPOCH_handleUIActions.sqf +*/ +private['_msg', '_type', '_disableSlingLoad', '_slung']; +params [ + ['_actionObj',objNull], + ['_player',objNull], + ['_index',0], + ['_actionName',''], + ['_actionDisplayName',''], + ['_priority',1], + ['_showWindow',false], + ['_hideOnUse',true], + ['_shortCut',''], + ['_visibility',false], + ['_eventName',''] +]; +_blocked = false; +_msg = ''; +_type = typeOf _actionObj; +switch(true)do{ + case (_actionName isEqualTo 'FireInflame'): { + if!('lighter_epoch' in magazines player) then { + _msg = 'You need a lighter'; + _blocked = true; + }else{ + [player,'lighter_epoch',-1] call EPOCH_usedItemRepack; + //[_actionObj] remoteExec ['EPOCH_server_addToFireSystem',2]; + }; + }; + case (_actionName isEqualTo 'FirePutDown'): { + if(_type isEqualTo 'BurnBarrel_EPOCH')then{ + if!('ItemFireExtinguisher' in magazines player) then { + _msg = 'You need an extinguisher'; + _blocked = true; + }else{ + [player,'ItemFireExtinguisher',-1] call EPOCH_usedItemRepack; + }; + }; + }; + case (_actionName isEqualTo 'HookCargo'): { + if(EPOCH_ArmaSlingLoad)then{ + if(driver vehicle player isEqualTo player)then{ + _slung = ropeAttachedObjects vehicle player; + if(_slung isEqualTo [])then{ + if!('ItemRope' in magazines player) then { + _msg = 'You need rope to hook'; + _blocked = true; + }else{ + player removeItem 'ItemRope'; + }; + }else{ + player addItem 'ItemRope'; + }; + }; + }else{ + _msg = 'Hook Malfunction, overrode by R3F or AdvSlingLoad'; + _blocked = true; + }; + }; + case (_actionName isEqualTo 'UnhookCargo'): { + if(EPOCH_ArmaSlingLoad)then{ + player addItem 'ItemRope'; + }else{ + _msg = 'Unhook Malfunction, overrode by R3F or AdvSlingLoad'; + _blocked = true; + }; + }; +}; +if!(_msg isEqualTo '')then{ + [_msg,5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack; +}; +_blocked \ No newline at end of file diff --git a/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf new file mode 100644 index 00000000..a4f897a2 --- /dev/null +++ b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf @@ -0,0 +1,65 @@ +/* + Author: DirtySanchez - ported from DonkeyPunch eXpoch http://DonkeyPunch.INFO + + Contributors: + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf + + Description: + Allows adjustments to mag with least ammo. + Can be used server and client side as addMagazine is a global command + + Local Usage: + [player,'lighter_epoch',-1] call EPOCH_usedItemRepack; + + Global Usage: + [_playerObj,'lighter_epoch',-1] call EPOCH_usedItemRepack; +*/ +private["_msg","_itemMags","_displayName","_itemAmmoType","_mags","_ammoType","_total","_maxAmmo","_wholeMags","_remainder","_index","_usedItemArray"]; +params[ + ["_player",objNull], + ["_item",""], + ["_chg",0] +]; + +if(isNull _player) exitWith {diag_log "[EPOCHDebug] EPOCH_usedItemRepack - player isNull"}; + +if(_item isEqualTo "") exitWith {diag_log "[EPOCHDebug] EPOCH_usedItemRepack - classname is empty string"}; + +if!(isClass(configFile >> "CfgMagazines" >> _item)) exitWith {diag_log format["[EPOCHDebug] EPOCH_usedItemRepack - Classname does not exist",_item]}; + +_msg = ""; +_itemMags = []; +_displayName = getText(configFile >> "CfgMagazines" >> _item >> "displayName"); + +//get all mags of same classname and ammo type +_mags = magazinesAmmo _player; +{ + _x params ["_className","_count"]; + if(_className isEqualTo _item)then{ + _itemMags pushBack _x; + }; +}forEach _mags; + +// if more than 1 sort them by ammo count +if(count _itemMags > 1)then{ + _itemMags = [_itemMags,[],{_x select 1},"ASCEND"] call BIS_fnc_sortBy; +}; + +// adjust the item +if!(_chg isEqualTo 0)then{ + _index = ((count _itemMags) - 1); + _usedItemArray = _itemMags select _index; + _usedItemArray params ["_mag","_count"]; + _itemMags pushBack [_mag, (_count + _chg)]; + _itemMags = _itemMags - [_usedItemArray]; + _player removeMagazines _mag; + { + _player addMagazine _x; + [format["You have used your %1", _displayName],5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack; + }forEach _itemMags; +}; diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf index b07ee0af..8ba26bff 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf @@ -53,3 +53,15 @@ EPOCH_playerStaminaMax = 100; enableSentences false; enableRadio false; player setVariable["BIS_noCoreConversations", true]; + +EPOCH_ArmaSlingLoad = true; +_r3fON = if(!isNil "R3F_LOG_CFG_can_lift")then{if!(R3F_LOG_CFG_can_lift isEqualTo [])then{true}else{false}}else{false}; +_advSling = if(!isNil "ASL_ROPE_INIT")then{if(ASL_ROPE_INIT)then{true}else{false}}else{false}; +if (_r3fON || _advSling)then{ + EPOCH_ArmaSlingLoad = false; +}; + +// handle actions, prevactions, nextactions +inGameUISetEventHandler ["Action", "if(!(_this isEqualTo []) && !(_this select 10 in ['PrevAction','NextAction']))then{_this call EPOCH_handleUIActions}"]; +//inGameUISetEventHandler ["NextAction", "_this call EPOCH_handleUIActions"]; +//inGameUISetEventHandler ["PrevAction", "_this call EPOCH_handleUIActions"]; diff --git a/Sources/epoch_config/Configs/CfgClientFunctions.hpp b/Sources/epoch_config/Configs/CfgClientFunctions.hpp index 58937b61..639c3088 100644 --- a/Sources/epoch_config/Configs/CfgClientFunctions.hpp +++ b/Sources/epoch_config/Configs/CfgClientFunctions.hpp @@ -91,6 +91,7 @@ class CfgClientFunctions }; class KeyUp {}; class onChar {}; + class handleUIActions {}; }; class event_handlers { @@ -207,6 +208,7 @@ class CfgClientFunctions class refeshUI {}; class equip {}; class itemTypeSlot {}; + class usedItemRepack {}; }; class servicepoint { diff --git a/Sources/epoch_config/Configs/CfgItemSort.hpp b/Sources/epoch_config/Configs/CfgItemSort.hpp index ff070a82..60f3c617 100644 --- a/Sources/epoch_config/Configs/CfgItemSort.hpp +++ b/Sources/epoch_config/Configs/CfgItemSort.hpp @@ -1128,7 +1128,8 @@ class CfgItemSort "SeedPacket_Hemp", "SeedPacket_Poppy", "SeedPacket_Pumpkin", - "SeedPacket_Sunflower" + "SeedPacket_Sunflower", + "ItemFireExtinguisher" }; Vehicles_Land[] = { "ebike_epoch", // Motorrad diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp index 19ecf509..cbf500f3 100644 --- a/Sources/epoch_config/Configs/CfgPricing.hpp +++ b/Sources/epoch_config/Configs/CfgPricing.hpp @@ -1824,6 +1824,10 @@ class CfgPricing { price = 50; }; + class ItemFireExtinguisher + { + price = 50; + } class WoodLog_EPOCH { price = 2; From d38953cc939014af5a1139ca5bc4989b7520232d Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 6 Dec 2017 10:20:52 -0600 Subject: [PATCH 25/94] add initial support for #957 --- Sources/epoch_server_settings/config.cpp | 8 + .../configs/maps/IslaDuala3.h | 34 + .../configs/maps/Kapaulio.h | 34 + .../configs/maps/Panthera3.h | 34 + .../configs/maps/Winthera3.h | 34 + .../configs/maps/abramia.h | 34 + .../configs/maps/dingor.h | 34 + .../configs/maps/lingor3.h | 34 + .../mpmissions/epoch.IslaDuala3/mission.sqm | 6099 ++++++++++++++++ Sources/mpmissions/epoch.Kapaulio/mission.sqm | 6101 +++++++++++++++++ .../mpmissions/epoch.Panthera3/mission.sqm | 6101 +++++++++++++++++ .../mpmissions/epoch.Winthera3/mission.sqm | 6101 +++++++++++++++++ Sources/mpmissions/epoch.abramia/mission.sqm | 6101 +++++++++++++++++ Sources/mpmissions/epoch.dingor/mission.sqm | 6099 ++++++++++++++++ Sources/mpmissions/epoch.lingor3/mission.sqm | 6099 ++++++++++++++++ 15 files changed, 42947 insertions(+) create mode 100644 Sources/epoch_server_settings/configs/maps/IslaDuala3.h create mode 100644 Sources/epoch_server_settings/configs/maps/Kapaulio.h create mode 100644 Sources/epoch_server_settings/configs/maps/Panthera3.h create mode 100644 Sources/epoch_server_settings/configs/maps/Winthera3.h create mode 100644 Sources/epoch_server_settings/configs/maps/abramia.h create mode 100644 Sources/epoch_server_settings/configs/maps/dingor.h create mode 100644 Sources/epoch_server_settings/configs/maps/lingor3.h create mode 100644 Sources/mpmissions/epoch.IslaDuala3/mission.sqm create mode 100644 Sources/mpmissions/epoch.Kapaulio/mission.sqm create mode 100644 Sources/mpmissions/epoch.Panthera3/mission.sqm create mode 100644 Sources/mpmissions/epoch.Winthera3/mission.sqm create mode 100644 Sources/mpmissions/epoch.abramia/mission.sqm create mode 100644 Sources/mpmissions/epoch.dingor/mission.sqm create mode 100644 Sources/mpmissions/epoch.lingor3/mission.sqm diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index e7dbdb3b..86d1b92d 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -375,4 +375,12 @@ class CfgEpoch #include "configs\maps\Napf.h" #include "configs\maps\tanoa.h" #include "configs\maps\Malden.h" + #include "configs\maps\abramia.h" + #include "configs\maps\dingor.h" + #include "configs\maps\IslaDuala3.h" + #include "configs\maps\Kapaulio.h" + #include "configs\maps\lingor3.h" + #include "configs\maps\Panthera3.h" + #include "configs\maps\Winthera3.h" + }; diff --git a/Sources/epoch_server_settings/configs/maps/IslaDuala3.h b/Sources/epoch_server_settings/configs/maps/IslaDuala3.h new file mode 100644 index 00000000..f6897600 --- /dev/null +++ b/Sources/epoch_server_settings/configs/maps/IslaDuala3.h @@ -0,0 +1,34 @@ +class IslaDuala3 : Default +{ + worldSize = 0; // 0 = default to worldSize command + plantLimit = 5; + vehicleSpawnTypes[] = { + {"FlatAreaCity",1}, + {"FlatAreaCitySmall",1}, + {"NameCity",2}, + {"NameVillage",1}, + {"NameCityCapital",4}, + {"Airport",5}, + {"NameLocal",2}, + {"StrongpointArea",1}, + {"VegetationBroadleaf",1}, + {"VegetationFir",1}, + {"ViewPoint",1} + }; + traderBlds[] = {"House", "Building"}; + shipwreckLootEnabled = 0; + telePos[] = { + // N [-0.286865,8.17383,-10.3098] + // S [-0.415527,-7.05298,-10.3098] + // E [13.5127,0.410156,-10.3098] + // W [-14.4316,0.112793,-10.3098] + //{ "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", "north" }, + //{ "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", "west" }, + //{ "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", "east" } + { "Transport_C_EPOCH", { 13.5127, 0.410156, -10.3098 }, "", "center" } // temp for now + }; + propsPos[] = { + }; + staticNpcPos[] = { + }; +}; diff --git a/Sources/epoch_server_settings/configs/maps/Kapaulio.h b/Sources/epoch_server_settings/configs/maps/Kapaulio.h new file mode 100644 index 00000000..66118dd8 --- /dev/null +++ b/Sources/epoch_server_settings/configs/maps/Kapaulio.h @@ -0,0 +1,34 @@ +class Kapaulio : Default +{ + worldSize = 0; // 0 = default to worldSize command + plantLimit = 5; + vehicleSpawnTypes[] = { + {"FlatAreaCity",1}, + {"FlatAreaCitySmall",1}, + {"NameCity",2}, + {"NameVillage",1}, + {"NameCityCapital",4}, + {"Airport",5}, + {"NameLocal",2}, + {"StrongpointArea",1}, + {"VegetationBroadleaf",1}, + {"VegetationFir",1}, + {"ViewPoint",1} + }; + traderBlds[] = {"House", "Building"}; + shipwreckLootEnabled = 0; + telePos[] = { + // N [-0.286865,8.17383,-10.3098] + // S [-0.415527,-7.05298,-10.3098] + // E [13.5127,0.410156,-10.3098] + // W [-14.4316,0.112793,-10.3098] + //{ "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", "north" }, + //{ "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", "west" }, + //{ "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", "east" } + { "Transport_C_EPOCH", { 13.5127, 0.410156, -10.3098 }, "", "center" } // temp for now + }; + propsPos[] = { + }; + staticNpcPos[] = { + }; +}; diff --git a/Sources/epoch_server_settings/configs/maps/Panthera3.h b/Sources/epoch_server_settings/configs/maps/Panthera3.h new file mode 100644 index 00000000..6f54f20d --- /dev/null +++ b/Sources/epoch_server_settings/configs/maps/Panthera3.h @@ -0,0 +1,34 @@ +class Panthera3 : Default +{ + worldSize = 0; // 0 = default to worldSize command + plantLimit = 5; + vehicleSpawnTypes[] = { + {"FlatAreaCity",1}, + {"FlatAreaCitySmall",1}, + {"NameCity",2}, + {"NameVillage",1}, + {"NameCityCapital",4}, + {"Airport",5}, + {"NameLocal",2}, + {"StrongpointArea",1}, + {"VegetationBroadleaf",1}, + {"VegetationFir",1}, + {"ViewPoint",1} + }; + traderBlds[] = {"House", "Building"}; + shipwreckLootEnabled = 0; + telePos[] = { + // N [-0.286865,8.17383,-10.3098] + // S [-0.415527,-7.05298,-10.3098] + // E [13.5127,0.410156,-10.3098] + // W [-14.4316,0.112793,-10.3098] + //{ "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", "north" }, + //{ "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", "west" }, + //{ "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", "east" } + { "Transport_C_EPOCH", { 13.5127, 0.410156, -10.3098 }, "", "center" } // temp for now + }; + propsPos[] = { + }; + staticNpcPos[] = { + }; +}; diff --git a/Sources/epoch_server_settings/configs/maps/Winthera3.h b/Sources/epoch_server_settings/configs/maps/Winthera3.h new file mode 100644 index 00000000..2750dc4f --- /dev/null +++ b/Sources/epoch_server_settings/configs/maps/Winthera3.h @@ -0,0 +1,34 @@ +class Winthera3 : Default +{ + worldSize = 0; // 0 = default to worldSize command + plantLimit = 5; + vehicleSpawnTypes[] = { + {"FlatAreaCity",1}, + {"FlatAreaCitySmall",1}, + {"NameCity",2}, + {"NameVillage",1}, + {"NameCityCapital",4}, + {"Airport",5}, + {"NameLocal",2}, + {"StrongpointArea",1}, + {"VegetationBroadleaf",1}, + {"VegetationFir",1}, + {"ViewPoint",1} + }; + traderBlds[] = {"House", "Building"}; + shipwreckLootEnabled = 0; + telePos[] = { + // N [-0.286865,8.17383,-10.3098] + // S [-0.415527,-7.05298,-10.3098] + // E [13.5127,0.410156,-10.3098] + // W [-14.4316,0.112793,-10.3098] + //{ "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", "north" }, + //{ "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", "west" }, + //{ "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", "east" } + { "Transport_C_EPOCH", { 13.5127, 0.410156, -10.3098 }, "", "center" } // temp for now + }; + propsPos[] = { + }; + staticNpcPos[] = { + }; +}; diff --git a/Sources/epoch_server_settings/configs/maps/abramia.h b/Sources/epoch_server_settings/configs/maps/abramia.h new file mode 100644 index 00000000..11288d5f --- /dev/null +++ b/Sources/epoch_server_settings/configs/maps/abramia.h @@ -0,0 +1,34 @@ +class abramia : Default +{ + worldSize = 0; // 0 = default to worldSize command + plantLimit = 5; + vehicleSpawnTypes[] = { + {"FlatAreaCity",1}, + {"FlatAreaCitySmall",1}, + {"NameCity",2}, + {"NameVillage",1}, + {"NameCityCapital",4}, + {"Airport",5}, + {"NameLocal",2}, + {"StrongpointArea",1}, + {"VegetationBroadleaf",1}, + {"VegetationFir",1}, + {"ViewPoint",1} + }; + traderBlds[] = {"House", "Building"}; + shipwreckLootEnabled = 0; + telePos[] = { + // N [-0.286865,8.17383,-10.3098] + // S [-0.415527,-7.05298,-10.3098] + // E [13.5127,0.410156,-10.3098] + // W [-14.4316,0.112793,-10.3098] + //{ "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", "north" }, + //{ "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", "west" }, + //{ "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", "east" } + { "Transport_C_EPOCH", { 13.5127, 0.410156, -10.3098 }, "", "center" } // temp for now + }; + propsPos[] = { + }; + staticNpcPos[] = { + }; +}; diff --git a/Sources/epoch_server_settings/configs/maps/dingor.h b/Sources/epoch_server_settings/configs/maps/dingor.h new file mode 100644 index 00000000..660875ba --- /dev/null +++ b/Sources/epoch_server_settings/configs/maps/dingor.h @@ -0,0 +1,34 @@ +class dingor : Default +{ + worldSize = 0; // 0 = default to worldSize command + plantLimit = 5; + vehicleSpawnTypes[] = { + {"FlatAreaCity",1}, + {"FlatAreaCitySmall",1}, + {"NameCity",2}, + {"NameVillage",1}, + {"NameCityCapital",4}, + {"Airport",5}, + {"NameLocal",2}, + {"StrongpointArea",1}, + {"VegetationBroadleaf",1}, + {"VegetationFir",1}, + {"ViewPoint",1} + }; + traderBlds[] = {"House", "Building"}; + shipwreckLootEnabled = 0; + telePos[] = { + // N [-0.286865,8.17383,-10.3098] + // S [-0.415527,-7.05298,-10.3098] + // E [13.5127,0.410156,-10.3098] + // W [-14.4316,0.112793,-10.3098] + //{ "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", "north" }, + //{ "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", "west" }, + //{ "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", "east" } + { "Transport_C_EPOCH", { 13.5127, 0.410156, -10.3098 }, "", "center" } // temp for now + }; + propsPos[] = { + }; + staticNpcPos[] = { + }; +}; diff --git a/Sources/epoch_server_settings/configs/maps/lingor3.h b/Sources/epoch_server_settings/configs/maps/lingor3.h new file mode 100644 index 00000000..4e5f3a6d --- /dev/null +++ b/Sources/epoch_server_settings/configs/maps/lingor3.h @@ -0,0 +1,34 @@ +class lingor3 : Default +{ + worldSize = 0; // 0 = default to worldSize command + plantLimit = 5; + vehicleSpawnTypes[] = { + {"FlatAreaCity",1}, + {"FlatAreaCitySmall",1}, + {"NameCity",2}, + {"NameVillage",1}, + {"NameCityCapital",4}, + {"Airport",5}, + {"NameLocal",2}, + {"StrongpointArea",1}, + {"VegetationBroadleaf",1}, + {"VegetationFir",1}, + {"ViewPoint",1} + }; + traderBlds[] = {"House", "Building"}; + shipwreckLootEnabled = 0; + telePos[] = { + // N [-0.286865,8.17383,-10.3098] + // S [-0.415527,-7.05298,-10.3098] + // E [13.5127,0.410156,-10.3098] + // W [-14.4316,0.112793,-10.3098] + //{ "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", "north" }, + //{ "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", "west" }, + //{ "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", "east" } + { "Transport_C_EPOCH", { 13.5127, 0.410156, -10.3098 }, "", "center" } // temp for now + }; + propsPos[] = { + }; + staticNpcPos[] = { + }; +}; diff --git a/Sources/mpmissions/epoch.IslaDuala3/mission.sqm b/Sources/mpmissions/epoch.IslaDuala3/mission.sqm new file mode 100644 index 00000000..d9d288d3 --- /dev/null +++ b/Sources/mpmissions/epoch.IslaDuala3/mission.sqm @@ -0,0 +1,6099 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={8563.6689,35.29892,4707.6689}; + dir[]={0.3020837,-0.34965181,-0.88685483}; + up[]={0.1127403,0.93687785,-0.33098108}; + aside[]={-0.94660199,-9.9185854e-008,-0.3224344}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Ui_F", + "A3_epoch_config" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_epoch_config"; + name="A3_epoch_config"; + }; + }; +}; +randomSeed=12032465; +class ScenarioData +{ + author="[VB]AWOL"; +}; +class Mission +{ + class Intel + { + briefingName="Epoch Mod"; + timeOfChanges=28800; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=203; + class Item0 + { + dataType="Marker"; + position[]={5049.2476,9.1345215,5008.1377}; + name="center"; + type="Empty"; + id=0; + atlOffset=-1.1100931; + }; + class Item1 + { + dataType="Marker"; + position[]={8581.2217,10.26,4670.3428}; + name="respawn_east"; + type="Empty"; + id=1; + }; + class Item2 + { + dataType="Marker"; + position[]={8581.2217,10.26,4670.3428}; + name="respawn_west"; + type="Empty"; + id=2; + }; + class Item3 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=4; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=3; + }; + class Item4 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=6; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=5; + }; + class Item5 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=8; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=7; + }; + class Item6 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=10; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=9; + }; + class Item7 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=12; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=11; + }; + class Item8 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=14; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=13; + }; + class Item9 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=16; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=15; + }; + class Item10 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=18; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=17; + }; + class Item11 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=20; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=19; + }; + class Item12 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=22; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=21; + }; + class Item13 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=24; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=23; + }; + class Item14 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=26; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=25; + }; + class Item15 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=28; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=27; + }; + class Item16 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=30; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=29; + }; + class Item17 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=32; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=31; + }; + class Item18 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=34; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=33; + }; + class Item19 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=36; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=35; + }; + class Item20 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=38; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=37; + }; + class Item21 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=40; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=39; + }; + class Item22 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=42; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=41; + }; + class Item23 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=44; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=43; + }; + class Item24 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=46; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=45; + }; + class Item25 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=48; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=47; + }; + class Item26 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=50; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=49; + }; + class Item27 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=52; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=51; + }; + class Item28 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=54; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=53; + }; + class Item29 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=56; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=55; + }; + class Item30 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=58; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=57; + }; + class Item31 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=60; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=59; + }; + class Item32 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=62; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=61; + }; + class Item33 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=64; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=63; + }; + class Item34 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=66; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=65; + }; + class Item35 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=68; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=67; + }; + class Item36 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=70; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=69; + }; + class Item37 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=72; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=71; + }; + class Item38 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=74; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=73; + }; + class Item39 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=76; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=75; + }; + class Item40 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=78; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=77; + }; + class Item41 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=80; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=79; + }; + class Item42 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=82; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=81; + }; + class Item43 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=84; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=83; + }; + class Item44 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=86; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=85; + }; + class Item45 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=88; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=87; + }; + class Item46 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=90; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=89; + }; + class Item47 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=92; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=91; + }; + class Item48 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=94; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=93; + }; + class Item49 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=96; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=95; + }; + class Item50 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=98; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=97; + }; + class Item51 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=100; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=99; + }; + class Item52 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=102; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=101; + }; + class Item53 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=104; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=103; + }; + class Item54 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=106; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=105; + }; + class Item55 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=108; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=107; + }; + class Item56 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=110; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=109; + }; + class Item57 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=112; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=111; + }; + class Item58 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=114; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=113; + }; + class Item59 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=116; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=115; + }; + class Item60 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=118; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=117; + }; + class Item61 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=120; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=119; + }; + class Item62 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=122; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=121; + }; + class Item63 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=124; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=123; + }; + class Item64 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=126; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=125; + }; + class Item65 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=128; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=127; + }; + class Item66 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=130; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=129; + }; + class Item67 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=132; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=131; + }; + class Item68 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=134; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=133; + }; + class Item69 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=136; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=135; + }; + class Item70 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=138; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=137; + }; + class Item71 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=140; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=139; + }; + class Item72 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=142; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=141; + }; + class Item73 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=144; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=143; + }; + class Item74 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=146; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=145; + }; + class Item75 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=148; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=147; + }; + class Item76 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=150; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=149; + }; + class Item77 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=152; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=151; + }; + class Item78 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=154; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=153; + }; + class Item79 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=156; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=155; + }; + class Item80 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=158; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=157; + }; + class Item81 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=160; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=159; + }; + class Item82 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=162; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=161; + }; + class Item83 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=164; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=163; + }; + class Item84 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=166; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=165; + }; + class Item85 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=168; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=167; + }; + class Item86 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=170; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=169; + }; + class Item87 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=172; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=171; + }; + class Item88 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=174; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=173; + }; + class Item89 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=176; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=175; + }; + class Item90 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=178; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=177; + }; + class Item91 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=180; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=179; + }; + class Item92 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=182; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=181; + }; + class Item93 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=184; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=183; + }; + class Item94 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=186; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=185; + }; + class Item95 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=188; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=187; + }; + class Item96 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=190; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=189; + }; + class Item97 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=192; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=191; + }; + class Item98 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=194; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=193; + }; + class Item99 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=196; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=195; + }; + class Item100 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=198; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=197; + }; + class Item101 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=200; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=199; + }; + class Item102 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=202; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=201; + }; + class Item103 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=204; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=203; + }; + class Item104 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=206; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=205; + }; + class Item105 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=208; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=207; + }; + class Item106 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=210; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=209; + }; + class Item107 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=212; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=211; + }; + class Item108 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=214; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=213; + }; + class Item109 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=216; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=215; + }; + class Item110 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=218; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=217; + }; + class Item111 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=220; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=219; + }; + class Item112 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=222; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=221; + }; + class Item113 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=224; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=223; + }; + class Item114 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=226; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=225; + }; + class Item115 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=228; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=227; + }; + class Item116 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=230; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=229; + }; + class Item117 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=232; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=231; + }; + class Item118 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=234; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=233; + }; + class Item119 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=236; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=235; + }; + class Item120 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=238; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=237; + }; + class Item121 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=240; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=239; + }; + class Item122 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=242; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=241; + }; + class Item123 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=244; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=243; + }; + class Item124 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=246; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=245; + }; + class Item125 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=248; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=247; + }; + class Item126 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=250; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=249; + }; + class Item127 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=252; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=251; + }; + class Item128 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=254; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=253; + }; + class Item129 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=256; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=255; + }; + class Item130 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=258; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=257; + }; + class Item131 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=260; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=259; + }; + class Item132 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=262; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=261; + }; + class Item133 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=264; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=263; + }; + class Item134 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=266; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=265; + }; + class Item135 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=268; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=267; + }; + class Item136 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=270; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=269; + }; + class Item137 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=272; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=271; + }; + class Item138 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=274; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=273; + }; + class Item139 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=276; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=275; + }; + class Item140 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=278; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=277; + }; + class Item141 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=280; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=279; + }; + class Item142 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=282; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=281; + }; + class Item143 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=284; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=283; + }; + class Item144 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=286; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=285; + }; + class Item145 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=288; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=287; + }; + class Item146 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=290; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=289; + }; + class Item147 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=292; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=291; + }; + class Item148 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=294; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=293; + }; + class Item149 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=296; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=295; + }; + class Item150 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=298; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=297; + }; + class Item151 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=300; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=299; + }; + class Item152 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=302; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=301; + }; + class Item153 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=304; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=303; + }; + class Item154 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=306; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=305; + }; + class Item155 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=308; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=307; + }; + class Item156 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=310; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=309; + }; + class Item157 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=312; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=311; + }; + class Item158 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=314; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=313; + }; + class Item159 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=316; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=315; + }; + class Item160 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=318; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=317; + }; + class Item161 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=320; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=319; + }; + class Item162 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=322; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=321; + }; + class Item163 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=324; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=323; + }; + class Item164 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=326; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=325; + }; + class Item165 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=328; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=327; + }; + class Item166 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=330; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=329; + }; + class Item167 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=332; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=331; + }; + class Item168 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=334; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=333; + }; + class Item169 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=336; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=335; + }; + class Item170 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=338; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=337; + }; + class Item171 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=340; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=339; + }; + class Item172 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=342; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=341; + }; + class Item173 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=344; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=343; + }; + class Item174 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=346; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=345; + }; + class Item175 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=348; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=347; + }; + class Item176 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=350; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=349; + }; + class Item177 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=352; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=351; + }; + class Item178 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=354; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=353; + }; + class Item179 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=356; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=355; + }; + class Item180 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=358; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=357; + }; + class Item181 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=360; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=359; + }; + class Item182 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=362; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=361; + }; + class Item183 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=364; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=363; + }; + class Item184 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=366; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=365; + }; + class Item185 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=368; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=367; + }; + class Item186 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=370; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=369; + }; + class Item187 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=372; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=371; + }; + class Item188 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=374; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=373; + }; + class Item189 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=376; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=375; + }; + class Item190 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=378; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=377; + }; + class Item191 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=380; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=379; + }; + class Item192 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=382; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=381; + }; + class Item193 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=384; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=383; + }; + class Item194 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=386; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=385; + }; + class Item195 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=388; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=387; + }; + class Item196 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=390; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=389; + }; + class Item197 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=392; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=391; + }; + class Item198 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=394; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=393; + }; + class Item199 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=396; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=395; + }; + class Item200 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=398; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=397; + }; + class Item201 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=400; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=399; + }; + class Item202 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={8581.2217,10.261438,4670.3428}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=402; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=401; + }; + }; +}; diff --git a/Sources/mpmissions/epoch.Kapaulio/mission.sqm b/Sources/mpmissions/epoch.Kapaulio/mission.sqm new file mode 100644 index 00000000..9a2da258 --- /dev/null +++ b/Sources/mpmissions/epoch.Kapaulio/mission.sqm @@ -0,0 +1,6101 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={6612.7241,77.213638,254.80042}; + dir[]={-0.9702425,-0.23168106,-0.070636302}; + up[]={-0.23108153,0.97278881,-0.016823545}; + aside[]={-0.07261169,-2.0828156e-007,0.99737877}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Ui_F", + "A3_epoch_config" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_epoch_config"; + name="A3_epoch_config"; + }; + }; +}; +randomSeed=12032465; +class ScenarioData +{ + author="[VB]AWOL"; +}; +class Mission +{ + class Intel + { + briefingName="Epoch Mod"; + timeOfChanges=28800; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=203; + class Item0 + { + dataType="Marker"; + position[]={10001.238,63.069824,9997.084}; + name="center"; + type="Empty"; + id=0; + atlOffset=-12.915443; + }; + class Item1 + { + dataType="Marker"; + position[]={6529.8525,9.9503851,163.05029}; + name="respawn_east"; + type="Empty"; + id=1; + atlOffset=0.029066086; + }; + class Item2 + { + dataType="Marker"; + position[]={6529.8525,9.9503851,163.05029}; + name="respawn_west"; + type="Empty"; + id=2; + atlOffset=0.029066086; + }; + class Item3 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=4; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=3; + }; + class Item4 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=6; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=5; + }; + class Item5 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=8; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=7; + }; + class Item6 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=10; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=9; + }; + class Item7 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=12; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=11; + }; + class Item8 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=14; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=13; + }; + class Item9 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=16; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=15; + }; + class Item10 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=18; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=17; + }; + class Item11 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=20; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=19; + }; + class Item12 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=22; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=21; + }; + class Item13 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=24; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=23; + }; + class Item14 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=26; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=25; + }; + class Item15 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=28; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=27; + }; + class Item16 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=30; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=29; + }; + class Item17 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=32; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=31; + }; + class Item18 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=34; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=33; + }; + class Item19 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=36; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=35; + }; + class Item20 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=38; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=37; + }; + class Item21 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=40; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=39; + }; + class Item22 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=42; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=41; + }; + class Item23 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=44; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=43; + }; + class Item24 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=46; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=45; + }; + class Item25 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=48; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=47; + }; + class Item26 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=50; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=49; + }; + class Item27 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=52; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=51; + }; + class Item28 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=54; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=53; + }; + class Item29 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=56; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=55; + }; + class Item30 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=58; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=57; + }; + class Item31 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=60; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=59; + }; + class Item32 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=62; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=61; + }; + class Item33 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=64; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=63; + }; + class Item34 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=66; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=65; + }; + class Item35 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=68; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=67; + }; + class Item36 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=70; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=69; + }; + class Item37 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=72; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=71; + }; + class Item38 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=74; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=73; + }; + class Item39 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=76; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=75; + }; + class Item40 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=78; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=77; + }; + class Item41 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=80; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=79; + }; + class Item42 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=82; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=81; + }; + class Item43 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=84; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=83; + }; + class Item44 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=86; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=85; + }; + class Item45 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=88; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=87; + }; + class Item46 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=90; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=89; + }; + class Item47 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=92; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=91; + }; + class Item48 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=94; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=93; + }; + class Item49 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=96; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=95; + }; + class Item50 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=98; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=97; + }; + class Item51 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=100; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=99; + }; + class Item52 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=102; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=101; + }; + class Item53 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=104; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=103; + }; + class Item54 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=106; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=105; + }; + class Item55 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=108; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=107; + }; + class Item56 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=110; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=109; + }; + class Item57 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=112; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=111; + }; + class Item58 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=114; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=113; + }; + class Item59 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=116; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=115; + }; + class Item60 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=118; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=117; + }; + class Item61 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=120; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=119; + }; + class Item62 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=122; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=121; + }; + class Item63 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=124; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=123; + }; + class Item64 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=126; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=125; + }; + class Item65 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=128; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=127; + }; + class Item66 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=130; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=129; + }; + class Item67 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=132; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=131; + }; + class Item68 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=134; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=133; + }; + class Item69 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=136; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=135; + }; + class Item70 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=138; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=137; + }; + class Item71 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=140; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=139; + }; + class Item72 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=142; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=141; + }; + class Item73 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=144; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=143; + }; + class Item74 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=146; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=145; + }; + class Item75 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=148; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=147; + }; + class Item76 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=150; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=149; + }; + class Item77 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=152; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=151; + }; + class Item78 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=154; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=153; + }; + class Item79 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=156; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=155; + }; + class Item80 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=158; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=157; + }; + class Item81 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=160; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=159; + }; + class Item82 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=162; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=161; + }; + class Item83 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=164; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=163; + }; + class Item84 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=166; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=165; + }; + class Item85 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=168; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=167; + }; + class Item86 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=170; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=169; + }; + class Item87 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=172; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=171; + }; + class Item88 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=174; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=173; + }; + class Item89 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=176; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=175; + }; + class Item90 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=178; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=177; + }; + class Item91 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=180; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=179; + }; + class Item92 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=182; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=181; + }; + class Item93 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=184; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=183; + }; + class Item94 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=186; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=185; + }; + class Item95 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=188; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=187; + }; + class Item96 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=190; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=189; + }; + class Item97 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=192; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=191; + }; + class Item98 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=194; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=193; + }; + class Item99 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=196; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=195; + }; + class Item100 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=198; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=197; + }; + class Item101 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=200; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=199; + }; + class Item102 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=202; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=201; + }; + class Item103 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=204; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=203; + }; + class Item104 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=206; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=205; + }; + class Item105 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=208; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=207; + }; + class Item106 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=210; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=209; + }; + class Item107 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=212; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=211; + }; + class Item108 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=214; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=213; + }; + class Item109 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=216; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=215; + }; + class Item110 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=218; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=217; + }; + class Item111 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=220; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=219; + }; + class Item112 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=222; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=221; + }; + class Item113 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=224; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=223; + }; + class Item114 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=226; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=225; + }; + class Item115 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=228; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=227; + }; + class Item116 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=230; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=229; + }; + class Item117 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=232; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=231; + }; + class Item118 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=234; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=233; + }; + class Item119 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=236; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=235; + }; + class Item120 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=238; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=237; + }; + class Item121 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=240; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=239; + }; + class Item122 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=242; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=241; + }; + class Item123 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=244; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=243; + }; + class Item124 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=246; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=245; + }; + class Item125 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=248; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=247; + }; + class Item126 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=250; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=249; + }; + class Item127 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=252; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=251; + }; + class Item128 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=254; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=253; + }; + class Item129 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=256; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=255; + }; + class Item130 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=258; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=257; + }; + class Item131 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=260; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=259; + }; + class Item132 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=262; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=261; + }; + class Item133 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=264; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=263; + }; + class Item134 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=266; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=265; + }; + class Item135 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=268; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=267; + }; + class Item136 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=270; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=269; + }; + class Item137 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=272; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=271; + }; + class Item138 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=274; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=273; + }; + class Item139 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=276; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=275; + }; + class Item140 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=278; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=277; + }; + class Item141 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=280; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=279; + }; + class Item142 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=282; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=281; + }; + class Item143 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=284; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=283; + }; + class Item144 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=286; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=285; + }; + class Item145 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=288; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=287; + }; + class Item146 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=290; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=289; + }; + class Item147 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=292; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=291; + }; + class Item148 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=294; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=293; + }; + class Item149 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=296; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=295; + }; + class Item150 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=298; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=297; + }; + class Item151 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=300; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=299; + }; + class Item152 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=302; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=301; + }; + class Item153 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=304; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=303; + }; + class Item154 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=306; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=305; + }; + class Item155 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=308; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=307; + }; + class Item156 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=310; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=309; + }; + class Item157 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=312; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=311; + }; + class Item158 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=314; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=313; + }; + class Item159 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=316; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=315; + }; + class Item160 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=318; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=317; + }; + class Item161 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=320; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=319; + }; + class Item162 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=322; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=321; + }; + class Item163 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=324; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=323; + }; + class Item164 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=326; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=325; + }; + class Item165 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=328; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=327; + }; + class Item166 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=330; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=329; + }; + class Item167 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=332; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=331; + }; + class Item168 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=334; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=333; + }; + class Item169 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=336; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=335; + }; + class Item170 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=338; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=337; + }; + class Item171 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=340; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=339; + }; + class Item172 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=342; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=341; + }; + class Item173 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=344; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=343; + }; + class Item174 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=346; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=345; + }; + class Item175 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=348; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=347; + }; + class Item176 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=350; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=349; + }; + class Item177 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=352; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=351; + }; + class Item178 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=354; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=353; + }; + class Item179 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=356; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=355; + }; + class Item180 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=358; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=357; + }; + class Item181 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=360; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=359; + }; + class Item182 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=362; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=361; + }; + class Item183 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=364; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=363; + }; + class Item184 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=366; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=365; + }; + class Item185 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=368; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=367; + }; + class Item186 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=370; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=369; + }; + class Item187 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=372; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=371; + }; + class Item188 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=374; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=373; + }; + class Item189 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=376; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=375; + }; + class Item190 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=378; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=377; + }; + class Item191 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=380; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=379; + }; + class Item192 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=382; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=381; + }; + class Item193 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=384; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=383; + }; + class Item194 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=386; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=385; + }; + class Item195 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=388; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=387; + }; + class Item196 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=390; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=389; + }; + class Item197 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=392; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=391; + }; + class Item198 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=394; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=393; + }; + class Item199 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=396; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=395; + }; + class Item200 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=398; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=397; + }; + class Item201 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=400; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=399; + }; + class Item202 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6529.8525,9.922554,163.05029}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=402; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=401; + }; + }; +}; diff --git a/Sources/mpmissions/epoch.Panthera3/mission.sqm b/Sources/mpmissions/epoch.Panthera3/mission.sqm new file mode 100644 index 00000000..c2b0abbb --- /dev/null +++ b/Sources/mpmissions/epoch.Panthera3/mission.sqm @@ -0,0 +1,6101 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={9998.2148,11.890512,367.38101}; + dir[]={-0.82250619,-0.30920178,-0.47737253}; + up[]={-0.26742509,0.95099735,-0.15521027}; + aside[]={-0.50197053,-3.7252903e-009,0.86488706}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Ui_F", + "A3_epoch_config" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_epoch_config"; + name="A3_epoch_config"; + }; + }; +}; +randomSeed=12032465; +class ScenarioData +{ + author="[VB]AWOL"; +}; +class Mission +{ + class Intel + { + briefingName="Epoch Mod"; + timeOfChanges=28800; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=203; + class Item0 + { + dataType="Marker"; + position[]={5121.0479,26.435547,5013.4204}; + name="center"; + type="Empty"; + id=0; + atlOffset=-26.165222; + }; + class Item1 + { + dataType="Marker"; + position[]={9983.9121,7.7515607,349.29236}; + name="respawn_east"; + type="Empty"; + id=1; + atlOffset=0.021560669; + }; + class Item2 + { + dataType="Marker"; + position[]={9983.9121,7.7515607,349.29236}; + name="respawn_west"; + type="Empty"; + id=2; + atlOffset=0.021560669; + }; + class Item3 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=4; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=3; + }; + class Item4 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=6; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=5; + }; + class Item5 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=8; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=7; + }; + class Item6 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=10; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=9; + }; + class Item7 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=12; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=11; + }; + class Item8 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=14; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=13; + }; + class Item9 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=16; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=15; + }; + class Item10 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=18; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=17; + }; + class Item11 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=20; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=19; + }; + class Item12 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=22; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=21; + }; + class Item13 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=24; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=23; + }; + class Item14 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=26; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=25; + }; + class Item15 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=28; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=27; + }; + class Item16 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=30; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=29; + }; + class Item17 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=32; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=31; + }; + class Item18 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=34; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=33; + }; + class Item19 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=36; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=35; + }; + class Item20 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=38; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=37; + }; + class Item21 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=40; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=39; + }; + class Item22 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=42; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=41; + }; + class Item23 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=44; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=43; + }; + class Item24 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=46; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=45; + }; + class Item25 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=48; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=47; + }; + class Item26 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=50; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=49; + }; + class Item27 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=52; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=51; + }; + class Item28 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=54; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=53; + }; + class Item29 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=56; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=55; + }; + class Item30 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=58; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=57; + }; + class Item31 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=60; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=59; + }; + class Item32 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=62; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=61; + }; + class Item33 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=64; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=63; + }; + class Item34 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=66; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=65; + }; + class Item35 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=68; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=67; + }; + class Item36 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=70; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=69; + }; + class Item37 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=72; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=71; + }; + class Item38 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=74; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=73; + }; + class Item39 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=76; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=75; + }; + class Item40 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=78; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=77; + }; + class Item41 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=80; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=79; + }; + class Item42 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=82; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=81; + }; + class Item43 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=84; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=83; + }; + class Item44 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=86; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=85; + }; + class Item45 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=88; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=87; + }; + class Item46 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=90; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=89; + }; + class Item47 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=92; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=91; + }; + class Item48 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=94; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=93; + }; + class Item49 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=96; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=95; + }; + class Item50 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=98; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=97; + }; + class Item51 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=100; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=99; + }; + class Item52 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=102; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=101; + }; + class Item53 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=104; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=103; + }; + class Item54 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=106; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=105; + }; + class Item55 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=108; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=107; + }; + class Item56 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=110; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=109; + }; + class Item57 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=112; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=111; + }; + class Item58 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=114; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=113; + }; + class Item59 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=116; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=115; + }; + class Item60 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=118; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=117; + }; + class Item61 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=120; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=119; + }; + class Item62 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=122; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=121; + }; + class Item63 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=124; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=123; + }; + class Item64 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=126; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=125; + }; + class Item65 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=128; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=127; + }; + class Item66 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=130; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=129; + }; + class Item67 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=132; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=131; + }; + class Item68 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=134; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=133; + }; + class Item69 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=136; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=135; + }; + class Item70 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=138; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=137; + }; + class Item71 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=140; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=139; + }; + class Item72 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=142; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=141; + }; + class Item73 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=144; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=143; + }; + class Item74 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=146; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=145; + }; + class Item75 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=148; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=147; + }; + class Item76 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=150; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=149; + }; + class Item77 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=152; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=151; + }; + class Item78 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=154; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=153; + }; + class Item79 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=156; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=155; + }; + class Item80 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=158; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=157; + }; + class Item81 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=160; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=159; + }; + class Item82 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=162; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=161; + }; + class Item83 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=164; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=163; + }; + class Item84 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=166; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=165; + }; + class Item85 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=168; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=167; + }; + class Item86 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=170; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=169; + }; + class Item87 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=172; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=171; + }; + class Item88 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=174; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=173; + }; + class Item89 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=176; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=175; + }; + class Item90 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=178; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=177; + }; + class Item91 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=180; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=179; + }; + class Item92 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=182; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=181; + }; + class Item93 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=184; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=183; + }; + class Item94 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=186; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=185; + }; + class Item95 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=188; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=187; + }; + class Item96 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=190; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=189; + }; + class Item97 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=192; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=191; + }; + class Item98 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=194; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=193; + }; + class Item99 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=196; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=195; + }; + class Item100 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=198; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=197; + }; + class Item101 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=200; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=199; + }; + class Item102 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=202; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=201; + }; + class Item103 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=204; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=203; + }; + class Item104 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=206; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=205; + }; + class Item105 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=208; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=207; + }; + class Item106 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=210; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=209; + }; + class Item107 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=212; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=211; + }; + class Item108 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=214; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=213; + }; + class Item109 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=216; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=215; + }; + class Item110 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=218; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=217; + }; + class Item111 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=220; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=219; + }; + class Item112 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=222; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=221; + }; + class Item113 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=224; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=223; + }; + class Item114 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=226; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=225; + }; + class Item115 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=228; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=227; + }; + class Item116 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=230; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=229; + }; + class Item117 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=232; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=231; + }; + class Item118 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=234; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=233; + }; + class Item119 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=236; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=235; + }; + class Item120 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=238; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=237; + }; + class Item121 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=240; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=239; + }; + class Item122 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=242; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=241; + }; + class Item123 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=244; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=243; + }; + class Item124 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=246; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=245; + }; + class Item125 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=248; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=247; + }; + class Item126 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=250; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=249; + }; + class Item127 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=252; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=251; + }; + class Item128 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=254; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=253; + }; + class Item129 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=256; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=255; + }; + class Item130 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=258; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=257; + }; + class Item131 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=260; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=259; + }; + class Item132 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=262; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=261; + }; + class Item133 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=264; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=263; + }; + class Item134 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=266; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=265; + }; + class Item135 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=268; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=267; + }; + class Item136 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=270; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=269; + }; + class Item137 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=272; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=271; + }; + class Item138 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=274; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=273; + }; + class Item139 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=276; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=275; + }; + class Item140 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=278; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=277; + }; + class Item141 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=280; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=279; + }; + class Item142 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=282; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=281; + }; + class Item143 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=284; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=283; + }; + class Item144 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=286; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=285; + }; + class Item145 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=288; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=287; + }; + class Item146 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=290; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=289; + }; + class Item147 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=292; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=291; + }; + class Item148 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=294; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=293; + }; + class Item149 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=296; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=295; + }; + class Item150 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=298; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=297; + }; + class Item151 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=300; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=299; + }; + class Item152 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=302; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=301; + }; + class Item153 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=304; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=303; + }; + class Item154 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=306; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=305; + }; + class Item155 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=308; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=307; + }; + class Item156 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=310; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=309; + }; + class Item157 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=312; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=311; + }; + class Item158 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=314; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=313; + }; + class Item159 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=316; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=315; + }; + class Item160 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=318; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=317; + }; + class Item161 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=320; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=319; + }; + class Item162 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=322; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=321; + }; + class Item163 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=324; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=323; + }; + class Item164 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=326; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=325; + }; + class Item165 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=328; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=327; + }; + class Item166 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=330; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=329; + }; + class Item167 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=332; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=331; + }; + class Item168 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=334; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=333; + }; + class Item169 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=336; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=335; + }; + class Item170 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=338; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=337; + }; + class Item171 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=340; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=339; + }; + class Item172 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=342; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=341; + }; + class Item173 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=344; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=343; + }; + class Item174 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=346; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=345; + }; + class Item175 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=348; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=347; + }; + class Item176 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=350; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=349; + }; + class Item177 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=352; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=351; + }; + class Item178 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=354; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=353; + }; + class Item179 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=356; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=355; + }; + class Item180 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=358; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=357; + }; + class Item181 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=360; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=359; + }; + class Item182 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=362; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=361; + }; + class Item183 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=364; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=363; + }; + class Item184 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=366; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=365; + }; + class Item185 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=368; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=367; + }; + class Item186 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=370; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=369; + }; + class Item187 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=372; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=371; + }; + class Item188 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=374; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=373; + }; + class Item189 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=376; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=375; + }; + class Item190 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=378; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=377; + }; + class Item191 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=380; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=379; + }; + class Item192 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=382; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=381; + }; + class Item193 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=384; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=383; + }; + class Item194 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=386; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=385; + }; + class Item195 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=388; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=387; + }; + class Item196 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=390; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=389; + }; + class Item197 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=392; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=391; + }; + class Item198 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=394; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=393; + }; + class Item199 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=396; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=395; + }; + class Item200 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=398; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=397; + }; + class Item201 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=400; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=399; + }; + class Item202 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9983.9121,7.731442,349.29236}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=402; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=401; + }; + }; +}; diff --git a/Sources/mpmissions/epoch.Winthera3/mission.sqm b/Sources/mpmissions/epoch.Winthera3/mission.sqm new file mode 100644 index 00000000..134fa498 --- /dev/null +++ b/Sources/mpmissions/epoch.Winthera3/mission.sqm @@ -0,0 +1,6101 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={7542.4932,93.791428,15492.986}; + dir[]={-0.8989169,-0.17364819,-0.40223712}; + up[]={-0.15850332,0.98480779,-0.070925266}; + aside[]={-0.40844229,0,0.91278416}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Ui_F", + "A3_epoch_config" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_epoch_config"; + name="A3_epoch_config"; + }; + }; +}; +randomSeed=12032465; +class ScenarioData +{ + author="[VB]AWOL"; +}; +class Mission +{ + class Intel + { + briefingName="Epoch Mod"; + timeOfChanges=28800; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=203; + class Item0 + { + dataType="Marker"; + position[]={5155.4502,38.382568,4979.0215}; + name="center"; + type="Empty"; + id=0; + atlOffset=-21.26173; + }; + class Item1 + { + dataType="Marker"; + position[]={9986.0186,7.7515607,327.30872}; + name="respawn_east"; + type="Empty"; + id=1; + atlOffset=0.021560669; + }; + class Item2 + { + dataType="Marker"; + position[]={9986.0186,7.7515607,327.30872}; + name="respawn_west"; + type="Empty"; + id=2; + atlOffset=0.021560669; + }; + class Item3 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=4; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=3; + }; + class Item4 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=6; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=5; + }; + class Item5 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=8; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=7; + }; + class Item6 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=10; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=9; + }; + class Item7 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=12; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=11; + }; + class Item8 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=14; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=13; + }; + class Item9 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=16; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=15; + }; + class Item10 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=18; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=17; + }; + class Item11 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=20; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=19; + }; + class Item12 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=22; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=21; + }; + class Item13 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=24; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=23; + }; + class Item14 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=26; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=25; + }; + class Item15 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=28; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=27; + }; + class Item16 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=30; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=29; + }; + class Item17 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=32; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=31; + }; + class Item18 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=34; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=33; + }; + class Item19 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=36; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=35; + }; + class Item20 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=38; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=37; + }; + class Item21 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=40; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=39; + }; + class Item22 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=42; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=41; + }; + class Item23 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=44; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=43; + }; + class Item24 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=46; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=45; + }; + class Item25 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=48; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=47; + }; + class Item26 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=50; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=49; + }; + class Item27 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=52; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=51; + }; + class Item28 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=54; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=53; + }; + class Item29 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=56; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=55; + }; + class Item30 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=58; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=57; + }; + class Item31 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=60; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=59; + }; + class Item32 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=62; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=61; + }; + class Item33 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=64; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=63; + }; + class Item34 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=66; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=65; + }; + class Item35 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=68; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=67; + }; + class Item36 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=70; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=69; + }; + class Item37 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=72; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=71; + }; + class Item38 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=74; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=73; + }; + class Item39 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=76; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=75; + }; + class Item40 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=78; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=77; + }; + class Item41 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=80; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=79; + }; + class Item42 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=82; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=81; + }; + class Item43 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=84; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=83; + }; + class Item44 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=86; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=85; + }; + class Item45 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=88; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=87; + }; + class Item46 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=90; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=89; + }; + class Item47 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=92; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=91; + }; + class Item48 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=94; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=93; + }; + class Item49 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=96; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=95; + }; + class Item50 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=98; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=97; + }; + class Item51 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=100; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=99; + }; + class Item52 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=102; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=101; + }; + class Item53 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=104; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=103; + }; + class Item54 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=106; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=105; + }; + class Item55 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=108; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=107; + }; + class Item56 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=110; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=109; + }; + class Item57 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=112; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=111; + }; + class Item58 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=114; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=113; + }; + class Item59 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=116; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=115; + }; + class Item60 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=118; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=117; + }; + class Item61 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=120; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=119; + }; + class Item62 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=122; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=121; + }; + class Item63 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=124; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=123; + }; + class Item64 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=126; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=125; + }; + class Item65 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=128; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=127; + }; + class Item66 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=130; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=129; + }; + class Item67 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=132; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=131; + }; + class Item68 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=134; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=133; + }; + class Item69 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=136; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=135; + }; + class Item70 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=138; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=137; + }; + class Item71 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=140; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=139; + }; + class Item72 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=142; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=141; + }; + class Item73 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=144; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=143; + }; + class Item74 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=146; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=145; + }; + class Item75 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=148; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=147; + }; + class Item76 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=150; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=149; + }; + class Item77 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=152; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=151; + }; + class Item78 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=154; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=153; + }; + class Item79 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=156; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=155; + }; + class Item80 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=158; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=157; + }; + class Item81 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=160; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=159; + }; + class Item82 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=162; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=161; + }; + class Item83 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=164; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=163; + }; + class Item84 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=166; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=165; + }; + class Item85 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=168; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=167; + }; + class Item86 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=170; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=169; + }; + class Item87 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=172; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=171; + }; + class Item88 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=174; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=173; + }; + class Item89 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=176; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=175; + }; + class Item90 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=178; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=177; + }; + class Item91 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=180; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=179; + }; + class Item92 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=182; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=181; + }; + class Item93 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=184; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=183; + }; + class Item94 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=186; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=185; + }; + class Item95 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=188; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=187; + }; + class Item96 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=190; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=189; + }; + class Item97 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=192; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=191; + }; + class Item98 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=194; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=193; + }; + class Item99 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=196; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=195; + }; + class Item100 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=198; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=197; + }; + class Item101 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=200; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=199; + }; + class Item102 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=202; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=201; + }; + class Item103 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=204; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=203; + }; + class Item104 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=206; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=205; + }; + class Item105 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=208; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=207; + }; + class Item106 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=210; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=209; + }; + class Item107 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=212; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=211; + }; + class Item108 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=214; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=213; + }; + class Item109 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=216; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=215; + }; + class Item110 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=218; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=217; + }; + class Item111 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=220; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=219; + }; + class Item112 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=222; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=221; + }; + class Item113 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=224; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=223; + }; + class Item114 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=226; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=225; + }; + class Item115 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=228; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=227; + }; + class Item116 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=230; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=229; + }; + class Item117 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=232; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=231; + }; + class Item118 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=234; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=233; + }; + class Item119 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=236; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=235; + }; + class Item120 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=238; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=237; + }; + class Item121 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=240; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=239; + }; + class Item122 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=242; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=241; + }; + class Item123 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=244; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=243; + }; + class Item124 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=246; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=245; + }; + class Item125 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=248; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=247; + }; + class Item126 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=250; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=249; + }; + class Item127 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=252; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=251; + }; + class Item128 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=254; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=253; + }; + class Item129 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=256; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=255; + }; + class Item130 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=258; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=257; + }; + class Item131 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=260; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=259; + }; + class Item132 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=262; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=261; + }; + class Item133 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=264; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=263; + }; + class Item134 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=266; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=265; + }; + class Item135 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=268; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=267; + }; + class Item136 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=270; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=269; + }; + class Item137 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=272; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=271; + }; + class Item138 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=274; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=273; + }; + class Item139 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=276; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=275; + }; + class Item140 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=278; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=277; + }; + class Item141 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=280; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=279; + }; + class Item142 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=282; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=281; + }; + class Item143 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=284; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=283; + }; + class Item144 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=286; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=285; + }; + class Item145 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=288; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=287; + }; + class Item146 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=290; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=289; + }; + class Item147 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=292; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=291; + }; + class Item148 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=294; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=293; + }; + class Item149 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=296; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=295; + }; + class Item150 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=298; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=297; + }; + class Item151 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=300; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=299; + }; + class Item152 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=302; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=301; + }; + class Item153 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=304; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=303; + }; + class Item154 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=306; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=305; + }; + class Item155 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=308; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=307; + }; + class Item156 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=310; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=309; + }; + class Item157 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=312; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=311; + }; + class Item158 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=314; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=313; + }; + class Item159 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=316; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=315; + }; + class Item160 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=318; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=317; + }; + class Item161 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=320; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=319; + }; + class Item162 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=322; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=321; + }; + class Item163 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=324; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=323; + }; + class Item164 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=326; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=325; + }; + class Item165 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=328; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=327; + }; + class Item166 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=330; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=329; + }; + class Item167 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=332; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=331; + }; + class Item168 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=334; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=333; + }; + class Item169 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=336; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=335; + }; + class Item170 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=338; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=337; + }; + class Item171 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=340; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=339; + }; + class Item172 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=342; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=341; + }; + class Item173 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=344; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=343; + }; + class Item174 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=346; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=345; + }; + class Item175 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=348; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=347; + }; + class Item176 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=350; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=349; + }; + class Item177 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=352; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=351; + }; + class Item178 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=354; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=353; + }; + class Item179 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=356; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=355; + }; + class Item180 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=358; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=357; + }; + class Item181 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=360; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=359; + }; + class Item182 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=362; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=361; + }; + class Item183 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=364; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=363; + }; + class Item184 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=366; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=365; + }; + class Item185 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=368; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=367; + }; + class Item186 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=370; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=369; + }; + class Item187 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=372; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=371; + }; + class Item188 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=374; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=373; + }; + class Item189 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=376; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=375; + }; + class Item190 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=378; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=377; + }; + class Item191 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=380; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=379; + }; + class Item192 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=382; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=381; + }; + class Item193 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=384; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=383; + }; + class Item194 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=386; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=385; + }; + class Item195 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=388; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=387; + }; + class Item196 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=390; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=389; + }; + class Item197 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=392; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=391; + }; + class Item198 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=394; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=393; + }; + class Item199 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=396; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=395; + }; + class Item200 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=398; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=397; + }; + class Item201 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=400; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=399; + }; + class Item202 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9986.0186,7.731442,327.30872}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=402; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=401; + }; + }; +}; diff --git a/Sources/mpmissions/epoch.abramia/mission.sqm b/Sources/mpmissions/epoch.abramia/mission.sqm new file mode 100644 index 00000000..d71c1a0c --- /dev/null +++ b/Sources/mpmissions/epoch.abramia/mission.sqm @@ -0,0 +1,6101 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={9913.5566,18.550613,9994.9082}; + dir[]={0.22783437,-0.45664057,0.85999703}; + up[]={0.1169412,0.88964784,0.44141516}; + aside[]={0.96666288,-4.270114e-007,-0.25609097}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Ui_F", + "A3_epoch_config" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_epoch_config"; + name="A3_epoch_config"; + }; + }; +}; +randomSeed=12032465; +class ScenarioData +{ + author="[VB]AWOL"; +}; +class Mission +{ + class Intel + { + briefingName="Epoch Mod"; + timeOfChanges=28800; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=203; + class Item0 + { + dataType="Marker"; + position[]={5494.3345,182.05957,5002.9351}; + name="center"; + type="Empty"; + id=0; + atlOffset=-18.853424; + }; + class Item1 + { + dataType="Marker"; + position[]={9921.3086,8.2465343,10013.552}; + name="respawn_east"; + type="Empty"; + id=1; + atlOffset=0.014155388; + }; + class Item2 + { + dataType="Marker"; + position[]={9921.3086,8.2465343,10013.552}; + name="respawn_west"; + type="Empty"; + id=2; + atlOffset=0.014155388; + }; + class Item3 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=4; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=3; + }; + class Item4 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=6; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=5; + }; + class Item5 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=8; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=7; + }; + class Item6 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=10; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=9; + }; + class Item7 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=12; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=11; + }; + class Item8 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=14; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=13; + }; + class Item9 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=16; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=15; + }; + class Item10 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=18; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=17; + }; + class Item11 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=20; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=19; + }; + class Item12 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=22; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=21; + }; + class Item13 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=24; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=23; + }; + class Item14 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=26; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=25; + }; + class Item15 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=28; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=27; + }; + class Item16 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=30; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=29; + }; + class Item17 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=32; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=31; + }; + class Item18 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=34; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=33; + }; + class Item19 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=36; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=35; + }; + class Item20 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=38; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=37; + }; + class Item21 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=40; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=39; + }; + class Item22 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=42; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=41; + }; + class Item23 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=44; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=43; + }; + class Item24 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=46; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=45; + }; + class Item25 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=48; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=47; + }; + class Item26 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=50; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=49; + }; + class Item27 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=52; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=51; + }; + class Item28 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=54; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=53; + }; + class Item29 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=56; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=55; + }; + class Item30 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=58; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=57; + }; + class Item31 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=60; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=59; + }; + class Item32 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=62; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=61; + }; + class Item33 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=64; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=63; + }; + class Item34 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=66; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=65; + }; + class Item35 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=68; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=67; + }; + class Item36 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=70; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=69; + }; + class Item37 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=72; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=71; + }; + class Item38 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=74; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=73; + }; + class Item39 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=76; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=75; + }; + class Item40 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=78; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=77; + }; + class Item41 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=80; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=79; + }; + class Item42 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=82; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=81; + }; + class Item43 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=84; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=83; + }; + class Item44 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=86; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=85; + }; + class Item45 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=88; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=87; + }; + class Item46 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=90; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=89; + }; + class Item47 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=92; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=91; + }; + class Item48 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=94; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=93; + }; + class Item49 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=96; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=95; + }; + class Item50 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=98; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=97; + }; + class Item51 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=100; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=99; + }; + class Item52 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=102; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=101; + }; + class Item53 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=104; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=103; + }; + class Item54 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=106; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=105; + }; + class Item55 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=108; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=107; + }; + class Item56 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=110; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=109; + }; + class Item57 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=112; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=111; + }; + class Item58 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=114; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=113; + }; + class Item59 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=116; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=115; + }; + class Item60 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=118; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=117; + }; + class Item61 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=120; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=119; + }; + class Item62 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=122; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=121; + }; + class Item63 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=124; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=123; + }; + class Item64 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=126; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=125; + }; + class Item65 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=128; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=127; + }; + class Item66 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=130; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=129; + }; + class Item67 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=132; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=131; + }; + class Item68 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=134; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=133; + }; + class Item69 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=136; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=135; + }; + class Item70 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=138; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=137; + }; + class Item71 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=140; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=139; + }; + class Item72 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=142; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=141; + }; + class Item73 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=144; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=143; + }; + class Item74 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=146; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=145; + }; + class Item75 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=148; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=147; + }; + class Item76 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=150; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=149; + }; + class Item77 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=152; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=151; + }; + class Item78 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=154; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=153; + }; + class Item79 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=156; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=155; + }; + class Item80 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=158; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=157; + }; + class Item81 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=160; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=159; + }; + class Item82 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=162; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=161; + }; + class Item83 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=164; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=163; + }; + class Item84 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=166; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=165; + }; + class Item85 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=168; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=167; + }; + class Item86 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=170; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=169; + }; + class Item87 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=172; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=171; + }; + class Item88 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=174; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=173; + }; + class Item89 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=176; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=175; + }; + class Item90 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=178; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=177; + }; + class Item91 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=180; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=179; + }; + class Item92 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=182; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=181; + }; + class Item93 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=184; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=183; + }; + class Item94 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=186; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=185; + }; + class Item95 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=188; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=187; + }; + class Item96 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=190; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=189; + }; + class Item97 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=192; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=191; + }; + class Item98 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=194; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=193; + }; + class Item99 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=196; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=195; + }; + class Item100 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=198; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=197; + }; + class Item101 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=200; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=199; + }; + class Item102 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=202; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=201; + }; + class Item103 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=204; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=203; + }; + class Item104 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=206; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=205; + }; + class Item105 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=208; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=207; + }; + class Item106 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=210; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=209; + }; + class Item107 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=212; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=211; + }; + class Item108 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=214; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=213; + }; + class Item109 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=216; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=215; + }; + class Item110 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=218; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=217; + }; + class Item111 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=220; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=219; + }; + class Item112 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=222; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=221; + }; + class Item113 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=224; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=223; + }; + class Item114 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=226; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=225; + }; + class Item115 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=228; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=227; + }; + class Item116 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=230; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=229; + }; + class Item117 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=232; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=231; + }; + class Item118 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=234; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=233; + }; + class Item119 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=236; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=235; + }; + class Item120 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=238; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=237; + }; + class Item121 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=240; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=239; + }; + class Item122 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=242; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=241; + }; + class Item123 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=244; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=243; + }; + class Item124 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=246; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=245; + }; + class Item125 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=248; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=247; + }; + class Item126 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=250; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=249; + }; + class Item127 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=252; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=251; + }; + class Item128 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=254; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=253; + }; + class Item129 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=256; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=255; + }; + class Item130 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=258; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=257; + }; + class Item131 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=260; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=259; + }; + class Item132 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=262; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=261; + }; + class Item133 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=264; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=263; + }; + class Item134 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=266; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=265; + }; + class Item135 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=268; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=267; + }; + class Item136 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=270; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=269; + }; + class Item137 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=272; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=271; + }; + class Item138 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=274; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=273; + }; + class Item139 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=276; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=275; + }; + class Item140 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=278; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=277; + }; + class Item141 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=280; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=279; + }; + class Item142 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=282; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=281; + }; + class Item143 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=284; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=283; + }; + class Item144 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=286; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=285; + }; + class Item145 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=288; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=287; + }; + class Item146 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=290; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=289; + }; + class Item147 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=292; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=291; + }; + class Item148 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=294; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=293; + }; + class Item149 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=296; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=295; + }; + class Item150 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=298; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=297; + }; + class Item151 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=300; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=299; + }; + class Item152 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=302; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=301; + }; + class Item153 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=304; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=303; + }; + class Item154 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=306; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=305; + }; + class Item155 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=308; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=307; + }; + class Item156 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=310; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=309; + }; + class Item157 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=312; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=311; + }; + class Item158 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=314; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=313; + }; + class Item159 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=316; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=315; + }; + class Item160 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=318; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=317; + }; + class Item161 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=320; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=319; + }; + class Item162 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=322; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=321; + }; + class Item163 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=324; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=323; + }; + class Item164 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=326; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=325; + }; + class Item165 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=328; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=327; + }; + class Item166 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=330; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=329; + }; + class Item167 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=332; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=331; + }; + class Item168 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=334; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=333; + }; + class Item169 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=336; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=335; + }; + class Item170 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=338; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=337; + }; + class Item171 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=340; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=339; + }; + class Item172 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=342; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=341; + }; + class Item173 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=344; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=343; + }; + class Item174 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=346; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=345; + }; + class Item175 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=348; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=347; + }; + class Item176 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=350; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=349; + }; + class Item177 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=352; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=351; + }; + class Item178 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=354; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=353; + }; + class Item179 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=356; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=355; + }; + class Item180 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=358; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=357; + }; + class Item181 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=360; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=359; + }; + class Item182 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=362; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=361; + }; + class Item183 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=364; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=363; + }; + class Item184 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=366; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=365; + }; + class Item185 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=368; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=367; + }; + class Item186 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=370; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=369; + }; + class Item187 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=372; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=371; + }; + class Item188 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=374; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=373; + }; + class Item189 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=376; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=375; + }; + class Item190 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=378; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=377; + }; + class Item191 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=380; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=379; + }; + class Item192 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=382; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=381; + }; + class Item193 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=384; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=383; + }; + class Item194 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=386; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=385; + }; + class Item195 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=388; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=387; + }; + class Item196 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=390; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=389; + }; + class Item197 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=392; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=391; + }; + class Item198 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=394; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=393; + }; + class Item199 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=396; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=395; + }; + class Item200 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=398; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=397; + }; + class Item201 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=400; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=399; + }; + class Item202 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9921.3086,8.2350368,10013.552}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=402; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=401; + }; + }; +}; diff --git a/Sources/mpmissions/epoch.dingor/mission.sqm b/Sources/mpmissions/epoch.dingor/mission.sqm new file mode 100644 index 00000000..78d451d1 --- /dev/null +++ b/Sources/mpmissions/epoch.dingor/mission.sqm @@ -0,0 +1,6099 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={929.11755,30.959999,9112.7178}; + dir[]={0.1081438,-0.21725178,0.97011107}; + up[]={0.024069432,0.97611481,0.21591686}; + aside[]={0.99384779,-1.4409306e-007,-0.11079042}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Ui_F", + "A3_epoch_config" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_epoch_config"; + name="A3_epoch_config"; + }; + }; +}; +randomSeed=12032465; +class ScenarioData +{ + author="[VB]AWOL"; +}; +class Mission +{ + class Intel + { + briefingName="Epoch Mod"; + timeOfChanges=28800; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=203; + class Item0 + { + dataType="Marker"; + position[]={5493.7646,7.8920898,5000.9497}; + name="center"; + type="Empty"; + id=0; + atlOffset=-4.1990528; + }; + class Item1 + { + dataType="Marker"; + position[]={944.10492,5.96,9218.8789}; + name="respawn_east"; + type="Empty"; + id=1; + }; + class Item2 + { + dataType="Marker"; + position[]={944.10492,5.96,9218.8789}; + name="respawn_west"; + type="Empty"; + id=2; + }; + class Item3 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=4; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=3; + }; + class Item4 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=6; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=5; + }; + class Item5 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=8; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=7; + }; + class Item6 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=10; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=9; + }; + class Item7 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=12; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=11; + }; + class Item8 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=14; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=13; + }; + class Item9 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=16; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=15; + }; + class Item10 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=18; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=17; + }; + class Item11 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=20; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=19; + }; + class Item12 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=22; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=21; + }; + class Item13 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=24; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=23; + }; + class Item14 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=26; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=25; + }; + class Item15 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=28; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=27; + }; + class Item16 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=30; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=29; + }; + class Item17 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=32; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=31; + }; + class Item18 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=34; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=33; + }; + class Item19 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=36; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=35; + }; + class Item20 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=38; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=37; + }; + class Item21 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=40; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=39; + }; + class Item22 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=42; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=41; + }; + class Item23 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=44; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=43; + }; + class Item24 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=46; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=45; + }; + class Item25 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=48; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=47; + }; + class Item26 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=50; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=49; + }; + class Item27 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=52; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=51; + }; + class Item28 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=54; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=53; + }; + class Item29 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=56; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=55; + }; + class Item30 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=58; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=57; + }; + class Item31 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=60; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=59; + }; + class Item32 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=62; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=61; + }; + class Item33 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=64; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=63; + }; + class Item34 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=66; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=65; + }; + class Item35 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=68; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=67; + }; + class Item36 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=70; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=69; + }; + class Item37 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=72; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=71; + }; + class Item38 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=74; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=73; + }; + class Item39 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=76; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=75; + }; + class Item40 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=78; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=77; + }; + class Item41 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=80; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=79; + }; + class Item42 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=82; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=81; + }; + class Item43 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=84; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=83; + }; + class Item44 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=86; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=85; + }; + class Item45 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=88; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=87; + }; + class Item46 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=90; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=89; + }; + class Item47 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=92; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=91; + }; + class Item48 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=94; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=93; + }; + class Item49 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=96; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=95; + }; + class Item50 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=98; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=97; + }; + class Item51 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=100; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=99; + }; + class Item52 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=102; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=101; + }; + class Item53 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=104; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=103; + }; + class Item54 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=106; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=105; + }; + class Item55 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=108; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=107; + }; + class Item56 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=110; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=109; + }; + class Item57 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=112; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=111; + }; + class Item58 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=114; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=113; + }; + class Item59 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=116; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=115; + }; + class Item60 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=118; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=117; + }; + class Item61 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=120; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=119; + }; + class Item62 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=122; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=121; + }; + class Item63 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=124; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=123; + }; + class Item64 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=126; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=125; + }; + class Item65 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=128; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=127; + }; + class Item66 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=130; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=129; + }; + class Item67 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=132; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=131; + }; + class Item68 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=134; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=133; + }; + class Item69 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=136; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=135; + }; + class Item70 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=138; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=137; + }; + class Item71 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=140; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=139; + }; + class Item72 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=142; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=141; + }; + class Item73 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=144; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=143; + }; + class Item74 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=146; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=145; + }; + class Item75 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=148; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=147; + }; + class Item76 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=150; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=149; + }; + class Item77 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=152; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=151; + }; + class Item78 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=154; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=153; + }; + class Item79 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=156; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=155; + }; + class Item80 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=158; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=157; + }; + class Item81 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=160; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=159; + }; + class Item82 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=162; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=161; + }; + class Item83 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=164; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=163; + }; + class Item84 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=166; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=165; + }; + class Item85 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=168; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=167; + }; + class Item86 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=170; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=169; + }; + class Item87 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=172; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=171; + }; + class Item88 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=174; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=173; + }; + class Item89 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=176; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=175; + }; + class Item90 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=178; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=177; + }; + class Item91 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=180; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=179; + }; + class Item92 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=182; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=181; + }; + class Item93 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=184; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=183; + }; + class Item94 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=186; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=185; + }; + class Item95 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=188; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=187; + }; + class Item96 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=190; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=189; + }; + class Item97 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=192; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=191; + }; + class Item98 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=194; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=193; + }; + class Item99 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=196; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=195; + }; + class Item100 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=198; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=197; + }; + class Item101 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=200; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=199; + }; + class Item102 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=202; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=201; + }; + class Item103 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=204; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=203; + }; + class Item104 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=206; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=205; + }; + class Item105 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=208; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=207; + }; + class Item106 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=210; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=209; + }; + class Item107 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=212; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=211; + }; + class Item108 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=214; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=213; + }; + class Item109 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=216; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=215; + }; + class Item110 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=218; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=217; + }; + class Item111 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=220; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=219; + }; + class Item112 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=222; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=221; + }; + class Item113 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=224; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=223; + }; + class Item114 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=226; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=225; + }; + class Item115 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=228; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=227; + }; + class Item116 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=230; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=229; + }; + class Item117 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=232; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=231; + }; + class Item118 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=234; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=233; + }; + class Item119 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=236; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=235; + }; + class Item120 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=238; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=237; + }; + class Item121 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=240; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=239; + }; + class Item122 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=242; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=241; + }; + class Item123 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=244; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=243; + }; + class Item124 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=246; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=245; + }; + class Item125 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=248; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=247; + }; + class Item126 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=250; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=249; + }; + class Item127 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=252; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=251; + }; + class Item128 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=254; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=253; + }; + class Item129 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=256; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=255; + }; + class Item130 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=258; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=257; + }; + class Item131 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=260; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=259; + }; + class Item132 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=262; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=261; + }; + class Item133 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=264; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=263; + }; + class Item134 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=266; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=265; + }; + class Item135 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=268; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=267; + }; + class Item136 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=270; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=269; + }; + class Item137 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=272; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=271; + }; + class Item138 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=274; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=273; + }; + class Item139 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=276; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=275; + }; + class Item140 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=278; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=277; + }; + class Item141 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=280; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=279; + }; + class Item142 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=282; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=281; + }; + class Item143 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=284; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=283; + }; + class Item144 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=286; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=285; + }; + class Item145 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=288; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=287; + }; + class Item146 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=290; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=289; + }; + class Item147 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=292; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=291; + }; + class Item148 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=294; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=293; + }; + class Item149 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=296; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=295; + }; + class Item150 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=298; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=297; + }; + class Item151 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=300; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=299; + }; + class Item152 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=302; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=301; + }; + class Item153 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=304; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=303; + }; + class Item154 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=306; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=305; + }; + class Item155 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=308; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=307; + }; + class Item156 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=310; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=309; + }; + class Item157 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=312; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=311; + }; + class Item158 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=314; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=313; + }; + class Item159 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=316; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=315; + }; + class Item160 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=318; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=317; + }; + class Item161 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=320; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=319; + }; + class Item162 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=322; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=321; + }; + class Item163 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=324; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=323; + }; + class Item164 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=326; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=325; + }; + class Item165 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=328; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=327; + }; + class Item166 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=330; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=329; + }; + class Item167 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=332; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=331; + }; + class Item168 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=334; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=333; + }; + class Item169 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=336; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=335; + }; + class Item170 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=338; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=337; + }; + class Item171 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=340; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=339; + }; + class Item172 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=342; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=341; + }; + class Item173 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=344; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=343; + }; + class Item174 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=346; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=345; + }; + class Item175 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=348; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=347; + }; + class Item176 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=350; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=349; + }; + class Item177 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=352; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=351; + }; + class Item178 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=354; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=353; + }; + class Item179 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=356; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=355; + }; + class Item180 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=358; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=357; + }; + class Item181 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=360; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=359; + }; + class Item182 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=362; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=361; + }; + class Item183 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=364; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=363; + }; + class Item184 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=366; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=365; + }; + class Item185 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=368; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=367; + }; + class Item186 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=370; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=369; + }; + class Item187 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=372; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=371; + }; + class Item188 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=374; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=373; + }; + class Item189 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=376; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=375; + }; + class Item190 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=378; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=377; + }; + class Item191 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=380; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=379; + }; + class Item192 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=382; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=381; + }; + class Item193 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=384; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=383; + }; + class Item194 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=386; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=385; + }; + class Item195 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=388; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=387; + }; + class Item196 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=390; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=389; + }; + class Item197 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=392; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=391; + }; + class Item198 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=394; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=393; + }; + class Item199 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=396; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=395; + }; + class Item200 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=398; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=397; + }; + class Item201 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=400; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=399; + }; + class Item202 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={944.10492,5.9614382,9218.8789}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=402; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=401; + }; + }; +}; diff --git a/Sources/mpmissions/epoch.lingor3/mission.sqm b/Sources/mpmissions/epoch.lingor3/mission.sqm new file mode 100644 index 00000000..0e2f1c5f --- /dev/null +++ b/Sources/mpmissions/epoch.lingor3/mission.sqm @@ -0,0 +1,6099 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=2; + }; + class Camera + { + pos[]={918.76733,30.959999,9265.1563}; + dir[]={0.37624514,-0.20357986,-0.90388113}; + up[]={0.078234762,0.97905856,-0.18794924}; + aside[]={-0.92321455,-1.0849908e-007,-0.38429347}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Ui_F", + "A3_epoch_config" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_epoch_config"; + name="A3_epoch_config"; + }; + }; +}; +randomSeed=12032465; +class ScenarioData +{ + author="[VB]AWOL"; +}; +class Mission +{ + class Intel + { + briefingName="Epoch Mod"; + timeOfChanges=28800; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=203; + class Item0 + { + dataType="Marker"; + position[]={5102.5142,4.7827148,5000.0371}; + name="center"; + type="Empty"; + id=0; + atlOffset=-2.1021876; + }; + class Item1 + { + dataType="Marker"; + position[]={946.45447,5.96,9205.7197}; + name="respawn_east"; + type="Empty"; + id=1; + }; + class Item2 + { + dataType="Marker"; + position[]={946.45447,5.96,9205.7197}; + name="respawn_west"; + type="Empty"; + id=2; + }; + class Item3 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=4; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=3; + }; + class Item4 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=6; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=5; + }; + class Item5 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=8; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=7; + }; + class Item6 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=10; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=9; + }; + class Item7 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=12; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=11; + }; + class Item8 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=14; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=13; + }; + class Item9 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=16; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=15; + }; + class Item10 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=18; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=17; + }; + class Item11 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=20; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=19; + }; + class Item12 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=22; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=21; + }; + class Item13 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=24; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=23; + }; + class Item14 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=26; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=25; + }; + class Item15 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=28; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=27; + }; + class Item16 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=30; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=29; + }; + class Item17 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=32; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=31; + }; + class Item18 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=34; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=33; + }; + class Item19 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=36; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=35; + }; + class Item20 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=38; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=37; + }; + class Item21 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=40; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=39; + }; + class Item22 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=42; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=41; + }; + class Item23 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=44; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=43; + }; + class Item24 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=46; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=45; + }; + class Item25 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=48; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=47; + }; + class Item26 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=50; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=49; + }; + class Item27 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=52; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=51; + }; + class Item28 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=54; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=53; + }; + class Item29 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=56; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=55; + }; + class Item30 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=58; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=57; + }; + class Item31 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=60; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=59; + }; + class Item32 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=62; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=61; + }; + class Item33 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=64; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=63; + }; + class Item34 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=66; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=65; + }; + class Item35 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=68; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=67; + }; + class Item36 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=70; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=69; + }; + class Item37 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=72; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=71; + }; + class Item38 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=74; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=73; + }; + class Item39 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=76; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=75; + }; + class Item40 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=78; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=77; + }; + class Item41 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=80; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=79; + }; + class Item42 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=82; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=81; + }; + class Item43 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=84; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=83; + }; + class Item44 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=86; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=85; + }; + class Item45 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=88; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=87; + }; + class Item46 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=90; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=89; + }; + class Item47 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=92; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=91; + }; + class Item48 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=94; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=93; + }; + class Item49 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=96; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=95; + }; + class Item50 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=98; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=97; + }; + class Item51 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=100; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=99; + }; + class Item52 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=102; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=101; + }; + class Item53 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=104; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=103; + }; + class Item54 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=106; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=105; + }; + class Item55 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=108; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=107; + }; + class Item56 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=110; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=109; + }; + class Item57 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=112; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=111; + }; + class Item58 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=114; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=113; + }; + class Item59 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=116; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=115; + }; + class Item60 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=118; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=117; + }; + class Item61 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=120; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=119; + }; + class Item62 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=122; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=121; + }; + class Item63 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=124; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=123; + }; + class Item64 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=126; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=125; + }; + class Item65 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=128; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=127; + }; + class Item66 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=130; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=129; + }; + class Item67 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=132; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=131; + }; + class Item68 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=134; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=133; + }; + class Item69 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=136; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=135; + }; + class Item70 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=138; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=137; + }; + class Item71 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=140; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=139; + }; + class Item72 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=142; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=141; + }; + class Item73 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=144; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=143; + }; + class Item74 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=146; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=145; + }; + class Item75 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=148; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=147; + }; + class Item76 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=150; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=149; + }; + class Item77 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=152; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=151; + }; + class Item78 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=154; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=153; + }; + class Item79 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=156; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=155; + }; + class Item80 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=158; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=157; + }; + class Item81 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=160; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=159; + }; + class Item82 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=162; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=161; + }; + class Item83 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=164; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=163; + }; + class Item84 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=166; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=165; + }; + class Item85 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=168; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=167; + }; + class Item86 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=170; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=169; + }; + class Item87 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=172; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=171; + }; + class Item88 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=174; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=173; + }; + class Item89 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=176; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=175; + }; + class Item90 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=178; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=177; + }; + class Item91 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=180; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=179; + }; + class Item92 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=182; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=181; + }; + class Item93 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=184; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=183; + }; + class Item94 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=186; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=185; + }; + class Item95 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=188; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=187; + }; + class Item96 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=190; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=189; + }; + class Item97 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=192; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=191; + }; + class Item98 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=194; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=193; + }; + class Item99 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=196; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=195; + }; + class Item100 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=198; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=197; + }; + class Item101 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=200; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=199; + }; + class Item102 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=202; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=201; + }; + class Item103 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=204; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=203; + }; + class Item104 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=206; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=205; + }; + class Item105 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=208; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=207; + }; + class Item106 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=210; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=209; + }; + class Item107 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=212; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=211; + }; + class Item108 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=214; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=213; + }; + class Item109 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=216; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=215; + }; + class Item110 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=218; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=217; + }; + class Item111 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=220; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=219; + }; + class Item112 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=222; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=221; + }; + class Item113 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=224; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=223; + }; + class Item114 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=226; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=225; + }; + class Item115 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=228; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=227; + }; + class Item116 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=230; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=229; + }; + class Item117 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=232; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=231; + }; + class Item118 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=234; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=233; + }; + class Item119 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=236; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=235; + }; + class Item120 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=238; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=237; + }; + class Item121 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=240; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=239; + }; + class Item122 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=242; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=241; + }; + class Item123 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=244; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=243; + }; + class Item124 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=246; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=245; + }; + class Item125 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=248; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=247; + }; + class Item126 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=250; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=249; + }; + class Item127 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=252; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=251; + }; + class Item128 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=254; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=253; + }; + class Item129 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=256; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=255; + }; + class Item130 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=258; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=257; + }; + class Item131 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=260; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=259; + }; + class Item132 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=262; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=261; + }; + class Item133 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=264; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=263; + }; + class Item134 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=266; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=265; + }; + class Item135 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=268; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=267; + }; + class Item136 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=270; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=269; + }; + class Item137 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=272; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=271; + }; + class Item138 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=274; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=273; + }; + class Item139 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=276; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=275; + }; + class Item140 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=278; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=277; + }; + class Item141 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=280; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=279; + }; + class Item142 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=282; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=281; + }; + class Item143 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=284; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=283; + }; + class Item144 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=286; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=285; + }; + class Item145 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=288; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=287; + }; + class Item146 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=290; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=289; + }; + class Item147 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=292; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=291; + }; + class Item148 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=294; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=293; + }; + class Item149 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=296; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=295; + }; + class Item150 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=298; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=297; + }; + class Item151 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=300; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=299; + }; + class Item152 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=302; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=301; + }; + class Item153 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=304; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=303; + }; + class Item154 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=306; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=305; + }; + class Item155 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=308; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=307; + }; + class Item156 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=310; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=309; + }; + class Item157 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=312; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=311; + }; + class Item158 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=314; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=313; + }; + class Item159 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=316; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=315; + }; + class Item160 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=318; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=317; + }; + class Item161 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=320; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=319; + }; + class Item162 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=322; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=321; + }; + class Item163 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=324; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=323; + }; + class Item164 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=326; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=325; + }; + class Item165 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=328; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=327; + }; + class Item166 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=330; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=329; + }; + class Item167 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=332; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=331; + }; + class Item168 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=334; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=333; + }; + class Item169 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=336; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=335; + }; + class Item170 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=338; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=337; + }; + class Item171 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=340; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=339; + }; + class Item172 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=342; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=341; + }; + class Item173 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=344; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=343; + }; + class Item174 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=346; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=345; + }; + class Item175 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=348; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=347; + }; + class Item176 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=350; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=349; + }; + class Item177 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=352; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=351; + }; + class Item178 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=354; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=353; + }; + class Item179 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=356; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=355; + }; + class Item180 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=358; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=357; + }; + class Item181 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=360; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=359; + }; + class Item182 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=362; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=361; + }; + class Item183 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=364; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=363; + }; + class Item184 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=366; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=365; + }; + class Item185 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=368; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=367; + }; + class Item186 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=370; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=369; + }; + class Item187 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=372; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=371; + }; + class Item188 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=374; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=373; + }; + class Item189 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=376; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=375; + }; + class Item190 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=378; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=377; + }; + class Item191 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=380; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=379; + }; + class Item192 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=382; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=381; + }; + class Item193 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=384; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=383; + }; + class Item194 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=386; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=385; + }; + class Item195 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=388; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=387; + }; + class Item196 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=390; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=389; + }; + class Item197 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=392; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=391; + }; + class Item198 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=394; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=393; + }; + class Item199 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=396; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=395; + }; + class Item200 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=398; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=397; + }; + class Item201 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=400; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=399; + }; + class Item202 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={946.45447,5.9614382,9205.7197}; + angles[]={0,4.7169838,0}; + }; + side="Civilian"; + flags=7; + class Attributes + { + isPlayable=1; + }; + id=402; + type="VirtualMan_EPOCH"; + }; + }; + class Attributes + { + }; + id=401; + }; + }; +}; From f34c1c8e241c242b09e14d4733fb3349b366ff22 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Wed, 6 Dec 2017 10:22:27 -0600 Subject: [PATCH 26/94] default select weapon on keys 1,2,3 Keys 1,2 and 3 now will process for a holstered weapon if the FAV BAR item in slots assigned to those keys are not present in inventory/weapons. Interaction Items not in inventory will throw "Item Not Found" message --- .../epoch_code/gui/scripts/favBar/epoch_favBar_action.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Sources/epoch_code/gui/scripts/favBar/epoch_favBar_action.sqf b/Sources/epoch_code/gui/scripts/favBar/epoch_favBar_action.sqf index 867f9f23..b89ed3e0 100644 --- a/Sources/epoch_code/gui/scripts/favBar/epoch_favBar_action.sqf +++ b/Sources/epoch_code/gui/scripts/favBar/epoch_favBar_action.sqf @@ -37,7 +37,7 @@ if !(_throw isequalto "") then { } else { _itemHasInteraction = str(missionConfigFile >> "CfgItemInteractions" >> _item) != ""; - if (_itemHasInteraction) then { + if ((_itemHasInteraction) && (_item in magazines player)) then { EPOCH_InteractedItem = ["",_item,""]; [] call EPOCH_consumeItem; EPOCH_favBar_itemConsumed = true; @@ -53,7 +53,11 @@ else { _Fav_FastWeaponSwitching = ["CfgEpochClient", "Fav_FastWeaponSwitching", false] call EPOCH_fnc_returnConfigEntryV2; if (_curSlot == _slot && !_Fav_FastWeaponSwitching && _errorCode in [1,2]) then {player playAction "reloadMagazine";}; }; - + if(_errorCode in [0,3]) then{ + if(!(true in EPOCH_modKeys) && (_kee isEqualTo 2))then{player selectWeapon (primaryWeapon player)}; + if(!(true in EPOCH_modKeys) && (_kee isEqualTo 3))then{player selectWeapon (handgunWeapon player)}; + if(!(true in EPOCH_modKeys) && (_kee isEqualTo 4))then{player selectWeapon (secondaryWeapon player)}; + }; if (_errorCode isEqualTo 2) then {"Not enough space, item dropped on the ground!" call epoch_message;}; if (_errorCode isEqualTo 4 && _item != (currentWeapon player)) then {"Not enough space!" call epoch_message;}; if (_errorCode isEqualTo 3) then {"Item not found!" call epoch_message;}; From 33a9a8f68292a5c5bd307beef426d23ca98da6a5 Mon Sep 17 00:00:00 2001 From: SirDice Date: Wed, 6 Dec 2017 21:19:36 +0100 Subject: [PATCH 27/94] Missing brace There's a opening brace missing, causing this error: ``` 21:15:44 Error in expression <"true"); _ep setDamage (_dmg min 0.75); } forEach(getArray(_configWorld >> "prop> 21:15:44 Error position: <} forEach(getArray(_configWorld >> "prop> 21:15:44 Error Missing { 21:15:44 File epoch_server\compile\epoch_server\EPOCH_server_createTeleport.sqf, line 110 21:15:44 Error in expression <"true"); _ep setDamage (_dmg min 0.75); } forEach(getArray(_configWorld >> "prop> 21:15:44 Error position: <} forEach(getArray(_configWorld >> "prop> 21:15:44 Error Missing { 21:15:44 File epoch_server\compile\epoch_server\EPOCH_server_createTeleport.sqf, line 110 ``` --- .../compile/epoch_server/EPOCH_server_createTeleport.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf index 2fa303e5..17544302 100644 --- a/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_server_createTeleport.sqf @@ -102,7 +102,7 @@ if !(_debugBox isEqualTo "") then { if((_deSimulate) || (_disableSim isEqualTo "true"))then{ _ep enableSimulationGlobal false; }; - if([configFile >> "CfgEpochServer", "enableDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then + if([configFile >> "CfgEpochServer", "enableDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry) then { _ep enableDynamicSimulation (_dynSim isEqualTo "true"); }; _ep allowDamage (_allowDmg isEqualTo "true"); From 0814faedb639d680a6c9aa87aad61fa968791452 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 7 Dec 2017 10:47:49 -0600 Subject: [PATCH 28/94] add default props for 'center' marker --- .../configs/templates/CfgPropTemplate.h | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/Sources/epoch_server_settings/configs/templates/CfgPropTemplate.h b/Sources/epoch_server_settings/configs/templates/CfgPropTemplate.h index a571eaf2..333ab2ae 100644 --- a/Sources/epoch_server_settings/configs/templates/CfgPropTemplate.h +++ b/Sources/epoch_server_settings/configs/templates/CfgPropTemplate.h @@ -307,4 +307,81 @@ class CfgPropTemplate { { "Land_HelipadEmpty_F", {21.354,25.6807,-4.74999}, 0, true }, { "C_man_1", {7.95239,8.18945,-4.74856}, 214.411, false } }; + center[] = { + { "Land_HelipadEmpty_F", {-7.17188,-34.5039,-4.75}, 0, true }, + { "Land_Factory_Conv2_F", {-27.3831,-10.0508,-4.75}, 160.944, true }, + { "Land_i_Garage_V2_F", {-19.3713,-1.82568,-4.75}, 355.492, false }, + { "Land_i_Garage_V2_F", {-8.40625,-17.5952,-4.75}, 297.007, false }, + { "Land_i_Garage_V2_F", {-15.6597,-11.2949,-4.75}, 323.572, false }, + { "Land_Mil_WallBig_4m_F", {-2.47119,-23.3975,-4.76194}, 174.746, true }, + { "Land_Mil_WallBig_4m_F", {-13.8042,-18.9365,-4.76194}, 205.067, true }, + { "Land_Mil_WallBig_4m_F", {-22.5486,-6.37109,-4.76194}, 263.427, true }, + { "Land_Mil_WallBig_4m_F", {-16.0625,-16.8755,-4.76194}, 235.64, true }, + { "Land_Mil_WallBig_4m_F", {-21.137,-9.96924,-4.76194}, 232.849, true }, + { "Land_Mil_WallBig_4m_F", {-6.18701,-22.6909,-4.76194}, 205.328, true }, + { "Land_CncWall1_F", {-2.27295,-12.9634,-4.75}, 191.576, true }, + { "Land_CncWall1_F", {-12.3088,-4.62061,-4.75}, 247.048, true }, + { "Land_CncWall1_F", {-8.17139,-10.1084,-4.75}, 223.31, true }, + { "Land_LampSolar_F", {-2.32715,-12.4058,-4.75}, 103.123, true }, + { "Land_RattanTable_01_F", {-3.30396,-11.8892,-4.74999}, 0, true }, + { "MetalBarrel_burning_F", {-11.5137,-2.75098,-4.75001}, 0, false }, + { "Land_CampingChair_V2_F", {-11.7944,-4.27197,-4.74998}, 196.248, true }, + { "Land_ChairPlastic_F", {-12.2952,-1.39551,-4.74999}, 33.536, true }, + { "C_man_1", {-4.00146,-11.4497,-4.74856}, 8.80756, false }, + { "Land_i_Garage_V2_F", {-1.81787,18.9033,-4.75}, 85.2151, false }, + { "Land_i_Garage_V2_F", {-17.4939,7.91357,-4.75}, 25.8296, false }, + { "Land_i_Garage_V2_F", {-11.2908,15.3286,-4.75}, 53.2947, false }, + { "Land_cmp_Tower_F", {-7.80127,20.4507,-4.75}, 338.149, true }, + { "Land_LampSolar_F", {-4.20825,11.0264,-4.75}, 241.694, true }, + { "Land_Mil_WallBig_4m_F", {-18.9033,13.2422,-4.76194}, 295.353, true }, + { "Land_Mil_WallBig_4m_F", {-16.8428,15.7354,-4.76194}, 325.931, true }, + { "Land_Mil_WallBig_4m_F", {-23.2595,2.16602,-4.76194}, 266.892, true }, + { "Land_Mil_WallBig_4m_F", {-22.6035,5.66064,-4.76194}, 297.471, true }, + { "Land_Mil_WallBig_4m_F", {-8.33423,22.9419,-5.48809}, 158.976, true }, + { "Land_Mil_WallBig_Corner_F", {-4.96704,23.8374,-4.75}, 176.693, true }, + { "Land_Mil_WallBig_Corner_F", {-12.4094,21.0811,-4.75}, 62.9128, true }, + { "Land_CncWall1_F", {-9.99512,7.80518,-4.75}, 303.958, true }, + { "Land_CncWall1_F", {-12.9668,1.94775,-4.75}, 286.841, true }, + { "Land_CncWall1_F", {-4.46216,11.6143,-4.75}, 340.161, true }, + { "Land_CampingTable_F", {-7.72192,7.8335,-4.75}, 317.85, true }, + { "Land_CampingTable_small_F", {-8.76294,8.13574,-4.75}, 48.4779, true }, + { "Land_HelipadEmpty_F", {-27.176,21.9331,-4.74998}, 0, true }, + { "C_man_1", {-8.10059,8.51221,-4.74856}, 135.807, false }, + { "Land_i_Garage_V2_F", {10.8845,-15.7954,-4.75}, 232.576, false }, + { "Land_i_Garage_V2_F", {16.9998,-8.28369,-4.75}, 205.119, false }, + { "Land_i_Garage_V2_F", {1.51392,-19.4268,-4.75}, 264.496, false }, + { "Land_i_Garage_V2_F", {18.8501,1.48242,-4.75}, 174.781, false }, + { "Land_cmp_Tower_ruins_F", {7.47729,-21.0059,-4.75}, 160.728, true }, + { "Land_Mil_WallBig_4m_F", {18.4487,-13.7324,-4.76194}, 113.781, true }, + { "Land_Mil_WallBig_4m_F", {22.7971,-2.50439,-4.76194}, 85.1709, true }, + { "Land_Mil_WallBig_4m_F", {16.5129,-16.061,-4.76194}, 144.359, true }, + { "Land_Mil_WallBig_4m_F", {7.74438,-23.8203,-4.76194}, 181.714, true }, + { "Land_Mil_WallBig_4m_F", {10.1604,-22.2505,-6.23693}, 112.586, true }, + { "Land_Mil_WallBig_4m_F", {22.0991,-5.97314,-4.76194}, 115.749, true }, + { "Land_Mil_WallBig_Corner_F", {4.35181,-24.4116,-4.75}, 357.691, true }, + { "Land_CncWall1_F", {12.2964,-2.19824,-4.75}, 99.8808, true }, + { "Land_CncWall1_F", {9.52905,-8.34814,-4.75}, 132.575, true }, + { "Land_CncWall1_F", {4.30493,-12.4106,-4.75}, 154.376, true }, + { "Land_Atm_02_F", {12.1636,1.99023,-4.75}, 85.0679, true }, + { "Land_Icebox_F", {2.42456,-12.3418,-4.75}, 176.593, true }, + { "Land_i_Garage_V2_F", {7.94507,17.1855,-4.75}, 116.824, false }, + { "Land_i_Garage_V2_F", {15.2095,10.8452,-4.75}, 141.629, false }, + { "Land_PowerPoleConcrete_F", {19.8027,7.60107,-7.75411}, 154.907, true }, + { "Land_LampSolar_F", {11.2615,3.78809,-4.75}, 334.693, true }, + { "Land_dp_transformer_F", {19.7893,7.60547,-4.75}, 248.56, true }, + { "Land_Mil_WallBig_4m_F", {22.0918,6.25977,-4.76194}, 83.8634, true }, + { "Land_Mil_WallBig_4m_F", {2.28198,22.8496,-4.76194}, 355.875, true }, + { "Land_Mil_WallBig_4m_F", {20.7698,9.57959,-4.76194}, 52.7648, true }, + { "Land_Mil_WallBig_4m_F", {5.79028,22.3008,-4.76194}, 26.4514, true }, + { "Land_Mil_WallBig_4m_F", {13.2942,18.458,-4.76194}, 28.0884, true }, + { "Land_Mil_WallBig_4m_F", {15.5359,16.3423,-4.76194}, 50.8817, true }, + { "Land_CncWall1_F", {11.8101,4.20557,-4.75}, 70.6127, true }, + { "Land_CncWall1_F", {7.77832,9.72217,-4.75}, 45.0186, true }, + { "Land_CncWall1_F", {1.97852,12.4805,-4.75}, 7.81649, true }, + { "Land_TablePlastic_01_F", {7.50708,7.5459,-4.75}, 32.4742, true }, + { "Land_HumanSkeleton_F", {12.4023,17.6382,-4.75}, 0, true }, + { "Land_Volleyball_01_F", {11.9797,17.1353,-4.75}, 0, true }, + { "Land_HelipadEmpty_F", {21.354,25.6807,-4.74999}, 0, true }, + { "C_man_1", {7.95239,8.18945,-4.74856}, 214.411, false } + }; }; From 10a18b605434b1df8aa389b23ef7e7e3ef650d1d Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 10 Dec 2017 08:25:31 -0600 Subject: [PATCH 29/94] testing forcing open inventory instead of message --- .../compile/epoch_looting/EPOCH_server_destroyTrash.sqf | 4 ++-- .../compile/epoch_looting/EPOCH_server_lootAnimal.sqf | 4 ++-- .../compile/epoch_looting/EPOCH_server_lootContainer.sqf | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_destroyTrash.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_destroyTrash.sqf index 98ca7278..b115f80a 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_destroyTrash.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_destroyTrash.sqf @@ -41,8 +41,8 @@ if (alive _object) then { if (isClass _config) then { if (random 1 < getNumber(_config >> "chance")) then { [_item, _payout] call EPOCH_serverLootObject; - _errorMsg = "You found something!"; - [_errorMsg, 5] remoteExec ['Epoch_message',_player]; + // force player to open gear on this object. + [_item, {player action["Gear", _this]}] remoteExec ["call", _player]; }; }; diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootAnimal.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootAnimal.sqf index bc2c345e..c17348ad 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootAnimal.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootAnimal.sqf @@ -38,7 +38,7 @@ if !(isNull _object) then { }; [_item, _class, true] call EPOCH_serverLootObject; - _errorMsg = "You found something!"; - [_errorMsg, 5] remoteExec ['Epoch_message',_player]; + // force player to open gear on this object. + [_item, {player action["Gear", _this]}] remoteExec ["call", _player]; }; true diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf index 0b032da3..2d9a7fdb 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf @@ -47,12 +47,12 @@ if !(_object in EPOCH_cleanupQueue) then { }; [_object, _type] call EPOCH_serverLootObject; - _errorMsg = "You found something!"; - [_errorMsg, 5] remoteExec ['Epoch_message',_player]; + // force player to open gear on this object. + [_object, {player action["Gear", _this]}] remoteExec ["call", _player]; } else { [_object, "Food"] call EPOCH_serverLootObject; - _errorMsg = "You found Food!"; - [_errorMsg, 5] remoteExec ['Epoch_message',_player]; + // force player to open gear on this object. + [_object, {player action["Gear", _this]}] remoteExec ["call", _player]; }; }; From 0ff62a8de5c3807f34a3c97f1e78470d3f5032c2 Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 10 Dec 2017 08:58:35 -0600 Subject: [PATCH 30/94] fix for be kick since 1.80 --- Server_Install_Pack/sc/battleye/scripts.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index 934b5c19..c839e470 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -21,7 +21,7 @@ 5 addMagazineCargo !="_dogHolder addMagazineCargo [\"RabbitCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Pelt_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Venom_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"SnakeCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"ChickenCarcass_EPOCH\", 1]" !="_acceptHolder addMagazineCargo [_wAmmo, 1] ;" !="CBA_fnc_addMagazineCargo" !="\\fnc_addMagazineCargo" !="\"addMagazineCargo" !="cba_fAddMagazineCargo" 5 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo" !="wH = _nearByHolder select 0;\n};\nif !(isNull _wh) then {\n_wh addItemCargoGlobal [_item,1];\n};\n};\n};\n\n_fnc_findItemInContainers = " 5 addBackPack !="fnc_addBackpackCargo" -5 addMissionEventHandler !="CBA_clientID = [0, 2] select isMultiplayer;\naddMissionEventHandler [\"PlayerConnected\", {\nparams [\"_id\", \"_uid\", \"_name\"" !="addMissionEventHandler [\"EachFrame\", {call cba_common_fnc_onFrame}];" !="addMissionEventHandler [\"HandleDisconnect\"," !="addMissionEventHandler [\"Loaded\"," !="addMissionEventHandler ['Draw3D',_var + \"call Epoch_gui3DCooldownEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dModelPosEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dWorldPosEH;\"];" !="addMissionEventHandler [\n\"ended\",\n{\n\nBIS_fnc_missionHandlers_end = _this;" !="private _ehId = addMissionEventHandler [_event select [2], _code];" !="addMissionEventHandler [\"PlayerViewChanged\", {if (cameraView isEqualTo \"GROUP\") then {vehicle player switchCamera \"Internal\";};}];" +5 addMissionEventHandler !="CBA_clientID = [0, 2] select isMultiplayer;\naddMissionEventHandler [\"PlayerConnected\", {\nparams [\"_id\", \"_uid\", \"_name\"" !="addMissionEventHandler [\"EachFrame\", {call cba_common_fnc_onFrame}];" !="addMissionEventHandler [\"HandleDisconnect\"," !="addMissionEventHandler [\"Loaded\"," !="addMissionEventHandler ['Draw3D',_var + \"call Epoch_gui3DCooldownEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dModelPosEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dWorldPosEH;\"];" !="addMissionEventHandler [\n\"ended\",\n{\n\nBIS_fnc_missionHandlers_end = _this;" !="private _ehId = addMissionEventHandler [_event select [2], _code];" !="addMissionEventHandler [\"PlayerViewChanged\", {if (cameraView isEqualTo \"GROUP\") then {vehicle player switchCamera \"Internal\";};}];" !="addMissionEventHandler [\"EachFrame\",\n{\n\nmissionNamespace setVariable [\"BIS_" 5 removeMissionEventHandler !="removeMissionEventHandler [\"Draw3D\", _id];" !="removeMissionEventHandler [_event select [2], _x select 1];" 5 removeAllWeapons !="removeAllWeapons axeGeneral;" 5 removeAllItems From 244a70bc5d56940b5cc5e9eed71eec8391e7624f Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 10 Dec 2017 09:11:13 -0600 Subject: [PATCH 31/94] change default rcon port to 2307 --- Server_Install_Pack/@epochhive/EpochServer.ini | 2 +- Server_Install_Pack/sc/battleye/example-beserver.cfg | 2 +- Server_Install_Pack/sc/battleye/example-beserver_x64.cfg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Server_Install_Pack/@epochhive/EpochServer.ini b/Server_Install_Pack/@epochhive/EpochServer.ini index 88d18cf6..c9150191 100644 --- a/Server_Install_Pack/@epochhive/EpochServer.ini +++ b/Server_Install_Pack/@epochhive/EpochServer.ini @@ -4,7 +4,7 @@ InstanceID = NA123 LogAbuse = 1 LogLimit = 999 IP = 127.0.0.1 -Port = 2306 +Port = 2307 Password = changemen0w [Redis] diff --git a/Server_Install_Pack/sc/battleye/example-beserver.cfg b/Server_Install_Pack/sc/battleye/example-beserver.cfg index 4fee38d7..18441ab6 100644 --- a/Server_Install_Pack/sc/battleye/example-beserver.cfg +++ b/Server_Install_Pack/sc/battleye/example-beserver.cfg @@ -1,4 +1,4 @@ -RConPort 2306 +RConPort 2307 RConPassword changemen0w MaxPing 350 diff --git a/Server_Install_Pack/sc/battleye/example-beserver_x64.cfg b/Server_Install_Pack/sc/battleye/example-beserver_x64.cfg index 4fee38d7..18441ab6 100644 --- a/Server_Install_Pack/sc/battleye/example-beserver_x64.cfg +++ b/Server_Install_Pack/sc/battleye/example-beserver_x64.cfg @@ -1,4 +1,4 @@ -RConPort 2306 +RConPort 2307 RConPassword changemen0w MaxPing 350 From 75c38b6f79043810232bb97ab10f548e09630b55 Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 10 Dec 2017 10:02:43 -0600 Subject: [PATCH 32/94] more be kick fixes and changelog update --- Server_Install_Pack/sc/battleye/scripts.txt | 2 +- changelog.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index c839e470..994e6813 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -7,7 +7,7 @@ 5 enableFatigue 5 setUnitRecoilCoefficient 5 setWeaponReloadingTime !="_unit setWeaponReloadingTime [_unit,_weapon,1];" !="_unit setWeaponReloadingTime [_unit,_weapon,1];" !="player fire [_muzzle, _muzzle, _item];\nplayer setWeaponReloadingTime [player, _muzzle, 0];" -5 allMissionObjects !="_alljammer = allmissionobjects 'PlotPole_EPOCH';" +5 allMissionObjects !="_alljammer = allmissionobjects 'PlotPole_EPOCH';" !="allMissionObjects \"Timeline_F\"" 5 callExtension 5 showCommandingMenu !="showCommandingMenu '';" !="showCommandingMenu '#USER:" 5 enableCollisionWith diff --git a/changelog.md b/changelog.md index 33eeda05..00f04e45 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,10 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a ## [1.1.0.0] - Unreleased ### Added Plant Spawner: vehicle object for sunflower. @Helion4 +### Fixed +False BE kicks since Arma 3 1.80 update. +### Changed +RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. ## [1.0.0.1077] - 2017-11-05 ### Added From 7db3836c9944e3f75764089b94743b8653615a26 Mon Sep 17 00:00:00 2001 From: vbawol Date: Sun, 10 Dec 2017 10:05:21 -0600 Subject: [PATCH 33/94] fix BE kick for new feature --- Server_Install_Pack/sc/battleye/scripts.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index 994e6813..3b3f5d69 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -19,7 +19,7 @@ 5 onMapSingleClick !="onMapSingleClick '';" !="\"onmapsingleclick\"" 5 addMagazine !"addMagazineCargo" !="player addMagazine [_item, _magazineSizeMax];" !="player addMagazine [_item, floor (_magazineSize % _magazineSizeMax)];" !="player addMagazine[_x select 0, _x select 1];" !="player addMagazine \"sledge_swing\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine \"stick_swing\";" !="_wh addMagazineAmmoCargo[_item, 1, _count];" !="CBA_fnc_addMagazine" !="\\fnc_addMagazine" !="\"addMagazine" !="vehicle player addMagazineTurret" !="player addMagazine [_magsTurret,_magAmmo]" !="vehicle player addMagazineTurret" !="player addMagazine [_magsTurret,_magAmmo]" !="EPOCH_fnc_addMagazineOverflow" 5 addMagazineCargo !="_dogHolder addMagazineCargo [\"RabbitCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Pelt_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Venom_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"SnakeCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"ChickenCarcass_EPOCH\", 1]" !="_acceptHolder addMagazineCargo [_wAmmo, 1] ;" !="CBA_fnc_addMagazineCargo" !="\\fnc_addMagazineCargo" !="\"addMagazineCargo" !="cba_fAddMagazineCargo" -5 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo" !="wH = _nearByHolder select 0;\n};\nif !(isNull _wh) then {\n_wh addItemCargoGlobal [_item,1];\n};\n};\n};\n\n_fnc_findItemInContainers = " +5 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo" !="wH = _nearByHolder select 0;\n};\nif !(isNull _wh) then {\n_wh addItemCargoGlobal [_item,1];\n};\n};\n};\n\n_fnc_findItemInContainers = " !="player addItem 'ItemRope';" 5 addBackPack !="fnc_addBackpackCargo" 5 addMissionEventHandler !="CBA_clientID = [0, 2] select isMultiplayer;\naddMissionEventHandler [\"PlayerConnected\", {\nparams [\"_id\", \"_uid\", \"_name\"" !="addMissionEventHandler [\"EachFrame\", {call cba_common_fnc_onFrame}];" !="addMissionEventHandler [\"HandleDisconnect\"," !="addMissionEventHandler [\"Loaded\"," !="addMissionEventHandler ['Draw3D',_var + \"call Epoch_gui3DCooldownEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dModelPosEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dWorldPosEH;\"];" !="addMissionEventHandler [\n\"ended\",\n{\n\nBIS_fnc_missionHandlers_end = _this;" !="private _ehId = addMissionEventHandler [_event select [2], _code];" !="addMissionEventHandler [\"PlayerViewChanged\", {if (cameraView isEqualTo \"GROUP\") then {vehicle player switchCamera \"Internal\";};}];" !="addMissionEventHandler [\"EachFrame\",\n{\n\nmissionNamespace setVariable [\"BIS_" 5 removeMissionEventHandler !="removeMissionEventHandler [\"Draw3D\", _id];" !="removeMissionEventHandler [_event select [2], _x select 1];" From 994e6f91e139c5104c5a11ccca6de45c5504ec65 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sun, 10 Dec 2017 18:25:16 +0100 Subject: [PATCH 34/94] Fixes for ForceUpdate --- Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf | 4 +++- Sources/epoch_code/gui/scripts/Epoch_onPause.sqf | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf index 275d195e..fc71d57e 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf @@ -66,6 +66,7 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then { waituntil {local _playerObject}; // restart masterloop + EPOCH_forceUpdateNow = nil; // Set to nil and wait later until Masterloop has redefined it [] spawn EPOCH_masterLoop; [5, 100] call EPOCH_niteLight; @@ -76,9 +77,10 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then { player removeEventHandler [_x, 0]; player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)]; } forEach (["CfgEpochClient", "addEventHandler", []] call EPOCH_fnc_returnConfigEntryV2); + waituntil {uisleep 0.5; !isnil "EPOCH_forceUpdateNow"}; // Wait until Materloop is has set this Variable to false + EPOCH_forceUpdateNow = true; }; } else { deleteVehicle _playerObject; }; -EPOCH_forceUpdateNow = true; diff --git a/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf b/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf index e7c19fdd..760f7454 100644 --- a/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf +++ b/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf @@ -68,14 +68,13 @@ _respawnButton ctrlEnable false; [_display] spawn { disableSerialization; params ["_display"]; - EPOCH_forceUpdate = true; _startTime = diag_tickTime+5; waitUntil { uiSleep 0.2; (isNull _display) || ((_startTime - diag_tickTime) <= 0) }; if (!isNull _display) then { - EPOCH_forceUpdate = true; + missionnamespace setvariable ["EPOCH_forceUpdateNow",true]; }; }; From d224598e4c4eb6b5453c15d2af61d88aebc91f6d Mon Sep 17 00:00:00 2001 From: Helion4 Date: Mon, 11 Dec 2017 15:45:14 +0000 Subject: [PATCH 35/94] removed place holder for classname male & female rad suit class names added in place holder spcae --- Sources/epoch_code/compile/setup/masterLoop/Event5.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf index 15c677de..4d25cee9 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event5.sqf @@ -70,8 +70,8 @@ _currentArmorPercent = 100 - (_currentArmor / _maxArmor * 100); _radsLevel = _currentArmorPercent / 100 * _radsLevel; //Reduce radiation by 100% TODO: move this to top, no point in doing all this calc if hazmat is on. -if (uniform player == "hazmat_placeholder") then { - _radsLevel = 0; +if (uniform player in ["Epoch_RadiationSuit_F","Epoch_RadiationSuit_M"]) then { + _radsLevel = 0; }; // Radiation Handler From a12562bc646c20cbda7565117a50d5eb55daedd0 Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 12 Dec 2017 18:13:16 +0100 Subject: [PATCH 36/94] Removed Construct Trader mission in default default --- Sources/epoch_config/Configs/CfgMissions.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_config/Configs/CfgMissions.hpp b/Sources/epoch_config/Configs/CfgMissions.hpp index 90e3c3e9..fa454296 100644 --- a/Sources/epoch_config/Configs/CfgMissions.hpp +++ b/Sources/epoch_config/Configs/CfgMissions.hpp @@ -15,7 +15,7 @@ class EpochMissionList{ // traderMissionClasses[] = {"missionMonster","missionDelivery","missionEscort","missionUav","missionSapper","missionSkull","missionMilitary","gameCaptureTheJammer","gameCarRace","infoTime","infoName","infoNews","infoVehicles","infoPeople","helpAirDrop","debugResetMission"}; //Exclude from here to remove from menu and trigger - traderMissionClasses[] = {"missionfishing","missionMonster","missionDelivery","missionUav","infoTime","infoName","infoNews","infoVehicles","infoPeople","debugResetMission"}; //Exclude from here to remove from menu and trigger + traderMissionClasses[] = {"missionfishing","missionDelivery","missionUav","infoTime","infoName","infoNews","infoVehicles","infoPeople","debugResetMission"}; //Exclude from here to remove from menu and trigger traderMissionActiveNames[] = {}; //Not currently used (WIP) traderMissionLongDesc[] = {}; //Not currently used (WIP) traderMissionActiveLongDesc[] = {}; //Not currently used (WIP) From 8b6a25506de5b4ef3666d9cc5de0b649fe446bf3 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sun, 17 Dec 2017 17:03:06 +0100 Subject: [PATCH 37/94] vehicleLockTime changed to string Prevent larger values not working. Moved to "Hive related values" --- Server_Install_Pack/@epochhive/epochconfig.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index c1f2228a..afb687f1 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -56,7 +56,6 @@ forceRestartTime = 14400; // 4 hour restarts // vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance. disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup. simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps. - vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle. VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked removevehweapons[] = { // remove these Weapons from spawned Vehicles "missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F", @@ -136,6 +135,7 @@ forceRestartTime = 14400; // 4 hour restarts DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles // Hive Related + vehicleLockTime = "1800"; // Controls how many seconds it takes to allow another person/group to unlock vehicle. expiresBuilding = "604800"; // expiration date in seconds for buildings expiresPlayer = "2592000"; // expiration date in seconds for players expiresBank = "7776000"; // expiration date in seconds for players bank From f59defbb5a138fa956ae2ef5e96a26d870cde1d1 Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 19 Dec 2017 17:22:29 +0100 Subject: [PATCH 38/94] CloseDisplay 999 on Playerdeath --- .../epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf index abb9de17..59f8656f 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf @@ -43,6 +43,11 @@ if (vehicle _unit != _unit) then { _unit action["Eject", vehicle _unit]; }; +// Close display 999 (BIS_fnc_guiMessage), as it prevent display 46 from closing -> kick to lobby +if (!isnull (finddisplay 999)) then { + (finddisplay 999) closedisplay 0; +}; + // save death position profileNameSpace setVariable["EPOCHLastKnownDeath",[]]; _deathMarkerON = (getNumber(_config >> "playerDeathMarkerGPSOnly") isEqualTo 1); From 83e90a964d6e07fbaeecf8cab380963337e604c9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Tue, 19 Dec 2017 10:29:39 -0600 Subject: [PATCH 39/94] batch file examples (restart - monitor) --- .../restartserver_x64-example.bat | 34 +++++++++++++++++++ Server_Install_Pack/servermonitor-example.bat | 23 +++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 Server_Install_Pack/restartserver_x64-example.bat create mode 100644 Server_Install_Pack/servermonitor-example.bat diff --git a/Server_Install_Pack/restartserver_x64-example.bat b/Server_Install_Pack/restartserver_x64-example.bat new file mode 100644 index 00000000..47b04fbe --- /dev/null +++ b/Server_Install_Pack/restartserver_x64-example.bat @@ -0,0 +1,34 @@ +@echo off + +:: Turn off all firewall rules +echo Disabling firewall rules for this server +netsh advfirewall firewall delete rule name="a3Epoch" program="C:\EpochServer\Epochserver_x64.exe" +timeout 2 + +:: MAKE SURE ALL TASKS ARE REALLY STOPPED +echo Making sure all instances of this server have stopped +taskkill /f /fi "status eq not responding" /im Epochserver_x64.exe +taskkill /f /im Epochserver_x64.exe +timeout 2 + +:: RESTARTING THE ARMA 3 SERVER BE SURE TO EDIT THIS TO YOUR SERVER .EXE LOCATION -NOTE ALSO THIS IS WHERE YOU DEFINE WHERE YOU CONFIG.CFG IS +echo Starting ARMA 3 Server... +C:\Windows\System32\cmd.exe /C start "arma3" "C:\EpochServer\Epochserver_x64.exe" "[email protected];" "[email protected];" -config=C:\EpochServer\sc\server.cfg -port=2302 -profiles=sc -cfg=C:\EpochServer\sc\basic.cfg -name=sc -BEPath=C:\EpochServer\battleye -autoINIT -Loadmissiontomemory +echo ARMA 3 Server has started +timeout 60 + +:: THIS RUNS THE SERVER MONITOR FOR YOU SO YOU DON'T FORGET +echo Starting Server Monitor Loop +set ServerMonitorPath="C:\Epochserver" +cd /d %ServerMonitorPath% +start "" "servermonitor.bat" +echo Server Monitor has started. Have Fun +timeout 5 + +:: Turn On Firewall rule +timeout 10 +echo Turning on Firewall Rule to allow server network traffic +netsh advfirewall firewall add rule name="a3Epoch" dir=in action=allow program="C:\Epochserver\Epochserver_x64.exe" enable=yes +echo Firewall is on and players can join +timeout 5 +@exit \ No newline at end of file diff --git a/Server_Install_Pack/servermonitor-example.bat b/Server_Install_Pack/servermonitor-example.bat new file mode 100644 index 00000000..6d3c0b07 --- /dev/null +++ b/Server_Install_Pack/servermonitor-example.bat @@ -0,0 +1,23 @@ +@echo off +::IMPORTANT TO NAME IT SO WE CAN KILL IT +title servermonitor.bat +:start +C:\Windows\System32\tasklist /FI "IMAGENAME eq Epochserver_x64.exe" 2>NUL | C:\Windows\System32\find /I /N "Epochserver_x64.exe">NUL +if "%ERRORLEVEL%"=="0" goto loop +echo Server is not running, will be started now +start "" /min /wait "c:\EpochServer\restartserver_x64.bat - Shortcut" +timeout 30 +echo Server started succesfully +exit +goto started +:loop +cls +echo Server is already running, running monitoring loop +:started +::THE 80 REFERS TO SECONDS AND HOW OFTEN IT WILL CHECK,YOU CAN SET IT TO WHATEVER YOU WANT. I JUST DONT WANT MY SERVER DOWN FOR MUCH LONGER THAN THAT! +::New error fault kill, will check for err fault and clear it and hopefully restart, a little more promise but no guarantee :) +taskkill /f /im WerFault.exe /fi "WINDOWTITLE eq Arma 3" +C:\Windows\System32\timeout /t 150 +C:\Windows\System32\tasklist /FI "IMAGENAME eq Epochserver_x64.exe" 2>NUL | C:\Windows\System32\find /I /N "Epochserver_x64.exe">NUL +if "%ERRORLEVEL%"=="0" goto loop +goto start \ No newline at end of file From e976db66a8f007c7e62025beab078978217f6d05 Mon Sep 17 00:00:00 2001 From: Grahame Date: Tue, 19 Dec 2017 12:42:27 -0500 Subject: [PATCH 40/94] Fix check on whether DynamicDebris.sqf has run The initial isNil() check in DynamicDebris.sqf actually prevents this script from running. This inverts to !isNil() to allow it to run at least once --- Sources/epoch_server_debris_event/EpochEvents/DynamicDebris.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server_debris_event/EpochEvents/DynamicDebris.sqf b/Sources/epoch_server_debris_event/EpochEvents/DynamicDebris.sqf index 843b9cf4..e32dd79a 100644 --- a/Sources/epoch_server_debris_event/EpochEvents/DynamicDebris.sqf +++ b/Sources/epoch_server_debris_event/EpochEvents/DynamicDebris.sqf @@ -12,7 +12,7 @@ private ["_allRoads","_allowDebris","_debris","_debrisCounter","_debrisLocations","_debrisLocationsKey","_debrisLocationsTMP","_debug","_disallowedLocations","_expiresDebris","_export","_instanceID","_intersections","_marker","_maxDebrisLimit","_nearbyLocations","_newDebrisCounter","_object","_offsetX","_offsetY","_position","_response","_rng","_rngChance","_scriptHiveKey","_seed","_selectedDebris","_upperPos","_worldSize"]; //[[[end]]] // exit if already ran once. -if (isNil "EPOCH_DynamicDebrisEnabled") exitWith {}; +if !(isNil "EPOCH_DynamicDebrisEnabled") exitWith {}; EPOCH_DynamicDebrisEnabled = true; _debug = false; _expiresDebris = 604800; From 88f68c72e3764bf20acad001d83f147abe2af60e Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Tue, 19 Dec 2017 13:58:58 -0600 Subject: [PATCH 41/94] battleye to root While in SC the DLL's are missed on arma 3 server updates. This will remove the need to manually move the DLL's to the sc/battleye folder --- Server_Install_Pack/{sc => }/battleye/addbackpackcargo.txt | 0 Server_Install_Pack/{sc => }/battleye/addmagazinecargo.txt | 0 Server_Install_Pack/{sc => }/battleye/addweaponcargo.txt | 0 Server_Install_Pack/{sc => }/battleye/attachto.txt | 0 Server_Install_Pack/{sc => }/battleye/createvehicle.txt | 0 Server_Install_Pack/{sc => }/battleye/deleteVehicle.txt | 0 Server_Install_Pack/{sc => }/battleye/example-beserver.cfg | 0 Server_Install_Pack/{sc => }/battleye/example-beserver_x64.cfg | 0 Server_Install_Pack/{sc => }/battleye/mpeventhandler.txt | 0 Server_Install_Pack/{sc => }/battleye/publicvariable.txt | 0 Server_Install_Pack/{sc => }/battleye/publicvariableval.txt | 0 Server_Install_Pack/{sc => }/battleye/remotecontrol.txt | 0 Server_Install_Pack/{sc => }/battleye/remoteexec.txt | 0 Server_Install_Pack/{sc => }/battleye/scripts.txt | 0 Server_Install_Pack/{sc => }/battleye/selectplayer.txt | 0 Server_Install_Pack/{sc => }/battleye/setdamage.txt | 0 Server_Install_Pack/{sc => }/battleye/setpos.txt | 0 Server_Install_Pack/{sc => }/battleye/setvariable.txt | 0 Server_Install_Pack/{sc => }/battleye/setvariableval.txt | 0 Server_Install_Pack/{sc => }/battleye/teamswitch.txt | 0 Server_Install_Pack/{sc => }/battleye/waypointcondition.txt | 0 Server_Install_Pack/{sc => }/battleye/waypointstatement.txt | 0 22 files changed, 0 insertions(+), 0 deletions(-) rename Server_Install_Pack/{sc => }/battleye/addbackpackcargo.txt (100%) rename Server_Install_Pack/{sc => }/battleye/addmagazinecargo.txt (100%) rename Server_Install_Pack/{sc => }/battleye/addweaponcargo.txt (100%) rename Server_Install_Pack/{sc => }/battleye/attachto.txt (100%) rename Server_Install_Pack/{sc => }/battleye/createvehicle.txt (100%) rename Server_Install_Pack/{sc => }/battleye/deleteVehicle.txt (100%) rename Server_Install_Pack/{sc => }/battleye/example-beserver.cfg (100%) rename Server_Install_Pack/{sc => }/battleye/example-beserver_x64.cfg (100%) rename Server_Install_Pack/{sc => }/battleye/mpeventhandler.txt (100%) rename Server_Install_Pack/{sc => }/battleye/publicvariable.txt (100%) rename Server_Install_Pack/{sc => }/battleye/publicvariableval.txt (100%) rename Server_Install_Pack/{sc => }/battleye/remotecontrol.txt (100%) rename Server_Install_Pack/{sc => }/battleye/remoteexec.txt (100%) rename Server_Install_Pack/{sc => }/battleye/scripts.txt (100%) rename Server_Install_Pack/{sc => }/battleye/selectplayer.txt (100%) rename Server_Install_Pack/{sc => }/battleye/setdamage.txt (100%) rename Server_Install_Pack/{sc => }/battleye/setpos.txt (100%) rename Server_Install_Pack/{sc => }/battleye/setvariable.txt (100%) rename Server_Install_Pack/{sc => }/battleye/setvariableval.txt (100%) rename Server_Install_Pack/{sc => }/battleye/teamswitch.txt (100%) rename Server_Install_Pack/{sc => }/battleye/waypointcondition.txt (100%) rename Server_Install_Pack/{sc => }/battleye/waypointstatement.txt (100%) diff --git a/Server_Install_Pack/sc/battleye/addbackpackcargo.txt b/Server_Install_Pack/battleye/addbackpackcargo.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/addbackpackcargo.txt rename to Server_Install_Pack/battleye/addbackpackcargo.txt diff --git a/Server_Install_Pack/sc/battleye/addmagazinecargo.txt b/Server_Install_Pack/battleye/addmagazinecargo.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/addmagazinecargo.txt rename to Server_Install_Pack/battleye/addmagazinecargo.txt diff --git a/Server_Install_Pack/sc/battleye/addweaponcargo.txt b/Server_Install_Pack/battleye/addweaponcargo.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/addweaponcargo.txt rename to Server_Install_Pack/battleye/addweaponcargo.txt diff --git a/Server_Install_Pack/sc/battleye/attachto.txt b/Server_Install_Pack/battleye/attachto.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/attachto.txt rename to Server_Install_Pack/battleye/attachto.txt diff --git a/Server_Install_Pack/sc/battleye/createvehicle.txt b/Server_Install_Pack/battleye/createvehicle.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/createvehicle.txt rename to Server_Install_Pack/battleye/createvehicle.txt diff --git a/Server_Install_Pack/sc/battleye/deleteVehicle.txt b/Server_Install_Pack/battleye/deleteVehicle.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/deleteVehicle.txt rename to Server_Install_Pack/battleye/deleteVehicle.txt diff --git a/Server_Install_Pack/sc/battleye/example-beserver.cfg b/Server_Install_Pack/battleye/example-beserver.cfg similarity index 100% rename from Server_Install_Pack/sc/battleye/example-beserver.cfg rename to Server_Install_Pack/battleye/example-beserver.cfg diff --git a/Server_Install_Pack/sc/battleye/example-beserver_x64.cfg b/Server_Install_Pack/battleye/example-beserver_x64.cfg similarity index 100% rename from Server_Install_Pack/sc/battleye/example-beserver_x64.cfg rename to Server_Install_Pack/battleye/example-beserver_x64.cfg diff --git a/Server_Install_Pack/sc/battleye/mpeventhandler.txt b/Server_Install_Pack/battleye/mpeventhandler.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/mpeventhandler.txt rename to Server_Install_Pack/battleye/mpeventhandler.txt diff --git a/Server_Install_Pack/sc/battleye/publicvariable.txt b/Server_Install_Pack/battleye/publicvariable.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/publicvariable.txt rename to Server_Install_Pack/battleye/publicvariable.txt diff --git a/Server_Install_Pack/sc/battleye/publicvariableval.txt b/Server_Install_Pack/battleye/publicvariableval.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/publicvariableval.txt rename to Server_Install_Pack/battleye/publicvariableval.txt diff --git a/Server_Install_Pack/sc/battleye/remotecontrol.txt b/Server_Install_Pack/battleye/remotecontrol.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/remotecontrol.txt rename to Server_Install_Pack/battleye/remotecontrol.txt diff --git a/Server_Install_Pack/sc/battleye/remoteexec.txt b/Server_Install_Pack/battleye/remoteexec.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/remoteexec.txt rename to Server_Install_Pack/battleye/remoteexec.txt diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/battleye/scripts.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/scripts.txt rename to Server_Install_Pack/battleye/scripts.txt diff --git a/Server_Install_Pack/sc/battleye/selectplayer.txt b/Server_Install_Pack/battleye/selectplayer.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/selectplayer.txt rename to Server_Install_Pack/battleye/selectplayer.txt diff --git a/Server_Install_Pack/sc/battleye/setdamage.txt b/Server_Install_Pack/battleye/setdamage.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/setdamage.txt rename to Server_Install_Pack/battleye/setdamage.txt diff --git a/Server_Install_Pack/sc/battleye/setpos.txt b/Server_Install_Pack/battleye/setpos.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/setpos.txt rename to Server_Install_Pack/battleye/setpos.txt diff --git a/Server_Install_Pack/sc/battleye/setvariable.txt b/Server_Install_Pack/battleye/setvariable.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/setvariable.txt rename to Server_Install_Pack/battleye/setvariable.txt diff --git a/Server_Install_Pack/sc/battleye/setvariableval.txt b/Server_Install_Pack/battleye/setvariableval.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/setvariableval.txt rename to Server_Install_Pack/battleye/setvariableval.txt diff --git a/Server_Install_Pack/sc/battleye/teamswitch.txt b/Server_Install_Pack/battleye/teamswitch.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/teamswitch.txt rename to Server_Install_Pack/battleye/teamswitch.txt diff --git a/Server_Install_Pack/sc/battleye/waypointcondition.txt b/Server_Install_Pack/battleye/waypointcondition.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/waypointcondition.txt rename to Server_Install_Pack/battleye/waypointcondition.txt diff --git a/Server_Install_Pack/sc/battleye/waypointstatement.txt b/Server_Install_Pack/battleye/waypointstatement.txt similarity index 100% rename from Server_Install_Pack/sc/battleye/waypointstatement.txt rename to Server_Install_Pack/battleye/waypointstatement.txt From b3c26e48d50c9de95e4f44dbc606c8e14bdd6da4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Wed, 20 Dec 2017 09:39:34 -0600 Subject: [PATCH 42/94] Revert "battleye to root" This reverts commit 88f68c72e3764bf20acad001d83f147abe2af60e. --- Server_Install_Pack/{ => sc}/battleye/addbackpackcargo.txt | 0 Server_Install_Pack/{ => sc}/battleye/addmagazinecargo.txt | 0 Server_Install_Pack/{ => sc}/battleye/addweaponcargo.txt | 0 Server_Install_Pack/{ => sc}/battleye/attachto.txt | 0 Server_Install_Pack/{ => sc}/battleye/createvehicle.txt | 0 Server_Install_Pack/{ => sc}/battleye/deleteVehicle.txt | 0 Server_Install_Pack/{ => sc}/battleye/example-beserver.cfg | 0 Server_Install_Pack/{ => sc}/battleye/example-beserver_x64.cfg | 0 Server_Install_Pack/{ => sc}/battleye/mpeventhandler.txt | 0 Server_Install_Pack/{ => sc}/battleye/publicvariable.txt | 0 Server_Install_Pack/{ => sc}/battleye/publicvariableval.txt | 0 Server_Install_Pack/{ => sc}/battleye/remotecontrol.txt | 0 Server_Install_Pack/{ => sc}/battleye/remoteexec.txt | 0 Server_Install_Pack/{ => sc}/battleye/scripts.txt | 0 Server_Install_Pack/{ => sc}/battleye/selectplayer.txt | 0 Server_Install_Pack/{ => sc}/battleye/setdamage.txt | 0 Server_Install_Pack/{ => sc}/battleye/setpos.txt | 0 Server_Install_Pack/{ => sc}/battleye/setvariable.txt | 0 Server_Install_Pack/{ => sc}/battleye/setvariableval.txt | 0 Server_Install_Pack/{ => sc}/battleye/teamswitch.txt | 0 Server_Install_Pack/{ => sc}/battleye/waypointcondition.txt | 0 Server_Install_Pack/{ => sc}/battleye/waypointstatement.txt | 0 22 files changed, 0 insertions(+), 0 deletions(-) rename Server_Install_Pack/{ => sc}/battleye/addbackpackcargo.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/addmagazinecargo.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/addweaponcargo.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/attachto.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/createvehicle.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/deleteVehicle.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/example-beserver.cfg (100%) rename Server_Install_Pack/{ => sc}/battleye/example-beserver_x64.cfg (100%) rename Server_Install_Pack/{ => sc}/battleye/mpeventhandler.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/publicvariable.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/publicvariableval.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/remotecontrol.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/remoteexec.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/scripts.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/selectplayer.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/setdamage.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/setpos.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/setvariable.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/setvariableval.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/teamswitch.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/waypointcondition.txt (100%) rename Server_Install_Pack/{ => sc}/battleye/waypointstatement.txt (100%) diff --git a/Server_Install_Pack/battleye/addbackpackcargo.txt b/Server_Install_Pack/sc/battleye/addbackpackcargo.txt similarity index 100% rename from Server_Install_Pack/battleye/addbackpackcargo.txt rename to Server_Install_Pack/sc/battleye/addbackpackcargo.txt diff --git a/Server_Install_Pack/battleye/addmagazinecargo.txt b/Server_Install_Pack/sc/battleye/addmagazinecargo.txt similarity index 100% rename from Server_Install_Pack/battleye/addmagazinecargo.txt rename to Server_Install_Pack/sc/battleye/addmagazinecargo.txt diff --git a/Server_Install_Pack/battleye/addweaponcargo.txt b/Server_Install_Pack/sc/battleye/addweaponcargo.txt similarity index 100% rename from Server_Install_Pack/battleye/addweaponcargo.txt rename to Server_Install_Pack/sc/battleye/addweaponcargo.txt diff --git a/Server_Install_Pack/battleye/attachto.txt b/Server_Install_Pack/sc/battleye/attachto.txt similarity index 100% rename from Server_Install_Pack/battleye/attachto.txt rename to Server_Install_Pack/sc/battleye/attachto.txt diff --git a/Server_Install_Pack/battleye/createvehicle.txt b/Server_Install_Pack/sc/battleye/createvehicle.txt similarity index 100% rename from Server_Install_Pack/battleye/createvehicle.txt rename to Server_Install_Pack/sc/battleye/createvehicle.txt diff --git a/Server_Install_Pack/battleye/deleteVehicle.txt b/Server_Install_Pack/sc/battleye/deleteVehicle.txt similarity index 100% rename from Server_Install_Pack/battleye/deleteVehicle.txt rename to Server_Install_Pack/sc/battleye/deleteVehicle.txt diff --git a/Server_Install_Pack/battleye/example-beserver.cfg b/Server_Install_Pack/sc/battleye/example-beserver.cfg similarity index 100% rename from Server_Install_Pack/battleye/example-beserver.cfg rename to Server_Install_Pack/sc/battleye/example-beserver.cfg diff --git a/Server_Install_Pack/battleye/example-beserver_x64.cfg b/Server_Install_Pack/sc/battleye/example-beserver_x64.cfg similarity index 100% rename from Server_Install_Pack/battleye/example-beserver_x64.cfg rename to Server_Install_Pack/sc/battleye/example-beserver_x64.cfg diff --git a/Server_Install_Pack/battleye/mpeventhandler.txt b/Server_Install_Pack/sc/battleye/mpeventhandler.txt similarity index 100% rename from Server_Install_Pack/battleye/mpeventhandler.txt rename to Server_Install_Pack/sc/battleye/mpeventhandler.txt diff --git a/Server_Install_Pack/battleye/publicvariable.txt b/Server_Install_Pack/sc/battleye/publicvariable.txt similarity index 100% rename from Server_Install_Pack/battleye/publicvariable.txt rename to Server_Install_Pack/sc/battleye/publicvariable.txt diff --git a/Server_Install_Pack/battleye/publicvariableval.txt b/Server_Install_Pack/sc/battleye/publicvariableval.txt similarity index 100% rename from Server_Install_Pack/battleye/publicvariableval.txt rename to Server_Install_Pack/sc/battleye/publicvariableval.txt diff --git a/Server_Install_Pack/battleye/remotecontrol.txt b/Server_Install_Pack/sc/battleye/remotecontrol.txt similarity index 100% rename from Server_Install_Pack/battleye/remotecontrol.txt rename to Server_Install_Pack/sc/battleye/remotecontrol.txt diff --git a/Server_Install_Pack/battleye/remoteexec.txt b/Server_Install_Pack/sc/battleye/remoteexec.txt similarity index 100% rename from Server_Install_Pack/battleye/remoteexec.txt rename to Server_Install_Pack/sc/battleye/remoteexec.txt diff --git a/Server_Install_Pack/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt similarity index 100% rename from Server_Install_Pack/battleye/scripts.txt rename to Server_Install_Pack/sc/battleye/scripts.txt diff --git a/Server_Install_Pack/battleye/selectplayer.txt b/Server_Install_Pack/sc/battleye/selectplayer.txt similarity index 100% rename from Server_Install_Pack/battleye/selectplayer.txt rename to Server_Install_Pack/sc/battleye/selectplayer.txt diff --git a/Server_Install_Pack/battleye/setdamage.txt b/Server_Install_Pack/sc/battleye/setdamage.txt similarity index 100% rename from Server_Install_Pack/battleye/setdamage.txt rename to Server_Install_Pack/sc/battleye/setdamage.txt diff --git a/Server_Install_Pack/battleye/setpos.txt b/Server_Install_Pack/sc/battleye/setpos.txt similarity index 100% rename from Server_Install_Pack/battleye/setpos.txt rename to Server_Install_Pack/sc/battleye/setpos.txt diff --git a/Server_Install_Pack/battleye/setvariable.txt b/Server_Install_Pack/sc/battleye/setvariable.txt similarity index 100% rename from Server_Install_Pack/battleye/setvariable.txt rename to Server_Install_Pack/sc/battleye/setvariable.txt diff --git a/Server_Install_Pack/battleye/setvariableval.txt b/Server_Install_Pack/sc/battleye/setvariableval.txt similarity index 100% rename from Server_Install_Pack/battleye/setvariableval.txt rename to Server_Install_Pack/sc/battleye/setvariableval.txt diff --git a/Server_Install_Pack/battleye/teamswitch.txt b/Server_Install_Pack/sc/battleye/teamswitch.txt similarity index 100% rename from Server_Install_Pack/battleye/teamswitch.txt rename to Server_Install_Pack/sc/battleye/teamswitch.txt diff --git a/Server_Install_Pack/battleye/waypointcondition.txt b/Server_Install_Pack/sc/battleye/waypointcondition.txt similarity index 100% rename from Server_Install_Pack/battleye/waypointcondition.txt rename to Server_Install_Pack/sc/battleye/waypointcondition.txt diff --git a/Server_Install_Pack/battleye/waypointstatement.txt b/Server_Install_Pack/sc/battleye/waypointstatement.txt similarity index 100% rename from Server_Install_Pack/battleye/waypointstatement.txt rename to Server_Install_Pack/sc/battleye/waypointstatement.txt From 7de364ff2ff3c72d35dfe5966a82b060fda99ce9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Wed, 20 Dec 2017 09:41:55 -0600 Subject: [PATCH 43/94] remove -BEPath --- Server_Install_Pack/restartserver_x64-example.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/restartserver_x64-example.bat b/Server_Install_Pack/restartserver_x64-example.bat index 47b04fbe..a25560bc 100644 --- a/Server_Install_Pack/restartserver_x64-example.bat +++ b/Server_Install_Pack/restartserver_x64-example.bat @@ -13,7 +13,7 @@ timeout 2 :: RESTARTING THE ARMA 3 SERVER BE SURE TO EDIT THIS TO YOUR SERVER .EXE LOCATION -NOTE ALSO THIS IS WHERE YOU DEFINE WHERE YOU CONFIG.CFG IS echo Starting ARMA 3 Server... -C:\Windows\System32\cmd.exe /C start "arma3" "C:\EpochServer\Epochserver_x64.exe" "[email protected];" "[email protected];" -config=C:\EpochServer\sc\server.cfg -port=2302 -profiles=sc -cfg=C:\EpochServer\sc\basic.cfg -name=sc -BEPath=C:\EpochServer\battleye -autoINIT -Loadmissiontomemory +C:\Windows\System32\cmd.exe /C start "arma3" "C:\EpochServer\Epochserver_x64.exe" "-mod=@Epoch;" "-serverMod=@EpochHive;" -config=C:\EpochServer\sc\server.cfg -port=2302 -profiles=sc -cfg=C:\EpochServer\sc\basic.cfg -name=sc -autoINIT -Loadmissiontomemory echo ARMA 3 Server has started timeout 60 From f61dfa7117461dc2a36b4b8f0b858ac14be403e3 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Fri, 22 Dec 2017 09:40:15 -0600 Subject: [PATCH 44/94] remove duplicate entries, indent fix, comment clarity --- Sources/epoch_server_settings/config.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 86d1b92d..0c392b3d 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -64,13 +64,16 @@ class CfgEpoch // Radiation System radioactiveLocations[] = {"NameCityCapital", "NameCity", "Airport"}; radioactiveLocationsCount = 3; - // Block radioactive locations spawn + + // BlackList radioactive locations spawn by object and distance radioactiveLocBLObjects[] = {"PlotPole_EPOCH"}; radioactiveLocBLDistance = 500; - customRadioactiveLocations[] = { // position , intensity , object to spawn radiated + + // Custom Locations for Radiation + customRadioactiveLocations[] = { + // {{position , intensity , object}, // {{11650,11900,0}, 500, "Land_Device_assembled_F"}, // {{0,0,0}, 0, ""} //any of these will throw an error in the rpt - // leave this empty to spawn 0 custom locations }; // Traders @@ -151,7 +154,7 @@ class CfgEpoch satelliteCompromisedColor = "ColorRed"; availableSatellites[] = {"Land_Wreck_Satellite_EPOCH"}; - propsPos[] = { + propsPos[] = { // Will accept several variations of this entry to place objects on the map // _className - STRING - Class name of the object to spawn // _position - ARRAY - posATL of the object placement @@ -168,8 +171,6 @@ class CfgEpoch // 3 {"Land_MarketShelter_F", { 13315.3, 14512.4, 0.0361125 }, {{0,0,0},{0,0,1}}, true, true, false, 0}, }; staticNpcPos[] = {}; - forcedVehicleSpawnTable = ""; - forcedLootSpawnTable = ""; allowedVehiclesList[] = { {"C_Offroad_01_EPOCH",8}, {"C_Quadbike_01_EPOCH",8}, From c615d93ba66391404cadc593f90e87c7d88d8aaa Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 2 Jan 2018 14:39:31 +0100 Subject: [PATCH 45/94] Tweaked SwapBuilding - Removed disable Simulation here, because desimulated objects need a long time to broadcast the correct position. So we only desimulate them on next restart - Removed reveal, because it has no effect in my tests. - Moved the position set code more to the top of this script, as it has a positive effect on position set performance --- .../epoch_bases/EPOCH_swapBuilding.sqf | 62 ++++++------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf index 7c78b309..1d2e8f9a 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_swapBuilding.sqf @@ -1,6 +1,6 @@ // _newObj = [_class,_object] call EPOCH_swapBuilding; //[[[cog import generate_private_arrays ]]] -private ["_newObj","_objectPos","_playersNear"]; +private ["_newObj","_objectPos"]; //[[[end]]] params [["_class",""],["_object",objNull],["_method",0]]; _newObj = objNull; @@ -9,43 +9,6 @@ if (!isNull _object && !(_class isEqualTo "")) then { _newObj = createVehicle [_class, ASLtoAGL _objectPos, [], 0, "CAN_COLLIDE"]; if (!isNull _newObj) then { _object hideObjectGlobal true; - - _serverSettingsConfig = configFile >> "CfgEpochServer"; - _UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry; - _IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry; - _ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry; - _UseDeSimulateObjects = [_serverSettingsConfig, "UseDeSimulateObjects", true] call EPOCH_fnc_returnConfigEntry; - _DeSimulateObjects = [_serverSettingsConfig, "DeSimulateObjects", []] call EPOCH_fnc_returnConfigEntry; - _ExceptedDeSymObjects = [_serverSettingsConfig, "ExceptedDeSymObjects", []] call EPOCH_fnc_returnConfigEntry; - _Simulated = true; - if (_UseIndestructible) then { - if ({_class iskindof _x} count _ExceptedBaseObjects == 0) then { - { - if (_class iskindof _x) exitwith { - _newObj allowdamage false; - }; - } foreach _IndestructibleBaseObjects; - }; - }; - if (_UseDeSimulateObjects) then { - if ({_class iskindof _x} count _ExceptedDeSymObjects == 0) then { - { - if (_class iskindof _x) exitwith { - _newObj enablesimulationglobal false; - _Simulated = false; - }; - } foreach _DeSimulateObjects; - }; - }; - if (_Simulated) then { // Only needed, if simulation is not disabled - // new Dynamicsimulation - if([configFile >> "CfgEpochServer", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then - { - _newObj enableDynamicSimulation true; - _newObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server - }; - }; - switch (_method) do { case 0: { _newObj setposATL (getPosATL _object); @@ -65,10 +28,25 @@ if (!isNull _object && !(_class isEqualTo "")) then { }; deleteVehicle _object; - // force nearby players to reveal new object faster - _playersNear = _newObj nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 300]; - [_newObj, {player reveal _this}] remoteExec ["call", _playersNear]; - + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry; + _IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry; + _ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry; + if (_UseIndestructible) then { + if ({_class iskindof _x} count _ExceptedBaseObjects == 0) then { + { + if (_class iskindof _x) exitwith { + _newObj allowdamage false; + }; + } foreach _IndestructibleBaseObjects; + }; + }; + // new Dynamicsimulation + if([configFile >> "CfgEpochServer", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then + { + _newObj enableDynamicSimulation true; + _newObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server + }; }; }; _newObj From ec3953435ae42362722b4a3ce2465ad02471c637 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 6 Jan 2018 15:11:57 +0100 Subject: [PATCH 46/94] Fix nitelight not working inside Vehicles --- Sources/epoch_code/compile/EPOCH_niteLight.sqf | 4 ++-- Sources/epoch_code/compile/event_handlers/EPOCH_getInMan.sqf | 1 + Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Sources/epoch_code/compile/EPOCH_niteLight.sqf b/Sources/epoch_code/compile/EPOCH_niteLight.sqf index aa0d3385..31426b76 100644 --- a/Sources/epoch_code/compile/EPOCH_niteLight.sqf +++ b/Sources/epoch_code/compile/EPOCH_niteLight.sqf @@ -22,11 +22,11 @@ _config = 'CfgEpochClient' call EPOCH_returnConfig; _nlSettings = getArray( _config >> "niteLight"); _nlSettings params [["_nlEnabled",1],["_nlBright",1.88],["_nlZ",22]]; if (_nlEnabled isEqualTo 1) then { - _pos = (getPosATL player); + _pos = (getPosATL vehicle player); _pos set [2,_nlZ]; EP_light = "#lightpoint" createvehiclelocal _pos; EP_light setposATL _pos; - EP_light attachTo [player,[0,8.11,_nlZ]]; //offset infront of player so that the darkness is 'following' them. + EP_light attachTo [vehicle player,[0,8.11,_nlZ]]; //offset infront of vehicle player so that the darkness is 'following' them. EP_light setLightDayLight false; //Sets light so it can only be used at night. EP_light setLightBrightness _nlBright; EP_light setLightAmbient [0.435, 0.439, 0.439];//Using new Colours. diff --git a/Sources/epoch_code/compile/event_handlers/EPOCH_getInMan.sqf b/Sources/epoch_code/compile/event_handlers/EPOCH_getInMan.sqf index 3d56bade..efb22de8 100644 --- a/Sources/epoch_code/compile/event_handlers/EPOCH_getInMan.sqf +++ b/Sources/epoch_code/compile/event_handlers/EPOCH_getInMan.sqf @@ -13,6 +13,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_getInMan_EH.sqf */ params ["_unit","_position","_vehicle"]; +call EPOCH_niteLight; if (_unit == player) then { // Disable build mode if (EPOCH_buildMode > 0) then { diff --git a/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf b/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf index 1f4d9767..b43ad244 100644 --- a/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf +++ b/Sources/epoch_code/compile/event_handlers/EPOCH_getOutMan.sqf @@ -15,6 +15,7 @@ */ params ["_unit","_position","_vehicle"]; +call EPOCH_niteLight; if (_unit == player) then { _this spawn { private ["_animationstate","_StartTime","_eyepos","_dirTo","_end","_start"]; From 773d863c5868dfb6710a8b0705578d3a9d15c818 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sun, 7 Jan 2018 02:41:38 +0100 Subject: [PATCH 47/94] Trader Config + Reserved Vehicle Slots --- .../@epochhive/epochconfig.hpp | 18 + .../EPOCH_server_traderKilled.sqf | 1 + .../EPOCH_server_loadTraders.sqf | 317 ++++++++---------- .../EPOCH_server_spawnTraders.sqf | 5 +- .../EPOCH_server_makeNPCTrade.sqf | 28 +- Sources/epoch_server/init/server_init.sqf | 4 +- 6 files changed, 187 insertions(+), 186 deletions(-) diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index afb687f1..f827561d 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -54,6 +54,7 @@ forceRestartTime = 14400; // 4 hour restarts }; // vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance. + ReservedVehSlots = 50; // Reserved Vehicle Slots (only needed, if you store non-Epoch Vehicles in the Database) disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup. simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps. VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked @@ -121,7 +122,24 @@ forceRestartTime = 14400; // 4 hour restarts }; NPCSlotsLimit = 30; // Max number of traders static or dynamic. Warning! Higher the number lower performance. forceStaticTraders = "true"; // disables traders moving from work to home + TraderGodMode = "false"; // If true, Trader can not be killed by Players + storedVehicleLimit = 15; // Vehicles more than x stored in ALL Traders will automatically be deleted on Restart. + StaticTraderItemPurge[] = {100,15}; // {ItemCount,ReducePercent} - If a static trader have more than x different items, on restart the items will be reduced by y percent + DynamicTraderRespawnCount = 100 // If a dynamic Trader have more than x different Items, he will respawn on another Spot (with start Items) + TraderItemCountPerItem[] = {50,5}; // If the Trader has more than x pieces of an Item, it will be reduced to y pieces (on Restart) + TraderItemsDeleteInstant[] = { // List of Items, that will be deleted from Trader instant after sell + // "ItemVehDoc1", + // "ItemVehDoc2", + // "ItemVehDoc3", + // "ItemVehDoc4" + }; + TraderItemsDeleteRestart[] = { // List of Items, that will be deleted from Trader on Restart + // "ItemLockbox", + // "ItemSafe", + // "ItemGoldBar10oz" + }; +// Spawntables forcedVehicleSpawnTable = ""; // leave blank for default. Options: "allowedVehiclesList","allowedVehiclesList_CUP","allowedVehiclesList_MAD","allowedVehiclesList_MADCUP" forcedLootSpawnTable = ""; // leave blank for default. Options: "CfgLootTable","CfgLootTable_CUP","CfgLootTable_MAD","CfgLootTable_MADCUP" diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_server_traderKilled.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_server_traderKilled.sqf index 56feb2f8..82a90ecd 100644 --- a/Sources/epoch_server/compile/epoch_server/EPOCH_server_traderKilled.sqf +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_server_traderKilled.sqf @@ -29,6 +29,7 @@ if (!isNull _trader) then { [_player, "UAV"] call EPOCH_server_triggerEvent; _objHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID), _slot]; ["AI", _objHiveKey] call EPOCH_fnc_server_hiveDEL; + ["AI_ITEMS", _objHiveKey] call EPOCH_fnc_server_hiveDEL; }; // send karma stat to seller _kIndex = EPOCH_communityStats find "Karma"; diff --git a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf index 4982f021..989d934f 100644 --- a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf +++ b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf @@ -13,7 +13,10 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_agent","_aiTables","_arr","_class","_config","_currentStock","_existingStock","_home","_indexStock","_limit","_markers","_objHiveKey","_pos","_randomAIUniform","_response","_schedule","_serverSettingsConfig","_staticTrader","_staticTradersArrCount","_staticTradersArray","_storedVehicleLimit","_toBeRemoved","_traderSlotIndex","_work"]; +private [ "_TraderGodMode","_StaticTraderItemPurge","_DynamicTraderRespawnCount","_TraderItemsDeleteRestart","_TraderInit","_TraderItemsClean","_newstock","_agent","_aiTables", + "_arr","_config","_currentStock","_existingStock","_indexStock","_limit","_markers","_objHiveKey","_pos","_randomAIUniform","_response","_response2","_schedule", + "_serverSettingsConfig","_staticTrader","_staticTradersArrCount","_staticTradersArray","_storedVehicleLimit","_traderSlotIndex","_work","_arrchanged","_deleteat" + ]; //[[[end]]] params [["_maxTraderLimit",0]]; @@ -23,208 +26,186 @@ _config = (configFile >> "CfgEpoch" >> worldName); _staticTradersArray append getArray(_config >> "staticNpcPos"); _staticTradersArrCount = count _staticTradersArray; _aiTables = getArray(_config >> "traderUniforms"); - _serverSettingsConfig = configFile >> "CfgEpochServer"; +_TraderGodMode = [_serverSettingsConfig, "TraderGodMode", false] call EPOCH_fnc_returnConfigEntry; _storedVehicleLimit = [_serverSettingsConfig, "storedVehicleLimit", 20] call EPOCH_fnc_returnConfigEntry; +_StaticTraderItemPurge = [_serverSettingsConfig, "StaticTraderItemPurge", []] call EPOCH_fnc_returnConfigEntry; +_DynamicTraderRespawnCount = [_serverSettingsConfig, "DynamicTraderRespawnCount", 150] call EPOCH_fnc_returnConfigEntry; +_TraderItemCountPerItem = [_serverSettingsConfig, "TraderItemCountPerItem", [100,100]] call EPOCH_fnc_returnConfigEntry; +_TraderItemsDeleteRestart = [_serverSettingsConfig, "TraderItemsDeleteRestart", []] call EPOCH_fnc_returnConfigEntry; + +_TraderInit = { + addToRemainsCollector[_this]; + _this allowdamage !_TraderGodMode; + _this addUniform _randomAIUniform; + _this setDir _dir; + _this setVariable ["AI_SLOT", _i, true]; + _this setVariable ["AI_ITEMS", _arr, true]; + _this disableAI "FSM"; + _this setBehaviour "CARELESS"; + _this setCombatMode "RED"; + _this setSkill 0; + _this addEventHandler ["Killed", { _this call EPOCH_server_traderKilled; }]; +}; +_TraderItemsClean = { + private ["_idx","_delete","_k"]; + _idx = 0; + for "_k" from 1 to (count (_arr select 0)) do { + _delete = false; + _item = _arr select 0 select _idx; + _limit = ["CfgTraderLimits", _item, 100] call EPOCH_fnc_returnConfigEntryV2; + _currentStock = (_arr select 1) param[_idx, 0]; + if (_currentStock >= (_TraderItemCountPerItem select 0)) then { + _currentStock = _TraderItemCountPerItem select 1; + (_arr select 1) set [_idx,_currentStock]; + _arrchanged = true; + }; + if (_limit == 0 || _currentStock == 0) then { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Removed %2 from Trader | _limit: %3 | _currentStock: %4",_i,str _item, _limit,_currentStock]; + _arrchanged = true; + _delete = true; + } + else { + if (_item in _TraderItemsDeleteRestart) then { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Removed %2 from Trader (Items to remove on Restart)",_i,str _item]; + _arrchanged = true; + _delete = true; + } + else { + if (_currentStock > _limit) then { + _arrchanged = true; + (_arr select 1) set [_idx,_limit]; + _currentStock = _limit; + }; + if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") then { + _newstock = 0; + for "_k" from 1 to _currentStock do { + if (EPOCH_storedVehicleCount < _storedVehicleLimit) then { + _newstock = _newstock + 1; + EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + 1; + if !(_item in EPOCH_traderStoredVehicles) then { + EPOCH_traderStoredVehicles pushBack _item; + EPOCH_traderStoredVehiclesCnt pushBack 1; + } + else { + _indexStock = EPOCH_traderStoredVehicles find _item; + if (_indexStock != -1) then { + _existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock; + EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + 1)]; + }; + }; + }; + }; + if !(_newstock == _currentStock) then { + _arrchanged = true; + if (_newstock > 0) then { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Changed stock of %2 from Trader | _currentStock: %3 | _newstock: %4 | EPOCH_storedVehicleCount: %5 | _storedVehicleLimit: %6",_i,str _item,_currentStock,_newstock,EPOCH_storedVehicleCount,_storedVehicleLimit]; + (_arr select 1) set [_idx,_newstock]; + } + else { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Removed %2 from Trader | EPOCH_storedVehicleCount: %3 | _storedVehicleLimit: %4",_i,str _item,EPOCH_storedVehicleCount,_storedVehicleLimit]; + _delete = true; + }; + }; + }; + }; + }; + if (_delete) then { + (_arr select 0) deleteat _idx; + (_arr select 1) deleteat _idx; + } + else { + _idx = _idx + 1; + }; + }; +}; EPOCH_storedVehicleCount = 0; for "_i" from 0 to (_maxTraderLimit-1) do { _traderSlotIndex = EPOCH_TraderSlots pushBack _i; + _randomAIUniform = selectRandom _aiTables; + _arr = [[], []]; + _arrchanged = false; + _objHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID), _i]; + _response = ["AI_ITEMS", _objHiveKey] call EPOCH_fnc_server_hiveGETRANGE; + if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { + _arr = (_response select 1); + if (_arr isEqualTo []) then { + _arr = [[], []]; + }; + }; + if (_arr isEqualTo [[], []]) then{ + _arr = EPOCH_starterTraderItems; + _arrchanged = true; + }; + call _TraderItemsClean; // Spawn static traders first if (_staticTradersArrCount > 0 && _i < _staticTradersArrCount) then { - _staticTrader = _staticTradersArray select _i; _staticTrader params ["_class","_pos","_dir"]; - _agent = createAgent [_class, _pos, [], 0, "CAN_COLLIDE"]; - _randomAIUniform = selectRandom _aiTables; - _agent addUniform _randomAIUniform; - _agent setDir _dir; - _agent setPosATL _pos; - _agent setVariable ["AI_SLOT", _i, true]; - _agent disableAI "FSM"; - _agent setBehaviour "CARELESS"; - _agent setCombatMode "RED"; - _agent setSkill 0; - _agent addEventHandler ["Killed", { _this call EPOCH_server_traderKilled; }]; - _arr = [[], []]; - _objHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID), _i]; - _response = ["AI_ITEMS", _objHiveKey] call EPOCH_fnc_server_hiveGETRANGE; - if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { - _arr = (_response select 1); - if (_arr isEqualTo []) then { - _arr = [[], []]; + if (count (_arr select 0) > (_StaticTraderItemPurge select 0)) then { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Cleaning %2 Items from Trader | before: %3",_i,((count (_arr select 0))*(_StaticTraderItemPurge select 1)/100), count (_arr select 0)]; + _arrchanged = true; + for "_j" from 1 to ((count (_arr select 0))*(_StaticTraderItemPurge select 1)/100) do { + _deleteat = (round random (count (_arr select 0)-1)); + (_arr select 0) deleteAt _deleteat; + (_arr select 1) deleteAt _deleteat; }; - _toBeRemoved = []; - // count vehicles - { - _limit = ["CfgTraderLimits", _x, 100] call EPOCH_fnc_returnConfigEntryV2; - _currentStock = (_arr select 1) param[_forEachIndex, 0]; - if (_limit == 0) then { - // mark for removal since limit is 0 - _toBeRemoved pushBack _forEachIndex; - _currentStock = 0; - } else { - // lower to limit current qty is over limit - if (_currentStock > _limit) then { - (_arr select 1) set [_forEachIndex,_limit]; - _currentStock = _limit; - }; - }; - if (_x isKindOf "Air" || _x isKindOf "Ship" || _x isKindOf "LandVehicle" || _x isKindOf "Tank") then { - if (EPOCH_storedVehicleCount <= _storedVehicleLimit) then { - EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + _currentStock; - - // Count how many of this vehicle are in stock at any trader. - if !(_x in EPOCH_traderStoredVehicles) then { - EPOCH_traderStoredVehicles pushBack _x; - EPOCH_traderStoredVehiclesCnt pushBack _currentStock; - } else { - _indexStock = EPOCH_traderStoredVehicles find _x; - if (_indexStock != -1) then { - _existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock; - EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + _currentStock)]; - }; - }; - } else { - _toBeRemoved pushBack _forEachIndex; - }; - - }; - } forEach (_arr select 0); - // remove any marked for removal - { - (_arr select 0) deleteAt _x; - (_arr select 1) deleteAt _x - } forEach _toBeRemoved; }; - - if (_arr isEqualTo [[], []]) then{ - _arr = EPOCH_starterTraderItems; + EPOCH_TraderSlots deleteAt _traderSlotIndex; + _agent = createAgent [_class, _pos, [], 0, "CAN_COLLIDE"]; + _agent call _TraderInit; + _agent setPosATL _pos; + if (_arrchanged) then { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Saved",_i]; ["AI_ITEMS", _objHiveKey, EPOCH_expiresAIdata, _arr] call EPOCH_fnc_server_hiveSETEX; }; - - _agent setVariable ["AI_ITEMS", _arr, true]; - - EPOCH_TraderSlots deleteAt _traderSlotIndex; - if (EPOCH_SHOW_TRADERS) then { _markers = ["StaticTrader",_pos] call EPOCH_server_createGlobalMarkerSet; _agent setVariable["MARKER_REF", _markers]; }; - } else { + } + else { // Spawn dynamic traders - _objHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID), _i]; - _response = ["AI", _objHiveKey] call EPOCH_fnc_server_hiveGETRANGE; - if ((_response select 0) == 1 && (_response select 1) isEqualType [] && !((_response select 1) isEqualTo [])) then { - _arr = (_response select 1); - - _class = _arr select 0; //"C_man_1" - _home = _arr select 1; - _work = _arr select 2; - + _response2 = ["AI", _objHiveKey] call EPOCH_fnc_server_hiveGETRANGE; + if ((_response2 select 0) == 1 && (_response2 select 1) isEqualType [] && !((_response2 select 1) isEqualTo [])) then { + (_response2 select 1) params ["_class","_home","_work"]; if (_home isEqualType [] && _work isEqualType []) then { // check schedule _pos = _home; - _schedule = [9, 17]; if ((_work select 1) isEqualType []) then { _schedule = _work select 1; } else { - diag_log format ["DEBUG INVAILD SCHEDULE: SLOT: %1 CLASS: %2 POS: %3 WORK: %4", _i, _class, _pos, _work]; +// diag_log format ["DEBUG INVAILD SCHEDULE: SLOT: %1 CLASS: %2 POS: %3 WORK: %4", _i, _class, _pos, _work]; }; - if (daytime > (_schedule select 0) && daytime < (_schedule select 1)) then { _pos = (_work select 0); }; - _agent = createAgent [_class, _pos, [], 0, "NONE"]; - - addToRemainsCollector[_agent]; - - _randomAIUniform = selectRandom _aiTables; - _agent addUniform _randomAIUniform; - - // _agent enableSimulationGlobal false; - _agent setPos _pos; - - _agent addEventHandler ["Killed", { _this call EPOCH_server_traderKilled; }]; - - if !(EPOCH_forceStaticTraders) then { - [_agent, _home, _work] execFSM "\epoch_server\system\Trader_brain.fsm"; - }; - - _agent setVariable ["AI_SLOT", _i, true]; - - _arr = [[],[]]; - _objHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID), _i]; - _response = ["AI_ITEMS", _objHiveKey] call EPOCH_fnc_server_hiveGETRANGE; - - if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { - _arr = (_response select 1); - - if (_arr isEqualTo []) then { - _arr = [[], []]; - }; - - _toBeRemoved = []; - // count vehicles - { - _limit = ["CfgTraderLimits", _x, 100] call EPOCH_fnc_returnConfigEntryV2; - _currentStock = (_arr select 1) param[_forEachIndex, 0]; - if (_limit == 0) then { - // mark for removal since limit is 0 - _toBeRemoved pushBack _forEachIndex; - _currentStock = 0; - } else { - // lower to limit current qty is over limit - if (_currentStock > _limit) then { - (_arr select 1) set [_forEachIndex,_limit]; - _currentStock = _limit; - }; - }; - if (_x isKindOf "Air" || _x isKindOf "Ship" || _x isKindOf "LandVehicle" || _x isKindOf "Tank") then { - if (EPOCH_storedVehicleCount <= _storedVehicleLimit) then { - EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + _currentStock; - - // Count how many of this vehicle are in stock at any trader. - if !(_x in EPOCH_traderStoredVehicles) then { - EPOCH_traderStoredVehicles pushBack _x; - EPOCH_traderStoredVehiclesCnt pushBack _currentStock; - } else { - _indexStock = EPOCH_traderStoredVehicles find _x; - if (_indexStock != -1) then { - _existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock; - EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + _currentStock)]; - }; - }; - } else { - _toBeRemoved pushBack _forEachIndex; - }; - - }; - } forEach (_arr select 0); - - // remove any marked for removal - { - (_arr select 0) deleteAt _x; - (_arr select 1) deleteAt _x - } forEach _toBeRemoved; - - if (_arr isEqualTo [[], []]) then{ - _arr = EPOCH_starterTraderItems; + if !(count (_arr select 0) >= _DynamicTraderRespawnCount) then { + EPOCH_TraderSlots deleteAt _traderSlotIndex; + _agent = createAgent [_class, _pos, [], 0, "NONE"]; + _dir = random 360; + _agent call _TraderInit; + if (_arrchanged) then { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Saved",_i]; ["AI_ITEMS", _objHiveKey, EPOCH_expiresAIdata, _arr] call EPOCH_fnc_server_hiveSETEX; }; - - }; - _agent setVariable ["AI_ITEMS", _arr, true]; - - EPOCH_TraderSlots deleteAt _traderSlotIndex; - - if (EPOCH_SHOW_TRADERS) then { - _markers = ["DynamicTrader",_pos] call EPOCH_server_createGlobalMarkerSet; - _agent setVariable["MARKER_REF", _markers]; + if !(EPOCH_forceStaticTraders) then { + [_agent, _home, _work] execFSM "\epoch_server\system\Trader_brain.fsm"; + }; + if (EPOCH_SHOW_TRADERS) then { + _markers = ["DynamicTrader",_pos] call EPOCH_server_createGlobalMarkerSet; + _agent setVariable["MARKER_REF", _markers]; + }; + } + else { +// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Supressed Trader Load - Too much items (%2) and will respawn",_i,count (_arr select 0)]; + ["AI", _objHiveKey] call EPOCH_fnc_server_hiveDEL; + ["AI_ITEMS", _objHiveKey] call EPOCH_fnc_server_hiveDEL; }; }; }; diff --git a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_spawnTraders.sqf b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_spawnTraders.sqf index e3394c07..bbfc45f6 100644 --- a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_spawnTraders.sqf +++ b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_spawnTraders.sqf @@ -13,8 +13,10 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_traders/EPOCH_server_spawnTraders.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_acceptableBlds","_agent","_aiClass","_aiTables","_buildingHome","_buildingWork","_buildings","_checkBuilding","_config","_endTime","_home","_homes","_markers","_objHiveKey","_pos","_position","_randomAIUniform","_return","_schedule","_slot","_spawnCount","_startTime","_traderHomes","_usedBuildings","_work"]; +private ["_serverSettingsConfig","_acceptableBlds","_agent","_aiClass","_aiTables","_buildingHome","_buildingWork","_buildings","_checkBuilding","_config","_endTime","_home","_homes","_markers","_objHiveKey","_pos","_position","_randomAIUniform","_return","_schedule","_slot","_spawnCount","_startTime","_traderHomes","_usedBuildings","_work"]; //[[[end]]] +_serverSettingsConfig = configFile >> "CfgEpochServer"; +_TraderGodMode = [_serverSettingsConfig, "TraderGodMode", false] call EPOCH_fnc_returnConfigEntry; _spawnCount = count EPOCH_TraderSlots; _config = (configFile >> "CfgEpoch" >> worldName); _aiTables = getArray(_config >> "traderUniforms"); @@ -55,6 +57,7 @@ for "_i" from 1 to _spawnCount do { }; _agent = createAgent[_aiClass, _pos, [], 0, "CAN_COLLIDE"]; addToRemainsCollector[_agent]; + _agent allowdamage !_TraderGodMode; _agent addUniform _randomAIUniform; _slot = EPOCH_TraderSlots deleteAt 0; _agent setVariable["AI_SLOT", _slot, true]; diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf index 7edb7f10..180c3870 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf @@ -19,6 +19,7 @@ params ["_trader","_itemsIn","_itemsOut","_player",["_token","",[""]] ]; _playerUID = getplayeruid _player; +_serverSettingsConfig = configFile >> "CfgEpochServer"; _vehicleSold = false; _vehicleBought = false; @@ -103,20 +104,18 @@ if (_slot != -1) then { if (_makeTradeIn) then { _returnIn pushBack _item; - - _qtyIndex = _itemClasses find _item; - if (_qtyIndex == -1) then { - _itemClasses pushBack _item; - _itemQtys pushBack _itemQty; - _tradeIn = _tradeIn + _itemWorth; - _current_crypto = _current_crypto + _itemWorth; - _tradeQtyTotal = _tradeQtyTotal + _itemQty; - } else { - _currQty = _itemQtys select _qtyIndex; - _itemQtys set[_qtyIndex, (_currQty + _itemQty)]; - _tradeIn = _tradeIn + _itemWorth; - _current_crypto = _current_crypto + _itemWorth; - _tradeQtyTotal = _tradeQtyTotal + _itemQty; + _tradeIn = _tradeIn + _itemWorth; + _current_crypto = _current_crypto + _itemWorth; + _tradeQtyTotal = _tradeQtyTotal + _itemQty; + if !(_item in ([_serverSettingsConfig, "TraderItemsDeleteInstant", []] call EPOCH_fnc_returnConfigEntry)) then { + _qtyIndex = _itemClasses find _item; + if (_qtyIndex == -1) then { + _itemClasses pushBack _item; + _itemQtys pushBack _itemQty; + } else { + _currQty = _itemQtys select _qtyIndex; + _itemQtys set[_qtyIndex, (_currQty + _itemQty)]; + }; }; // send karma stat to seller _kIndex = EPOCH_communityStats find "Karma"; @@ -133,7 +132,6 @@ if (_slot != -1) then { if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { _bankData = _response select 1; if !(_bankData isEqualTo[]) then { - _serverSettingsConfig = configFile >> "CfgEpochServer"; _MaxBankDebit = [_serverSettingsConfig, "MaxBankDebitforTrade", -999999] call EPOCH_fnc_returnConfigEntry; _bankBalance = _bankData select 0; if (_bankBalance < _MaxBankDebit) then { diff --git a/Sources/epoch_server/init/server_init.sqf b/Sources/epoch_server/init/server_init.sqf index 861a2539..d7bd35c6 100644 --- a/Sources/epoch_server/init/server_init.sqf +++ b/Sources/epoch_server/init/server_init.sqf @@ -184,8 +184,8 @@ if !(EPOCH_forcedVehicleSpawnTable isEqualTo "") then { _allowedVehiclesList = getArray(_epochConfig >> worldName >> _allowedVehicleListName); _vehicleSlotLimit = 0; {_vehicleSlotLimit = _vehicleSlotLimit + (_x select 1)} forEach _allowedVehiclesList; -_ReservedSlots = 50; -_vehicleSlotLimit = _vehicleSlotLimit + _ReservedSlots; +_ReservedVehSlots = [_serverSettingsConfig, "ReservedVehSlots", 50] call EPOCH_fnc_returnConfigEntry; +_vehicleSlotLimit = _vehicleSlotLimit + _ReservedVehSlots; if (EPOCH_useOldLoadVehicles) then { _vehicleSlotLimit call EPOCH_load_vehicles_old; } else { From 097102c1aa3cfb960c9b3a579b4b0aeba55d8741 Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 8 Jan 2018 19:26:11 +0100 Subject: [PATCH 48/94] Vehicle Locktime now use string --- Sources/epoch_server/init/server_variables.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server/init/server_variables.sqf b/Sources/epoch_server/init/server_variables.sqf index e9fb4965..2bd58d8a 100644 --- a/Sources/epoch_server/init/server_variables.sqf +++ b/Sources/epoch_server/init/server_variables.sqf @@ -39,7 +39,7 @@ private _configArray = [ ["showSatellites", true], ["showShippingContainers", true], ["cloneCost", 100], - ["vehicleLockTime", 1800], + ["vehicleLockTime", "1800"], ["antagonistChancePDeath", 0.33], ["taxRate", 0.1], ["starterTraderItems", [[], []]], From ad36d16335577955575b977df2d20e7372f7538d Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 9 Jan 2018 17:28:12 +0100 Subject: [PATCH 49/94] Missing SERVER_VARS on revive https://github.com/EpochModTeam/Epoch/issues/963 --- .../compile/epoch_player/EPOCH_server_revivePlayer.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf b/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf index 0e025846..f9baae80 100644 --- a/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf +++ b/Sources/epoch_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf @@ -116,6 +116,7 @@ if (!local _player) then { _newPlyr setVariable ["PUID", _playerUID]; _newPlyr setVariable ["GROUP", _playerGroup]; _newPlyr setVariable ["REVIVE", false]; + _newPlyr setVariable ["SERVER_VARS",_player getVariable ["SERVER_VARS",[]]]; // _player playActionNow "Die"; From 134627d08b3be4dfd3bfcc1cdaa63340194d591c Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 9 Jan 2018 20:03:20 +0100 Subject: [PATCH 50/94] Changed SnapPoints color for better visibility White is mostly very hard to see. --- Sources/epoch_code/compile/EPOCH_onEachFrame.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf b/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf index d5ac7189..22331faf 100644 --- a/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf +++ b/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf @@ -141,7 +141,7 @@ if (EPOCH_drawIcon3d) then { _distance = player distance _x; if (_distance < 9) then { _pos = _x; - _color = [1, 1, 1, 0.7]; + _color = [1, 1, 0, 0.7]; _size = 1; drawIcon3D["x\addons\a3_epoch_code\Data\UI\snap_ca.paa", _color, _pos, _size, _size, 0, "", 1, _size / 60, "PuristaMedium"]; }; From 3eac0b0035749f8de97621eb011611c8f572440b Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 9 Jan 2018 23:27:38 +0100 Subject: [PATCH 51/94] Skip ForceUpdate, if ForcedUpdateNow + fishingtime --- Sources/epoch_code/compile/setup/masterLoop/Event1.sqf | 2 ++ Sources/epoch_code/compile/setup/masterLoop/Event3.sqf | 1 + Sources/epoch_config/Configs/CfgMissions/CfgmissionFish.hpp | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf index c39d5374..4280d5a5 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf @@ -418,6 +418,8 @@ if (cameraview isequalto "GROUP") then { // force update if (EPOCH_forceUpdateNow) then { + _forceUpdate = false; + EPOCH_forceUpdate = false; EPOCH_forceUpdateNow = false; call _fnc_forceUpdate; }; diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event3.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event3.sqf index 9d8eefb4..4ccb53a7 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event3.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event3.sqf @@ -7,5 +7,6 @@ if !(_prevEquippedItem isEqualTo EPOCH_equippedItem_PVS) then { if (_forceUpdate || EPOCH_forceUpdate) then { _forceUpdate = false; EPOCH_forceUpdate = false; + EPOCH_forceUpdateNow = false; call _fnc_forceUpdate; }; diff --git a/Sources/epoch_config/Configs/CfgMissions/CfgmissionFish.hpp b/Sources/epoch_config/Configs/CfgMissions/CfgmissionFish.hpp index bdefffe4..b28b0ae3 100644 --- a/Sources/epoch_config/Configs/CfgMissions/CfgmissionFish.hpp +++ b/Sources/epoch_config/Configs/CfgMissions/CfgmissionFish.hpp @@ -69,7 +69,7 @@ class CatchFish { }; callevents[] = { // {{ARRAY1},{ARRAY2},... } }; - abandonTime = 600; + abandonTime = 1200; failedCondition = "!alive player"; faileddialogues[] = {"I guess you have better things to do. - Mission Failed","Mission Failed - You took to long."}; completeCondition = "{_x in magazines player} count ([""CfgEpochClient"", ""fishLoots"", [""ItemTuna"",""ItemSeaBass"",""ItemSeaBass"",""ItemSeaBass"",""ItemTrout"",""ItemTrout"",""ItemTrout"",""ItemTrout"",""ItemTrout"",""ItemTrout""]] call EPOCH_fnc_returnConfigEntryV2) > 0"; From a2172aaef50ad32edb2b4bdf0b606ae6c831c20d Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 10 Jan 2018 20:10:00 +0100 Subject: [PATCH 52/94] Smaller fixes and tweaks - Fixed usedItemRepack removes all same items with same rounds - removed action "gear" by opening Cargo Container - removed StorageInit (EH Killed), if Storage is indestructible - Spawn Vehicles near 0 and port them after all is loaded to final position (prevent collide) - increased Altis World size to 25000 (better Vehicle / Trader Spawn) --- .../compile/inventory/EPOCH_usedItemRepack.sqf | 9 +++++---- .../compile/epoch_looting/EPOCH_server_lootContainer.sqf | 4 +++- .../compile/epoch_vehicle/EPOCH_load_storage.sqf | 5 +++-- .../compile/epoch_vehicle/EPOCH_load_vehicles.sqf | 2 +- .../epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf | 6 +++--- .../compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf | 2 +- .../compile/epoch_vehicle/EPOCH_spawn_vehicles.sqf | 2 +- Sources/epoch_server_settings/configs/maps/altis.h | 2 +- 8 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf index a4f897a2..80189bbb 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf @@ -53,13 +53,14 @@ if(count _itemMags > 1)then{ // adjust the item if!(_chg isEqualTo 0)then{ _index = ((count _itemMags) - 1); - _usedItemArray = _itemMags select _index; + _usedItemArray = _itemMags deleteat _index; _usedItemArray params ["_mag","_count"]; _itemMags pushBack [_mag, (_count + _chg)]; - _itemMags = _itemMags - [_usedItemArray]; _player removeMagazines _mag; { - _player addMagazine _x; - [format["You have used your %1", _displayName],5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack; + if ((_x select 1) > 0) then { + _player addMagazine _x; + }; }forEach _itemMags; + [format["You have used your %1", _displayName],5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack; }; diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf index 2d9a7fdb..9713d50e 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_lootContainer.sqf @@ -48,7 +48,9 @@ if !(_object in EPOCH_cleanupQueue) then { [_object, _type] call EPOCH_serverLootObject; // force player to open gear on this object. - [_object, {player action["Gear", _this]}] remoteExec ["call", _player]; + if !(_type isequalto "Cargo_Container") then { + [_object, {player action["Gear", _this]}] remoteExec ["call", _player]; + }; } else { [_object, "Food"] call EPOCH_serverLootObject; // force player to open gear on this object. diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_storage.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_storage.sqf index c33a81df..8c93705d 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_storage.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_storage.sqf @@ -105,8 +105,9 @@ for "_i" from 1 to _maxStorageLimit do { _vehicle setVariable ["STORAGE_SLOT", str(_i), true]; - _vehicle call EPOCH_server_storageInit; - + if (isDamageAllowed _vehicle) then { + _vehicle call EPOCH_server_storageInit; + }; if (count _arr >= 5) then { _color = _arr select 4; _cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf index ff5ac7e7..555f9bd7 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf @@ -84,7 +84,7 @@ for "_i" from 1 to _maxVehicleLimit do { }; // spawn vehicle at temp location. - _vehicle = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"]; + _vehicle = createVehicle [_class, [random 500, random 500,500], [], 0, "CAN_COLLIDE"]; // turn off BIS randomization _vehicle setVariable ["BIS_enableRandomization", false]; if !(isNull _vehicle) then { diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf index 7c4c8de4..6dcaedcf 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_upgrade_vehicle.sqf @@ -50,9 +50,6 @@ _newVeh setVariable ["VEHICLE_SLOT", _slot, true]; _newVeh setVariable ["VEHICLE_BASECLASS", _baseVeh]; _newVeh call EPOCH_server_setVToken; _newVeh call EPOCH_server_vehicleInit; -_newVeh setdir _dir; -_newVeh setposasl _pos; - // set fuel level _newVeh setFuel _fuel; @@ -131,5 +128,8 @@ if !(_removemagazinesturret isequalto []) then { } foreach _removemagazinesturret; }; +_newVeh setdir _dir; +_newVeh setposasl _pos; + // save new vehicle to db _newveh call EPOCH_Server_Save_Vehicle; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf index 2435f2e0..516a7ae7 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf @@ -21,7 +21,7 @@ _serverSettingsConfig = configFile >> "CfgEpochServer"; _removeweapons = [_serverSettingsConfig, "removevehweapons", []] call EPOCH_fnc_returnConfigEntry; _removemagazinesturret = [_serverSettingsConfig, "removevehmagazinesturret", []] call EPOCH_fnc_returnConfigEntry; _disableVehicleTIE = [_serverSettingsConfig, "disableVehicleTIE", true] call EPOCH_fnc_returnConfigEntry; -_vehObj = createVehicle[_vehClass, _position, [], 0, _can_collide]; +_vehObj = createVehicle[_vehClass, [random 500,random 500, 500], [], 0, "CAN_COLLIDE"]; // turn off BIS randomization _vehObj setVariable ["BIS_enableRandomization", false]; if !(isNull _vehObj) then{ diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicles.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicles.sqf index 012206d9..ba9f66f5 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicles.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicles.sqf @@ -112,7 +112,7 @@ for "_i" from 1 to _spawnCount do { } else { if (_allCitysDync isEqualTo []) then { - _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 1000, 0] call BIS_fnc_findSafePos; + _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 3, 0, 1000, 0] call BIS_fnc_findSafePos; } else { _selectedCity = _allCitysDync deleteAt (floor random(count _allCitysDync)); _cityPos = getArray(_selectedCity >> "position"); diff --git a/Sources/epoch_server_settings/configs/maps/altis.h b/Sources/epoch_server_settings/configs/maps/altis.h index 36ead027..9911f7a1 100644 --- a/Sources/epoch_server_settings/configs/maps/altis.h +++ b/Sources/epoch_server_settings/configs/maps/altis.h @@ -14,7 +14,7 @@ */ class Altis : Default { - worldSize = 20000; + worldSize = 25000; plantLimit = 10; // vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance. vehicleSpawnTypes[] = { From b2a2e25a2ce8ffb5d1c73a0c444d781647795554 Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 10 Jan 2018 21:16:29 +0100 Subject: [PATCH 53/94] Make Lighter Refillable --- Sources/epoch_code/compile/EPOCH_consumeItem.sqf | 14 +++++++------- .../compile/inventory/EPOCH_usedItemRepack.sqf | 2 +- .../epoch_config/Configs/CfgItemInteractions.hpp | 8 +++++++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf index abfe3205..fa18bf93 100644 --- a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf +++ b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf @@ -188,7 +188,7 @@ switch _interactOption do { }; case 5: { if !(player == vehicle player) exitwith { - ["Siphon from outside!", 5] call Epoch_message; + ["Fill from outside!", 5] call Epoch_message; }; _vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 30]; _canCapacity = _interactAttributes param [0,10]; @@ -198,15 +198,15 @@ switch _interactOption do { _newFuel = (((fuel _vehicle) * _fuelCapacity) - _canCapacity) / _fuelCapacity; if (_newFuel > 0) then { if (_item call _removeItem) then { - [_interactReturnOnUse,_vehicle,_newFuel] spawn { - params ["_interactReturnOnUse","_vehicle","_newFuel"]; + [_interactReturnOnUse,_vehicle,_newFuel,_item] spawn { + params ["_interactReturnOnUse","_vehicle","_newFuel","_item"]; closeDialog 0; player playMove 'AinvPknlMstpSnonWrflDnon_medic0'; player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd'; uisleep 5; _interactReturnOnUse call EPOCH_fnc_addItemOverflow; [_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2]; - ["Fuel Siphoned", 5] call Epoch_message; + [format["%1 Filled",_item call EPOCH_itemDisplayName], 5] call Epoch_message; }; }; } else { @@ -222,14 +222,14 @@ switch _interactOption do { if (_transportFuel > _canCapacity) then { if (_item call _removeItem) then { - [_interactReturnOnUse] spawn { - params ["_interactReturnOnUse"]; + [_interactReturnOnUse,_item] spawn { + params ["_interactReturnOnUse","_item"]; closeDialog 0; player playMove 'AinvPknlMstpSnonWrflDnon_medic0'; player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd'; uisleep 5; _interactReturnOnUse call EPOCH_fnc_addItemOverflow; - ["Fuel Siphoned", 5] call Epoch_message; + [format["%1 Filled",_item call EPOCH_itemDisplayName], 5] call Epoch_message; }; }; } else { diff --git a/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf index 80189bbb..b77f9396 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf @@ -58,7 +58,7 @@ if!(_chg isEqualTo 0)then{ _itemMags pushBack [_mag, (_count + _chg)]; _player removeMagazines _mag; { - if ((_x select 1) > 0) then { + if ((_x select 1) > 0) then { // Do not add back an empty mag, as it can not be handled by any scripts and is useless _player addMagazine _x; }; }forEach _itemMags; diff --git a/Sources/epoch_config/Configs/CfgItemInteractions.hpp b/Sources/epoch_config/Configs/CfgItemInteractions.hpp index fa6422cd..8526defd 100644 --- a/Sources/epoch_config/Configs/CfgItemInteractions.hpp +++ b/Sources/epoch_config/Configs/CfgItemInteractions.hpp @@ -229,6 +229,13 @@ class CfgItemInteractions interactReturnOnUse = "jerrycan_epoch"; interactAttributes[] = {10}; }; + class lighter_epoch : Default + { + interactAction = 5; + interactText = "Fill"; + interactReturnOnUse = "lighter_epoch"; + interactAttributes[] = {2}; + }; class FAK : Default { interactAction = 13; @@ -793,7 +800,6 @@ class CfgItemInteractions class hatchet_swing : Default {}; class WoodLog_EPOCH : Default {}; class ItemCoolerE : Default {}; - class lighter_epoch : Default {}; class Item_AssaultPack_cbr : Item_Packed_base { interactReturnOnUse = "B_AssaultPack_cbr"; From 292d1d82433591e638d63230bec7b75e1096ec9f Mon Sep 17 00:00:00 2001 From: He-Man Date: Fri, 12 Jan 2018 21:25:28 +0100 Subject: [PATCH 54/94] Examples for Vehicleupgrade --- .../Configs/CfgVehicleUpgrades.hpp | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/Sources/epoch_config/Configs/CfgVehicleUpgrades.hpp b/Sources/epoch_config/Configs/CfgVehicleUpgrades.hpp index 3c076568..7921e422 100644 --- a/Sources/epoch_config/Configs/CfgVehicleUpgrades.hpp +++ b/Sources/epoch_config/Configs/CfgVehicleUpgrades.hpp @@ -111,4 +111,53 @@ class CfgVehicleUpgrades ReqMaterials[] = {{1,"ItemVehDocRara"},{1,"PaintCanBlu"},{1,"PaintCanRed"},{1,"CircuitParts"},{1,"ItemBattery"}}; }; }; + +/* +############ Examples ############ + +// Upgrade several M900 into Hummingbird or a Hellcat: + class C_Heli_light_01_red_F // Class to Upgrade ("C_Heli_light_01_red_F") + { + upgradeToVehicle[] = {"B_Heli_Light_01_EPOCH","I_Heli_light_03_unarmed_EPOCH"}; // What Classes can be upgraded to (Hummingbird + Hellcat) + class B_Heli_Light_01_EPOCH // Upgrade to: Hummingbird with "KitVehicleUpgradeII_200_EPOCH" + { + ReqMaterials[] = {{1,"KitVehicleUpgradeII_200_EPOCH"}}; + }; + class I_Heli_light_03_unarmed_EPOCH // Upgrade to: Hellcat with "KitVehicleUpgradeII_200_EPOCH" + { + ReqMaterials[] = {{1,"KitVehicleUpgradeII_200_EPOCH"}}; + }; + }; + class C_Heli_light_01_blue_F : C_Heli_light_01_red_F {}; // Upgrade "C_Heli_light_01_blue_F" to Hummingbird / Hellcat (same setting as for "C_Heli_light_01_red_F") + class C_Heli_light_01_ion_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_graywatcher_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_wasp_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_digital_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_vrana_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_speedy_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_jeans_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_light_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_shadow_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_furious_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_wave_F : C_Heli_light_01_red_F {}; + class C_Heli_light_01_sheriff_F : C_Heli_light_01_red_F {}; + + + +// Upgrade Offroader into an Ifrit or several Offroader Armed: + class C_Offroad_01_EPOCH // Class to Upgrade ("C_Offroad_01_EPOCH") + { + upgradeToVehicle[] = {{"O_G_Offroad_01_armed_F","I_G_Offroad_01_armed_F","B_G_Offroad_01_armed_F"},"O_MRAP_02_EPOCH"}; // What Classes can be upgraded to + class O_MRAP_02_EPOCH // Upgrade to: Ifrit with "KitVehicleUpgradeIV_200_EPOCH" + { + ReqMaterials[] = {{1,"KitVehicleUpgradeIV_200_EPOCH"}}; + }; + class O_G_Offroad_01_armed_F // Upgrade to: "Offroader Armed Brown" with "KitVehicleUpgradeIII_200_EPOCH" + { + ReqMaterials[] = {{1,"KitVehicleUpgradeIII_200_EPOCH"}}; + }; + class I_G_Offroad_01_armed_F : O_G_Offroad_01_armed_F {}; // Upgrade to: Offroader Armed Green (same needed material then for "O_G_Offroad_01_armed_F") + class B_G_Offroad_01_armed_F : O_G_Offroad_01_armed_F {}; // Upgrade to: Offroader Armed Grey (same needed material then for "O_G_Offroad_01_armed_F") + }; +*/ }; \ No newline at end of file From 795cafe1baccd9dc1687df580c47199b0a188478 Mon Sep 17 00:00:00 2001 From: He-Man Date: Fri, 12 Jan 2018 21:43:52 +0100 Subject: [PATCH 55/94] Reworked SnapPoints (especially half / quarter) Works very well on our Server for some weeks now... --- .../epoch_config/Configs/CfgBaseBuilding.hpp | 360 +++++++++--------- 1 file changed, 176 insertions(+), 184 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgBaseBuilding.hpp b/Sources/epoch_config/Configs/CfgBaseBuilding.hpp index 42dfc9e9..62418faf 100644 --- a/Sources/epoch_config/Configs/CfgBaseBuilding.hpp +++ b/Sources/epoch_config/Configs/CfgBaseBuilding.hpp @@ -199,7 +199,7 @@ class CfgBaseBuilding simulClass = "WoodFloor_SIM_EPOCH"; staticClass = "WoodFloor_EPOCH"; GhostPreview = "WoodFloor_Ghost_EPOCH"; - snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NHF","SHF","EHF","WHF","NQ1","NQ2","SQ1","SQ2","EQ1","EQ2","WQ1","WQ2"}; + snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; energyCost = 0.2; // snap points for WoodFloor_EPOCH @@ -221,18 +221,28 @@ class CfgBaseBuilding SF[] = {0,-5.237,0}; EF[] = {5.237,0,0}; WF[] = {-5.237,0,0}; - NHF[] = {0,3.92775,0}; - SHF[] = {0,-3.92775,0}; - EHF[] = {3.92775,0,0}; - WHF[] = {-3.92775,0,0}; - NQ1[] = {1.30925,3.92775,0}; - NQ2[] = {-1.30925,3.92775,0}; - SQ1[] = {1.30925,-3.92775,0}; - SQ2[] = {-1.30925,-3.92775,0}; - EQ1[] = {3.92775,1.30925,0}; - EQ2[] = {3.92775,-1.30925,0}; - WQ1[] = {-3.92775,1.30925,0}; - WQ2[] = {-3.92775,-1.30925,0}; + NWQF[] = {-1.30925,3.92775,0}; + NQF[] = {0,3.92775,0}; + NEQF[] = {1.30925,3.92775,0}; + SWQF[] = {-1.30925,-3.92775,0}; + SQF[] = {0,-3.92775,0}; + SEQF[] = {1.30925,-3.92775,0}; + ENQF[] = {3.92775,1.30925,0}; + EQF[] = {3.92775,0,0}; + ESQF[] = {3.92775,-1.30925,0}; + WNQF[] = {-3.92775,1.30925,0}; + WQF[] = {-3.92775,0,0}; + WSQF[] = {-3.92775,-1.30925,0}; + + NWHF[] = {-1.30925,5.237,0}; + NEHF[] = {1.30925,5.237,0}; + SWHF[] = {-1.30925,-5.237,0}; + SEHF[] = {1.30925,-5.237,0}; + WNHF[] = {-5.237,1.30925,0}; + WSHF[] = {-5.237,-1.30925,0}; + ENHF[] = {5.237,1.30925,0}; + ESHF[] = {5.237,-1.30925,0}; + }; class WoodFloor_SIM_EPOCH : WoodFloor_EPOCH { @@ -249,7 +259,7 @@ class CfgBaseBuilding simulClass = "WoodHalfFloor_SIM_EPOCH"; staticClass = "WoodHalfFloor_EPOCH"; GhostPreview = "WoodHalfFloor_Ghost_EPOCH"; - snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NHF","SHF","EHF","WHF","NQ1","NQ2","SQ1","SQ2","EQ1","EQ2","WQ1","WQ2"}; + snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; energyCost = 0.2; // snap points for WoodHalfFloor_EPOCH @@ -271,22 +281,32 @@ class CfgBaseBuilding SF[] = {0,-5.237,0}; EF[] = {3.92775,0,0}; WF[] = {-3.92775,0,0}; - NHF[] = {0,3.92775,0}; - SHF[] = {0,-3.92775,0}; - EHF[] = {2.6185,0,0}; - WHF[] = {-2.6185,0,0}; - NQ1[] = {1.30925,3.92775,0}; - NQ2[] = {-1.30925,3.92775,0}; - SQ1[] = {1.30925,-3.92775,0}; - SQ2[] = {-1.30925,-3.92775,0}; - EQ1[] = {3.92775,1.30925,0}; - EQ2[] = {3.92775,-1.30925,0}; - WQ1[] = {-3.92775,1.30925,0}; - WQ2[] = {-3.92775,-1.30925,0}; + NWQF[] = {-1.30925,3.92775,0}; + NQF[] = {0,3.92775,0}; + NEQF[] = {1.30925,3.92775,0}; + SWQF[] = {1.30925,-3.92775,0}; + SQF[] = {0,-3.92775,0}; + SEQF[] = {-1.30925,-3.92775,0}; + ENQF[] = {2.6185,1.30925,0}; + EQF[] = {2.6185,0,0}; + ESQF[] = {2.6185,-1.30925,0}; + WNQF[] = {-2.6185,1.30925,0}; + WQF[] = {-2.6185,0,0}; + WSQF[] = {-2.6185,-1.30925,0}; + + NWHF[] = {-1.30925,5.237,0}; + NEHF[] = {1.30925,5.237,0}; + SWHF[] = {-1.30925,-5.237,0}; + SEHF[] = {1.30925,-5.237,0}; + WNHF[] = {-3.92775,1.30925,0}; + WSHF[] = {-3.92775,-1.30925,0}; + ENHF[] = {3.92775,1.30925,0}; + ESHF[] = {3.92775,-1.30925,0}; + }; class WoodHalfFloor_SIM_EPOCH : WoodHalfFloor_EPOCH { - allowedSnapPoints[] = {"NF","SF","EF","WF","NHF","SHF","EHF","WHF"}; + allowedSnapPoints[] = {"C","NF","SF","EF","WF","NQF","SQF","EQF","WQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -299,7 +319,7 @@ class CfgBaseBuilding simulClass = "WoodQuarterFloor_SIM_EPOCH"; staticClass = "WoodQuarterFloor_EPOCH"; GhostPreview = "WoodQuarterFloor_Ghost_EPOCH"; - snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NHF","SHF","EHF","WHF","NQ1","NQ2","SQ1","SQ2","EQ1","EQ2","WQ1","WQ2"}; + snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NQF","SQF","EQF","WQF"}; snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; energyCost = 0.1; // snap points for WoodQuarterFloor_EPOCH @@ -321,22 +341,14 @@ class CfgBaseBuilding SF[] = {0,-3.92775,0}; EF[] = {3.92775,0,0}; WF[] = {-3.92775,0,0}; - NHF[] = {0,3.92775,0}; - SHF[] = {0,-3.92775,0}; - EHF[] = {2.6185,0,0}; - WHF[] = {-2.6185,0,0}; - NQ1[] = {1.30925,3.92775,0}; - NQ2[] = {-1.30925,3.92775,0}; - SQ1[] = {1.30925,-3.92775,0}; - SQ2[] = {-1.30925,-3.92775,0}; - EQ1[] = {3.92775,1.30925,0}; - EQ2[] = {3.92775,-1.30925,0}; - WQ1[] = {-3.92775,1.30925,0}; - WQ2[] = {-3.92775,-1.30925,0}; + NQF[] = {0,2.6185,0}; + SQF[] = {0,-2.6185,0}; + EQF[] = {2.6185,0,0}; + WQF[] = {-2.6185,0,0}; }; class WoodQuarterFloor_SIM_EPOCH : WoodQuarterFloor_EPOCH { - allowedSnapPoints[] = {"NHF","SHF","EHF","WHF","NQ1","NQ2","SQ1","SQ2","EQ1","EQ2","WQ1","WQ2"}; + allowedSnapPoints[] = {"C","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -353,7 +365,7 @@ class CfgBaseBuilding }; class MetalFloor_SIM_EPOCH : MetalFloor_EPOCH { - allowedSnapPoints[] = {"NF","SF","EF","WF","C"}; + allowedSnapPoints[] = {"NF","SF","EF","WF","C"}; allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -369,12 +381,12 @@ class CfgBaseBuilding energyCost = 0.2; }; class MetalHalfFloor_SIM_EPOCH : MetalHalfFloor_EPOCH - { - allowedSnapPoints[] = {"NF","SF","EF","WF","NHF","SHF","EHF","WHF"}; + { + allowedSnapPoints[] = {"C","NF","SF","EF","WF","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; - }; + }; class MetalHalfFloor_Ghost_EPOCH : MetalHalfFloor_SIM_EPOCH {}; class MetalQuarterFloor_EPOCH : WoodQuarterFloor_EPOCH { @@ -386,59 +398,63 @@ class CfgBaseBuilding energyCost = 0.1; }; class MetalQuarterFloor_SIM_EPOCH : MetalQuarterFloor_EPOCH - { - allowedSnapPoints[] = {"NHF","SHF","EHF","WHF","NQ1","NQ2","SQ1","SQ2","EQ1","EQ2","WQ1","WQ2"}; + { + allowedSnapPoints[] = {"C","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; - }; + }; class MetalQuarterFloor_Ghost_EPOCH : MetalQuarterFloor_SIM_EPOCH {}; - - class MetalTower_EPOCH : Default + class CinderFloor_EPOCH : WoodFloor_EPOCH { - removeParts[] = {{"ItemCorrugatedLg",2}}; - upgradeBuilding[] = {{"CinderTower_EPOCH",{{"CinderBlocks",4},{"MortarBucket",4}}}}; - upgradeBuildingPart[] = {{"ItemCorrugatedLg",2}}; - removeBuildingPart[] = {{"ItemCorrugatedLg",1}}; - simulClass = "MetalTower_SIM_EPOCH"; - staticClass = "MetalTower_EPOCH"; - GhostPreview = "MetalTower_Ghost_EPOCH"; - snapPointsPara[] = {"NF2","SF2","EF2","WF2","NF","SF","EF","WF","C","CB"}; - snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; - persistAnimations[] = {"NWall","EWall","SWall","WWall"}; + removeParts[] = {{"CinderBlocks",2},{"MortarBucket",1}}; + simulClass = "CinderFloor_SIM_EPOCH"; + staticClass = "CinderFloor_EPOCH"; + GhostPreview = "CinderFloor_Ghost_EPOCH"; + energyCost = 1; + }; + class CinderFloor_SIM_EPOCH : CinderFloor_EPOCH + { + allowedSnapPoints[] = {"NF","SF","EF","WF","C"}; + allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"}; + upgradeBuilding[] = {}; + removeParts[] = {}; + }; + class CinderFloor_Ghost_EPOCH : CinderFloor_SIM_EPOCH {}; + class CinderHalfFloor_EPOCH : WoodHalfFloor_EPOCH + { + upgradeBuilding[] = {}; + removeParts[] = {{"CinderBlocks",1},{"MortarBucket",1}}; + simulClass = "CinderHalfFloor_SIM_EPOCH"; + staticClass = "CinderHalfFloor_EPOCH"; + GhostPreview = "CinderHalfFloor_Ghost_EPOCH"; energyCost = 0.5; - // snap points for MetalTower_EPOCH - NF2[] = {0,5.237,0}; - SF2[] = {0,-5.237,0}; - EF2[] = {5.237,0,0}; - WF2[] = {-5.237,-0.003,0}; - C[] = {-0.000251044,-0.00293543,6.36635}; - CB[] = {-0.000299305,-0.000390954,3.32569}; - CinN[] = {0.0214193,2.87136,3.05666}; - CinE[] = {2.87868,-0.000390954,3.05666}; - CinS[] = {0.0214193,-2.86826,3.05666}; - CinW[] = {-2.88969,-0.000390954,3.05666}; - N[] = {0.0195083,2.46379,3.32619}; - E[] = {2.47112,-0.000253316,3.32619}; - S[] = {0.0195083,-2.46097,3.32619}; - W[] = {-2.4783,-0.000253316,3.32619}; - NE[] = {2.47112,2.46379,3.32619}; - NW[] = {-2.4783,2.46379,3.32619}; - SE[] = {2.47112,-2.46097,3.32619}; - SW[] = {-2.4783,-2.46097,3.32619}; - NF[] = {0,5.237,3.05694}; - SF[] = {0,-5.237,3.05694}; - EF[] = {5.237,0,3.05694}; - WF[] = {-5.237,0,3.05694}; }; - class MetalTower_SIM_EPOCH : MetalTower_EPOCH + class CinderHalfFloor_SIM_EPOCH : CinderHalfFloor_EPOCH + { + allowedSnapPoints[] = {"C","NF","SF","EF","WF","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; + allowedSnapObjects[] = {"Const_floors_static_F"}; + upgradeBuilding[] = {}; + removeParts[] = {}; + }; + class CinderHalfFloor_Ghost_EPOCH : CinderHalfFloor_SIM_EPOCH {}; + class CinderQuarterFloor_EPOCH : WoodQuarterFloor_EPOCH { - allowedSnapPoints[] = {"NF2","SF2","EF2","WF2","CB"}; - allowedSnapObjects[] = {"MetalTower_EPOCH","Const_floors_static_F","Constructions_foundation_F"}; + upgradeBuilding[] = {}; + removeParts[] = {{"CinderBlocks",1}}; + simulClass = "CinderQuarterFloor_SIM_EPOCH"; + staticClass = "CinderQuarterFloor_EPOCH"; + GhostPreview = "CinderQuarterFloor_Ghost_EPOCH"; + energyCost = 0.25; }; - class MetalTower_Ghost_EPOCH : MetalTower_SIM_EPOCH {}; - - + class CinderQuarterFloor_SIM_EPOCH : CinderQuarterFloor_EPOCH + { + allowedSnapPoints[] = {"C","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; + allowedSnapObjects[] = {"Const_floors_static_F"}; + upgradeBuilding[] = {}; + removeParts[] = {}; + }; + class CinderQuarterFloor_Ghost_EPOCH : CinderQuarterFloor_SIM_EPOCH {}; class CinderWallGarage_EPOCH : Default { removeParts[] = {{"CinderBlocks",4},{"ItemCorrugatedLg",1},{"CircuitParts",1}}; @@ -518,56 +534,6 @@ class CfgBaseBuilding removeParts[] = {}; }; class BarbedWire_Ghost_EPOCH : BarbedWire_SIM_EPOCH {}; - class CinderFloor_EPOCH : WoodFloor_EPOCH - { - removeParts[] = {{"CinderBlocks",2},{"MortarBucket",1}}; - simulClass = "CinderFloor_SIM_EPOCH"; - staticClass = "CinderFloor_EPOCH"; - GhostPreview = "CinderFloor_Ghost_EPOCH"; - energyCost = 1; - }; - class CinderFloor_SIM_EPOCH : CinderFloor_EPOCH - { - allowedSnapPoints[] = {"NF","SF","EF","WF","C"}; - allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"}; - upgradeBuilding[] = {}; - removeParts[] = {}; - }; - class CinderFloor_Ghost_EPOCH : CinderFloor_SIM_EPOCH {}; - class CinderHalfFloor_EPOCH : WoodHalfFloor_EPOCH - { - upgradeBuilding[] = {}; - removeParts[] = {{"CinderBlocks",1},{"MortarBucket",1}}; - simulClass = "CinderHalfFloor_SIM_EPOCH"; - staticClass = "CinderHalfFloor_EPOCH"; - GhostPreview = "CinderHalfFloor_Ghost_EPOCH"; - energyCost = 0.5; - }; - class CinderHalfFloor_SIM_EPOCH : CinderHalfFloor_EPOCH - { - allowedSnapPoints[] = {"NF","SF","EF","WF","NHF","SHF","EHF","WHF"}; - allowedSnapObjects[] = {"Const_floors_static_F"}; - upgradeBuilding[] = {}; - removeParts[] = {}; - }; - class CinderHalfFloor_Ghost_EPOCH : CinderHalfFloor_SIM_EPOCH {}; - class CinderQuarterFloor_EPOCH : WoodQuarterFloor_EPOCH - { - upgradeBuilding[] = {}; - removeParts[] = {{"CinderBlocks",1}}; - simulClass = "CinderQuarterFloor_SIM_EPOCH"; - staticClass = "CinderQuarterFloor_EPOCH"; - GhostPreview = "CinderQuarterFloor_Ghost_EPOCH"; - energyCost = 0.25; - }; - class CinderQuarterFloor_SIM_EPOCH : CinderQuarterFloor_EPOCH - { - allowedSnapPoints[] = {"NHF","SHF","EHF","WHF","NQ1","NQ2","SQ1","SQ2","EQ1","EQ2","WQ1","WQ2"}; - allowedSnapObjects[] = {"Const_floors_static_F"}; - upgradeBuilding[] = {}; - removeParts[] = {}; - }; - class CinderQuarterFloor_Ghost_EPOCH : CinderQuarterFloor_SIM_EPOCH {}; class CinderWallGarage_SIM_EPOCH : CinderWallGarage_EPOCH { @@ -633,50 +599,6 @@ class CfgBaseBuilding E[] = {5.18644,0,0}; W[] = {-5.19304,0,0}; }; - - class CinderTower_EPOCH : Default - { - removeParts[] = {{"CinderBlocks",2},{"MortarBucket",2}}; - upgradeBuildingPart[] = {{"CinderBlocks",2},{"MortarBucket",2}}; - removeBuildingPart[] = {{"CinderBlocks",2}}; - simulClass = "CinderTower_SIM_EPOCH"; - staticClass = "CinderTower_EPOCH"; - GhostPreview = "CinderTower_Ghost_EPOCH"; - snapPointsPara[] = {"NF2","SF2","EF2","WF2","NF","SF","EF","WF","C","CB"}; - snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; - persistAnimations[] = {"NWall","EWall","SWall","WWall"}; - energyCost = 0.4; - // snap points for CinderTower_EPOCH - NF2[] = {0,5.237,0}; - SF2[] = {0,-5.237,0}; - EF2[] = {5.237,0,0}; - WF2[] = {-5.237,-0.003,0}; - C[] = {-0.000251044,-0.00293543,6.36635}; - CB[] = {-0.000299305,-0.000390954,3.32569}; - CinN[] = {0.0214193,2.87136,3.05666}; - CinE[] = {2.87868,-0.000390954,3.05666}; - CinS[] = {0.0214193,-2.86826,3.05666}; - CinW[] = {-2.88969,-0.000390954,3.05666}; - N[] = {0.0195083,2.46379,3.32619}; - E[] = {2.47112,-0.000253316,3.32619}; - S[] = {0.0195083,-2.46097,3.32619}; - W[] = {-2.4783,-0.000253316,3.32619}; - NE[] = {2.47112,2.46379,3.32619}; - NW[] = {-2.4783,2.46379,3.32619}; - SE[] = {2.47112,-2.46097,3.32619}; - SW[] = {-2.4783,-2.46097,3.32619}; - NF[] = {0,5.237,3.05694}; - SF[] = {0,-5.237,3.05694}; - EF[] = {5.237,0,3.05694}; - WF[] = {-5.237,0,3.05694}; - }; - class CinderTower_SIM_EPOCH : CinderTower_EPOCH - { - allowedSnapPoints[] = {"NF2","SF2","EF2","WF2","CB"}; - allowedSnapObjects[] = {"CinderTower_EPOCH","Const_floors_static_F","Constructions_foundation_F"}; - }; - class CinderTower_Ghost_EPOCH : CinderTower_SIM_EPOCH {}; - class WoodLargeWall_EPOCH : Default { upgradeBuilding[] = {{"WoodWall1_EPOCH",{{"ItemPlywoodPack",1}}},{"WoodLargeWallCor_EPOCH",{{"ItemCorrugated",1}}}}; @@ -918,10 +840,28 @@ class CfgBaseBuilding SF[] = {0,-5.237,3.06}; EF[] = {5.237,0,3.06}; WF[] = {-5.237,0,3.06}; + NWQF[] = {-1.30925,3.92775,3.06}; NQF[] = {0,3.92775,3.06}; + NEQF[] = {1.30925,3.92775,3.06}; + SWQF[] = {-1.30925,-3.92775,3.06}; SQF[] = {0,-3.92775,3.06}; + SEQF[] = {1.30925,-3.92775,3.06}; + ENQF[] = {3.92775,1.30925,3.06}; EQF[] = {3.92775,0,3.06}; + ESQF[] = {3.92775,-1.30925,3.06}; + WNQF[] = {-3.92775,1.30925,3.06}; WQF[] = {-3.92775,0,3.06}; + WSQF[] = {-3.92775,-1.30925,3.06}; + + NWHF[] = {-1.30925,5.237,3.06}; + NEHF[] = {1.30925,5.237,3.06}; + SWHF[] = {-1.30925,-5.237,3.06}; + SEHF[] = {1.30925,-5.237,3.06}; + WNHF[] = {-5.237,1.30925,3.06}; + WSHF[] = {-5.237,-1.30925,3.06}; + ENHF[] = {5.237,1.30925,3.06}; + ESHF[] = {5.237,-1.30925,3.06}; + }; class WoodStairs_SIM_EPOCH : WoodStairs_EPOCH { @@ -937,7 +877,7 @@ class CfgBaseBuilding simulClass = "WoodStairs2_SIM_EPOCH"; staticClass = "WoodStairs2_EPOCH"; GhostPreview = "WoodStairs2_EPOCH"; - snapPointsPara[] = {"NF2","SF2","EF2","WF2","NF","SF","EF","WF","C","CB","NQF","SQF","EQF","WQF"}; + snapPointsPara[] = {"NF2","SF2","EF2","WF2","NF","SF","EF","WF","C","CB","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; energyCost = 0.3; // snap points for WoodStairs_EPOCH @@ -963,10 +903,28 @@ class CfgBaseBuilding SF[] = {0,-5.237,3.06}; EF[] = {5.237,0,3.06}; WF[] = {-5.237,0,3.06}; + NWQF[] = {-1.30925,3.92775,3.06}; NQF[] = {0,3.92775,3.06}; + NEQF[] = {1.30925,3.92775,3.06}; + SWQF[] = {-1.30925,-3.92775,3.06}; SQF[] = {0,-3.92775,3.06}; + SEQF[] = {1.30925,-3.92775,3.06}; + ENQF[] = {3.92775,1.30925,3.06}; EQF[] = {3.92775,0,3.06}; + ESQF[] = {3.92775,-1.30925,3.06}; + WNQF[] = {-3.92775,1.30925,3.06}; WQF[] = {-3.92775,0,3.06}; + WSQF[] = {-3.92775,-1.30925,3.06}; + + NWHF[] = {-1.30925,5.237,3.06}; + NEHF[] = {1.30925,5.237,3.06}; + SWHF[] = {-1.30925,-5.237,3.06}; + SEHF[] = {1.30925,-5.237,3.06}; + WNHF[] = {-5.237,1.30925,3.06}; + WSHF[] = {-5.237,-1.30925,3.06}; + ENHF[] = {5.237,1.30925,3.06}; + ESHF[] = {5.237,-1.30925,3.06}; + }; class WoodStairs2_SIM_EPOCH : WoodStairs2_EPOCH { @@ -1018,6 +976,40 @@ class CfgBaseBuilding energyCost = 0.3; }; class WoodTower_Ghost_EPOCH : WoodTower_SIM_EPOCH {}; + class MetalTower_EPOCH : WoodTower_EPOCH + { + removeParts[] = {{"ItemCorrugatedLg",2}}; + upgradeBuilding[] = {{"CinderTower_EPOCH",{{"CinderBlocks",4},{"MortarBucket",4}}}}; + upgradeBuildingPart[] = {{"ItemCorrugatedLg",2}}; + removeBuildingPart[] = {{"ItemCorrugatedLg",1}}; + simulClass = "MetalTower_SIM_EPOCH"; + staticClass = "MetalTower_EPOCH"; + GhostPreview = "MetalTower_Ghost_EPOCH"; + energyCost = 0.4; + }; + class MetalTower_SIM_EPOCH : MetalTower_EPOCH + { + allowedSnapPoints[] = {"NF2","SF2","EF2","WF2","CB"}; + allowedSnapObjects[] = {"MetalTower_EPOCH","Const_floors_static_F","Constructions_foundation_F"}; + }; + class MetalTower_Ghost_EPOCH : MetalTower_SIM_EPOCH {}; + class CinderTower_EPOCH : WoodTower_EPOCH + { + removeParts[] = {{"CinderBlocks",2},{"MortarBucket",2}}; + upgradeBuildingPart[] = {{"CinderBlocks",2},{"MortarBucket",2}}; + removeBuildingPart[] = {{"CinderBlocks",2}}; + simulClass = "CinderTower_SIM_EPOCH"; + staticClass = "CinderTower_EPOCH"; + GhostPreview = "CinderTower_Ghost_EPOCH"; + energyCost = 0.5; + }; + class CinderTower_SIM_EPOCH : CinderTower_EPOCH + { + allowedSnapPoints[] = {"NF2","SF2","EF2","WF2","CB"}; + allowedSnapObjects[] = {"CinderTower_EPOCH","Const_floors_static_F","Constructions_foundation_F"}; + }; + class CinderTower_Ghost_EPOCH : CinderTower_SIM_EPOCH {}; + class WoodLadder_EPOCH : Default { removeParts[] = {{"PartPlankPack",2}}; From 464408b50ee62c52f8d53abc524a5f1b27d8469c Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 13 Jan 2018 00:17:16 +0100 Subject: [PATCH 56/94] Draft for Changelog --- changelog.md | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/changelog.md b/changelog.md index 00f04e45..603745f3 100644 --- a/changelog.md +++ b/changelog.md @@ -3,11 +3,36 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a ## [1.1.0.0] - Unreleased ### Added -Plant Spawner: vehicle object for sunflower. @Helion4 +- Plant Spawner: vehicle object for sunflower. @Helion4 +- Examples for Vehicle upgrades for Server Admins into CfgVehicleUpgrades.hpp @He-Man +- Make Lighter refillable at Fuel-Sources (Gasstations / Vehicles) +- Make Trader more configurable in epochconfig.hpp @He-Man +- Added Examples for Batchfiles to control Server Restarts @DirtySanchez +- default pops for "center" marker +- More map supports +- Lighter is needed to imflame fires @DirtySanchez +- FireExtinguisher is needed to "put our fire" on Burn Barrel @DirtySanchez +- Rope is needed for SlingLoad (get back on release) @DirtySanchez +- R3F compatibility for SlingLoad @DirtySanchez +- Hints while using Vehicle Repair (MultiGun) @He-Man +- Config to completely disabale Simulation for BaseParts (if not needed) @He-Man +- Made Radiation configureable by cfgepochclient.hpp @Raymix +- Hints for lock / unlock Vehicles / Storages ### Fixed -False BE kicks since Arma 3 1.80 update. +- False BE kicks since Arma 3 1.80 update. +- Nightlight now also follow players inside Vehicles @He-Man +- Fixed fault disabled DynamicDebris @morgoth +- Without Advanced Vehicle Repair, Vehicle upgrade was not available @He-Man +- Base Storages could be deleted if near Loot containers were auto-deleted @He-Man +- Some Tarp Loot was spawned under the Floor @He-Man +- Reworked wall check by getting out of Vehicles @He-Man ### Changed -RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. +- RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. +- SnapPoints for Building objects (especially half / quarter Floors) @He-Man +- Some performance tweaks +- Moved default rcon Port to 2307 (as 2306 is now used as default client BE-Port) +- Inventory will be opened automatically, if "you found something" +- EPOCH Events reworked (Markers will change if players near / event looted) @DirtySanchez ## [1.0.0.1077] - 2017-11-05 ### Added From 3bbf2de4f5b22f1d058d7dc61acbe11ee46bb5ed Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 13 Jan 2018 00:31:28 +0100 Subject: [PATCH 57/94] Changelog --- changelog.md | 1 - 1 file changed, 1 deletion(-) diff --git a/changelog.md b/changelog.md index 603745f3..aaf9b2e6 100644 --- a/changelog.md +++ b/changelog.md @@ -30,7 +30,6 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. - SnapPoints for Building objects (especially half / quarter Floors) @He-Man - Some performance tweaks -- Moved default rcon Port to 2307 (as 2306 is now used as default client BE-Port) - Inventory will be opened automatically, if "you found something" - EPOCH Events reworked (Markers will change if players near / event looted) @DirtySanchez From 2ccb006697c2c87d4faa7183130ef266b8f31e8a Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 13 Jan 2018 15:12:54 +0100 Subject: [PATCH 58/94] Handle not full mags in Trader --- .../traders/EPOCH_NPCTraderMenuFilter.sqf | 175 +++++++------- .../compile/traders/EPOCH_NpcTrade_return.sqf | 18 +- .../compile/traders/EPOCH_npcTraderAdd.sqf | 212 +++++++++++------ .../compile/traders/EPOCH_npcTraderAdd2.sqf | 220 ++++++++++++------ .../compile/traders/EPOCH_npcTraderAdd3.sqf | 83 ++++--- .../traders/EPOCH_startNPCTraderMenu.sqf | 41 +++- .../compile/traders/EPOCH_startNpcTrade.sqf | 147 ++++++------ .../compile/traders/EPOCH_tradeFilter.sqf | 67 ------ .../Configs/CfgClientFunctions.hpp | 1 - .../EPOCH_server_makeNPCTrade.sqf | 146 +++++------- 10 files changed, 618 insertions(+), 492 deletions(-) delete mode 100644 Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf diff --git a/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf b/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf index 5d1f36aa..0b21ac5a 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf @@ -1,32 +1,30 @@ /* - Author: Aaron Clark - EpochMod.com + Author: He-Man - Ignatz-Gaming - Contributors: He-Man + Contributors: Raimonds Virtoss Description: - NPC trade filter code + Filter Items in Trader Dialog Licence: Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike Github: - https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/traders/EPOCH_NPCTraderMenuFilter.sqf - - Example: - onLBSelChanged = "_this call EPOCH_NPCTraderMenuFilter"; - - Parameter(s): - _this select 0: CONTROL - _this select 1: NUMBER - Index ID - - Returns: - NOTHING + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_NPCTraderFilter.sqf */ + disableSerialization; -//[[[cog import generate_private_arrays ]]] -private ["_FilterArray","_MainCategorie","_MainCategoriearray","_SubCategorieItems","_aiItems","_config","_control","_display","_id","_isPlayerFilter","_item","_itemCount","_itemOfferCount","_items","_name","_offerArray","_picture","_playeritems","_qty","_qtys","_sizeOut","_slot","_sortarray","_subcategories","_type","_vehicles"]; -//[[[end]]] +private [ "_PlayerFilerDropDown","_PlayerItemsBox","_PlayerItemsOutBox","_TraderItemsBox","_TraderItemsOutBox","_config","_MainCategoriearray","_FilterArray","_MainCategorie","_subcategories","_SubCategorieItems", + "_slot","_isPlayerFilter","_item","_rounds","_maxrnd","_tooltip","_qty","_id","_vehicles","_VehOfferArray","_sizeOut","_type","_itemCount","_itemOfferCount","_name","_picture","_items","_qtys","_sortarray" +]; params ["_control","_index"]; + +_PlayerFilerDropDown = 42100; +_PlayerItemsBox = 41500; +_PlayerItemsOutBox = 41501; +_TraderItemsBox = 41503; +_TraderItemsOutBox = 41502; + _config = 'CfgItemSort' call EPOCH_returnConfig; _MainCategoriearray = getarray (_config >> "MainCategories" >> "Classes"); _FilterArray = []; @@ -46,96 +44,109 @@ if (_index != 0) then { }; if !(isNull EPOCH_lastNPCtradeTarget) then { _slot = EPOCH_lastNPCtradeTarget getVariable["AI_SLOT", -1]; - _isPlayerFilter = (ctrlIDC _control == 42100); if (_slot != -1) then { + _isPlayerFilter = (ctrlIDC _control == _PlayerFilerDropDown); if (_isPlayerFilter) then { - _sizeOut = lbSize 41501; - _offerArray = []; - if (_sizeOut > 0) then { - for "_i" from 0 to (_sizeOut - 1) do { - _item = lbData [41501, _i]; - _offerArray pushBack _item; - }; - }; - lbClear 41500; - _playeritems = ((items player)+(magazines player)); - if (primaryWeapon player != "") then { - _playeritems pushback primaryWeapon player; - }; - if (count backpackItems player == 0 && count backpackmagazines player == 0 && backpack player != "") then { - _playeritems pushback backpack player; - }; - + lbClear _PlayerItemsBox; { _item = _x; + _rounds = 1; + if (_item isequaltype []) then { + _item = _x select 0; + _rounds = _x select 1; + }; if !(_item isequalto "") then { + _maxrnd = 1; + _tooltip = ""; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _qty = _rounds/_maxrnd; + if (_qty < 1) then { + _tooltip = format ["%1 rounds left in Magazine",_rounds]; + }; if (_index == 0 || (tolower _item) in _FilterArray) then { - _itemCount = {_x == _item} count ((items player)+(magazines player)+[backpack player]+[primaryweapon player]); - _itemOfferCount = {_x == _item} count _offerArray; - if (_itemCount > _itemOfferCount) then { - _offerArray pushBack _item; - _id = lbAdd [41500, _x call EPOCH_itemDisplayName]; - lbSetData [41500, _id, _x]; - lbSetPicture [41500, _id, _x call EPOCH_itemPicture]; + _id = lbAdd [_PlayerItemsBox, _item call EPOCH_itemDisplayName]; + lbSetData [_PlayerItemsBox, _id, _item]; + lbSetValue [_PlayerItemsBox, _id, _rounds]; + lbSetPicture [_PlayerItemsBox, _id, _item call EPOCH_itemPicture]; + if !(_tooltip isequalto "") then { + lbSetTooltip [_PlayerItemsBox, _id, _tooltip]; + lbSetColor [_PlayerItemsBox,_id,[1,(_rounds/_maxrnd),0,1]]; }; }; }; - } forEach _playeritems; + } forEach EPOCH_NpcTradePlayerItems; _vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 30]; - { - if (local _x) then { - _type = typeOf _x; - if (_index == 0 || (tolower _type) in _FilterArray) then { - _itemCount = { typeOf _x == _type } count _vehicles; - _itemOfferCount = { _x == _type } count _offerArray; - if (_itemCount > _itemOfferCount) then { - _offerArray pushBack _type; - _config = configFile >> "CfgVehicles" >> _type; - _name = getText(_config >> "displayName"); - _picture = getText(_config >> "picture"); - _id = lbAdd[41500, _name]; - lbSetData[41500, _id, _type]; - lbSetPicture[41500, _id, _picture]; + if !(_vehicles isequalto []) then { + _VehOfferArray = []; + _sizeOut = lbSize _PlayerItemsOutBox; + if (_sizeOut > 0) then { + for "_i" from 0 to (_sizeOut - 1) do { + _item = lbData [_PlayerItemsOutBox, _i]; + if (_item iskindof "Landvehicle" || _item iskindof "AIR" || _item iskindof "SHIP" || _item iskindof "TANK") then { + _VehOfferArray pushBack _item; }; }; }; - } forEach _vehicles; - _display = (findDisplay -8); - _control = (_display displayCtrl 41500); - lbsort _control; + { + if (local _x) then { + _type = typeOf _x; + if (_index == 0 || (tolower _type) in _FilterArray) then { + _itemCount = { typeOf _x == _type } count _vehicles; + _itemOfferCount = { _x == _type } count _VehOfferArray; + if (_itemCount > _itemOfferCount) then { + _config = configFile >> "CfgVehicles" >> _type; + _name = getText(_config >> "displayName"); + _picture = getText(_config >> "picture"); + _id = lbAdd[_PlayerItemsBox, _name]; + lbSetData[_PlayerItemsBox, _id, _type]; + lbSetValue [_PlayerItemsBox, _id, 1]; + lbSetPicture[_PlayerItemsBox, _id, _picture]; + }; + }; + }; + } forEach _vehicles; + }; + lbsort ((findDisplay -8) displayCtrl _PlayerItemsBox); } else { - lbClear 41503; - _sizeOut = lbSize 41502; - _offerArray = []; - if (_sizeOut > 0) then { - for "_i" from 0 to (_sizeOut - 1) do { - _id = lbData [41502, _i]; - _offerArray pushBack _id; - }; - }; - _aiItems = EPOCH_lastNPCtradeTarget getVariable["AI_ITEMS", []]; - if ((count _aiItems) == 2) then { - _items = _aiItems select 0; - _qtys = _aiItems select 1; + lbClear _TraderItemsBox; + if ((count EPOCH_NpcTradeTraderItems) == 2) then { + _items = EPOCH_NpcTradeTraderItems select 0; + _qtys = EPOCH_NpcTradeTraderItems select 1; _sortarray = []; { _sortarray pushback [_x call EPOCH_itemDisplayName,_x,_qtys select _foreachindex]; } foreach _items; _sortarray sort true; - { - _item = _x select 1; - + _x params ["_displayname","_item","_rounds"]; if !(_item isequalto "") then { if (_index == 0 || (tolower _item) in _FilterArray) then { - _qty = ((_x select 2) - ({_x == _item} count _offerArray)); + _maxrnd = 1; + _tooltip = ""; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _qty = (_rounds/_maxrnd); + if (_qty >= 1) then { + _qty = floor _qty; + } + else { + _qty = ceil _qty; + _tooltip = format ["%1 rounds left in Magazine",_rounds]; + }; if (_qty > 0) then { - _id = lnbAddRow[41503, ["", str(_qty),_x select 0]]; - lnbSetData [41503, [_id,0], _item]; - lnbSetValue [41503, [_id,0], _qty]; - lnbSetPicture [41503, [_id,0], _item call EPOCH_itemPicture]; + _id = lnbAddRow [_TraderItemsBox, ["", str(_qty),_displayname]]; + lnbSetData [_TraderItemsBox, [_id,0], _item]; + lnbSetValue [_TraderItemsBox, [_id,0], _rounds]; + lnbSetPicture [_TraderItemsBox, [_id,0], _item call EPOCH_itemPicture]; + if !(_tooltip isequalto "") then { + lbSetTooltip [_TraderItemsBox, _id*3, _tooltip]; + lnbSetColor [_TraderItemsBox,[_id,2],[1,(_rounds/_maxrnd),0,1]]; + }; }; }; }; diff --git a/Sources/epoch_code/compile/traders/EPOCH_NpcTrade_return.sqf b/Sources/epoch_code/compile/traders/EPOCH_NpcTrade_return.sqf index 31d2664f..7d27fa97 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_NpcTrade_return.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_NpcTrade_return.sqf @@ -1,7 +1,7 @@ /* Author: Aaron Clark - EpochMod.com - Contributors: He-Man + Contributors: He-Man - Ignatz-Gaming Description: NPC trade code @@ -22,7 +22,7 @@ NOTHING */ //[[[cog import generate_private_arrays ]]] -private ["_addWeaponToHands","_arrayIn","_arrayOut","_config","_current_crypto","_errorMsg","_item","_itemTax","_itemWorth","_sizeOut","_tax","_type","_vehSlot","_vehicle","_vehicles"]; +private ["_addWeaponToHands","_item","_type"]; //[[[end]]] params [["_returnIn",[]],["_returnOut",[]],["_message",""]]; @@ -31,8 +31,9 @@ if (isNil "EPOCH_TRADE_STARTED") exitWith{}; if !(_returnOut isEqualTo[]) then { // add purchased items { - if ([_x, "CfgWeapons"] call EPOCH_fnc_isAny) then { - _type = getNumber(configfile >> "CfgWeapons" >> (_x) >> "type"); + _x params ["_item","_count"]; + if ([_item, "CfgWeapons"] call EPOCH_fnc_isAny) then { + _type = getNumber(configfile >> "CfgWeapons" >> _item >> "type"); _addWeaponToHands = false; switch (_type) do { case 1: { @@ -52,15 +53,15 @@ if !(_returnOut isEqualTo[]) then { }; }; if (_addWeaponToHands) then { - player addWeapon _x; + player addWeapon _item; } else { - _x call EPOCH_fnc_addItemOverflow; + _item call EPOCH_fnc_addItemOverflow; }; } else { - if ([_x, "CfgMagazines"] call EPOCH_fnc_isAny) then { - _x call EPOCH_fnc_addItemOverflow; + if ([_item, "CfgMagazines"] call EPOCH_fnc_isAny) then { + [_item,_count] call EPOCH_fnc_addMagazineOverflow; }; }; } forEach _returnOut; @@ -71,3 +72,4 @@ if !(_message isequalto "") then { }; EPOCH_TRADE_STARTED = nil; + diff --git a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf index 19386532..79254c54 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf @@ -1,39 +1,91 @@ -//[[[cog import generate_private_arrays ]]] -private ["_errormsg","_aiItems","_allowAdd","_array","_config","_cryptoCount","_index","_item","_itemClasses","_itemQtys","_itemTax","_itemWorth","_limit","_qtyIndex","_sizeOut","_slot","_stockLimit","_tax","_uiItem","_worth"]; -//[[[end]]] +/* + Author: He-Man - Ignatz-Gaming + + Contributors: Raimonds Virtoss + + Description: + Move Items in Tradermenu between Playerinventory <-> PlayerOut window + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf +*/ + +private [ "_PlayerFilerDropDown","_PlayerItemsBox","_PlayerItemsOutBox","_TraderItemsOutBox","_CryptoInCtrl","_CryptoOutCtrl","_allowAdd","_uiItem","_rounds","_itemIcon","_itemColor","_errormsg","_stockLimit","_config", + "_itemClasses","_itemQtys","_qtyIndex","_limit","_sizeOut","_item","_vehicle","_itemName","_index","_maxrnd","_ItemIndex","_cryptoCount","_worth","_itemTax","_tax" +]; params ["_control","_selected"]; +_selected params ["_CurControl","_id"]; + +_PlayerFilerDropDown = 42100; +_PlayerItemsBox = 41500; +_PlayerItemsOutBox = 41501; +_TraderItemsOutBox = 41502; +_CryptoInCtrl = 41004; +_CryptoOutCtrl = 41005; if !(isNull EPOCH_lastNPCtradeTarget) then { - _allowAdd = true; + _uiItem = _CurControl lbData _id; + _rounds = _CurControl lbValue _id; + _itemIcon = _CurControl lbPicture _id; + _itemColor = _CurControl lbColor _id; + _errormsg = ""; _stockLimit = false; - _uiItem = (_selected select 0) lbData (_selected select 1); - _errormsg = "Limit one per trade"; _config = 'CfgPricing' call EPOCH_returnConfig; - if (isClass(_config >> _uiItem)) then{ - - if !(_control in[41500, 41503]) then { - - // limit adding more if item is over stocked - if (_control == 41501) then { - _slot = EPOCH_lastNPCtradeTarget getVariable["AI_SLOT", -1]; - _aiItems = EPOCH_lastNPCtradeTarget getVariable["AI_ITEMS", [[], []] ]; - _itemClasses = _aiItems select 0; - _itemQtys = _aiItems select 1; - - // find item and get current qty - _qtyIndex = _itemClasses find _uiItem; - if (_qtyIndex != -1) then { - _limit = ["CfgTraderLimits", _uiItem, 100] call EPOCH_fnc_returnConfigEntryV2; - if (_itemQtys select _qtyIndex >= _limit) then{ - _stockLimit = true; - _allowAdd = false; + if (isClass (_config >> _uiItem)) then { + if (_control == _PlayerItemsOutBox) then { + _itemClasses = EPOCH_NpcTradeTraderItems select 0; + _itemQtys = EPOCH_NpcTradeTraderItems select 1; + _qtyIndex = _itemClasses find _uiItem; + if (_qtyIndex != -1) then { + _itemQty = _itemQtys select _qtyIndex; + _maxrnd = 1; + if ([_uiItem,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _uiItem >> "count"); + }; + _itemQty = _itemQty / _maxrnd; + _sizeIn = lbSize _PlayerItemsOutBox; + if (_sizeIn > 0) then { + for "_i" from 0 to (_sizeIn - 1) do { + _InItem = lbData [_PlayerItemsOutBox, _i]; + if ((lbData [_PlayerItemsOutBox, _i]) == _uiItem) then { + _itemQty = _itemQty + ((lbValue [_PlayerItemsOutBox, _i])/_maxrnd); + }; }; }; + _limit = ["CfgTraderLimits", _uiItem, 100] call EPOCH_fnc_returnConfigEntryV2; + if (_itemQty >= _limit) then{ + _stockLimit = true; + _allowAdd = false; + }; }; - if (_uiItem isKindOf "Air" || _uiItem isKindOf "Ship" || _uiItem isKindOf "LandVehicle" || _uiItem isKindOf "Tank") then { + _sizeOut = lbSize _PlayerItemsOutBox; + if (_sizeOut > 0) then { + for "_i" from 0 to(_sizeOut - 1) do { + _item = lbData [_PlayerItemsOutBox, _i]; + if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ + _allowAdd = false; + _errormsg = "Limit one per trade"; + }; + }; + }; + if (!_allowAdd) exitwith {}; + _sizeOut = lbSize _TraderItemsOutBox; + if (_sizeOut > 0) then { + for "_i" from 0 to(_sizeOut - 1) do { + _item = lbData[_TraderItemsOutBox, _i]; + if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ + _allowAdd = false; + _errormsg = "Limit one per trade"; + }; + }; + }; + if (!_allowAdd) exitwith {}; if (["CfgEpochClient", "DisallowSellOnDamage", false] call EPOCH_fnc_returnConfigEntryV2) then { { _vehicle = _x; @@ -49,73 +101,87 @@ if !(isNull EPOCH_lastNPCtradeTarget) then { } foreach ((getAllHitPointsDamage _vehicle) select 0); }; if (!_allowAdd) exitwith {}; - } foreach (EPOCH_lastNPCtradeTarget nearEntities[[_uiItem], 30]); + } foreach (EPOCH_lastNPCtradeTarget nearEntities [[_uiItem], 30]); }; - - // check if a vehicle is already on the list - _sizeOut = lbSize 41501; - if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41501, _i]; - if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ - _allowAdd = false; - }; - }; - }; - _sizeOut = lbSize 41502; - if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41502, _i]; - if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ - _allowAdd = false; - }; - }; - }; - // disallow adding item to list of already one }; }; if (_allowAdd) then { - _index = lbAdd[_control, ((_selected select 0) lbText(_selected select 1))]; - lbSetData[_control, _index, _uiItem]; - - lbSetPicture[_control, _index, ((_selected select 0) lbPicture(_selected select 1))]; - (_selected select 0) lbDelete(_selected select 1); - + _itemName = _CurControl lbText _id; + _index = lbAdd [_control, _itemName]; + lbSetData [_control, _index, _uiItem]; + lbSetValue [_control,_index, _rounds]; + lbSetPicture [_control, _index, _itemIcon]; + lbSetColor [_control,_index,_itemColor]; + if (_control == _PlayerItemsBox && !(_uiItem iskindof "Landvehicle" || _uiItem iskindof "SHIP" || _uiItem iskindof "AIR" || _uiItem iskindof "TANK")) then { + EPOCH_NpcTradePlayerItems pushback [_uiItem,_rounds]; + } + else { + if ([_uiItem,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _uiItem >> "count"); + if !((_rounds/_maxrnd) >= 1) then { + _tooltip = format ["%1 rounds left in Magazine",_rounds]; + lbSetTooltip [_control,_index,_tooltip]; + }; + }; + _ItemIndex = EPOCH_NpcTradePlayerItems find [_uiItem,_rounds]; + if (_ItemIndex < 0) then { + _ItemIndex = EPOCH_NpcTradePlayerItems find _uiItem; + }; + if (_ItemIndex > -1) then { + EPOCH_NpcTradePlayerItems deleteat _ItemIndex; + }; + }; + _CurControl lbDelete _id; _cryptoCount = 0; - _sizeOut = lbSize 41501; - //_array = []; + _sizeOut = lbSize _PlayerItemsOutBox; if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41501, _i]; - //_array pushBack _item; - _worth = getNumber(_config >> _item >> "price"); + for "_i" from 0 to (_sizeOut - 1) do { + _item = lbData [_PlayerItemsOutBox, _i]; + _rounds = lbValue [_PlayerItemsOutBox, _i]; + _worth = getNumber (_config >> _item >> "price"); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _worth = round (_worth*(_rounds/_maxrnd)); _cryptoCount = _cryptoCount + _worth; }; }; - ctrlSetText[41004, (format["%1 Krypto", _cryptoCount])]; - + ctrlSetText [_CryptoInCtrl, (format["%1 Krypto", _cryptoCount])]; _cryptoCount = 0; - _sizeOut = lbSize 41502; + _sizeOut = lbSize _TraderItemsOutBox; if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41502, _i]; - _itemWorth = getNumber(_config >> _item >> "price"); - _itemTax = getNumber(_config >> _item >> "tax"); - _tax = _itemWorth * (EPOCH_taxRate + _itemTax); - _itemWorth = ceil(_itemWorth + _tax); - _cryptoCount = _cryptoCount + _itemWorth; + for "_i" from 0 to (_sizeOut - 1) do { + _item = lbData [_TraderItemsOutBox, _i]; + _rounds = lbValue [_TraderItemsOutBox, _i]; + _worth = getNumber (_config >> _item >> "price"); + _itemTax = getNumber (_config >> _item >> "tax"); + _tax = _worth * (EPOCH_taxRate + _itemTax); + _worth = ceil(_worth + _tax); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _worth = round (_worth*(_rounds/_maxrnd)); + _cryptoCount = _cryptoCount + _worth; }; }; - ctrlSetText[41005, (format["%1 Krypto", _cryptoCount])]; - } else { + ctrlSetText [_CryptoOutCtrl, (format["%1 Krypto", _cryptoCount])]; + if (_control == _PlayerItemsBox) then { + lbSetCurSel [_PlayerFilerDropDown, 0]; + }; + } + else { if (_stockLimit) then{ ["Trader has the maximum amount of this item", 5] call Epoch_message; - } else { + } + else { [_errormsg, 5] call Epoch_message; }; }; }; -} else { +} +else { closeDialog 0; }; diff --git a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd2.sqf b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd2.sqf index 114b4d04..f22a2d1a 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd2.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd2.sqf @@ -1,88 +1,156 @@ -//[[[cog import generate_private_arrays ]]] -private ["_allowAdd","_array","_config","_cryptoCount","_index","_item","_itemIcon","_itemName","_itemTax","_itemWorth","_qty","_sizeOut","_tax","_uiItem","_uiQty","_worth"]; -//[[[end]]] +/* + Author: He-Man - Ignatz-Gaming + + Contributors: Raimonds Virtoss + + Description: + Move Items in Tradermenu from Traderinventory to TraderOut window + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd2.sqf +*/ + +private [ "_PlayerItemsOutBox","_TraderItemsBox","_TraderItemsOutBox","_CryptoInCtrl","_CryptoOutCtrl","_allowAdd","_uiItem","_rounds","_itemIcon","_itemName","_itemColor","_errormsg","_soldrounds","_tooltip","_config", + "_ItemIndex","_sizeOut","_item","_maxrnd","_uiQty","_index","_cryptoCount","_worth","_itemTax","_tax" +]; params ["_control","_selected"]; +_selected params ["_CurControl","_id"]; -_allowAdd = true; +_PlayerItemsOutBox = 41501; +_TraderItemsBox = 41503; +_TraderItemsOutBox = 41502; +_CryptoInCtrl = 41004; +_CryptoOutCtrl = 41005; -_uiItem = (_selected select 0) lnbData[(_selected select 1), 0]; -_config = 'CfgPricing' call EPOCH_returnConfig; -if (isClass (_config >> _uiItem)) then{ - if (_uiItem isKindOf "Air" || _uiItem isKindOf "Ship" || _uiItem isKindOf "LandVehicle" || _uiItem isKindOf "Tank") then { - - // check if a vehicle is already on the list - _sizeOut = lbSize 41501; - //_array = []; - if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41501, _i]; - //_array pushBack _item; - if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ - _allowAdd = false; +if !(isNull EPOCH_lastNPCtradeTarget) then { + _allowAdd = true; + _uiItem = _CurControl lnbData [_id, 0]; + _rounds = _CurControl lnbValue [_id, 0]; + _itemIcon = _CurControl lnbPicture [_id, 0]; + _itemName = _CurControl lnbText [_id, 2]; + _itemColor = _CurControl lnbColor [_id, 2]; + _errormsg = ""; + _soldrounds = 0; + _tooltip = ""; + + + _config = 'CfgPricing' call EPOCH_returnConfig; + if (isClass (_config >> _uiItem)) then{ + _ItemIndex = (EPOCH_NpcTradeTraderItems select 0) find _uiItem; + if (_ItemIndex > -1) then { + if (_uiItem isKindOf "Air" || _uiItem isKindOf "Ship" || _uiItem isKindOf "LandVehicle" || _uiItem isKindOf "Tank") then { + _sizeOut = lbSize _PlayerItemsOutBox; + if (_sizeOut > 0) then { + for "_i" from 0 to(_sizeOut - 1) do { + _item = lbData [_PlayerItemsOutBox, _i]; + if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ + _allowAdd = false; + _errormsg = "Limit one per trade"; + }; + }; + }; + if (!_allowAdd) exitwith {}; + _sizeOut = lbSize _TraderItemsOutBox; + if (_sizeOut > 0) then { + for "_i" from 0 to(_sizeOut - 1) do { + _item = lbData [_TraderItemsOutBox, _i]; + if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ + _allowAdd = false; + _errormsg = "Limit one per trade"; + }; + }; }; }; - }; - _sizeOut = lbSize 41502; - //_array = []; - if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41502, _i]; - if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") exitWith{ - _allowAdd = false; + if (_allowAdd) then { + _maxrnd = 1; + if ([_uiItem,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _uiItem >> "count"); }; + if ((_rounds/_maxrnd) >= 1) then { + _soldrounds = _maxrnd; + } + else { + _soldrounds = _rounds; + }; + _rounds = _rounds - _soldrounds; + if (_rounds < 1) then { + _CurControl lnbDeleteRow _id; + } + else { + _uiQty = _rounds /_maxrnd; + if (_uiQty >= 1) then { + _uiQty = floor _uiQty; + } + else { + _uiQty = ceil _uiQty; + _tooltip = format ["%1 rounds left in Magazine",_rounds]; + }; + lnbSetText [_TraderItemsBox, [_id, 1], str (_uiQty)]; + lnbSetValue [_TraderItemsBox, [_id, 0], _rounds]; + if !(_tooltip isequalto "") then { + lbSetTooltip [_TraderItemsBox, _id*3, _tooltip]; + lnbSetColor [_TraderItemsBox,[_id,2],[1,(_rounds/_maxrnd),0,1]]; + }; + }; + if (_soldrounds > 0) then { + _index = lbAdd [_control, _itemName]; + lbSetData [_control, _index, _uiItem]; + lbSetValue [_control,_index, _soldrounds]; + lbSetPicture [_control, _index, _itemIcon]; + lbSetColor [_control,_index,_itemColor]; + if ([_uiItem,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _uiItem >> "count"); + if !((_soldrounds/_maxrnd) >= 1) then { + _tooltip = format ["%1 rounds left in Magazine",_soldrounds]; + lbSetTooltip [_control,_index,_tooltip]; + }; + }; + }; + (EPOCH_NpcTradeTraderItems select 1) set [_ItemIndex,_rounds]; + _cryptoCount = 0; + _sizeOut = lbSize _PlayerItemsOutBox; + if (_sizeOut > 0) then { + for "_i" from 0 to (_sizeOut - 1) do { + _item = lbData [_PlayerItemsOutBox, _i]; + _rounds = lbValue [_PlayerItemsOutBox, _i]; + _worth = getNumber (_config >> _item >> "price"); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _worth = round (_worth*(_rounds/_maxrnd)); + _cryptoCount = _cryptoCount + _worth; + }; + }; + ctrlSetText [_CryptoInCtrl, (format["%1 Krypto", _cryptoCount])]; + _cryptoCount = 0; + _sizeOut = lbSize _TraderItemsOutBox; + if (_sizeOut > 0) then { + for "_i" from 0 to (_sizeOut - 1) do { + _item = lbData [_TraderItemsOutBox, _i]; + _rounds = lbValue [_TraderItemsOutBox, _i]; + _worth = getNumber (_config >> _item >> "price"); + _itemTax = getNumber (_config >> _item >> "tax"); + _tax = _worth * (EPOCH_taxRate + _itemTax); + _worth = ceil(_worth + _tax); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _worth = round (_worth*(_rounds/_maxrnd)); + _cryptoCount = _cryptoCount + _worth; + }; + }; + ctrlSetText [_CryptoOutCtrl, (format["%1 Krypto", _cryptoCount])]; + } + else { + ["Limit one per trade", 5] call Epoch_message; }; }; - // disallow adding item to list of already one - - - }; - - if (_allowAdd) then { - _itemName = (_selected select 0) lnbText[(_selected select 1), 2]; - _index = lbAdd [_control, _itemName]; - lbSetData [_control, _index, _uiItem]; - - _itemIcon = (_selected select 0) lnbPicture [(_selected select 1), 0]; - lbSetPicture [_control, _index, _itemIcon]; - - _uiQty = (_selected select 0) lnbValue [(_selected select 1), 0]; - if (_uiQty <= 1) then { - (_selected select 0) lnbDeleteRow (_selected select 1); - } else { - _qty = _uiQty - 1; - lnbSetText[41503, [(_selected select 1), 1], str(_qty)]; - lnbSetValue[41503, [(_selected select 1), 0], _qty]; - }; - - _cryptoCount = 0; - _sizeOut = lbSize 41501; - //_array = []; - if (_sizeOut > 0) then { - for "_i" from 0 to (_sizeOut - 1) do { - _item = lbData [41501, _i]; - //_array pushBack _item; - _worth = getNumber(_config >> _item >> "price"); - _cryptoCount = _cryptoCount + _worth; - }; - }; - ctrlSetText [41004, (format ["%1 Krypto", _cryptoCount])]; - - _cryptoCount = 0; - _sizeOut = lbSize 41502; - if (_sizeOut > 0) then { - for "_i" from 0 to (_sizeOut - 1) do { - _item = lbData [41502, _i]; - _itemWorth = getNumber(_config >> _item >> "price"); - _itemTax = getNumber(_config >> _item >> "tax"); - _tax = _itemWorth * (EPOCH_taxRate + _itemTax); - _itemWorth = ceil(_itemWorth + _tax); - _cryptoCount = _cryptoCount + _itemWorth; - }; - }; - ctrlSetText [41005, (format ["%1 Krypto", _cryptoCount])]; - } else { - ["Limit one per trade", 5] call Epoch_message; }; }; diff --git a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd3.sqf b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd3.sqf index c00b7558..26ecb852 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd3.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd3.sqf @@ -1,41 +1,72 @@ -//[[[cog import generate_private_arrays ]]] -private ["_array","_config","_cryptoCount","_item","_itemTax","_itemWorth","_sizeOut","_tax","_uiItem","_worth"]; -//[[[end]]] -params ["_control","_selected"]; +/* + Author: He-Man - Ignatz-Gaming -_uiItem = (_selected select 0) lbData(_selected select 1); + Contributors: Raimonds Virtoss + + Description: + Move Items in Tradermenu from TraderOut window to Traderinventory + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd3.sqf +*/ + +private ["_TraderFilerDropDown","_PlayerItemsOutBox","_TraderItemsOutBox","_CryptoInCtrl","_CryptoOutCtrl","_uiItem","_rounds","_config","_ItemIndex","_cryptoCount","_sizeOut","_item","_worth","_maxrnd","_itemTax","_tax"]; +params ["_control","_selected"]; +_selected params ["_CurControl","_id"]; + +_TraderFilerDropDown = 42101; +_PlayerItemsOutBox = 41501; +_TraderItemsOutBox = 41502; +_CryptoInCtrl = 41004; +_CryptoOutCtrl = 41005; + +_uiItem = _CurControl lbData _id; +_rounds = _CurControl lbValue _id; _config = 'CfgPricing' call EPOCH_returnConfig; -if (isClass (_config >> _uiItem)) then{ - - (_selected select 0) lbDelete (_selected select 1); - - lbSetCurSel[42101, 0]; - +if (isClass (_config >> _uiItem)) then { + _ItemIndex = (EPOCH_NpcTradeTraderItems select 0) find _uiItem; + if (_ItemIndex >= 0) then { + (EPOCH_NpcTradeTraderItems select 1) set [_ItemIndex,(EPOCH_NpcTradeTraderItems select 1 select _ItemIndex) + _rounds]; + }; + _CurControl lbDelete _id; + lbSetCurSel [_TraderFilerDropDown, 0]; _cryptoCount = 0; - _sizeOut = lbSize 41501; - //_array = []; + _sizeOut = lbSize _PlayerItemsOutBox; if (_sizeOut > 0) then { for "_i" from 0 to (_sizeOut - 1) do { - _item = lbData [41501, _i]; - //_array pushBack _item; - _worth = getNumber(_config >> _item >> "price"); + _item = lbData [_PlayerItemsOutBox, _i]; + _rounds = lbValue [_PlayerItemsOutBox, _i]; + _worth = getNumber (_config >> _item >> "price"); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _worth = round (_worth*(_rounds/_maxrnd)); _cryptoCount = _cryptoCount + _worth; }; }; - ctrlSetText [41004, (format ["%1 Krypto", _cryptoCount])]; - + ctrlSetText [_CryptoInCtrl, (format["%1 Krypto", _cryptoCount])]; _cryptoCount = 0; - _sizeOut = lbSize 41502; + _sizeOut = lbSize _TraderItemsOutBox; if (_sizeOut > 0) then { for "_i" from 0 to (_sizeOut - 1) do { - _item = lbData [41502, _i]; - _itemWorth = getNumber(_config >> _item >> "price"); - _itemTax = getNumber(_config >> _item >> "tax"); - _tax = _itemWorth * (EPOCH_taxRate + _itemTax); - _itemWorth = ceil(_itemWorth + _tax); - _cryptoCount = _cryptoCount + _itemWorth; + _item = lbData [_TraderItemsOutBox, _i]; + _rounds = lbValue [_TraderItemsOutBox, _i]; + _worth = getNumber (_config >> _item >> "price"); + _itemTax = getNumber (_config >> _item >> "tax"); + _tax = _worth * (EPOCH_taxRate + _itemTax); + _worth = ceil (_worth + _tax); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _worth = round (_worth*(_rounds/_maxrnd)); + _cryptoCount = _cryptoCount + _worth; }; }; - ctrlSetText [41005, (format ["%1 Krypto", _cryptoCount])]; + ctrlSetText [_CryptoOutCtrl, (format["%1 Krypto", _cryptoCount])]; }; diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNPCTraderMenu.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNPCTraderMenu.sqf index d2ab05ac..a9b0d110 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_startNPCTraderMenu.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_startNPCTraderMenu.sqf @@ -1,6 +1,19 @@ -//[[[cog import generate_private_arrays ]]] -private ["_MainCategoriearray","_categorie","_config","_ok","_slot","_target"]; -//[[[end]]] +/* + Author: He-Man - Ignatz-Gaming + + Contributors: Raimonds Virtoss + + Description: + Start the Trader Trading Menu + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_startNPCTraderMenu.sqf +*/ + +private ["_config","_MainCategoriearray","_target","_slot","_index","_ok","_categorie"]; _config = 'CfgItemSort' call EPOCH_returnConfig; _MainCategoriearray = getarray (_config >> "MainCategories" >> "Classes"); _target = cursorTarget; @@ -8,6 +21,20 @@ if (alive _target) then { _slot = _target getVariable ["AI_SLOT",-1]; if (_slot != -1) then { EPOCH_lastNPCtradeTarget = _target; + EPOCH_NpcTradePlayerItems = (items player)+(magazinesammo player); + if (primaryWeapon player != "") then { + EPOCH_NpcTradePlayerItems pushback primaryWeapon player; + }; + if (count backpackItems player == 0 && count backpackmagazines player == 0 && backpack player != "") then { + EPOCH_NpcTradePlayerItems pushback backpack player; + }; + EPOCH_NpcTradeTraderItems = [[],[]]; + { + _index = _foreachindex; + { + (EPOCH_NpcTradeTraderItems select _index) pushback _x; + } foreach _x + } foreach (_target getvariable ["AI_Items",[[],[]]]); closeDialog 0; _ok = createdialog "TradeNPCMenu"; if (!_ok) exitWith {}; @@ -15,10 +42,10 @@ if (alive _target) then { ((uiNamespace getVariable "EPOCH_EpochGameUI2") displayCtrl 21208) ctrlSetText format["%1", EPOCH_playerCrypto]; { _categorie = _x select 1; - lbAdd[42100,_categorie]; - lbAdd[42101,_categorie] + lbAdd [42100,_categorie]; + lbAdd [42101,_categorie] } forEach _MainCategoriearray; - lbSetCurSel[42100, 0]; - lbSetCurSel[42101, 0]; + lbSetCurSel [42100, 0]; + lbSetCurSel [42101, 0]; }; }; diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf index 469ed6a9..52a03452 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf @@ -1,65 +1,64 @@ /* - Author: Aaron Clark - EpochMod.com + Author: He-Man - Ignatz-Gaming - Contributors: He-Man + Contributors: Raimonds Virtoss Description: - NPC trade code + Move Items in Tradermenu from TraderOut window to Traderinventory Licence: Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike Github: - https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/traders/EPOCH_startNpcTrade.sqf - - Example: - cursorTarget call EPOCH_startNpcTrade; - - Parameter(s): - _this: OBJECT - - Returns: - NOTHING + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf */ -//[[[cog import generate_private_arrays ]]] -private ["_addWeaponToHands","_arrayIn","_arrayOut","_config","_current_crypto","_errorMsg","_item","_itemTax","_itemWorth","_sizeOut","_tax","_type","_vehSlot","_vehicle","_vehicles"]; -//[[[end]]] + +private ["_PlayerItemsOutBox","_TraderItemsOutBox","_config","_current_crypto","_sizeIn","_arrayIn","_item","_rounds","_mags","_itemMags","_index","_sizeOut","_arrayOut","_itemWorth","_itemTax","_tax","_maxrnd"]; if (!isNil "EPOCH_TRADE_STARTED") exitWith{}; if (isNull _this) exitWith{}; if (alive _this) then { - + _PlayerItemsOutBox = 41501; + _TraderItemsOutBox = 41502; _config = 'CfgPricing' call EPOCH_returnConfig; - _current_crypto = EPOCH_playerCrypto; - - // _arrayIn = Sell Array - _sizeOut = lbSize 41501; + _sizeIn = lbSize _PlayerItemsOutBox; _arrayIn = []; - if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41501, _i]; - + if (_sizeIn > 0) then { + for "_i" from 0 to (_sizeIn - 1) do { + _item = lbData [_PlayerItemsOutBox, _i]; + _rounds = lbValue [_PlayerItemsOutBox, _i]; if (isClass (_config >> _item)) then{ - - // test remove items to be sold and add to array + _itemWorth = getNumber (_config >> _item >> "price"); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _itemWorth = round (_itemWorth*(_rounds/_maxrnd)); + _added = false; if ([_item, "CfgWeapons"] call EPOCH_fnc_isAny) then { if (_item in items player) then { player removeItem _item; - _arrayIn pushBack _item; - } else { + _arrayIn pushBack [_item,_rounds]; + _added = true; + } + else { if (_item == primaryweapon player) then { player removeweapon _item; - _arrayIn pushBack _item; + _arrayIn pushBack [_item,_rounds]; + _added = true; }; }; - } else { + } + else { if ([_item, "CfgVehicles"] call EPOCH_fnc_isAny) then { if (_item == backpack player) then { removeBackpack player; - _arrayIn pushBack _item; - } else { + _arrayIn pushBack [_item,_rounds]; + _added = true; + } + else { _vehicles = _this nearEntities[[_item], 30]; if (!(_vehicles isEqualTo[])) then { _vehicle = _vehicles select 0; @@ -67,56 +66,66 @@ if (alive _this) then { if (local _vehicle) then { _vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"]; if (_vehSlot != "ABORT") then { - _arrayIn pushBack _item; - // will be removed server side + _arrayIn pushBack [_item,_rounds]; + _added = true; }; }; }; }; }; - } else { - if (_item in magazines player) then { - player removeMagazine _item; - _arrayIn pushBack _item; + } + else { + _mags = magazinesAmmo player; + _itemMags = []; + { + _x params ["_className","_count"]; + if (_className isequalto _item) then { + _itemMags pushBack _x; + }; + } forEach _mags; + _index = _itemMags find [_item,_rounds]; + if (_index >= 0) then { + _arrayIn pushback (_itemMags deleteat _index); + _added = true; + player removemagazines _item; + { + player addmagazine _x; + } foreach _itemMags; }; }; }; - // test - - - - }; - }; - }; - - // _arrayOut = Purchase Array - _sizeOut = lbSize 41502; - _arrayOut = []; - if (_sizeOut > 0) then { - for "_i" from 0 to(_sizeOut - 1) do { - _item = lbData[41502, _i]; - - if (isClass (_config >> _item)) then{ - _itemWorth = getNumber(_config >> "price"); - _itemTax = getNumber(_config >> "tax"); - _tax = _itemWorth * (EPOCH_taxRate + _itemTax); - _itemWorth = ceil(_itemWorth + _tax); - - if (_current_crypto >= _itemWorth) then { - _current_crypto = _current_crypto - _itemWorth; - _arrayOut pushBack _item; + if (_added) then { + _current_crypto = _current_crypto + _itemWorth; }; }; }; }; - - if (!(_arrayIn isEqualTo[]) || !(_arrayOut isEqualTo[])) then { + _sizeOut = lbSize _TraderItemsOutBox; + _arrayOut = []; + if (_sizeOut > 0) then { + for "_i" from 0 to (_sizeOut - 1) do { + _item = lbData [_TraderItemsOutBox, _i]; + _rounds = lbValue [_TraderItemsOutBox, _i]; + if (isClass (_config >> _item)) then { + _itemWorth = getNumber (_config >> _item >> "price"); + _itemTax = getNumber (_config >> _item >> "tax"); + _tax = _itemWorth * (EPOCH_taxRate + _itemTax); + _itemWorth = ceil (_itemWorth + _tax); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _itemWorth = round (_itemWorth*(_rounds/_maxrnd)); + if (_current_crypto >= _itemWorth) then { + _current_crypto = _current_crypto - _itemWorth; + _arrayOut pushBack [_item,_rounds]; + }; + }; + }; + }; + if !(_arrayIn isEqualTo[] && _arrayOut isEqualTo[]) then { EPOCH_TRADE_STARTED = true; - - // make trade [_this, _arrayIn, _arrayOut, player, Epoch_personalToken] remoteExec ["EPOCH_server_makeNPCTrade",2]; - - // close menu closeDialog 0; }; }; diff --git a/Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf b/Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf deleted file mode 100644 index 049f3974..00000000 --- a/Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf +++ /dev/null @@ -1,67 +0,0 @@ -disableSerialization; -//[[[cog import generate_private_arrays ]]] -private ["_array","_filterArray","_item","_items","_magazines","_sizeOut","_weapons","_xIndex"]; -//[[[end]]] -params ["_control","_index"]; - -// [weapons, mags, items] -_filterArray = [ - [true,true,true], // all - // [true,false,false], // weapons only - [false,true,false], // mags only - [false,false,true] // items only -]; - -lbClear 1500; - -// _weapons = ((_filterArray select _index) select 0); -_magazines = ((_filterArray select _index) select 1); -_items = ((_filterArray select _index) select 2); - -_sizeOut = lbSize 1501; -_array = []; -if (_sizeOut > 0) then { - for "_i" from 0 to (_sizeOut - 1) do { - _item = lbData [1501, _i]; - _array pushBack _item; - }; -}; -/* -if (_weapons) then { - { - if !(_x in _array) then { - _xIndex = lbAdd [1500, _x call EPOCH_itemDisplayName]; - lbSetData [1500, _xIndex, _x]; - lbSetPicture [1500, _xIndex, _x call EPOCH_itemPicture]; - } else { - _array set [_array find _x,nil]; - }; - } forEach weapons player; -}; -*/ -if (_magazines) then { - { - if (getNumber(configfile >> "CfgMagazines" >> _x >> "count") == 1) then { - if !(_x in _array) then { - _xIndex = lbAdd[1500, _x call EPOCH_itemDisplayName]; - lbSetData[1500, _xIndex, _x]; - lbSetPicture[1500, _xIndex, _x call EPOCH_itemPicture]; - } - else { - _array set[_array find _x, nil]; - }; - }; - } forEach magazines player; -}; - -if (_items) then { - { - if !(_x in _array) then { - _xIndex = lbAdd [1500, _x call EPOCH_itemDisplayName]; - lbSetData [1500, _xIndex, _x]; - lbSetPicture [1500, _xIndex, _x call EPOCH_itemPicture]; - } else { - _array set [_array find _x,nil]; - }; - } forEach items player; -}; diff --git a/Sources/epoch_config/Configs/CfgClientFunctions.hpp b/Sources/epoch_config/Configs/CfgClientFunctions.hpp index 639c3088..d04e569b 100644 --- a/Sources/epoch_config/Configs/CfgClientFunctions.hpp +++ b/Sources/epoch_config/Configs/CfgClientFunctions.hpp @@ -79,7 +79,6 @@ class CfgClientFunctions class startNPCTraderMenu {}; class NPCTraderMenuFilter {}; class startNpcTrade {}; - class tradeFilter {}; class takeCrypto {}; class startBankTransfer {}; class calcDamageCost {}; diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf index 180c3870..d3e6b666 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf @@ -1,7 +1,7 @@ /* Author: Aaron Clark - EpochMod.com - Contributors: + Contributors: He-Man - Ignatz-Gaming Description: NPC trade mech @@ -12,9 +12,13 @@ Github: https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf */ -//[[[cog import generate_private_arrays ]]] -private ["_MaxBankDebit","_SkipOut","_VAL","_aiItems","_bankBalance","_bankData","_cIndex","_config","_currQty","_current_crypto","_current_cryptoRaw","_errorMsg","_final_location","_foundSmoke","_group","_helipad","_helipads","_item","_itemClasses","_itemQty","_itemQtys","_itemTax","_itemWorth","_itemsIn","_itemsOut","_lockOwner","_makeTradeIn","_message","_nearByHolder","_objHiveKey","_objOwner","_playerCryptoLimit","_playerGroup","_playerNetID","_playerUID","_position","_qtyIndex","_response","_return","_returnIn","_returnOut","_road","_serverSettingsConfig","_slot","_smoke","_tax","_tmpposition","_tradeIn","_tradeOut","_tradeQtyTotal","_tradeTotal","_vars","_vehHiveKey","_vehObj","_vehSlot","_vehicle","_vehicleBought","_vehicleSold","_vehicles","_vehslot","_wH","_wHPos","_wp","_kIndex","_playerCStats","_playerKarma","_playerKarmaAdj"]; -//[[[end]]] + +private [ "_MaxBankDebit","_SkipOut","_VAL","_aiItems","_bankBalance","_bankData","_cIndex","_config","_currQty","_current_crypto","_current_cryptoRaw","_errorMsg","_final_location","_foundSmoke", + "_group","_helipad","_helipads","_item","_itemClasses","_itemQty","_itemQtys","_itemTax","_itemWorth","_itemsIn","_itemsOut","_lockOwner","_makeTradeIn","_message","_nearByHolder", + "_objHiveKey","_objOwner","_playerCryptoLimit","_playerGroup","_playerNetID","_playerUID","_position","_qtyIndex","_response","_return","_returnIn","_returnOut","_road", + "_serverSettingsConfig","_slot","_smoke","_tax","_tmpposition","_tradeIn","_tradeOut","_tradeQtyTotal","_tradeTotal","_vars","_vehHiveKey","_vehObj","_vehSlot","_vehicle","_vehicleBought", + "_vehicleSold","_vehicles","_vehslot","_wH","_wHPos","_wp","_kIndex","_playerCStats","_playerKarma","_playerKarmaAdj" +]; params ["_trader","_itemsIn","_itemsOut","_player",["_token","",[""]] ]; _playerUID = getplayeruid _player; @@ -54,56 +58,48 @@ if (_slot != -1) then { _itemClasses = _aiItems select 0; _itemQtys = _aiItems select 1; { - _item = _x; - _itemQty = 1; - - if (isClass (_config >> _item)) then{ + _x params ["_item","_itemQty"]; + if (isClass (_config >> _item)) then { _itemWorth = getNumber(_config >> _item >> "price"); - + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _itemWorth = round (_itemWorth*(_itemQty/_maxrnd)); _makeTradeIn = false; - if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") then{ - _vehicles = _trader nearEntities[[_item], 30]; if !(_vehicles isEqualTo[]) then { - _vehicle = _vehicles select 0; if (!isNull _vehicle) then { - _playerNetID = owner _player; if (_playerNetID == (owner _vehicle)) then { - _vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"]; if (!_vehicleSold && _vehSlot != "ABORT") then { _BaseClass = _vehicle getvariable ["VEHICLE_BaseClass",""]; if !(_BaseClass isequalto "") then { _item = _BaseClass; - _itemsIn set [_foreachindex,_item]; + _itemsIn set [_foreachindex,[_item,_itemQty]]; }; - removeFromRemainsCollector[_vehicle]; + removeFromRemainsCollector [_vehicle]; deleteVehicle _vehicle; _vehicleSold = true; - _vehHiveKey = format["%1:%2", (call EPOCH_fn_InstanceID), _vehSlot]; _VAL = []; ["Vehicle", _vehHiveKey, _VAL] call EPOCH_fnc_server_hiveSET; - EPOCH_VehicleSlots pushBack _vehSlot; - missionNamespace setVariable ['EPOCH_VehicleSlotCount', count EPOCH_VehicleSlots, true]; - _makeTradeIn = true; }; }; }; }; - } else { + } + else { _makeTradeIn = true; }; - if (_makeTradeIn) then { - - _returnIn pushBack _item; + _returnIn pushBack [_item,_itemQty]; _tradeIn = _tradeIn + _itemWorth; _current_crypto = _current_crypto + _itemWorth; _tradeQtyTotal = _tradeQtyTotal + _itemQty; @@ -114,7 +110,7 @@ if (_slot != -1) then { _itemQtys pushBack _itemQty; } else { _currQty = _itemQtys select _qtyIndex; - _itemQtys set[_qtyIndex, (_currQty + _itemQty)]; + _itemQtys set [_qtyIndex, (_currQty + _itemQty)]; }; }; // send karma stat to seller @@ -127,80 +123,73 @@ if (_slot != -1) then { }; }; } forEach _itemsIn; - - _response = ["Bank", _playerUID] call EPOCH_fnc_server_hiveGETRANGE; - if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { - _bankData = _response select 1; - if !(_bankData isEqualTo[]) then { - _MaxBankDebit = [_serverSettingsConfig, "MaxBankDebitforTrade", -999999] call EPOCH_fnc_returnConfigEntry; - _bankBalance = _bankData select 0; - if (_bankBalance < _MaxBankDebit) then { - if (_tradeIn > 0) then { - _bankBalance = _bankBalance + _tradeIn; - _return = ["Bank", _playerUID, EPOCH_expiresBank, [_bankBalance]] call EPOCH_fnc_server_hiveSETEX; - _message = _message + "Items sold, but the Money goes to your Bank - to much Bank-Debit"; - } - else { - _message = _message + "Purchase not possible - to much Bank-Debit"; - }; - _current_crypto = _current_cryptoRaw; - _tradeIn = 0; - _itemsIn = []; - _itemsOut = []; - _SkipOut = true; + _response = ["Bank", _playerUID] call EPOCH_fnc_server_hiveGETRANGE; + if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { + _bankData = _response select 1; + if !(_bankData isEqualTo[]) then { + _MaxBankDebit = [_serverSettingsConfig, "MaxBankDebitforTrade", -999999] call EPOCH_fnc_returnConfigEntry; + _bankBalance = _bankData select 0; + if (_bankBalance < _MaxBankDebit) then { + if (_tradeIn > 0) then { + _bankBalance = _bankBalance + _tradeIn; + _return = ["Bank", _playerUID, EPOCH_expiresBank, [_bankBalance]] call EPOCH_fnc_server_hiveSETEX; + _message = _message + "Items sold, but the Money goes to your Bank - to much Bank-Debit"; + } + else { + _message = _message + "Purchase not possible - to much Bank-Debit"; }; + _current_crypto = _current_cryptoRaw; + _tradeIn = 0; + _itemsIn = []; + _itemsOut = []; + _SkipOut = true; }; }; + }; if (!_SkipOut) then { { - _item = _x; - _itemQty = 1; + _x params ["_item","_itemQty"]; if (isClass (_config >> _item)) then{ _itemWorth = getNumber(_config >> _item >> "price"); _itemTax = getNumber(_config >> _item >> "tax"); _tax = _itemWorth * (EPOCH_taxRate + _itemTax); - _itemWorth = ceil(_itemWorth + _tax); + _itemWorth = ceil (_itemWorth + _tax); + _maxrnd = 1; + if ([_item,"cfgMagazines"] call Epoch_fnc_isAny) then { + _maxrnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count"); + }; + _itemWorth = round (_itemWorth*(_itemQty/_maxrnd)); _qtyIndex = _itemClasses find _item; - // add items to array if (_qtyIndex != -1) then { - _currQty = _itemQtys select _qtyIndex; if (_currQty >= _itemQty) then { - if (_current_crypto >= _itemWorth) then { - if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") then{ - if (!_vehicleBought) then { - if !(EPOCH_VehicleSlots isEqualTo[]) then { _position = getPosATL _player; - _helipad = nearestObjects[_player, ["Land_HelipadEmpty_F", "Land_HelipadCircle_F"], 100]; _helipads = []; _smoke = nearestObject[_player, "SmokeShell"]; if (!isNull _smoke) then { _helipad pushBack _smoke; }; - - // water check if (_item isKindOf "Ship") then { { if (surfaceIsWater (getposATL _x)) then { _helipads pushBack _x; } } forEach _helipad; - } else { + } + else { { if !(surfaceIsWater (getposATL _x)) then { _helipads pushBack _x; } } forEach _helipad; }; - if !(_helipads isEqualTo[]) then { - _foundSmoke = false; { if (_x isKindOf "SmokeShell") then { @@ -208,7 +197,8 @@ if (_slot != -1) then { if (_objOwner == owner _player) then { _position = getPosATL _x; _foundSmoke = true; - } else { + } + else { { if (_objOwner == owner _x) exitWith{ _position = getPosATL _x; @@ -222,12 +212,14 @@ if (_slot != -1) then { if !(_foundSmoke) then { _position = getPosATL (_helipads select 0); }; - } else { + } + else { _tmpposition = []; if (_item isKindOf "Ship") then { _tmpposition = [_position, 20, 150, 5, 0, 1000, 1] call BIS_fnc_findSafePos; _tmpposition = [_tmpposition, 0, 60, 10, 2, 1000, 0] call BIS_fnc_findSafePos; - } else { + } + else { _tmpposition = [_position, 20, 120, 5, 0, 2000, 0] call BIS_fnc_findSafePos; }; if ((count _tmpposition) == 2) then { @@ -244,29 +236,21 @@ if (_slot != -1) then { }; }; }; - // select available slot _vehslot = EPOCH_VehicleSlots select 0; - // Remove from available slots EPOCH_VehicleSlots = EPOCH_VehicleSlots - [_vehslot]; missionNamespace setVariable ['EPOCH_VehicleSlotCount', count EPOCH_VehicleSlots, true]; _vehicleBought = true; - - // Group access _lockOwner = getPlayerUID _player; _playerGroup = _player getVariable["GROUP", ""]; if (_playerGroup != "") then { _lockOwner = _playerGroup; }; - _vehObj = [_item,_position,random 360,true,_vehslot,_lockOwner,"NONE",false,false] call EPOCH_spawn_vehicle; _final_location = getPosATL _vehObj; - _group = group _player; _wp = _group addWaypoint [_final_location, 0]; deleteWaypoint [_group, 0]; - - _returnOut pushBack _item; - + _returnOut pushBack [_item,_itemQty]; _itemQtys set[_qtyIndex, (_currQty - _itemQty)]; _tradeOut = _tradeOut - _itemWorth; _current_crypto = _current_crypto - _itemWorth; @@ -277,8 +261,8 @@ if (_slot != -1) then { [_errorMsg, 5] remoteExec ['Epoch_message',_player]; }; }; - } else { - + } + else { if (_item isKindOf "Bag_Base") then { _wH = objNull; _nearByHolder = nearestObjects [_player,["groundWeaponHolder"],3]; @@ -288,13 +272,14 @@ if (_slot != -1) then { _wHPos = ASLToATL _wHPos; }; _wH = createVehicle ["groundWeaponHolder",_wHPos, [], 0, "CAN_COLLIDE"]; - } else { + } + else { _wH = _nearByHolder select 0; }; _wH addBackpackCargoGlobal [_item,1]; }; - _returnOut pushBack _item; - _itemQtys set[_qtyIndex, (_currQty - _itemQty)]; + _returnOut pushBack [_item,_itemQty]; + _itemQtys set [_qtyIndex, (_currQty - _itemQty)]; _tradeOut = _tradeOut - _itemWorth; _current_crypto = _current_crypto - _itemWorth; _tradeQtyTotal = _tradeQtyTotal + _itemQty; @@ -312,8 +297,6 @@ if (_slot != -1) then { }; } forEach _itemsOut; }; - - if !(_itemsIn isEqualTo []) then { if (_itemsIn isEqualTo _returnIn) then { _message = _message + "All Items sold"; @@ -336,10 +319,7 @@ if (_slot != -1) then { _message = _message + "Not all Items purchased"; }; }; - _tradeTotal = _tradeIn + _tradeOut; - - if !(_returnIn isequalto [] && _returnOut isEqualTo []) then { _trader setVariable["AI_ITEMS", [_itemClasses, _itemQtys], true]; _objHiveKey = format["%1:%2", (call EPOCH_fn_InstanceID), _slot]; From 75ee2ad46ff9042b4328e0027a1303307321c3fd Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 13 Jan 2018 22:57:08 +0100 Subject: [PATCH 59/94] Changelog --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index aaf9b2e6..0ebc6f61 100644 --- a/changelog.md +++ b/changelog.md @@ -32,6 +32,13 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Some performance tweaks - Inventory will be opened automatically, if "you found something" - EPOCH Events reworked (Markers will change if players near / event looted) @DirtySanchez +- Traders will no longer refill sold magazines @He-Man + - Magazines will automatic be repacked in Trader + - First the trader offers full magazines + - If no full magazine is available, the Trader offer the last not full magazine + - Not full magazines are colored: Yellow (nearly full) -> Red (nearly empty) + - You also get a Tooltip, how much bullets left in magazine + - The prices are calculated by the left bullets in the magazine ## [1.0.0.1077] - 2017-11-05 ### Added From 291c222d9d31dc9c9e1f781f60f4573edc538b71 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sun, 14 Jan 2018 14:01:28 +0100 Subject: [PATCH 60/94] setVectorDirAndUp first to prevent collide --- .../epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf index 555f9bd7..51b5c860 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf @@ -117,8 +117,8 @@ for "_i" from 1 to _maxVehicleLimit do { _vehicle call EPOCH_server_setVToken; _vehicle call EPOCH_server_vehicleInit; // set final direction and postion of vehicle - _vehicle setposATL _location; _vehicle setVectorDirAndUp _worldspace; + _vehicle setposATL _location; // set fuel level _vehicle setFuel _fuel; From de099419a2d11110513886d5431a5ac88f9a52b8 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sun, 14 Jan 2018 20:28:27 +0100 Subject: [PATCH 61/94] Remove Radio from Loadout (until a login fix) With a Radio (low mass Item?!) in Inventory + BaseSpawn it sometimes happens, that the Player stuck on login. So we remove it until we found a solid fix --- Server_Install_Pack/@epochhive/epochconfig.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index f827561d..db4942e4 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -47,7 +47,7 @@ forceRestartTime = 14400; // 4 hour restarts defaultlinkedItems[] = { "ItemMap", // "ItemMap" "", // "ItemGPS" or "ItemGeigerCounter_EPOCH", - "EpochRadio0", // "EpochRadio0" through "EpochRadio9" + "", // "EpochRadio0" through "EpochRadio9" "", // "ItemCompass" "", // "ItemWatch" "" // "NVG_EPOCH" or "radiation_mask_epoch" From 9ebeb828056007f2fe7e90593a0fbab418e5a2b5 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sun, 14 Jan 2018 20:35:13 +0100 Subject: [PATCH 62/94] SimulationHandlerOld + Comment Server fsm no longer handles simulation for Vehicles, so this config is useless and can be removed --- Server_Install_Pack/@epochhive/epochconfig.hpp | 3 +-- .../compile/epoch_vehicle/EPOCH_load_vehicles_old.sqf | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index db4942e4..36cc667f 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -54,9 +54,8 @@ forceRestartTime = 14400; // 4 hour restarts }; // vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance. - ReservedVehSlots = 50; // Reserved Vehicle Slots (only needed, if you store non-Epoch Vehicles in the Database) + ReservedVehSlots = 50; // Reserved Vehicle Slots (only needed, if you manually spawn in additional Vehicles - AdminTool / Blackmarket...) disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup. - simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps. VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked removevehweapons[] = { // remove these Weapons from spawned Vehicles "missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F", diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles_old.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles_old.sqf index 513d877f..3bfd7e75 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles_old.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles_old.sqf @@ -24,7 +24,6 @@ EPOCH_VehicleSlots = []; _allVehicles = []; _serverSettingsConfig = configFile >> "CfgEpochServer"; -_simulationHandler = [_serverSettingsConfig, "simulationHandlerOld", false] call EPOCH_fnc_returnConfigEntry; _immuneVehicleSpawn = [_serverSettingsConfig, "immuneVehicleSpawn", false] call EPOCH_fnc_returnConfigEntry; _removeweapons = [_serverSettingsConfig, "removevehweapons", []] call EPOCH_fnc_returnConfigEntry; _removemagazinesturret = [_serverSettingsConfig, "removevehmagazinesturret", []] call EPOCH_fnc_returnConfigEntry; @@ -255,10 +254,6 @@ for "_i" from 1 to _maxVehicleLimit do { _marker setMarkerText _class; _marker setMarkerColor "ColorGreen"; }; - - if (_simulationHandler) then{ - _vehicle enableSimulationGlobal false; - }; }; }; }; From f34ff90390d8040953d7d2a32d82ce42c4a8c68a Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 15 Jan 2018 18:48:36 +0100 Subject: [PATCH 63/94] Use addMagazineOverflow + BE-Filter --- Server_Install_Pack/sc/battleye/scripts.txt | 2 +- Sources/epoch_code/compile/EPOCH_consumeItem.sqf | 4 ++-- Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf | 2 +- Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf | 2 +- .../compile/epoch_vehicle/EPOCH_server_packJack.sqf | 3 +-- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index 3b3f5d69..25d210a0 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -17,7 +17,7 @@ 5 allowDamage !="_unit allowDamage false;" !="_unit allowDamage true;" !="player allowDamage true;" !="vehicle player allowDamage true;" !="player allowDamage false;" !="_target allowDamage true;" !="_cargo allowDamage false;" 5 addWeaponCargo !="_acceptHolder addWeaponCargo [_wWeapon, 1] ;" !="CBA_fnc_addWeaponCargo" !="\\fnc_addWeaponCargo" !="\"addWeaponCargo" !="cba_fAddWeaponCargo" 5 onMapSingleClick !="onMapSingleClick '';" !="\"onmapsingleclick\"" -5 addMagazine !"addMagazineCargo" !="player addMagazine [_item, _magazineSizeMax];" !="player addMagazine [_item, floor (_magazineSize % _magazineSizeMax)];" !="player addMagazine[_x select 0, _x select 1];" !="player addMagazine \"sledge_swing\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine \"stick_swing\";" !="_wh addMagazineAmmoCargo[_item, 1, _count];" !="CBA_fnc_addMagazine" !="\\fnc_addMagazine" !="\"addMagazine" !="vehicle player addMagazineTurret" !="player addMagazine [_magsTurret,_magAmmo]" !="vehicle player addMagazineTurret" !="player addMagazine [_magsTurret,_magAmmo]" !="EPOCH_fnc_addMagazineOverflow" +5 addMagazine !"addMagazineCargo" !="player addMagazine [_item,_count];" !="player addMagazine \"sledge_swing\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine \"stick_swing\";" !="_wh addMagazineAmmoCargo[_item, 1, _count];" !="CBA_fnc_addMagazine" !="\\fnc_addMagazine" !="\"addMagazine" !="vehicle player addMagazineTurret" !="vehicle player addMagazineTurret" !="EPOCH_fnc_addMagazineOverflow" 5 addMagazineCargo !="_dogHolder addMagazineCargo [\"RabbitCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Pelt_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Venom_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"SnakeCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"ChickenCarcass_EPOCH\", 1]" !="_acceptHolder addMagazineCargo [_wAmmo, 1] ;" !="CBA_fnc_addMagazineCargo" !="\\fnc_addMagazineCargo" !="\"addMagazineCargo" !="cba_fAddMagazineCargo" 5 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo" !="wH = _nearByHolder select 0;\n};\nif !(isNull _wh) then {\n_wh addItemCargoGlobal [_item,1];\n};\n};\n};\n\n_fnc_findItemInContainers = " !="player addItem 'ItemRope';" 5 addBackPack !="fnc_addBackpackCargo" diff --git a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf index fa18bf93..0bba493e 100644 --- a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf +++ b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf @@ -82,10 +82,10 @@ switch _interactOption do { player removeMagazines _item; for "_i" from 1 to floor (_magazineSize / _magazineSizeMax) do { - player addMagazine [_item, _magazineSizeMax]; + [_item, _magazineSizeMax] call EPOCH_fnc_addMagazineOverflow; }; if ((_magazineSize % _magazineSizeMax) > 0) then { - player addMagazine [_item, floor (_magazineSize % _magazineSizeMax)]; + [_item, floor (_magazineSize % _magazineSizeMax)] call EPOCH_fnc_addMagazineOverflow; }; ["Ammo Repacked", 5] call Epoch_message; }; diff --git a/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf index b77f9396..7a4b2b08 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_usedItemRepack.sqf @@ -59,7 +59,7 @@ if!(_chg isEqualTo 0)then{ _player removeMagazines _mag; { if ((_x select 1) > 0) then { // Do not add back an empty mag, as it can not be handled by any scripts and is useless - _player addMagazine _x; + _x call EPOCH_fnc_addMagazineOverflow; }; }forEach _itemMags; [format["You have used your %1", _displayName],5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack; diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf index 52a03452..60dda9cc 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf @@ -89,7 +89,7 @@ if (alive _this) then { _added = true; player removemagazines _item; { - player addmagazine _x; + _x call EPOCH_fnc_addMagazineOverflow; } foreach _itemMags; }; }; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf index 24335df8..3da4cb96 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf @@ -20,6 +20,5 @@ if (_player distance _unit > 20) exitWith{}; // TODO configize if (typeOf _unit == "Jack_SIM_EPOCH") then { deleteVehicle _unit; - // TODO handle overflow - _player addMagazine["JackKit", 1]; + ["JackKit", 1] call EPOCH_fnc_addMagazineOverflow; }; From d3e9b880a04f10136d913d0a8bb6d560bbc345d7 Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 15 Jan 2018 18:55:44 +0100 Subject: [PATCH 64/94] Not Serverside... --- .../compile/epoch_vehicle/EPOCH_server_packJack.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf index 3da4cb96..24335df8 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_packJack.sqf @@ -20,5 +20,6 @@ if (_player distance _unit > 20) exitWith{}; // TODO configize if (typeOf _unit == "Jack_SIM_EPOCH") then { deleteVehicle _unit; - ["JackKit", 1] call EPOCH_fnc_addMagazineOverflow; + // TODO handle overflow + _player addMagazine["JackKit", 1]; }; From 2bd20e77919ca32429404213e9d27f4aa412c84e Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 15 Jan 2018 19:09:47 +0100 Subject: [PATCH 65/94] Changelog --- changelog.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/changelog.md b/changelog.md index 0ebc6f61..b91c88f4 100644 --- a/changelog.md +++ b/changelog.md @@ -5,32 +5,38 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a ### Added - Plant Spawner: vehicle object for sunflower. @Helion4 - Examples for Vehicle upgrades for Server Admins into CfgVehicleUpgrades.hpp @He-Man -- Make Lighter refillable at Fuel-Sources (Gasstations / Vehicles) +- Make Lighter refillable at Fuel-Sources (Gasstations / Vehicles) @He-Man - Make Trader more configurable in epochconfig.hpp @He-Man - Added Examples for Batchfiles to control Server Restarts @DirtySanchez -- default pops for "center" marker -- More map supports +- default pops for "center" marker @AWOL +- More map supports @AWOL - Lighter is needed to imflame fires @DirtySanchez - FireExtinguisher is needed to "put our fire" on Burn Barrel @DirtySanchez - Rope is needed for SlingLoad (get back on release) @DirtySanchez - R3F compatibility for SlingLoad @DirtySanchez - Hints while using Vehicle Repair (MultiGun) @He-Man -- Config to completely disabale Simulation for BaseParts (if not needed) @He-Man +- Config to completely disable Simulation for BaseParts (if not needed) @He-Man - Made Radiation configureable by cfgepochclient.hpp @Raymix -- Hints for lock / unlock Vehicles / Storages +- Hints for lock / unlock Vehicles / Storages @He-Man +- Nuisance multiplicator in cfgepochclient.hpp @He-Man +- Reduce rads over time at cost of immunity @Raymix +- Wearable Male & Female wearable full radiation suit @Helion4 +- December seasonal items (Santa / Snowman) @Helion4 ### Fixed - False BE kicks since Arma 3 1.80 update. - Nightlight now also follow players inside Vehicles @He-Man -- Fixed fault disabled DynamicDebris @morgoth +- Fixed fault disabled DynamicDebris @morgoth0 +- SERVER_VARS (BaseSpawn) was not saved on revive @morgoth0 - Without Advanced Vehicle Repair, Vehicle upgrade was not available @He-Man - Base Storages could be deleted if near Loot containers were auto-deleted @He-Man - Some Tarp Loot was spawned under the Floor @He-Man - Reworked wall check by getting out of Vehicles @He-Man +- Garden Plot had no physical ground @Helion4 ### Changed -- RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. +- RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. @AWOL - SnapPoints for Building objects (especially half / quarter Floors) @He-Man - Some performance tweaks -- Inventory will be opened automatically, if "you found something" +- Inventory will be opened automatically, if "you found something" @AWOL - EPOCH Events reworked (Markers will change if players near / event looted) @DirtySanchez - Traders will no longer refill sold magazines @He-Man - Magazines will automatic be repacked in Trader From 9911f1284c782b0850f55d52138c8be060ccf599 Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 15 Jan 2018 22:09:06 +0100 Subject: [PATCH 66/94] missing ; (thx to [T.G] Razor) --- Server_Install_Pack/@epochhive/epochconfig.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index 36cc667f..fd460bea 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -124,7 +124,7 @@ forceRestartTime = 14400; // 4 hour restarts TraderGodMode = "false"; // If true, Trader can not be killed by Players storedVehicleLimit = 15; // Vehicles more than x stored in ALL Traders will automatically be deleted on Restart. StaticTraderItemPurge[] = {100,15}; // {ItemCount,ReducePercent} - If a static trader have more than x different items, on restart the items will be reduced by y percent - DynamicTraderRespawnCount = 100 // If a dynamic Trader have more than x different Items, he will respawn on another Spot (with start Items) + DynamicTraderRespawnCount = 100; // If a dynamic Trader have more than x different Items, he will respawn on another Spot (with start Items) TraderItemCountPerItem[] = {50,5}; // If the Trader has more than x pieces of an Item, it will be reduced to y pieces (on Restart) TraderItemsDeleteInstant[] = { // List of Items, that will be deleted from Trader instant after sell // "ItemVehDoc1", From 096f03e7b9d0e71299e916c0b1e42c1794330af3 Mon Sep 17 00:00:00 2001 From: He-Man Date: Thu, 18 Jan 2018 21:40:18 +0100 Subject: [PATCH 67/94] AutoRun - Default Key is "W" - You can change the key in EPOCH ESC Menu - If choosen key is same as "moveforward" (default), you have to 2x tap it, else you only have to 1x tap it - If your legs are broken, you get a hint "can not autorun - legs are broken" - If the terrain is too steep, you only walk in AutoRun - Inside Water, you can not Autorun --- Sources/epoch_code/compile/EPOCH_AutoRun.sqf | 66 +++++++++++++++++++ .../compile/EPOCH_AutoRun_Check.sqf | 44 +++++++++++++ .../EPOCH_KeyDown.sqf | 7 +- .../interface_event_handlers/EPOCH_KeyUp.sqf | 23 +++++++ .../compile/setup/EPOCH_clientKeyMap.sqf | 1 + .../compile/setup/masterLoop/Event0.sqf | 12 ++++ .../compile/setup/masterLoop/init.sqf | 2 +- Sources/epoch_code/init/client_init.sqf | 2 + .../Configs/CfgClientFunctions.hpp | 2 + .../epoch_config/Configs/CfgMasterLoop.hpp | 4 ++ changelog.md | 7 ++ 11 files changed, 168 insertions(+), 2 deletions(-) create mode 100644 Sources/epoch_code/compile/EPOCH_AutoRun.sqf create mode 100644 Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf create mode 100644 Sources/epoch_code/compile/setup/masterLoop/Event0.sqf diff --git a/Sources/epoch_code/compile/EPOCH_AutoRun.sqf b/Sources/epoch_code/compile/EPOCH_AutoRun.sqf new file mode 100644 index 00000000..5e435554 --- /dev/null +++ b/Sources/epoch_code/compile/EPOCH_AutoRun.sqf @@ -0,0 +1,66 @@ +/* + Author: [Ignatz] He-Man + + Contributors: + + Description: + Autorun script + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_AutoRun.sqf +*/ + +private ["_myheight","_nextpos","_newheight"]; + +// _EPOCH_Autorunspeed is NOT a private variable, it is defined in Masterloop init! + +_myheight = (getposasl player) select 2; +_nextpos = player modelToWorld [0,1,0]; +_nextpos set [2,0]; +_newheight = (atltoasl _nextpos) select 2; +if (surfaceiswater position player || ((getposatl player) select 2) > 0.5) then { + _newheight = _myheight; +}; +if (_myheight-_newheight > 0.8 || _myheight-_newheight < -0.6) then { + if (_EPOCH_Autorunspeed != 1) then { + player playActionnow 'PlayerWalkF'; + } + else { + player playAction 'PlayerWalkF'; + }; + _EPOCH_Autorunspeed = 1; +} +else { + if (_myheight-_newheight > 0.5 || _myheight-_newheight < -0.35) then { + if (_EPOCH_Autorunspeed != 2) then { + player playActionnow 'PlayerSlowF'; + } + else { + player playAction 'PlayerSlowF'; + }; + _EPOCH_Autorunspeed = 2; + } + else { + if (getFatigue player < 0.8) then { + if (_EPOCH_Autorunspeed != 3) then { + player playActionnow 'FastF'; + } + else { + player playAction 'FastF'; + }; + _EPOCH_Autorunspeed = 3; + } + else { + if (_EPOCH_Autorunspeed != 2) then { + player playActionnow 'PlayerSlowF'; + } + else { + player playAction 'PlayerSlowF'; + }; + _EPOCH_Autorunspeed = 2; + }; + }; +}; diff --git a/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf b/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf new file mode 100644 index 00000000..d41a7c9f --- /dev/null +++ b/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf @@ -0,0 +1,44 @@ +/* + Author: He-Man + + Contributors: + + Description: Check, if Player can Autorun + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf + + Usage: call EPOCH_AutoRun_Check; + + Returns: + BOOL +*/ + +private["_canAutoRun","_currentPos"]; +_canAutoRun = true; +if !(istouchingground player) exitwith { + false; +}; +if !((vehicle player) == player) exitwith { + false; +}; +if ((getPosasl player) select 2 < -0.5) exitwith { + false; +}; +if ((player getHitPointDamage "HitLegs") >= 0.5) exitwith { + ["Can not AutoRun - Your legs are Broken!",5] call Epoch_Message; + false; +}; +if !(player nearObjects["Const_All_Walls_F", 6] isEqualTo[]) then { + _currentPos = player modelToWorld [0, 1, 1]; + if !(surfaceIsWater _currentPos) then { + _currentPos = ATLtoASL _currentPos; + }; + if (lineIntersects[eyePos player, _currentPos, player, objNull]) then { + _canAutoRun = false; + }; +}; +_canAutoRun diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf index 4a2ede58..4d32ad7a 100644 --- a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf +++ b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf @@ -242,7 +242,12 @@ if (vehicle player == player) then { // _handled = call EPOCH_lootTrash; }; }; - + if (EPOCH_IsAutoRunning) then { + if (_dikCode in ((actionKeys "moveForward") + (actionKeys "TurnLeft") + (actionKeys "TurnRight") + (actionKeys "moveBack"))) then { + EPOCH_IsAutoRunning = false; + player switchMove ""; + }; + }; }; // end player only code EPOCH_favBar_itemConsumed = false; diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf index 51960002..a065a922 100644 --- a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf +++ b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf @@ -47,5 +47,28 @@ if (_dikCode == EPOCH_keysAction) then { if (_dikCode in(actionKeys "Gear")) then { EPOCH_gearKeyPressed = false; }; +if (player == vehicle player) then { + if (_dikCode == EPOCH_keysAutoRun) then { + if (EPOCH_IsAutoRunning) then { + EPOCH_IsAutoRunning = false; + player switchMove ""; + } + else { + if (EPOCH_keysAutoRun in (actionKeys "moveForward")) then { + if (EPOCH_LastAutoRunKeyPressed + 0.2 > diag_ticktime) then { + if (call EPOCH_AutoRun_Check) then { + EPOCH_IsAutoRunning = true; + }; + }; + } + else { + if (call EPOCH_AutoRun_Check) then { + EPOCH_IsAutoRunning = true; + }; + }; + }; + EPOCH_LastAutoRunKeyPressed = diag_ticktime; + }; +}; _handled diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf index 98040de3..0452d8fb 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf @@ -32,6 +32,7 @@ _keyMap = ["Action","EPOCH_keysAction",0x39], ["Holster Weapon", "EPOCH_keysHolster", 35], ["Debug Monitor", "EPOCH_keysDebugMon", 41], + ["AutoRun", "EPOCH_keysAutoRun", 0x11], ["Volume + (ctrl)","EPOCH_keysVolumeUp",0x0D], ["Volume - (ctrl)","EPOCH_keysVolumeDown",0x0C], diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event0.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event0.sqf new file mode 100644 index 00000000..bde43f25 --- /dev/null +++ b/Sources/epoch_code/compile/setup/masterLoop/Event0.sqf @@ -0,0 +1,12 @@ +// runs every 0.4 seconds + +if (EPOCH_IsAutoRunning) then { + if (call EPOCH_AutoRun_Check) then { + call EPOCH_AutoRun + } + else { + EPOCH_IsAutoRunning = false; + player switchMove ""; + ["Autorun stopped",5] call Epoch_Message; + }; +}; \ No newline at end of file diff --git a/Sources/epoch_code/compile/setup/masterLoop/init.sqf b/Sources/epoch_code/compile/setup/masterLoop/init.sqf index 1e41c494..d2819211 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/init.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/init.sqf @@ -111,7 +111,7 @@ _isOnFoot = isNull objectParent player; _panic = false; _prevEnergy = missionNamespace getVariable [_playerEnergyKey, _playerEnergyDefault]; - +_EPOCH_Autorunspeed = 1; // init config data _antagonistRndChance = ["CfgEpochClient", "antagonistRngChance", 100] call EPOCH_fnc_returnConfigEntryV2; diff --git a/Sources/epoch_code/init/client_init.sqf b/Sources/epoch_code/init/client_init.sqf index ec1049bf..65a1686c 100644 --- a/Sources/epoch_code/init/client_init.sqf +++ b/Sources/epoch_code/init/client_init.sqf @@ -57,6 +57,8 @@ EPOCH_arr_interactedObjs = []; EPOCH_buildOption = 0; EPOCH_nearestLocations = []; EPOCH_lastFiredLocation = []; +EPOCH_IsAutoRunning = false; +EPOCH_LastAutoRunKeyPressed = diag_ticktime; //Radiation EPOCH_geiger_shown = false; diff --git a/Sources/epoch_config/Configs/CfgClientFunctions.hpp b/Sources/epoch_config/Configs/CfgClientFunctions.hpp index d04e569b..1cd7c5e0 100644 --- a/Sources/epoch_config/Configs/CfgClientFunctions.hpp +++ b/Sources/epoch_config/Configs/CfgClientFunctions.hpp @@ -49,6 +49,8 @@ class CfgClientFunctions class makeMarker {}; class removeMarker {}; class unit_onKilledEH {}; + class AutoRun_Check {}; + class AutoRun {}; }; class building { diff --git a/Sources/epoch_config/Configs/CfgMasterLoop.hpp b/Sources/epoch_config/Configs/CfgMasterLoop.hpp index 5d5ca975..36e58f7e 100644 --- a/Sources/epoch_config/Configs/CfgMasterLoop.hpp +++ b/Sources/epoch_config/Configs/CfgMasterLoop.hpp @@ -16,6 +16,10 @@ class CfgMasterLoop { condition = "alive player"; file = "epoch_code\compile\setup\masterLoop"; + class Event0 + { + delay = 0.4; + }; class Event1 { delay = 1; diff --git a/changelog.md b/changelog.md index b91c88f4..5f01c738 100644 --- a/changelog.md +++ b/changelog.md @@ -22,6 +22,13 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Reduce rads over time at cost of immunity @Raymix - Wearable Male & Female wearable full radiation suit @Helion4 - December seasonal items (Santa / Snowman) @Helion4 +- Autorun function (suggested by Ghostrider) @He-Man + - Default Key is "W" + - You can change the key in EPOCH ESC Menu + - If choosen key is same as "moveforward" (default), you have to 2x tap it, else you only have to 1x tap it + - If your legs are broken, you get a hint "can not autorun - legs are broken" + - If the terrain is too steep, you only walk in AutoRun + - Inside Water, you can not Autorun ### Fixed - False BE kicks since Arma 3 1.80 update. - Nightlight now also follow players inside Vehicles @He-Man From b5a99880d878430dfb6fa51bd45173ae23a7ba79 Mon Sep 17 00:00:00 2001 From: He-Man Date: Thu, 18 Jan 2018 22:26:41 +0100 Subject: [PATCH 68/94] removed ; --- Sources/epoch_code/compile/EPOCH_AutoRun.sqf | 5 ++--- Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Sources/epoch_code/compile/EPOCH_AutoRun.sqf b/Sources/epoch_code/compile/EPOCH_AutoRun.sqf index 5e435554..516c9ade 100644 --- a/Sources/epoch_code/compile/EPOCH_AutoRun.sqf +++ b/Sources/epoch_code/compile/EPOCH_AutoRun.sqf @@ -1,10 +1,9 @@ /* - Author: [Ignatz] He-Man + Author: He-Man Contributors: - Description: - Autorun script + Description: Autorun script Licence: Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike diff --git a/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf b/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf index d41a7c9f..73010d68 100644 --- a/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf +++ b/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf @@ -20,17 +20,17 @@ private["_canAutoRun","_currentPos"]; _canAutoRun = true; if !(istouchingground player) exitwith { - false; + false }; if !((vehicle player) == player) exitwith { - false; + false }; if ((getPosasl player) select 2 < -0.5) exitwith { - false; + false }; if ((player getHitPointDamage "HitLegs") >= 0.5) exitwith { ["Can not AutoRun - Your legs are Broken!",5] call Epoch_Message; - false; + false }; if !(player nearObjects["Const_All_Walls_F", 6] isEqualTo[]) then { _currentPos = player modelToWorld [0, 1, 1]; From 1efca0123e8dd6c23a577e4ab5051fe0458ce514 Mon Sep 17 00:00:00 2001 From: He-Man Date: Thu, 18 Jan 2018 22:56:38 +0100 Subject: [PATCH 69/94] Preview for Smelting Tools --- Sources/epoch_config/Configs/CfgCrafting.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgCrafting.hpp b/Sources/epoch_config/Configs/CfgCrafting.hpp index 63b83877..db1cce0e 100644 --- a/Sources/epoch_config/Configs/CfgCrafting.hpp +++ b/Sources/epoch_config/Configs/CfgCrafting.hpp @@ -1127,9 +1127,9 @@ class CfgCrafting class SmeltingTools_EPOCH : Part { usedIn[] = {"ItemCopperBar","ItemCopperBar10oz","ItemGoldBar","ItemSilverBar","ItemGoldBar10oz","ItemSilverBar10oz"}; - previewPosition[] = {0.802374,1,0.26}; - previewScale = 0.19; - previewVector = 3.3; + previewPosition[] = {0.8,1,0.25}; + previewScale = 0.6; + previewVector = 1.2; }; class ItemCables : Item { From b743a9be3168e2aad994cd0a4bd9081dc1462b51 Mon Sep 17 00:00:00 2001 From: He-Man Date: Fri, 19 Jan 2018 16:14:21 +0100 Subject: [PATCH 70/94] Small AutoRun fixes --- Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf | 3 +++ .../epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf | 2 ++ Sources/epoch_code/compile/setup/masterLoop/Event0.sqf | 7 +++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf b/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf index 73010d68..0e227fc2 100644 --- a/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf +++ b/Sources/epoch_code/compile/EPOCH_AutoRun_Check.sqf @@ -19,6 +19,9 @@ private["_canAutoRun","_currentPos"]; _canAutoRun = true; +if !(alive player) exitwith { + false +}; if !(istouchingground player) exitwith { false }; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf index 59f8656f..7f15df40 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf @@ -62,6 +62,8 @@ EPOCH_buildMode = 0; EPOCH_snapDirection = 0; EPOCH_Target = objNull; +EPOCH_IsAutoRunning = false; + // playerKilledScreen _playerKilledScreen = getText(_config >> "playerKilledScreen"); if (_playerKilledScreen isEqualTo "") then {_playerKilledScreen = "TapOut2"}; diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event0.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event0.sqf index bde43f25..65e89ec4 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event0.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event0.sqf @@ -2,11 +2,10 @@ if (EPOCH_IsAutoRunning) then { if (call EPOCH_AutoRun_Check) then { - call EPOCH_AutoRun + call EPOCH_AutoRun; } else { - EPOCH_IsAutoRunning = false; - player switchMove ""; - ["Autorun stopped",5] call Epoch_Message; + EPOCH_IsAutoRunning = false; + player switchMove ""; }; }; \ No newline at end of file From 03985c460d7dddc9709051099f72da37fe832411 Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 30 Jan 2018 17:58:56 +0100 Subject: [PATCH 71/94] Snapping in Basebuilding - Increased the snapping distance for Foundations, so it is much easier to snap them correctly - Added a SnapPoint between Floors for 2x Wall height --- .../compile/building/EPOCH_staticMove.sqf | 5 ++-- .../epoch_config/Configs/CfgBaseBuilding.hpp | 30 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf index 70e5a7cb..1a814ad7 100644 --- a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf @@ -58,13 +58,14 @@ if (_class != "") then { _maxHeight = getNumber(_cfgBaseBuilding >> _objType >> "maxHeight"); _simulClass = getText(_cfgBaseBuilding >> _objType >> "simulClass"); _staticClass = getText(_cfgBaseBuilding >> _objType >> "staticClass"); + _maxSnapDistance = getNumber (_cfgBaseBuilding >> _objType >> "maxSnapDistance"); _snapChecks = getArray(("CfgSnapChecks" call EPOCH_returnConfig) >> _staticClass >> "nails"); _allowedSnapPoints = getArray(_cfgBaseBuilding >> _class >> "allowedSnapPoints"); _allowedSnapObjects = getArray(_cfgBaseBuilding >> _class >> "allowedSnapObjects"); if (_energyCost == 0) then {_energyCost = 0.1;}; - - _maxSnapDistance = 1; + if (_maxSnapDistance == 0) then {_maxSnapDistance = 1;}; + _lastCheckTime = diag_tickTime; _stabilityCheck = false; diff --git a/Sources/epoch_config/Configs/CfgBaseBuilding.hpp b/Sources/epoch_config/Configs/CfgBaseBuilding.hpp index 62418faf..82439e33 100644 --- a/Sources/epoch_config/Configs/CfgBaseBuilding.hpp +++ b/Sources/epoch_config/Configs/CfgBaseBuilding.hpp @@ -12,6 +12,7 @@ class CfgBaseBuilding { upgradeBuilding[] = {}; removeParts[] = {}; + maxSnapDistance = 1; }; class FirePlace_EPOCH : Default { @@ -41,6 +42,7 @@ class CfgBaseBuilding snapPointsPara[] = {"N","S","E","W","C"}; snapPointsPerp[] = {}; maxHeight = 2.5; + maxSnapDistance = 4.5; // snap points for Foundation_EPOCH C[] = {0,0,0.806411}; N[] = {0,10.463,0}; @@ -71,6 +73,7 @@ class CfgBaseBuilding allowedSnapPoints[] = {"N","S","E","W"}; allowedSnapObjects[] = {"Constructions_foundation_F"}; maxHeight = 2.5; + maxSnapDistance = 3; // snap points for Foundation_EPOCH C[] = {0,0,0.806411}; N[] = {0,10.463,0}; @@ -199,11 +202,12 @@ class CfgBaseBuilding simulClass = "WoodFloor_SIM_EPOCH"; staticClass = "WoodFloor_EPOCH"; GhostPreview = "WoodFloor_Ghost_EPOCH"; - snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; + snapPointsPara[] = {"NF","SF","EF","WF","C","CB","Cx2","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; energyCost = 0.2; // snap points for WoodFloor_EPOCH C[] = {0,0,3.31243}; + Cx2[] = {0,0,6.37277}; CB[] = {0,0,0.268722}; CinN[] = {0,2.87136,-0.000576986}; CinE[] = {2.87868,0,-0.000576986}; @@ -246,7 +250,7 @@ class CfgBaseBuilding }; class WoodFloor_SIM_EPOCH : WoodFloor_EPOCH { - allowedSnapPoints[] = {"NF","SF","EF","WF","C"}; + allowedSnapPoints[] = {"NF","SF","EF","WF","C","Cx2"}; allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -259,11 +263,12 @@ class CfgBaseBuilding simulClass = "WoodHalfFloor_SIM_EPOCH"; staticClass = "WoodHalfFloor_EPOCH"; GhostPreview = "WoodHalfFloor_Ghost_EPOCH"; - snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; + snapPointsPara[] = {"NF","SF","EF","WF","C","Cx2","CB","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; energyCost = 0.2; // snap points for WoodHalfFloor_EPOCH C[] = {0,0,3.31243}; + Cx2[] = {0,0,6.37277}; CB[] = {0,0,0.268722}; CinN[] = {0,2.87136,-0.000576986}; CinE[] = {1.444845,0,-0.000576986}; @@ -306,7 +311,7 @@ class CfgBaseBuilding }; class WoodHalfFloor_SIM_EPOCH : WoodHalfFloor_EPOCH { - allowedSnapPoints[] = {"C","NF","SF","EF","WF","NQF","SQF","EQF","WQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; + allowedSnapPoints[] = {"C","Cx2","NF","SF","EF","WF","NQF","SQF","EQF","WQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -319,11 +324,12 @@ class CfgBaseBuilding simulClass = "WoodQuarterFloor_SIM_EPOCH"; staticClass = "WoodQuarterFloor_EPOCH"; GhostPreview = "WoodQuarterFloor_Ghost_EPOCH"; - snapPointsPara[] = {"NF","SF","EF","WF","C","CB","NQF","SQF","EQF","WQF"}; + snapPointsPara[] = {"NF","SF","EF","WF","C","Cx2","CB","NQF","SQF","EQF","WQF"}; snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"}; energyCost = 0.1; // snap points for WoodQuarterFloor_EPOCH C[] = {0,0,3.31243}; + Cx2[] = {0,0,6.37277}; CB[] = {0,0,0.268722}; CinN[] = {0,1.43568,-0.000576986}; CinE[] = {1.444845,0,-0.000576986}; @@ -348,7 +354,7 @@ class CfgBaseBuilding }; class WoodQuarterFloor_SIM_EPOCH : WoodQuarterFloor_EPOCH { - allowedSnapPoints[] = {"C","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; + allowedSnapPoints[] = {"C","Cx2","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -365,7 +371,7 @@ class CfgBaseBuilding }; class MetalFloor_SIM_EPOCH : MetalFloor_EPOCH { - allowedSnapPoints[] = {"NF","SF","EF","WF","C"}; + allowedSnapPoints[] = {"NF","SF","EF","WF","C","Cx2"}; allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -382,7 +388,7 @@ class CfgBaseBuilding }; class MetalHalfFloor_SIM_EPOCH : MetalHalfFloor_EPOCH { - allowedSnapPoints[] = {"C","NF","SF","EF","WF","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; + allowedSnapPoints[] = {"C","Cx2","NF","SF","EF","WF","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -399,7 +405,7 @@ class CfgBaseBuilding }; class MetalQuarterFloor_SIM_EPOCH : MetalQuarterFloor_EPOCH { - allowedSnapPoints[] = {"C","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; + allowedSnapPoints[] = {"C","Cx2","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -415,7 +421,7 @@ class CfgBaseBuilding }; class CinderFloor_SIM_EPOCH : CinderFloor_EPOCH { - allowedSnapPoints[] = {"NF","SF","EF","WF","C"}; + allowedSnapPoints[] = {"NF","SF","EF","WF","C","Cx2"}; allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -432,7 +438,7 @@ class CfgBaseBuilding }; class CinderHalfFloor_SIM_EPOCH : CinderHalfFloor_EPOCH { - allowedSnapPoints[] = {"C","NF","SF","EF","WF","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; + allowedSnapPoints[] = {"C","Cx2","NF","SF","EF","WF","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; @@ -449,7 +455,7 @@ class CfgBaseBuilding }; class CinderQuarterFloor_SIM_EPOCH : CinderQuarterFloor_EPOCH { - allowedSnapPoints[] = {"C","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; + allowedSnapPoints[] = {"C","Cx2","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF"}; allowedSnapObjects[] = {"Const_floors_static_F"}; upgradeBuilding[] = {}; removeParts[] = {}; From 12e5746c82fbfc825ea4283259c0c8317ecaa149 Mon Sep 17 00:00:00 2001 From: He-Man Date: Thu, 1 Feb 2018 18:52:55 +0100 Subject: [PATCH 72/94] Snap Helper + BE kicks - Helper 3D-Icon + Line on the part, where element is snapped on (while Base-Building) - "PLAYER_REJECT_ServerVersion" kick, if connecting with older version --- .../sc/battleye/publicvariable.txt | 2 +- Server_Install_Pack/sc/battleye/scripts.txt | 4 +- .../epoch_code/compile/EPOCH_onEachFrame.sqf | 83 ++++++++++--------- .../compile/building/EPOCH_simulSwap.sqf | 3 + .../compile/building/EPOCH_staticMove.sqf | 3 + .../compile/setup/EPOCH_clientInit.sqf | 1 + changelog.md | 4 +- 7 files changed, 58 insertions(+), 42 deletions(-) diff --git a/Server_Install_Pack/sc/battleye/publicvariable.txt b/Server_Install_Pack/sc/battleye/publicvariable.txt index a06634f6..6f14e93c 100644 --- a/Server_Install_Pack/sc/battleye/publicvariable.txt +++ b/Server_Install_Pack/sc/battleye/publicvariable.txt @@ -1 +1 @@ -5 "" !="EPAH_[a-z]{5,10}" !="BIS_fnc_objectVar_obj2_[0-9]{1,10}" !="bis_fnc_sharedObjectives_serverUpdate" +5 "" !="EPAH_[a-z]{5,10}" !="BIS_fnc_objectVar_obj2_[0-9]{1,10}" !="bis_fnc_sharedObjectives_serverUpdate" !="PLAYER_REJECT_ServerVersion" diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index 25d210a0..52d47902 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -55,8 +55,8 @@ 5 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !="_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !=" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="player removeEventHandler [_x, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler" 5 switchCamera !="vehicle player switchCamera" !="_antagonist switchCamera \"Internal\";" 5 remoteControl !="fn_moduleRemoteControl.sqf" !="\"BIS_fnc_moduleRemoteControl\"" -5 drawIcon3D !="EPOCH_drawIcon3dStability" !="EPOCH_drawIcon3d" !="drawIcon3D[\"\x\addons\a3_epoch_code\Data\Member.paa\",_color,_pos,1,1,0,_text,1,0.025,\"PuristaMedium\"];\n}forEach EPOCH_ESP_TARGETS;" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_stability],_color,(getPosATL EPOCH_stabilityTarget),5,5,0,\"\",1,0.05,\"PuristaMedium\"];" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_num],_color,_pos,4,4,0,\"\",1,0.05,\"PuristaMedium\"];" !="if (_condition) then {\ndrawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text," !="drawIcon3D [\"\A3\UI_F_MP_Mark\Data\Tasks\Misc\background.paa\"" !="drawIcon3D\n[\n(_x getVariable [\"bis_fnc_reviveGet3dIcons_textures" !="drawIcon3D[\"x\addons\a3_epoch_code\Data\UI\snap_ca.paa\"" -5 drawLine3D !="{\nfor [{_i = 1}, {_i < count _x}, {_i = _i + 1}] do {\ndrawLine3D [_x select (_i - 1), _x select _i, ((BIS_tracedShooter getVari" +5 drawIcon3D !="EPOCH_drawIcon3dStability" !="EPOCH_drawIcon3d" !="drawIcon3D[\"\x\addons\a3_epoch_code\Data\Member.paa\",_color,_pos,1,1,0,_text,1,0.025,\"PuristaMedium\"];\n}forEach EPOCH_ESP_TARGETS;" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_stability],_color,(getPosATL EPOCH_stabilityTarget),5,5,0,\"\",1,0.05,\"PuristaMedium\"];" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_num],_color,_pos,4,4,0,\"\",1,0.05,\"PuristaMedium\"];" !="if (_condition) then {\ndrawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text," !="drawIcon3D [\"\A3\UI_F_MP_Mark\Data\Tasks\Misc\background.paa\"" !="drawIcon3D\n[\n(_x getVariable [\"bis_fnc_reviveGet3dIcons_textures" !="drawIcon3D[\"x\addons\a3_epoch_code\Data\UI\snap_ca.paa\"" !="drawIcon3D [\"\a3\ui_f\data\map\diary\icons\unitgroup_ca.paa\"" +5 drawLine3D !="{\nfor [{_i = 1}, {_i < count _x}, {_i = _i + 1}] do {\ndrawLine3D [_x select (_i - 1), _x select _i, ((BIS_tracedShooter getVari" !="drawLine3D [ASLToAGL (getposasl _SnapObj1),ASLToAGL (getposasl _SnapObj2), [1,0,0,1]];" 5 ctrlCreate !="_parent ctrlcreate [\"RscMessageBox\",2351];" !="_c = _dsp ctrlCreate [\"rmx_drag_RscActivePicture\", call epoch_getIDC];" !="_c = _dsp ctrlCreate [\"rmx_t1\", call epoch_getIDC];" !="ctrlCreate [\"RscProgress\",_idc + 1];" !="ctrlCreate [\"rmx_rscControlsGroup\"" !="_ListGroup = _display ctrlCreate [\"RscControlsGroupNoHScrollbars\"" !="ctrlCreate [_x,call _getIDC];" !="_mainGrp = _display ctrlCreate [\"Epoch_main_config_group\",_value];" !="ctrlCreate !="_prevButton = _display ctrlCreate [\"RscButtonMenu\", 90110, _dbg];" [\"RscControlsGroupNoScrollbars\",call epoch_getIDC];" !="ctrlCreate [\"rmx_rscPicture\",(66600 + _e)];" !="ctrlCreate [\"RscStructuredText\",call epoch_getIDC];" !="_bar = _display ctrlCreate [\"RscCustomProgress\"" !="_group = _dsp ctrlCreate [\"rmx_rscControlsGroup\", call Epoch_getIDC]" !="_control = _display ctrlCreate [\"RscControlsGroupNoScrollbars\", 5678910];" 5 ctrlClassName 5 ctrlModel diff --git a/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf b/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf index 22331faf..229d2bb9 100644 --- a/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf +++ b/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf @@ -12,36 +12,6 @@ Github: https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf */ -if (EPOCH_velTransform) then { - if (EPOCH_playerEnergy > 0) then { - _pos1 = getPosASL EPOCH_target; - _vel1 = velocity EPOCH_target; - _dir1 = vectorDir EPOCH_target; - _up1 = vectorUp EPOCH_target; - _interval = 0.1; - - if !(EP_velocityTransformation isEqualTo []) then { - EPOCH_target setvelocitytransformation[_pos1, (EP_velocityTransformation select 0), _vel1, (EP_velocityTransformation select 1), _dir1, (EP_velocityTransformation select 2), _up1, (EP_velocityTransformation select 3), _interval]; - } else { - _pos2 = player modelToWorld[EPOCH_X_OFFSET, EPOCH_Y_OFFSET, EPOCH_Z_OFFSET]; - if !(EPOCH_maxBuildingHeight == 0) then { - if (_pos2 select 2 > EPOCH_maxBuildingHeight) then { - _pos2 set[2, EPOCH_maxBuildingHeight]; - }; - }; - if ((_pos2 select 2) < 0) then { _pos2 set[2, 0] }; - if ((_pos1 distance _pos2) > 0) then { - _newpos = AGLtoASL _pos2; - if (surfaceiswater _pos2) then { - _newpos = _pos2; - }; - EPOCH_target setvelocitytransformation[_pos1, _newpos, _vel1, _vel1, _dir1, _dir1, _up1, _up1, _interval]; - }; - }; - } else { - EPOCH_velTransform = false; - }; -}; if (!isNull EPOCH_currentTarget && vehicle player == player) then { _currentTarget = EPOCH_currentTarget; @@ -137,15 +107,52 @@ if (EPOCH_drawIcon3d) then { }forEach EPOCH_arr_countdown; }; -{ - _distance = player distance _x; - if (_distance < 9) then { - _pos = _x; - _color = [1, 1, 0, 0.7]; - _size = 1; - drawIcon3D["x\addons\a3_epoch_code\Data\UI\snap_ca.paa", _color, _pos, _size, _size, 0, "", 1, _size / 60, "PuristaMedium"]; +if !(isnull EPOCH_target) then { + if (EPOCH_velTransform) then { + if (EPOCH_playerEnergy > 0) then { + _pos1 = getPosASL EPOCH_target; + _vel1 = velocity EPOCH_target; + _dir1 = vectorDir EPOCH_target; + _up1 = vectorUp EPOCH_target; + _interval = 0.1; + + if !(EP_velocityTransformation isEqualTo []) then { + EPOCH_target setvelocitytransformation[_pos1, (EP_velocityTransformation select 0), _vel1, (EP_velocityTransformation select 1), _dir1, (EP_velocityTransformation select 2), _up1, (EP_velocityTransformation select 3), _interval]; + } else { + _pos2 = player modelToWorld[EPOCH_X_OFFSET, EPOCH_Y_OFFSET, EPOCH_Z_OFFSET]; + if !(EPOCH_maxBuildingHeight == 0) then { + if (_pos2 select 2 > EPOCH_maxBuildingHeight) then { + _pos2 set[2, EPOCH_maxBuildingHeight]; + }; + }; + if ((_pos2 select 2) < 0) then { _pos2 set[2, 0] }; + if ((_pos1 distance _pos2) > 0) then { + _newpos = AGLtoASL _pos2; + if (surfaceiswater _pos2) then { + _newpos = _pos2; + }; + EPOCH_target setvelocitytransformation[_pos1, _newpos, _vel1, _vel1, _dir1, _dir1, _up1, _up1, _interval]; + }; + }; + } else { + EPOCH_velTransform = false; + }; }; -}forEach EPOCH_arr_snapPoints; + { + _distance = player distance _x; + if (_distance < 9) then { + _pos = _x; + _color = [1, 1, 0, 0.7]; + _size = 1; + drawIcon3D["x\addons\a3_epoch_code\Data\UI\snap_ca.paa", _color, _pos, _size, _size, 0, "", 1, _size / 60, "PuristaMedium"]; + }; + }forEach EPOCH_arr_snapPoints; + if !(EPOCH_arr_snapObjects isequalto []) then { + EPOCH_arr_snapObjects params [["_SnapObj1",objNull],["_SnapObj2",objNull]]; + drawIcon3D ["\a3\ui_f\data\map\diary\icons\unitgroup_ca.paa", [1,0,0,1], ASLtoATL (getposASL _SnapObj1), 1.5, 1.5,0]; + drawLine3D [ASLToAGL (getposasl _SnapObj1),ASLToAGL (getposasl _SnapObj2), [1,0,0,1]]; + }; +}; { if (!isNull _x) then { diff --git a/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf b/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf index 31210ff1..c125f0d5 100644 --- a/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf @@ -218,6 +218,7 @@ if (isText(_simulClassConfig)) then { _dir2 = [vectorDir _nearestObject, _direction] call BIS_fnc_returnVector; _up2 = (vectorUp _nearestObject); EP_velocityTransformation = [AGLToASL _pos2,_vel2,_dir2,_up2]; + EPOCH_arr_snapObjects = [_nearestObject, _currentTarget]; }; }; if (!_isSnap) then { @@ -230,6 +231,7 @@ if (isText(_simulClassConfig)) then { } else { EP_velocityTransformation = []; }; + EPOCH_arr_snapObjects = []; }; }; [_playerEnergyKeyFinal, -_energyCost, 2500 , 0] call EPOCH_fnc_setVariableLimited; @@ -237,6 +239,7 @@ if (isText(_simulClassConfig)) then { }; _currentTarget removeEventHandler["EpeContactStart", _onContactEH]; EPOCH_velTransform = false; + EPOCH_arr_snapObjects = []; _disallowed = ["Tarp_SIM_EPOCH", "Freezer_SIM_EPOCH", "Fridge_SIM_EPOCH", "Shelf_SIM_EPOCH", "Pelican_SIM_EPOCH", "Wardrobe_SIM_EPOCH", "Bed_SIM_EPOCH", "Couch_SIM_EPOCH", "Cooker_SIM_EPOCH", "Chair_SIM_EPOCH", "Filing_SIM_EPOCH", "Table_SIM_EPOCH", "Locker_SIM_EPOCH", "ToolRack_SIM_EPOCH", "Shoebox_SIM_EPOCH", "Bunk_SIM_EPOCH", "Jack_SIM_EPOCH", "toilet_SIM_EPOCH", "KitchenSink_SIM_EPOCH"]; if !(_class in _disallowed) then { _currentTarget spawn EPOCH_countdown; diff --git a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf index 1a814ad7..9a410b6a 100644 --- a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf @@ -145,6 +145,7 @@ if (_class != "") then { _currentOffSet = _offSet; EPOCH_doRotate = false; EPOCH_arr_snapPoints = []; + EPOCH_arr_snapObjects = []; EP_snap = objnull; _pos2ATL = _pos2; if (surfaceIsWater _pos2ATL) then { @@ -359,6 +360,7 @@ if (_class != "") then { }; if (count _arr_snapPoints >= 2) exitWith { EPOCH_arr_snapPoints = _arr_snapPoints; } } forEach _snapChecks; + EPOCH_arr_snapObjects = [_nearestObject, _currentTarget]; }; }; if (_snapped) exitwith {}; @@ -378,6 +380,7 @@ if (_class != "") then { }; EPOCH_arr_snapPoints = []; + EPOCH_arr_snapObjects = []; { detach _x; diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf index 8ba26bff..5ca88d1a 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf @@ -40,6 +40,7 @@ EPOCH_Z_OFFSET = 0; EPOCH_X_OFFSET = 0; EPOCH_Y_OFFSET = 5; EPOCH_arr_snapPoints = []; +EPOCH_arr_snapObjects = []; EPOCH_prevTarget = objNull; EPOCH_interactOption = 0; EPOCH_playerStaminaMax = 100; diff --git a/changelog.md b/changelog.md index 5f01c738..7ef41732 100644 --- a/changelog.md +++ b/changelog.md @@ -29,6 +29,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - If your legs are broken, you get a hint "can not autorun - legs are broken" - If the terrain is too steep, you only walk in AutoRun - Inside Water, you can not Autorun +- Helper 3D-Icon + Line on the part, where element is snapped on (while Base-Building) @He-Man ### Fixed - False BE kicks since Arma 3 1.80 update. - Nightlight now also follow players inside Vehicles @He-Man @@ -41,7 +42,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Garden Plot had no physical ground @Helion4 ### Changed - RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. @AWOL -- SnapPoints for Building objects (especially half / quarter Floors) @He-Man +- SnapPoints for Building objects (especially full / half / quarter Floors) @He-Man - Some performance tweaks - Inventory will be opened automatically, if "you found something" @AWOL - EPOCH Events reworked (Markers will change if players near / event looted) @DirtySanchez @@ -52,6 +53,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Not full magazines are colored: Yellow (nearly full) -> Red (nearly empty) - You also get a Tooltip, how much bullets left in magazine - The prices are calculated by the left bullets in the magazine +- Increased snap-distance for Foundations (much easier to find snap positions) @He-Man ## [1.0.0.1077] - 2017-11-05 ### Added From 1f96a6e6253ac7ae58e8b3d7aae1110d44dd3942 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Sun, 11 Feb 2018 11:05:53 -0600 Subject: [PATCH 73/94] Shipwreck loot upgrade Configs: -Custom wrecks : ClassName string expected -Custom locations : Posistion Array{x,y,z} expected Description: -This upgrade was to provide maps without the built-in terrain objects "SHIPWRECK" to have this feature available with a few custom locations added to the servers config. Function Changes: -Custom Locations and Wrecks Classnames are pulled from the config variable. -Wrecks are created and added to the already gathered array of Terrain Objects "SHIPWRECK". -On Maps without these terrain objects, the original array will be empty[], and then the custom locations will populate it from there. -On Maps with these terrain objects, the custom locations are added to the already populated array of "SHIPWRECK"'s and will then become part of the random selection of all known shipwrecks and custom locations. Remember custom shipwrecks have a distance check and will stop a loot spawn if there is already another shipwreck within the configured amount. --- .../EPOCH_server_spawnBoatLoot.sqf | 24 +++++++++++++------ Sources/epoch_server_settings/config.cpp | 2 ++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf index a7aac746..091506ad 100644 --- a/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf +++ b/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf @@ -13,22 +13,32 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_looting/EPOCH_server_spawnBoatLoot.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_cfgEpoch", "_debug", "_worldSize", "_shipwrecks", "_total", "_count", "_distFromOthers", "_spawnedLoot","_tooClose", "_wreck", "_position", "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_rEvents", "_thisEvent"]; +private ["_cfgEpoch", "_debug", "_worldSize", "_shipwrecks", "_customLocs", "_customWrecks", "_totalCustomLocs", "_customWreck", "_total", "_count", "_distFromOthers", "_spawnedLoot","_tooClose", "_wreck", "_position", "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_rEvents", "_thisEvent"]; //[[[end]]] _cfgEpoch = configFile >> "CfgEpoch" >> worldname; _debug = if(getNumber(_cfgEpoch >> "debugShipwreckLoot") isEqualTo 1)then{true}else{false}; - +// Check for shipwreck loot allowed if (getNumber(_cfgEpoch >> "shipwreckLootEnabled") isEqualTo 1) then { + // Check for total shipwrecks allowed + _total = getNumber(_cfgEpoch >> "maxSpawnedShipwrecks"); + if(_total isEqualTo 0)exitWith{if(_debug)then{diag_log "EPOCHDebug: no shipwrecks allowed"}}; + // Load shipwrecks and custom locations _worldSize = worldSize/2; _shipwrecks = nearestTerrainObjects [ [_worldSize, _worldSize], ["SHIPWRECK"], _worldSize]; - _total = getNumber(_cfgEpoch >> "maxSpawnedShipwrecks"); - + _customLocs = getArray(_cfgEpoch >> "shipwreckCustomLocs"); + _customWrecks = getArray(_cfgEpoch >> "shipwreckCustomWrecks"); + _totalCustomLocs = count(_customLocs); + if(_totalCustomLocs > 0)then{ + for "_c" from 0 to _totalCustomLocs-1 do { + _customWreck = (selectRandom _customWrecks) createVehicle (_customLocs select _c); + _shipwrecks pushBack _customWreck; + }; + }; if(_shipwrecks isEqualTo [])exitWith{if(_debug)then{diag_log "EPOCHDebug: no shipwrecks found"}}; - if(_total isEqualTo 0)exitWith{if(_debug)then{diag_log "EPOCHDebug: no shipwrecks allowed"}}; - + // Check combined array count _count = count(_shipwrecks); if(_count < _total)then{if(_debug)then{diag_log "EPOCHDebug: not enough shipwrecks to fill your needs on this map, trying all available locations!"}}; - + // Start spawning loot _distFromOthers = getNumber(_cfgEpoch >> "distFromOtherShipwrecks"); _spawnedLoot = []; for "_i" from 1 to _total do { diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 0c392b3d..6c966529 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -104,6 +104,8 @@ class CfgEpoch distFromOtherShipwrecks = 750; shipwreckDecayMarkerColor = "ColorBrown"; // decay changes icon (_markers select 2) shipwreckCompromisedColor = "ColorRed"; // compromised changes active surround (_markers select 0) + shipwreckCustomWrecks[] = {"Land_UWreck_FishingBoat_F", "Land_UWreck_Heli_Attack_02_F", "Land_UWreck_MV22_F"}; + shipwreckCustomLocs[] = {}; // Plant Spawner debugPlantSpawner = 0; From 47cce77649174deff6147a383aab80bfb81d078f Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 13 Feb 2018 22:33:14 +0100 Subject: [PATCH 74/94] Random Money lump with Mapmarker (like Plants) Take the Money with Space Menu --- .../@epochhive/epochconfig.hpp | 1 + .../epoch_config/Configs/CfgMarkerSets.hpp | 7 ++ .../epoch_trading/EPOCH_server_takeCrypto.sqf | 3 + .../EpochEvents/MoneyDrop.sqf | 103 ++++++++++++++++++ Sources/epoch_server_settings/config.cpp | 14 ++- changelog.md | 1 + 6 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index fd460bea..19ed1b1e 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -19,6 +19,7 @@ forceRestartTime = 14400; // 4 hour restarts { 900, "ChangeWeather", 1 , 1, -1, {} ,{"VR"}}, { 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}}, { 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}}, + { 600, "MoneyDrop", 0 , 1 , -1, {} ,{"VR"}}, //No comma on last Entry { 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry }; diff --git a/Sources/epoch_config/Configs/CfgMarkerSets.hpp b/Sources/epoch_config/Configs/CfgMarkerSets.hpp index c10f7f82..5b4be020 100644 --- a/Sources/epoch_config/Configs/CfgMarkerSets.hpp +++ b/Sources/epoch_config/Configs/CfgMarkerSets.hpp @@ -202,4 +202,11 @@ class CfgMarkerSets {"","ICON","EpochShipwreck","ColorOrange",1,{0.5,0.5}} }; }; + class MoneyDrop { + markerArray[] = { + {"","ICON","EpochCash","ColorGreen",1,{0.9,0.9}}, + {"","ICON","","ColorBlack",1,{0.8,0.8}}, + {"","ICON","","ColorGreen",0.2,{0.8,0.8}}, + }; + }; }; diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf index b711305a..3bffdcf9 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf @@ -25,6 +25,9 @@ _getCrypto = _object getVariable["Crypto", 0]; if (_getCrypto > 0) then { // remove crypto from object _object setVariable["Crypto", nil, true]; + if (_object getvariable ["RemoveOnTake",false]) then { + deletevehicle _object; + }; // send data back to player [_player,_getCrypto] call EPOCH_server_effectCrypto; // debug and logging. diff --git a/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf b/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf new file mode 100644 index 00000000..5024fa6f --- /dev/null +++ b/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf @@ -0,0 +1,103 @@ +/* + Earthquake and Mineral Deposit Event + by He-Man - EpochMod.com + + Improvements and or bugfixes and other contributions are welcome via the github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf +*/ +//[[[cog import generate_private_arrays ]]] +private ["_cfgEpoch", "_debug", "_limit", "_counter", "_others", "_distFromOthers", "_position", "_goodPos", "_playersNearEpicenter", "_chance", "_values","_spawncount" ,"_scatter" ,"_packs" ,"_packPos" , "_item", "_debugMkr", "_markers", "_originalColors", "_showMarkers", "_decayMarkerColor", "_compromisedColor", "_spawned", "_decayTime", "_serverSettingsConfig", "_timeMultiplier", "_rEvents", "_thisEvent"]; +//[[[end]]] +_cfgEpoch = configFile >> "CfgEpoch" >> worldname; +_debug = if(getNumber(_cfgEpoch >> "debugMoneyDrop") isEqualTo 1)then{true}else{false}; +_limit = getNumber(_cfgEpoch >> "maxMoneyDrops"); +_counter = missionNameSpace getVariable["EPOCH_MoneyDropCounter",0]; +_others = missionNameSpace getVariable["EPOCH_MoneyDrops", [[0,0,0]] ]; +_distFromOthers = getNumber(_cfgEpoch >> "distFromOtherMoneyDrops"); + +//STOP THE SCRIPT AND EXIT IF THE COUNTER IS TOO HIGH. +if (_counter >= _limit) exitWith { + if (_debug) then {diag_log "DEBUG: suppressed MONEYDROP spawn over limit"}; +}; + +for "_i" from 0 to 100 step 1 do { + _position = [epoch_centerMarkerPosition, 0, EPOCH_dynamicVehicleArea, 10, 0, 1000, 0] call BIS_fnc_findSafePos; + _goodPos = true; + + _goodPos = [_position, true, true, false, _others, _distFromOthers] call EPOCH_server_isNearChecks; + + if(_goodPos)then{ + _i = 100; + }else{ + _position = []; + }; +}; + +if ((count _position) == 2) then{ + _playersNearEpicenter = _position nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 1000]; + // decrease chance with more players + _chance = 0.2 + (linearConversion [1, 100, (count allPlayers), 0, 0.5, true]); + if ((random 1) < _chance) then { + + _values = getArray(_cfgEpoch >> "MoneyDropValues"); + _values params ["_PacksArr","_ValueArr"]; + _PacksArr params ["_packsmin","_packsmax"]; + _ValueArr params ["_minvalue","_maxvalue"]; + + _spawncount = round (_packsmin + random (_packsmax-_packsmin)); + + // Spawn Scattered Money + _scatter = 10; + _packs = []; + for "_i" from 0 to (_spawncount - 1) step 1 do { + _value = round (_minvalue + random (_maxvalue-_minvalue)); + _item = createVehicle["Land_Money_F", _position, [], _scatter, "NONE"]; + _item setVariable ["Crypto",_value,true]; + _item setVariable ["RemoveOnTake",true]; + _packs pushBack _item; + if(_debug)then{ + _packPos = getPosATL _item; + _debugMkr = createMarker [str(_packPos), _packPos]; + _debugMkr setMarkerShape "ICON"; + _debugMkr setMarkerType "mil_dot"; + _debugMkr setMarkerColor "ColorRed"; + }; + }; + + // Place markers and get decay, compromised and original colors + _markers = []; + _originalColors = []; + _showMarkers = if(getNumber(_cfgEpoch >> "showMoneyMarkers") isEqualTo 1)then{true}else{false}; + _decayMarkerColor = getText(_cfgEpoch >> "MoneyDropDecayMarkerColor"); + _compromisedColor = getText(_cfgEpoch >> "MoneyDropCompromisedColor"); + if (_showMarkers) then{ + _markers = ["MoneyDrop",_position] call EPOCH_server_createGlobalMarkerSet; + { + _originalColors pushBack (getMarkerColor _x); + }forEach _markers; + + // Check for HeightenedPlayerVsPlayer false and remove comprimised coloring + if!(getNumber(_cfgEpoch >> "HeightenedPlayerVsPlayer") isEqualTo 1)then{ + _compromisedColor = getMarkerColor (_markers select 0); + }; + }; + + // Tick Counter +1 + _counter = _counter + 1; + missionNameSpace setVariable["EPOCH_MoneyDropCounter",_counter]; + + // ADD POSITION TO OTHERS ARRAY + missionNameSpace setVariable["EPOCH_MoneyDrops", _others + [_position]]; + + // SEND EVENT TO MONITOR + _decayTime = getNumber(_cfgEpoch >> "MoneyDropDecayTime"); + _serverSettingsConfig = configFile >> "CfgEpochServer"; + _timeMultiplier = ([_serverSettingsConfig, "timeMultiplier", 1] call EPOCH_fnc_returnConfigEntry); + _rEvents = missionNameSpace getVariable["EPOCH_RunningEvents",[]]; + _thisEvent = [_position, _packs, [], "MoneyDropCounter", diag_tickTime, (_decayTime * _timeMultiplier), _showMarkers, _markers, _originalColors, _decayMarkerColor, _compromisedColor]; + missionNameSpace setVariable["EPOCH_RunningEvents",_rEvents + [_thisEvent]]; + if (_debug) then { + diag_log format["EPOCHDebug: earthquakeSpawner-%1", missionNameSpace getVariable["EPOCH_RunningEvents",[]]]; + }; + }; +}; diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 6c966529..0cffb63f 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -106,7 +106,7 @@ class CfgEpoch shipwreckCompromisedColor = "ColorRed"; // compromised changes active surround (_markers select 0) shipwreckCustomWrecks[] = {"Land_UWreck_FishingBoat_F", "Land_UWreck_Heli_Attack_02_F", "Land_UWreck_MV22_F"}; shipwreckCustomLocs[] = {}; - + // Plant Spawner debugPlantSpawner = 0; showPlantMarkers = 1; @@ -136,7 +136,17 @@ class CfgEpoch earthquakeDecayMarkerColor = "ColorBrown"; earthquakeCompromisedColor = "ColorRed"; availableMinerals[] = {"MineralDepositCopper_EPOCH", "MineralDepositGold_EPOCH", "MineralDepositSilver_EPOCH"}; - + + // MoneyDrop + debugMoneyDrop = 0; + showMoneyMarkers = 1; + maxMoneyDrops = 3; + distFromOtherMoneyDrops = 1500; + MoneyDropDecayTime = 2400; + MoneyDropDecayMarkerColor = "ColorBrown"; + MoneyDropCompromisedColor = "ColorRed"; + MoneyDropValues[] = {{3,6},{50,120}}; // {{min money lumps, max money lumps},{min crypto per lump, max crypto per lump}} + // Container Spawner debugContainerSpawner = 0; showContainerMarkers = 1; diff --git a/changelog.md b/changelog.md index 7ef41732..cad77981 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a ## [1.1.0.0] - Unreleased ### Added - Plant Spawner: vehicle object for sunflower. @Helion4 +- MoneyDrop Event: Random Money lump with Mapmarker (like Plants) @He-Man - Examples for Vehicle upgrades for Server Admins into CfgVehicleUpgrades.hpp @He-Man - Make Lighter refillable at Fuel-Sources (Gasstations / Vehicles) @He-Man - Make Trader more configurable in epochconfig.hpp @He-Man From fbd105186ce97931355d336794eac23f170ad684 Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 13 Feb 2018 22:35:02 +0100 Subject: [PATCH 75/94] Comment --- Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf b/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf index 5024fa6f..6a85cba6 100644 --- a/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf +++ b/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf @@ -1,5 +1,5 @@ /* - Earthquake and Mineral Deposit Event + Money Drop Event by He-Man - EpochMod.com Improvements and or bugfixes and other contributions are welcome via the github: From d3cd89958294ac7b600f3e5c667d03ee1cad9299 Mon Sep 17 00:00:00 2001 From: He-Man Date: Fri, 16 Feb 2018 16:41:44 +0100 Subject: [PATCH 76/94] Less money drops --- Server_Install_Pack/@epochhive/epochconfig.hpp | 2 +- Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index 19ed1b1e..d249291e 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -19,7 +19,7 @@ forceRestartTime = 14400; // 4 hour restarts { 900, "ChangeWeather", 1 , 1, -1, {} ,{"VR"}}, { 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}}, { 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}}, - { 600, "MoneyDrop", 0 , 1 , -1, {} ,{"VR"}}, //No comma on last Entry + { 900, "MoneyDrop", 0 , 1 , -1, {} ,{"VR"}}, //No comma on last Entry { 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry }; diff --git a/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf b/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf index 6a85cba6..7ad4eded 100644 --- a/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf +++ b/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf @@ -36,7 +36,7 @@ for "_i" from 0 to 100 step 1 do { if ((count _position) == 2) then{ _playersNearEpicenter = _position nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 1000]; // decrease chance with more players - _chance = 0.2 + (linearConversion [1, 100, (count allPlayers), 0, 0.5, true]); + _chance = 0.1 + (linearConversion [1, 100, (count allPlayers), 0, 0.5, true]); if ((random 1) < _chance) then { _values = getArray(_cfgEpoch >> "MoneyDropValues"); From 7822902e0f22c5448ec07f785d994c91f03cba0f Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 24 Feb 2018 12:37:37 +0100 Subject: [PATCH 77/94] Comma --- Sources/epoch_config/Configs/CfgMarkerSets.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_config/Configs/CfgMarkerSets.hpp b/Sources/epoch_config/Configs/CfgMarkerSets.hpp index 5b4be020..5a95f757 100644 --- a/Sources/epoch_config/Configs/CfgMarkerSets.hpp +++ b/Sources/epoch_config/Configs/CfgMarkerSets.hpp @@ -206,7 +206,7 @@ class CfgMarkerSets markerArray[] = { {"","ICON","EpochCash","ColorGreen",1,{0.9,0.9}}, {"","ICON","","ColorBlack",1,{0.8,0.8}}, - {"","ICON","","ColorGreen",0.2,{0.8,0.8}}, + {"","ICON","","ColorGreen",0.2,{0.8,0.8}} }; }; }; From 0d051e133f7b194f3e29e7377d6600ac0ee1551d Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 26 Feb 2018 21:09:39 +0100 Subject: [PATCH 78/94] Reload Loadout on Pause Thx to Grahame for the inspiration to add it just before logout. This should fix the login without clothings. This will not fix not visible Clothings for others, because it only runs just before logout, but Players can force it be pressing ESC and waiting until this command is fired. --- Sources/epoch_code/gui/scripts/Epoch_onPause.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf b/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf index 760f7454..1624afe9 100644 --- a/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf +++ b/Sources/epoch_code/gui/scripts/Epoch_onPause.sqf @@ -74,6 +74,7 @@ _respawnButton ctrlEnable false; (isNull _display) || ((_startTime - diag_tickTime) <= 0) }; if (!isNull _display) then { + player setUnitLoadout (getUnitLoadout player); missionnamespace setvariable ["EPOCH_forceUpdateNow",true]; }; }; From 950c01d0c9b44ecb0e1b55d607b22863b29c2f1a Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 5 Mar 2018 20:11:44 +0100 Subject: [PATCH 79/94] Missing Configs + Smal Admin Menu fixes --- Sources/epoch_config/Configs/CfgItemSort.hpp | 117 +++++++++++++++--- Sources/epoch_config/Configs/CfgPricing.hpp | 68 +++++++++- .../init/server_securityfunctions.sqf | 8 +- changelog.md | 8 ++ 4 files changed, 174 insertions(+), 27 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgItemSort.hpp b/Sources/epoch_config/Configs/CfgItemSort.hpp index 60f3c617..3df89114 100644 --- a/Sources/epoch_config/Configs/CfgItemSort.hpp +++ b/Sources/epoch_config/Configs/CfgItemSort.hpp @@ -1132,28 +1132,84 @@ class CfgItemSort "ItemFireExtinguisher" }; Vehicles_Land[] = { - "ebike_epoch", // Motorrad + "ebike_epoch", // Motorcycle "C_Offroad_01_EPOCH", // Offroader + "C_Offroad_01_EPOCH1", + "C_Offroad_01_EPOCH2", + "C_Offroad_01_EPOCH3", + "C_Offroad_01_EPOCH4", "C_Quadbike_01_EPOCH", // Quad - "C_Hatchback_01_EPOCH", // Limousine - "C_Hatchback_02_EPOCH", // Sportlimousine + "C_Hatchback_01_EPOCH", // Hatchback + "C_Hatchback_01_EPOCH1", + "C_Hatchback_01_EPOCH2", + "C_Hatchback_01_EPOCH3", + "C_Hatchback_01_EPOCH4", + "C_Hatchback_02_EPOCH", // Hatchback Sport + "C_Hatchback_02_EPOCH1", + "C_Hatchback_02_EPOCH2", + "C_Hatchback_02_EPOCH3", + "C_Hatchback_02_EPOCH4", "C_SUV_01_EPOCH", // SUV - "C_Van_01_box_EPOCH", // Truck Boxer + "C_SUV_01_EPOCH1", + "C_SUV_01_EPOCH2", + "C_SUV_01_EPOCH3", + "C_SUV_01_EPOCH4", + "C_Van_01_box_EPOCH", // Truck Box + "C_Van_01_box_EPOCH1", + "C_Van_01_box_EPOCH2", + "C_Van_01_box_EPOCH3", + "C_Van_01_box_EPOCH4", "C_Van_01_transport_EPOCH", // Truck + "C_Van_01_transport_EPOCH1", + "C_Van_01_transport_EPOCH2", + "C_Van_01_transport_EPOCH3", + "C_Van_01_transport_EPOCH4", "K01", // Kart "K02", // Kart Blueking "K03", // Kart Redstone "K04", // Kart Vrana - "B_Truck_01_transport_EPOCH", // HEMTT Transport - Personen - "B_Truck_01_covered_EPOCH", // HEMTT Transporter abgedeckt - "B_Truck_01_mover_EPOCH", // HEMTT - "B_Truck_01_box_EPOCH", - "O_Truck_02_covered_EPOCH", - "O_Truck_02_transport_EPOCH", - "O_Truck_03_covered_EPOCH", - "O_Truck_03_transport_F", + "B_Truck_01_transport_EPOCH", // HEMTT Transport + "B_Truck_01_transport_EPOCH1", + "B_Truck_01_transport_EPOCH2", + "B_Truck_01_transport_EPOCH3", + "B_Truck_01_transport_EPOCH4", + "B_Truck_01_covered_EPOCH", // HEMTT Covered + "B_Truck_01_covered_EPOCH1", + "B_Truck_01_covered_EPOCH2", + "B_Truck_01_covered_EPOCH3", + "B_Truck_01_covered_EPOCH4", + "B_Truck_01_mover_EPOCH", // HEMTT Mover + "B_Truck_01_mover_EPOCH1", + "B_Truck_01_mover_EPOCH2", + "B_Truck_01_mover_EPOCH3", + "B_Truck_01_mover_EPOCH4", + "B_Truck_01_box_EPOCH", // HEMTT Box + "B_Truck_01_box_EPOCH1", + "B_Truck_01_box_EPOCH2", + "B_Truck_01_box_EPOCH3", + "B_Truck_01_box_EPOCH4", + "O_Truck_02_covered_EPOCH", // Zamak Covered + "O_Truck_02_covered_EPOCH1", + "O_Truck_02_covered_EPOCH2", + "O_Truck_02_covered_EPOCH3", + "O_Truck_02_covered_EPOCH4", + "O_Truck_02_transport_EPOCH", // Zamak Transport + "O_Truck_02_transport_EPOCH1", + "O_Truck_02_transport_EPOCH2", + "O_Truck_02_transport_EPOCH3", + "O_Truck_02_transport_EPOCH4", + "O_Truck_03_covered_EPOCH", // Tempest Covered + "O_Truck_03_covered_EPOCH1", + "O_Truck_03_covered_EPOCH2", + "O_Truck_03_covered_EPOCH3", + "O_Truck_03_covered_EPOCH4", + "O_Truck_03_transport_F", // Tempest Transport + "O_Truck_03_transport_F1", + "O_Truck_03_transport_F2", + "O_Truck_03_transport_F3", + "O_Truck_03_transport_F4", // Funktions Fahrzeuge |Repair,Heal,Tank| "C_Offroad_01_repair_F", @@ -1163,7 +1219,11 @@ class CfgItemSort "B_Truck_01_ammo_F", "B_Truck_01_fuel_F", "B_Truck_01_medical_F", - "O_Truck_02_box_EPOCH", + "O_Truck_02_box_EPOCH", // Zamak Box (Medical) + "O_Truck_02_box_EPOCH1", + "O_Truck_02_box_EPOCH2", + "O_Truck_02_box_EPOCH3", + "O_Truck_02_box_EPOCH4", "O_Truck_02_medical_F", "O_Truck_02_Ammo_F", "O_Truck_02_fuel_F", @@ -1175,10 +1235,28 @@ class CfgItemSort "O_G_Offroad_01_armed_F", "I_G_Offroad_01_armed_F", "B_G_Offroad_01_armed_F", + "B_G_Offroad_01_armed_EPOCH", + "B_G_Offroad_01_armed_EPOCH1", + "B_G_Offroad_01_armed_EPOCH2", + "B_G_Offroad_01_armed_EPOCH3", + "B_G_Offroad_01_armed_EPOCH4", "B_MRAP_01_EPOCH", + "B_MRAP_01_EPOCH1", + "B_MRAP_01_EPOCH2", + "B_MRAP_01_EPOCH3", + "B_MRAP_01_EPOCH4", "O_MRAP_02_F", + "O_MRAP_02_EPOCH", + "O_MRAP_02_EPOCH1", + "O_MRAP_02_EPOCH2", + "O_MRAP_02_EPOCH3", + "O_MRAP_02_EPOCH4", "I_MRAP_03_F", "I_MRAP_03_EPOCH", + "I_MRAP_03_EPOCH1", + "I_MRAP_03_EPOCH2", + "I_MRAP_03_EPOCH3", + "I_MRAP_03_EPOCH4", "B_MRAP_01_hmg_F", "O_MRAP_02_hmg_F", "I_MRAP_03_hmg_F", @@ -1240,6 +1318,9 @@ class CfgItemSort "C_Heli_light_01_furious_F", "C_Heli_light_01_wave_F", "C_Heli_light_01_sheriff_F", + "C_Heli_Light_01_civil_EPOCH", + "C_Heli_Light_01_civil_2seat_EPOCH", + "C_Heli_Light_01_civil_4seat_EPOCH", "O_Heli_Light_02_unarmed_EPOCH", "I_Heli_light_03_unarmed_EPOCH", @@ -1259,13 +1340,11 @@ class CfgItemSort "I_Heli_light_03_F", // Apex - "B_T_VTOL_01_vehicle_blue_F", - "B_T_VTOL_01_infantry_blue_F", - "B_T_VTOL_01_infantry_olive_F", + "B_T_VTOL_01_vehicle_blue_EPOCH", + "B_T_VTOL_01_infantry_olive_EPOCH", - "O_T_VTOL_02_vehicle_grey_F", - "O_T_VTOL_02_vehicle_F", - "O_T_VTOL_02_infantry_F" + "O_T_VTOL_02_infantry_EPOCH", + "O_T_VTOL_02_vehicle_grey_EPOCH" }; Vehicles_Ship[] = { diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp index cbf500f3..4b19b87f 100644 --- a/Sources/epoch_config/Configs/CfgPricing.hpp +++ b/Sources/epoch_config/Configs/CfgPricing.hpp @@ -4403,10 +4403,18 @@ class CfgPricing { price = 1000; }; + class C_Van_01_box_EPOCH1: C_Van_01_box_EPOCH{}; + class C_Van_01_box_EPOCH2: C_Van_01_box_EPOCH{}; + class C_Van_01_box_EPOCH3: C_Van_01_box_EPOCH{}; + class C_Van_01_box_EPOCH4: C_Van_01_box_EPOCH{}; class C_Van_01_transport_EPOCH { price = 1000; }; + class C_Van_01_transport_EPOCH1: C_Van_01_transport_EPOCH{}; + class C_Van_01_transport_EPOCH2: C_Van_01_transport_EPOCH{}; + class C_Van_01_transport_EPOCH3: C_Van_01_transport_EPOCH{}; + class C_Van_01_transport_EPOCH4: C_Van_01_transport_EPOCH{}; class C_Boat_Civil_01_EPOCH { price = 750; @@ -4431,10 +4439,26 @@ class CfgPricing { price = 2500; }; + class B_MRAP_01_EPOCH1: B_MRAP_01_EPOCH{}; + class B_MRAP_01_EPOCH2: B_MRAP_01_EPOCH{}; + class B_MRAP_01_EPOCH3: B_MRAP_01_EPOCH{}; + class B_MRAP_01_EPOCH4: B_MRAP_01_EPOCH{}; + class O_MRAP_02_EPOCH + { + price = 2500; + }; + class O_MRAP_02_EPOCH1: O_MRAP_02_EPOCH{}; + class O_MRAP_02_EPOCH2: O_MRAP_02_EPOCH{}; + class O_MRAP_02_EPOCH3: O_MRAP_02_EPOCH{}; + class O_MRAP_02_EPOCH4: O_MRAP_02_EPOCH{}; class I_MRAP_03_EPOCH { price = 2500; }; + class I_MRAP_03_EPOCH1: I_MRAP_03_EPOCH{}; + class I_MRAP_03_EPOCH2: I_MRAP_03_EPOCH{}; + class I_MRAP_03_EPOCH3: I_MRAP_03_EPOCH{}; + class I_MRAP_03_EPOCH4: I_MRAP_03_EPOCH{}; class B_G_Offroad_01_armed_EPOCH { price = 2500; @@ -4447,34 +4471,66 @@ class CfgPricing { price = 1000; }; + class B_Truck_01_transport_EPOCH1: B_Truck_01_transport_EPOCH {}; + class B_Truck_01_transport_EPOCH2: B_Truck_01_transport_EPOCH {}; + class B_Truck_01_transport_EPOCH3: B_Truck_01_transport_EPOCH {}; + class B_Truck_01_transport_EPOCH4: B_Truck_01_transport_EPOCH {}; class B_Truck_01_covered_EPOCH { price = 1000; }; + class B_Truck_01_covered_EPOCH1: B_Truck_01_covered_EPOCH {}; + class B_Truck_01_covered_EPOCH2: B_Truck_01_covered_EPOCH {}; + class B_Truck_01_covered_EPOCH3: B_Truck_01_covered_EPOCH {}; + class B_Truck_01_covered_EPOCH4: B_Truck_01_covered_EPOCH {}; class B_Truck_01_mover_EPOCH { price = 1000; }; + class B_Truck_01_mover_EPOCH1: B_Truck_01_mover_EPOCH {}; + class B_Truck_01_mover_EPOCH2: B_Truck_01_mover_EPOCH {}; + class B_Truck_01_mover_EPOCH3: B_Truck_01_mover_EPOCH {}; + class B_Truck_01_mover_EPOCH4: B_Truck_01_mover_EPOCH {}; class B_Truck_01_box_EPOCH { price = 1000; }; + class B_Truck_01_box_EPOCH1: B_Truck_01_box_EPOCH {}; + class B_Truck_01_box_EPOCH2: B_Truck_01_box_EPOCH {}; + class B_Truck_01_box_EPOCH3: B_Truck_01_box_EPOCH {}; + class B_Truck_01_box_EPOCH4: B_Truck_01_box_EPOCH {}; class O_Truck_02_covered_EPOCH { price = 1000; }; + class O_Truck_02_covered_EPOCH1: O_Truck_02_covered_EPOCH {}; + class O_Truck_02_covered_EPOCH2: O_Truck_02_covered_EPOCH {}; + class O_Truck_02_covered_EPOCH3: O_Truck_02_covered_EPOCH {}; + class O_Truck_02_covered_EPOCH4: O_Truck_02_covered_EPOCH {}; class O_Truck_02_transport_EPOCH { price = 1000; }; + class O_Truck_02_transport_EPOCH1: O_Truck_02_transport_EPOCH {}; + class O_Truck_02_transport_EPOCH2: O_Truck_02_transport_EPOCH {}; + class O_Truck_02_transport_EPOCH3: O_Truck_02_transport_EPOCH {}; + class O_Truck_02_transport_EPOCH4: O_Truck_02_transport_EPOCH {}; class O_Truck_03_covered_EPOCH { price = 1000; }; + class O_Truck_03_covered_EPOCH1: O_Truck_03_covered_EPOCH {}; + class O_Truck_03_covered_EPOCH2: O_Truck_03_covered_EPOCH {}; + class O_Truck_03_covered_EPOCH3: O_Truck_03_covered_EPOCH {}; + class O_Truck_03_covered_EPOCH4: O_Truck_03_covered_EPOCH {}; class O_Truck_02_box_EPOCH { price = 1000; }; + class O_Truck_02_box_EPOCH1: O_Truck_02_box_EPOCH {}; + class O_Truck_02_box_EPOCH2: O_Truck_02_box_EPOCH {}; + class O_Truck_02_box_EPOCH3: O_Truck_02_box_EPOCH {}; + class O_Truck_02_box_EPOCH4: O_Truck_02_box_EPOCH {}; class O_Heli_Light_02_unarmed_EPOCH { price = 2500; @@ -4491,6 +4547,8 @@ class CfgPricing { price = 2500; }; + class C_Heli_Light_01_civil_2seat_EPOCH: C_Heli_Light_01_civil_EPOCH {}; + class C_Heli_Light_01_civil_4seat_EPOCH: C_Heli_Light_01_civil_EPOCH {}; class O_Heli_Transport_04_EPOCH { price = 2500; @@ -4779,14 +4837,16 @@ class CfgPricing { price = 4400; }; - class B_T_VTOL_01_infantry_F + class B_T_VTOL_01_vehicle_blue_EPOCH { price = 10000; }; - class B_T_VTOL_01_vehicle_F - { + class B_T_VTOL_01_infantry_olive_EPOCH: B_T_VTOL_01_vehicle_blue_EPOCH {}; + class O_T_VTOL_02_infantry_EPOCH + { price = 10000; - }; + }; + class O_T_VTOL_02_vehicle_grey_EPOCH: O_T_VTOL_02_infantry_EPOCH {}; class B_UavTerminal { price = 10; diff --git a/Sources/epoch_server/init/server_securityfunctions.sqf b/Sources/epoch_server/init/server_securityfunctions.sqf index 9f5e02da..ecab4ccc 100644 --- a/Sources/epoch_server/init/server_securityfunctions.sqf +++ b/Sources/epoch_server/init/server_securityfunctions.sqf @@ -501,7 +501,7 @@ for "_i" from 1 to 3 do { _temp = _temp + " ,['Key Binds',[],'','1',[]] - ,[' 3 Key - Teleport In Front',[],'','1',[]] + ,[' 5 Key - Teleport In Front',[],'','1',[]] ,[' F2 - Cancel Spectating',[],'','1',[]] ,[' F5 - Delete Target',[],'','1',[]] ]; @@ -1815,10 +1815,10 @@ _skn_admincode = compileFinal (" _cfgPricing = 'CfgPricing' call EPOCH_returnConfig; if (_this == 61) then { _airVehicles = "" + (configName _x) iskindof 'AIR' && getText(_x >> 'displayName') != '' && getText(_x >> 'picture') != '' && getNumber(_x >> 'type') != 0 && - getText (_x >> 'vehicleClass') in ['Air'] && isClass(_cfgPricing >> configName _x) ""configClasses (configFile >> 'CfgVehicles'); { @@ -1829,10 +1829,10 @@ _skn_admincode = compileFinal (" }; if (_this == 62) then { _landVehicles = "" + (configName _x) iskindof 'LandVehicle' && getText(_x >> 'displayName') != '' && getText(_x >> 'picture') != '' && configName _x != 'PaperCar' && - getText (_x >> 'vehicleClass') in ['Car'] && isClass(_cfgPricing >> configName _x) ""configClasses (configFile >> 'CfgVehicles'); { @@ -1843,10 +1843,10 @@ _skn_admincode = compileFinal (" }; if (_this == 63) then { _shipVehicles = "" + (configName _x) iskindof 'SHIP' && getText(_x >> 'displayName') != '' && getText(_x >> 'picture') != '' && getNumber(_x >> 'type') in [1,2,3,4] && - getText (_x >> 'vehicleClass') in ['Ship'] && isClass(_cfgPricing >> configName _x) ""configClasses (configFile >> 'CfgVehicles'); { diff --git a/changelog.md b/changelog.md index cad77981..64cdece8 100644 --- a/changelog.md +++ b/changelog.md @@ -41,6 +41,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Some Tarp Loot was spawned under the Floor @He-Man - Reworked wall check by getting out of Vehicles @He-Man - Garden Plot had no physical ground @Helion4 +- Some Vehicles were missing in EPOCH Admin Spawn Menu @He-Man ### Changed - RCon Port is now set to 2307 by default since changes in A3 1.78 prevent use of 2306. @AWOL - SnapPoints for Building objects (especially full / half / quarter Floors) @He-Man @@ -55,6 +56,13 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - You also get a Tooltip, how much bullets left in magazine - The prices are calculated by the left bullets in the magazine - Increased snap-distance for Foundations (much easier to find snap positions) @He-Man +- Reworked and added EPOCH Vehicle Classes @He-Man + - Each upgrade increase Speed, Torque, Fuel, Terrainbehaviour, Load and Armor + - Hatchback >= lvl2 will no longer stuck in forests + - Added M900 forced without Backseats -> "C_Heli_Light_01_civil_2seat_EPOCH" + - Added M900 forced with Backseats -> "C_Heli_Light_01_civil_4seat_EPOCH" + - The Random M900 will also stay available -> "C_Heli_Light_01_civil_EPOCH" + - Added very low EPOCH variants of VTOL and Xi'an (eventually we have to change them with the next update a bit) ## [1.0.0.1077] - 2017-11-05 ### Added From 16dd76a9c1b9f86b90629e8c42906ae17bf6f974 Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 5 Mar 2018 20:15:54 +0100 Subject: [PATCH 80/94] Changelog --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 64cdece8..b9232510 100644 --- a/changelog.md +++ b/changelog.md @@ -63,6 +63,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Added M900 forced with Backseats -> "C_Heli_Light_01_civil_4seat_EPOCH" - The Random M900 will also stay available -> "C_Heli_Light_01_civil_EPOCH" - Added very low EPOCH variants of VTOL and Xi'an (eventually we have to change them with the next update a bit) + - Added Door-Animations to some Vehicles by GetIn / GetOut ## [1.0.0.1077] - 2017-11-05 ### Added From 159555718fed1628d602d0471a2049a149ff2bed Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 5 Mar 2018 20:20:29 +0100 Subject: [PATCH 81/94] InFront TP toggle fix --- Sources/epoch_server/init/server_securityfunctions.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/Sources/epoch_server/init/server_securityfunctions.sqf b/Sources/epoch_server/init/server_securityfunctions.sqf index ecab4ccc..d7fec214 100644 --- a/Sources/epoch_server/init/server_securityfunctions.sqf +++ b/Sources/epoch_server/init/server_securityfunctions.sqf @@ -2147,7 +2147,6 @@ _skn_admincode = compileFinal (" }; }; "+_skn_infrontTP+" = { - "+_skn_tg_infrontTP+" = !"+_skn_tg_infrontTP+"; if ("+_skn_tg_infrontTP+") then { if (vehicle player == player) then { _distance = 10; From 1460773de3114d49fb3c1414de9f5bb149fb081e Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 5 Mar 2018 22:49:32 +0100 Subject: [PATCH 82/94] Power Sword Function --- .../epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf index 549d8d7f..9077cbe4 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf @@ -97,8 +97,8 @@ switch true do { }; case (_ammo isKindOf "B_Swing" || _ammo isKindOf "B_Stick") : { player playActionNow "SledgeSwing"; - call EPOCH_mineRocks; - if (_weapon isEqualTo "MeleeSword") then { + if (_weapon in ["MeleeSword","Power_Sword"]) then { + call EPOCH_mineRocks; call EPOCH_chopWood; }; if (_weapon isEqualTo "MeleeRod") then { From 9ff76f49891ef5567ccab57f587d0dfbf604993b Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 6 Mar 2018 20:18:36 +0100 Subject: [PATCH 83/94] Last Script and BE for Power Sword --- Server_Install_Pack/sc/battleye/addweaponcargo.txt | 2 +- Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Server_Install_Pack/sc/battleye/addweaponcargo.txt b/Server_Install_Pack/sc/battleye/addweaponcargo.txt index d1da558d..a5e70eaa 100644 --- a/Server_Install_Pack/sc/battleye/addweaponcargo.txt +++ b/Server_Install_Pack/sc/battleye/addweaponcargo.txt @@ -1 +1 @@ -5 "" !="H_MM_(Buzzard_Gasmask|Helmet)_01" !="V_MM_Vest_01" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf|radiation|hockey|plague|ghostface|skull|witch)_mask_epoch" !="Item(Map|GPS|Compass|Watch|GeigerCounter_EPOCH)" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02|05)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-7](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_" !"CUP_(optic|muzzle|acc|bipod)_" !"CUP_(Mxx|SVD)_camo" +5 "" !="H_MM_(Buzzard_Gasmask|Helmet)_01" !="V_MM_Vest_01" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf|radiation|hockey|plague|ghostface|skull|witch)_mask_epoch" !="Item(Map|GPS|Compass|Watch|GeigerCounter_EPOCH)|Power_Sword" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02|05)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-7](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_" !"CUP_(optic|muzzle|acc|bipod)_" !"CUP_(Mxx|SVD)_camo" diff --git a/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf b/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf index 84f120c6..d4ce6e3b 100644 --- a/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf +++ b/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf @@ -31,7 +31,7 @@ if (_item in ["Hatchet","CrudeHatchet"]) then { player addMagazine "Hatchet_swing"; }; }; -if (_item in ["MeleeSledge","MeleeMaul","MeleeSword"]) then { +if (_item in ["MeleeSledge","MeleeMaul","MeleeSword","Power_Sword"]) then { if !("sledge_swing" in _mags) then { player addMagazine "sledge_swing"; }; From 857f8c057a41a973276664568bcdfb32ec7b9bb7 Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 6 Mar 2018 21:25:04 +0100 Subject: [PATCH 84/94] BackPack + BE --- Server_Install_Pack/sc/battleye/createvehicle.txt | 2 +- Sources/epoch_server_settings/configs/CfgLootTable.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Server_Install_Pack/sc/battleye/createvehicle.txt b/Server_Install_Pack/sc/battleye/createvehicle.txt index 9746e780..305480c4 100644 --- a/Server_Install_Pack/sc/battleye/createvehicle.txt +++ b/Server_Install_Pack/sc/battleye/createvehicle.txt @@ -1,3 +1,3 @@ -5 "" !="Construct_f" !="I_UAV_01_F" !="(I|B|O)_UAV_AI" !"_EPOCH" !="B_65x39_Minigun_Caseless_Red_splash" !="B_762x51_Minigun_Tracer_Yellow_splash" !="B_(Swing|Stick)" !"^SmokeShell" !"^G_40mm_" !"^F_40mm_" !"Sub_F_" !"^F_Signal_" !="mini_Grenade" !="GrenadeHand" !="LaserTarget(C|W|E)" !"^Chemlight_" !="APERS(TripMine_Wire|BoundingMine_Range|Mine_Range)_Ammo" !="(SatchelCharge|DemoCharge|ClaymoreDirectionalMine)_Remote_Ammo" !="Epoch_(Sapper|Sapper(B|G)|Cloak)_F" !="EPOCH_RyanZombie_[1-5](|_(C|Sp|B|W|M|P))" !="GreatWhite_F" !="groundWeaponHolder" !="WeaponHolderSimulated" !="Epoch_(Male|Female)_F" !"Supply[0-9]" !"Steerable_Parachute_F" !="Epoch_Female_CamoRed_F" !="Land_Cages_F" !="(O|I|B)_UAV_01_backpack_F" !="I_(helipilot|helicrew)_F" !="#smokesource" !="SmokeLauncherAmmo" !"B_Bergen_(mcamo|dgtl|hex|tna)" !"B_AssaultPack_(khk|dgtl|rgr|sgg|cbr|mcamo|ocamo|tna)" !"B_Kitbag_(rgr|mcamo|sgg|cbr)" !"B_TacticalPack_(rgr|mcamo|ocamo|blk|oli)" !"B_FieldPack_(khk|ocamo|oucamo|cbr|blk|oli|ghex)" !"B_Carryall_(ocamo|oucamo|mcamo|khk|cbr|oli|ghex)" !"B_Viper(Light|)Harness_(oli|blk|ghex|hex|khk|oli)" !="B_Parachute" !="SLAMDirectionalMine_Wire_Ammo" !="(CMflare_Chaff|Sapper_Charge|SapperB_Charge|ATMine_Range)_Ammo" +5 "" !="Construct_f" !="I_UAV_01_F" !="(I|B|O)_UAV_AI" !"_EPOCH" !="B_65x39_Minigun_Caseless_Red_splash" !="B_762x51_Minigun_Tracer_Yellow_splash" !="B_(Swing|Stick)" !"^SmokeShell" !"^G_40mm_" !"^F_40mm_" !"Sub_F_" !"^F_Signal_" !="mini_Grenade" !="GrenadeHand" !="LaserTarget(C|W|E)" !"^Chemlight_" !="APERS(TripMine_Wire|BoundingMine_Range|Mine_Range)_Ammo" !="(SatchelCharge|DemoCharge|ClaymoreDirectionalMine)_Remote_Ammo" !="Epoch_(Sapper|Sapper(B|G)|Cloak)_F" !="EPOCH_RyanZombie_[1-5](|_(C|Sp|B|W|M|P))" !="GreatWhite_F" !="groundWeaponHolder" !="WeaponHolderSimulated" !="Epoch_(Male|Female)_F" !"Supply[0-9]" !"Steerable_Parachute_F" !="Epoch_Female_CamoRed_F" !="Land_Cages_F" !="(O|I|B)_UAV_01_backpack_F" !="I_(helipilot|helicrew)_F" !="#smokesource" !="SmokeLauncherAmmo" !"B_Bergen_(mcamo|dgtl|hex|tna)" !"B_AssaultPack_(khk|dgtl|rgr|sgg|cbr|mcamo|ocamo|blk|tna_F)" !"B_Kitbag_(rgr|mcamo|sgg|cbr)" !"B_TacticalPack_(rgr|mcamo|ocamo|blk|oli)" !"B_FieldPack_(khk|ocamo|oucamo|cbr|blk|oli|ghex)" !"B_Carryall_(ocamo|oucamo|mcamo|khk|cbr|oli|ghex)" !"B_Viper(Light|)Harness_(oli|blk|ghex|hex|khk|oli)" !="B_Parachute" !="SLAMDirectionalMine_Wire_Ammo" !="(CMflare_Chaff|Sapper_Charge|SapperB_Charge|ATMine_Range)_Ammo" 5 "_EPOCH" !="BarrelBomb(2|)_EPOCH_Remote_Ammo" !="I_(Soldier[1-3]|Soldier)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf)_EPOCH" !="(ToolRack|Shoebox|Bunk|Rabbit|Cabinet|toilet|KitchenSink)_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH" !=".+_(SIM|Ghost)_EPOCH" !="smallbackpack_(red|green|teal|pink)_epoch" !="(FirePlace|FirePlaceOn|Jack|Freezer|Tarp|Bobber)_EPOCH" !="Br82nd_(StorageBoxLarge|StorageBox|StorageBoxSmall|WeaponsBox)_(SIM|Ghost)_EPOCH" 5 SeaGull diff --git a/Sources/epoch_server_settings/configs/CfgLootTable.h b/Sources/epoch_server_settings/configs/CfgLootTable.h index cfbfcd17..7688badb 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable.h @@ -1141,7 +1141,7 @@ class CfgLootTable { { "B_AssaultPack_rgr", "backpack" }, 5 }, { { "B_AssaultPack_sgg", "backpack" }, 5 }, { { "B_AssaultPack_blk", "backpack" }, 5 }, - + { { "B_AssaultPack_tna_F", "backpack" }, 5 }, { { "B_Carryall_cbr", "backpack" }, 1 }, { { "B_Carryall_khk", "backpack" }, 1 }, From 419359e84b8773408012e3a8a99bbe0226884468 Mon Sep 17 00:00:00 2001 From: He-Man Date: Thu, 8 Mar 2018 17:10:21 +0100 Subject: [PATCH 85/94] Pricings / Itemsorts --- Sources/epoch_config/Configs/CfgItemSort.hpp | 98 ++++++++++++++++---- Sources/epoch_config/Configs/CfgPricing.hpp | 50 +++++----- 2 files changed, 110 insertions(+), 38 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgItemSort.hpp b/Sources/epoch_config/Configs/CfgItemSort.hpp index 3df89114..258b4249 100644 --- a/Sources/epoch_config/Configs/CfgItemSort.hpp +++ b/Sources/epoch_config/Configs/CfgItemSort.hpp @@ -169,7 +169,44 @@ class CfgItemSort // Marksman Clothing "U_O_FullGhillie_lsh", "U_O_FullGhillie_sard", - "U_O_FullGhillie_ard" + "U_O_FullGhillie_ard", + + // CIV + "U_I_OfficerUniform", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Para_5_F", + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_2_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_5_F", + "U_I_C_Soldier_Camo_F", + "U_C_man_sport_1_F", + "U_C_man_sport_2_F", + "U_C_man_sport_3_F", + "U_C_Man_casual_1_F", + "U_C_Man_casual_2_F", + "U_C_Man_casual_3_F", + "U_C_Man_casual_4_F", + "U_C_Man_casual_5_F", + "U_C_Man_casual_6_F", + "U_C_IDAP_Man_shorts_F", + "U_C_IDAP_Man_casual_F", + "U_C_IDAP_Man_cargo_F", + "U_C_IDAP_Man_Tee_F", + "U_C_IDAP_Man_Jeans_F", + "U_C_IDAP_Man_TeeShorts_F", + "U_C_ConstructionCoverall_Red_F", + "U_C_ConstructionCoverall_Vrana_F", + "U_C_ConstructionCoverall_Black_F", + "U_C_ConstructionCoverall_Blue_F", + "U_I_CombatUniform_shortsleeve", + "U_I_pilotCoveralls", + "U_I_HeliPilotCoveralls", + "U_I_Wetsuit" }; Vests[] = { @@ -213,6 +250,9 @@ class CfgItemSort "V_38_EPOCH", "V_39_EPOCH", "V_40_EPOCH", + + // CIV + "V_Press_F", // Vests Apex "V_PlateCarrier1_tna_F", @@ -220,6 +260,7 @@ class CfgItemSort "V_TacChestrig_oli_F", "V_TacChestrig_cbr_F", "V_PlateCarrierSpec_tna_F", + "V_PlateCarrierSpec_blk", "V_HarnessO_ghex_F", "V_HarnessOGL_ghex_F", "V_PlateCarroer2_tna_F", @@ -384,6 +425,12 @@ class CfgItemSort "H_102_EPOCH", "H_103_EPOCH", "H_104_EPOCH", + "H_F0_EPOCH", + "H_F1_EPOCH", + "H_F2_EPOCH", + "H_F3_EPOCH", + "H_F4_EPOCH", + "H_F5_EPOCH", "wolf_mask_epoch", "pkin_mask_epoch", "clown_mask_epoch", @@ -393,7 +440,9 @@ class CfgItemSort "skull_mask_epoch", "witch_mask_epoch", "radiation_mask_epoch", - + "H_Cap_surfer", + "H_ShemagOpen_khk", + // Headgear Apex "H_HelmetLeaderO_ghex_F", "H_HelmetCrew_O_ghex_F", @@ -821,6 +870,7 @@ class CfgItemSort "optic_DMS_ghex_F", "acc_flashlight", + "acc_flashlight_pistol", "acc_pointer_IR", // Bipods Marksman @@ -909,7 +959,12 @@ class CfgItemSort "nanite_cream_epoch", "nanite_gun_epoch", "nanite_pills_epoch", - "iodide_pills_epoch" + "iodide_pills_epoch", + "ItemWaterPurificationTablets", + + "ItemBloodbag_Full", + "ItemBloodbag_Empty", + "ItemAntibiotic" }; Food[] = { @@ -1081,6 +1136,7 @@ class CfgItemSort "ItemVehDoc2", "ItemVehDoc3", "ItemVehDoc4", + "ItemVehDocRara", // KryptoItems "ItemTinBar10oz", @@ -1088,7 +1144,6 @@ class CfgItemSort "ItemCopperBar10oz", "ItemSilverBar10oz", "ItemBriefcaseSilver100oz", - "PartOreGold", "PartOreSilver", "PartOre", @@ -1113,7 +1168,6 @@ class CfgItemSort "ItemSodaEmpty", "ItemBriefcaseE", "ItemBriefcaseGold100oz", - "PaintCanClear", "PaintCanBlk", "PaintCanBlu", @@ -1164,12 +1218,10 @@ class CfgItemSort "C_Van_01_transport_EPOCH2", "C_Van_01_transport_EPOCH3", "C_Van_01_transport_EPOCH4", - "K01", // Kart "K02", // Kart Blueking "K03", // Kart Redstone "K04", // Kart Vrana - "B_Truck_01_transport_EPOCH", // HEMTT Transport "B_Truck_01_transport_EPOCH1", "B_Truck_01_transport_EPOCH2", @@ -1205,11 +1257,11 @@ class CfgItemSort "O_Truck_03_covered_EPOCH2", "O_Truck_03_covered_EPOCH3", "O_Truck_03_covered_EPOCH4", - "O_Truck_03_transport_F", // Tempest Transport - "O_Truck_03_transport_F1", - "O_Truck_03_transport_F2", - "O_Truck_03_transport_F3", - "O_Truck_03_transport_F4", + "O_Truck_03_transport_EPOCH", // Tempest Transport + "O_Truck_03_transport_EPOCH1", + "O_Truck_03_transport_EPOCH2", + "O_Truck_03_transport_EPOCH3", + "O_Truck_03_transport_EPOCH4", // Funktions Fahrzeuge |Repair,Heal,Tank| "C_Offroad_01_repair_F", @@ -1260,7 +1312,15 @@ class CfgItemSort "B_MRAP_01_hmg_F", "O_MRAP_02_hmg_F", "I_MRAP_03_hmg_F", - + + // Orange DLC + "I_G_Van_02_transport_F", /* Van Transport (Orange DLC) */ + "O_G_Van_02_transport_F", /* Van Transport (Orange DLC) */ + "B_G_Van_02_transport_F", /* Van Transport (Orange DLC) */ + + "I_G_Van_02_vehicle_F", /* Van Transport (Orange DLC) */ + "O_G_Van_02_vehicle_F", /* Van Transport (Orange DLC) */ + "B_G_Van_02_vehicle_F", /* Van Transport (Orange DLC) */ // Apex "I_C_Offroad_02_unarmed_F", "I_C_Offroad_02_unarmed_brown_F", @@ -1321,7 +1381,6 @@ class CfgItemSort "C_Heli_Light_01_civil_EPOCH", "C_Heli_Light_01_civil_2seat_EPOCH", "C_Heli_Light_01_civil_4seat_EPOCH", - "O_Heli_Light_02_unarmed_EPOCH", "I_Heli_light_03_unarmed_EPOCH", "I_Heli_Transport_02_EPOCH", @@ -1340,11 +1399,16 @@ class CfgItemSort "I_Heli_light_03_F", // Apex + "B_T_VTOL_01_vehicle_blue_F", "B_T_VTOL_01_vehicle_blue_EPOCH", + "B_T_VTOL_01_infantry_blue_F", + "B_T_VTOL_01_infantry_olive_F", "B_T_VTOL_01_infantry_olive_EPOCH", - - "O_T_VTOL_02_infantry_EPOCH", - "O_T_VTOL_02_vehicle_grey_EPOCH" + "O_T_VTOL_02_vehicle_grey_F", + "O_T_VTOL_02_vehicle_grey_EPOCH", + "O_T_VTOL_02_vehicle_F", + "O_T_VTOL_02_infantry_F", + "O_T_VTOL_02_infantry_EPOCH" }; Vehicles_Ship[] = { diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp index 4b19b87f..a4adea5d 100644 --- a/Sources/epoch_config/Configs/CfgPricing.hpp +++ b/Sources/epoch_config/Configs/CfgPricing.hpp @@ -4467,6 +4467,14 @@ class CfgPricing class B_G_Offroad_01_armed_EPOCH2: B_G_Offroad_01_armed_EPOCH{}; class B_G_Offroad_01_armed_EPOCH3: B_G_Offroad_01_armed_EPOCH{}; class B_G_Offroad_01_armed_EPOCH4: B_G_Offroad_01_armed_EPOCH{}; + class B_Truck_01_mover_EPOCH + { + price = 1000; + }; + class B_Truck_01_mover_EPOCH1: B_Truck_01_mover_EPOCH {}; + class B_Truck_01_mover_EPOCH2: B_Truck_01_mover_EPOCH {}; + class B_Truck_01_mover_EPOCH3: B_Truck_01_mover_EPOCH {}; + class B_Truck_01_mover_EPOCH4: B_Truck_01_mover_EPOCH {}; class B_Truck_01_transport_EPOCH { price = 1000; @@ -4483,14 +4491,6 @@ class CfgPricing class B_Truck_01_covered_EPOCH2: B_Truck_01_covered_EPOCH {}; class B_Truck_01_covered_EPOCH3: B_Truck_01_covered_EPOCH {}; class B_Truck_01_covered_EPOCH4: B_Truck_01_covered_EPOCH {}; - class B_Truck_01_mover_EPOCH - { - price = 1000; - }; - class B_Truck_01_mover_EPOCH1: B_Truck_01_mover_EPOCH {}; - class B_Truck_01_mover_EPOCH2: B_Truck_01_mover_EPOCH {}; - class B_Truck_01_mover_EPOCH3: B_Truck_01_mover_EPOCH {}; - class B_Truck_01_mover_EPOCH4: B_Truck_01_mover_EPOCH {}; class B_Truck_01_box_EPOCH { price = 1000; @@ -4499,14 +4499,6 @@ class CfgPricing class B_Truck_01_box_EPOCH2: B_Truck_01_box_EPOCH {}; class B_Truck_01_box_EPOCH3: B_Truck_01_box_EPOCH {}; class B_Truck_01_box_EPOCH4: B_Truck_01_box_EPOCH {}; - class O_Truck_02_covered_EPOCH - { - price = 1000; - }; - class O_Truck_02_covered_EPOCH1: O_Truck_02_covered_EPOCH {}; - class O_Truck_02_covered_EPOCH2: O_Truck_02_covered_EPOCH {}; - class O_Truck_02_covered_EPOCH3: O_Truck_02_covered_EPOCH {}; - class O_Truck_02_covered_EPOCH4: O_Truck_02_covered_EPOCH {}; class O_Truck_02_transport_EPOCH { price = 1000; @@ -4515,14 +4507,14 @@ class CfgPricing class O_Truck_02_transport_EPOCH2: O_Truck_02_transport_EPOCH {}; class O_Truck_02_transport_EPOCH3: O_Truck_02_transport_EPOCH {}; class O_Truck_02_transport_EPOCH4: O_Truck_02_transport_EPOCH {}; - class O_Truck_03_covered_EPOCH + class O_Truck_02_covered_EPOCH { price = 1000; }; - class O_Truck_03_covered_EPOCH1: O_Truck_03_covered_EPOCH {}; - class O_Truck_03_covered_EPOCH2: O_Truck_03_covered_EPOCH {}; - class O_Truck_03_covered_EPOCH3: O_Truck_03_covered_EPOCH {}; - class O_Truck_03_covered_EPOCH4: O_Truck_03_covered_EPOCH {}; + class O_Truck_02_covered_EPOCH1: O_Truck_02_covered_EPOCH {}; + class O_Truck_02_covered_EPOCH2: O_Truck_02_covered_EPOCH {}; + class O_Truck_02_covered_EPOCH3: O_Truck_02_covered_EPOCH {}; + class O_Truck_02_covered_EPOCH4: O_Truck_02_covered_EPOCH {}; class O_Truck_02_box_EPOCH { price = 1000; @@ -4531,6 +4523,22 @@ class CfgPricing class O_Truck_02_box_EPOCH2: O_Truck_02_box_EPOCH {}; class O_Truck_02_box_EPOCH3: O_Truck_02_box_EPOCH {}; class O_Truck_02_box_EPOCH4: O_Truck_02_box_EPOCH {}; + class O_Truck_03_transport_EPOCH + { + price = 1000; + }; + class O_Truck_03_transport_EPOCH1: O_Truck_03_transport_EPOCH {}; + class O_Truck_03_transport_EPOCH2: O_Truck_03_transport_EPOCH {}; + class O_Truck_03_transport_EPOCH3: O_Truck_03_transport_EPOCH {}; + class O_Truck_03_transport_EPOCH4: O_Truck_03_transport_EPOCH {}; + class O_Truck_03_covered_EPOCH + { + price = 1000; + }; + class O_Truck_03_covered_EPOCH1: O_Truck_03_covered_EPOCH {}; + class O_Truck_03_covered_EPOCH2: O_Truck_03_covered_EPOCH {}; + class O_Truck_03_covered_EPOCH3: O_Truck_03_covered_EPOCH {}; + class O_Truck_03_covered_EPOCH4: O_Truck_03_covered_EPOCH {}; class O_Heli_Light_02_unarmed_EPOCH { price = 2500; From 7891bd37d5587f001c2fd2746e65558fb7820066 Mon Sep 17 00:00:00 2001 From: He-Man Date: Fri, 9 Mar 2018 21:00:51 +0100 Subject: [PATCH 86/94] New Classes to CfgEpochVehicles.h --- .../epoch_server_settings/configs/CfgEpochVehicles.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Sources/epoch_server_settings/configs/CfgEpochVehicles.h b/Sources/epoch_server_settings/configs/CfgEpochVehicles.h index 4b360b88..6f94fa21 100644 --- a/Sources/epoch_server_settings/configs/CfgEpochVehicles.h +++ b/Sources/epoch_server_settings/configs/CfgEpochVehicles.h @@ -42,6 +42,10 @@ class CfgEpochVehicles textureSelectionIndex[] = {0}; availableColors[] = {{ "\A3\soft_f_gamma\van_01\Data\van_01_ext_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_ext_red_CO.paa" }}; }; + class C_Van_01_transport_EPOCH1: C_Van_01_transport_EPOCH{}; + class C_Van_01_transport_EPOCH2: C_Van_01_transport_EPOCH{}; + class C_Van_01_transport_EPOCH3: C_Van_01_transport_EPOCH{}; + class C_Van_01_transport_EPOCH4: C_Van_01_transport_EPOCH{}; class C_Hatchback_02_EPOCH { textureSelectionIndex[] = {0}; availableColors[] = {{ "\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT01_CO.paa","\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT02_CO.paa","\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT03_CO.paa","\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT04_CO.paa","\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT05_CO.paa","\A3\soft_f_gamma\Hatchback_01\data\Hatchback_01_ext_SPORT06_CO.paa" }}; @@ -58,8 +62,14 @@ class CfgEpochVehicles textureSelectionIndex[] = {0}; availableColors[] = {{ "\A3\soft_f_gamma\van_01\Data\van_01_ext_CO.paa","\A3\soft_f_gamma\van_01\Data\van_01_ext_red_CO.paa" }}; }; + class C_Van_01_box_EPOCH1: C_Van_01_box_EPOCH{}; + class C_Van_01_box_EPOCH2: C_Van_01_box_EPOCH{}; + class C_Van_01_box_EPOCH3: C_Van_01_box_EPOCH{}; + class C_Van_01_box_EPOCH4: C_Van_01_box_EPOCH{}; class C_Heli_Light_01_civil_EPOCH { textureSelectionIndex[] = { 0 }; availableColors[] = { { "A3\Air_f\Heli_Light_01\Data\Heli_Light_01_ext_co.paa", "\a3\air_f\Heli_Light_01\Data\heli_light_01_ext_blue_co.paa", "\a3\air_f\Heli_Light_01\Data\heli_light_01_ext_co.paa", "\a3\air_f\Heli_Light_01\Data\heli_light_01_ext_ion_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_blueLine_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_digital_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_elliptical_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_furious_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_graywatcher_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_jeans_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_light_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_shadow_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_sheriff_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_speedy_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_sunset_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_vrana_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_wasp_co.paa", "\a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ext_wave_co.paa" } }; }; + class C_Heli_Light_01_civil_2seat_EPOCH: C_Heli_Light_01_civil_EPOCH{}; + class C_Heli_Light_01_civil_4seat_EPOCH: C_Heli_Light_01_civil_EPOCH{}; }; From 923a41abff7616d159fcc44057c4a8bb40522b30 Mon Sep 17 00:00:00 2001 From: He-Man Date: Fri, 9 Mar 2018 22:37:51 +0100 Subject: [PATCH 87/94] Config to block ATMs in Plot Range --- Sources/epoch_code/compile/EPOCH_lootTrash.sqf | 6 ++++++ Sources/epoch_config/Configs/CfgEpochClient.hpp | 1 + changelog.md | 1 + 3 files changed, 8 insertions(+) diff --git a/Sources/epoch_code/compile/EPOCH_lootTrash.sqf b/Sources/epoch_code/compile/EPOCH_lootTrash.sqf index c718b09e..53791cfd 100644 --- a/Sources/epoch_code/compile/EPOCH_lootTrash.sqf +++ b/Sources/epoch_code/compile/EPOCH_lootTrash.sqf @@ -90,6 +90,12 @@ if (diag_tickTime - EPOCH_lastTrash > 2) then { }; }; if (!isNull _bankTerminal) then { + _AtmBlockedAtPlot = ["CfgEpochClient", "AtmBlockedAtPlot", false] call EPOCH_fnc_returnConfigEntryV2; + _buildingJammerRange = getNumber(_config >> "buildingJammerRange"); + _jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange]; + if (!(_jammer isequalto []) && _AtmBlockedAtPlot) exitwith { + ["Bank Terminal blocked by Jammer Signal",5] call Epoch_Message; + }; // make balance request if (isNil "EPOCH_bankTransferActive") then { [player, [], Epoch_personalToken] remoteExec ["EPOCH_server_storeCrypto",2]; diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index 96b4d2e1..d7bad07e 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -56,6 +56,7 @@ class CfgEpochClient maxdoors = 10; // Max allowed doors per Group maxgates = 5; // Max allowed Gates per Group + AtmBlockedAtPlot = "true"; // Block ATM's in Plotpole-Range disableRemoteSensors = "true"; // disableRemoteSensors true/false epochMessageBackgroundCol[] = {0,0,0,0.2}; //Epoch_message background color (format: {R,G,B,A}) diff --git a/changelog.md b/changelog.md index b9232510..e6ab7385 100644 --- a/changelog.md +++ b/changelog.md @@ -31,6 +31,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - If the terrain is too steep, you only walk in AutoRun - Inside Water, you can not Autorun - Helper 3D-Icon + Line on the part, where element is snapped on (while Base-Building) @He-Man +- Config in cfgepochclient.hpp to block ATM's in Plotpole range @He-Man ### Fixed - False BE kicks since Arma 3 1.80 update. - Nightlight now also follow players inside Vehicles @He-Man From 1e8a428d3c26087a712991925e45e5fb5edb3c6a Mon Sep 17 00:00:00 2001 From: He-Man Date: Sat, 10 Mar 2018 00:17:34 +0100 Subject: [PATCH 88/94] Power Sword Price + Sort + Loot --- Sources/epoch_config/Configs/CfgItemSort.hpp | 1 + Sources/epoch_config/Configs/CfgPricing.hpp | 4 ++++ Sources/epoch_server_settings/configs/CfgLootTable.h | 4 ++-- Sources/epoch_server_settings/configs/CfgLootTable_CUP.h | 4 ++-- Sources/epoch_server_settings/configs/CfgLootTable_MAD.h | 4 ++-- Sources/epoch_server_settings/configs/CfgLootTable_MADCUP.h | 4 ++-- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgItemSort.hpp b/Sources/epoch_config/Configs/CfgItemSort.hpp index 258b4249..32c802fe 100644 --- a/Sources/epoch_config/Configs/CfgItemSort.hpp +++ b/Sources/epoch_config/Configs/CfgItemSort.hpp @@ -626,6 +626,7 @@ class CfgItemSort "WoodClub", "Plunger", "MeleeSword", + "Power_Sword", "MeleeRod", "speargun_epoch", "ChainSaw" diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp index a4adea5d..f13fdb6a 100644 --- a/Sources/epoch_config/Configs/CfgPricing.hpp +++ b/Sources/epoch_config/Configs/CfgPricing.hpp @@ -2677,6 +2677,10 @@ class CfgPricing { price = 1111; }; + class Power_Sword + { + price = 1111; + }; class MeleeRod { price = 100; diff --git a/Sources/epoch_server_settings/configs/CfgLootTable.h b/Sources/epoch_server_settings/configs/CfgLootTable.h index 7688badb..e3c4a8ec 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable.h @@ -650,11 +650,11 @@ class CfgLootTable { { "MeleeSledge", "weapon" }, 20 }, { { "ChainSaw", "weapon" }, 10 }, { { "Plunger", "weapon" }, 4 }, - { { "MeleeSword", "weapon" }, 1 }, + { { "MeleeSword", "weapon" }, 2 }, + { { "Power_Sword", "weapon" }, 1 }, { { "MeleeRod", "weapon" }, 2 }, { { "lighter_epoch", "magazine" }, 1 }, { { "SmeltingTools_EPOCH", "magazine" }, 10 } - }; }; diff --git a/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h b/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h index feef07aa..206932a3 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable_CUP.h @@ -1077,11 +1077,11 @@ class CfgLootTable_CUP { { "MeleeSledge", "weapon" }, 20 }, { { "ChainSaw", "weapon" }, 10 }, { { "Plunger", "weapon" }, 4 }, - { { "MeleeSword", "weapon" }, 1 }, + { { "MeleeSword", "weapon" }, 2 }, + { { "Power_Sword", "weapon" }, 1 }, { { "MeleeRod", "weapon" }, 2 }, { { "lighter_epoch", "magazine" }, 1 }, { { "SmeltingTools_EPOCH", "magazine" }, 10 } - }; }; diff --git a/Sources/epoch_server_settings/configs/CfgLootTable_MAD.h b/Sources/epoch_server_settings/configs/CfgLootTable_MAD.h index 9d053420..dd4775ea 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable_MAD.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable_MAD.h @@ -652,11 +652,11 @@ class CfgLootTable_MAD { { "MeleeSledge", "weapon" }, 20 }, { { "ChainSaw", "weapon" }, 10 }, { { "Plunger", "weapon" }, 4 }, - { { "MeleeSword", "weapon" }, 1 }, + { { "MeleeSword", "weapon" }, 2 }, + { { "Power_Sword", "weapon" }, 1 }, { { "MeleeRod", "weapon" }, 2 }, { { "lighter_epoch", "magazine" }, 1 }, { { "SmeltingTools_EPOCH", "magazine" }, 10 } - }; }; diff --git a/Sources/epoch_server_settings/configs/CfgLootTable_MADCUP.h b/Sources/epoch_server_settings/configs/CfgLootTable_MADCUP.h index 03910263..b42bd675 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable_MADCUP.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable_MADCUP.h @@ -1079,11 +1079,11 @@ class CfgLootTable_MADCUP { { "MeleeSledge", "weapon" }, 20 }, { { "ChainSaw", "weapon" }, 10 }, { { "Plunger", "weapon" }, 4 }, - { { "MeleeSword", "weapon" }, 1 }, + { { "MeleeSword", "weapon" }, 2 }, + { { "Power_Sword", "weapon" }, 1 }, { { "MeleeRod", "weapon" }, 2 }, { { "lighter_epoch", "magazine" }, 1 }, { { "SmeltingTools_EPOCH", "magazine" }, 10 } - }; }; From 2fe4b0ff969ea468cd5600fb86becee215eca5a0 Mon Sep 17 00:00:00 2001 From: He-Man Date: Sun, 11 Mar 2018 08:30:02 +0100 Subject: [PATCH 89/94] Usefull Dyna Cores --- .../epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp index 71ef76a1..73bc960b 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp @@ -20,6 +20,7 @@ class CfgActionMenu dyna_cursorTarget = "([10] call EPOCH_fnc_cursorTarget)"; dyna_cursorTargetType = "typeOf ([10] call EPOCH_fnc_cursorTarget)"; dyna_inVehicle = "vehicle player != player"; + dyna_IsDriver = "dyna_inVehicle && player == (driver (vehicle player))"; dyna_itemsPlayer = "items player"; dyna_magazinesPlayer = "magazines player"; dyna_assigneditems = "assignedItems player"; @@ -47,6 +48,8 @@ class CfgActionMenu dyna_deathMarker = "profileNameSpace getVariable['EPOCHLastKnownDeath',[]]"; dyna_deathMarkerAvail = "!(dyna_deathMarker isEqualTo [])"; dyna_mapDeathMarker = "(((getArray(('CfgMarkerSets' call EPOCH_returnConfig) >> 'DeathMarker' >> 'markerArray') select 0) select 0) in allMapMarkers)"; + + dyna_AtHome = "call {_config = 'CfgEpochClient' call EPOCH_returnConfig;_buildingJammerRange = getNumber(_config >> 'buildingJammerRange');_nearjammers = nearestobjects [player,['Plotpole_EPOCH'],_buildingJammerRange];if (_nearjammers isEqualTo []) exitwith {false};_nearestJammer = _nearjammers select 0;((_nearestJammer getVariable['BUILD_OWNER', '-1']) in[getPlayerUID player, Epoch_my_GroupUID])}"; }; class self From 501a189861cd7e07b63dd720f85229e86c744f67 Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Sun, 11 Mar 2018 21:11:48 -0500 Subject: [PATCH 90/94] heliCrash event configs Heli Crash MarkerSet, Loot Tables and config settings container_heliCrash_epoch from EpochCore added to loot tables --- Sources/epoch_config/Configs/CfgMarkerSets.hpp | 7 +++++++ Sources/epoch_server_settings/config.cpp | 11 +++++++++++ .../epoch_server_settings/configs/CfgLootTable.h | 14 ++++++++++++++ .../epoch_server_settings/configs/CfgMainTable.h | 6 ++++++ 4 files changed, 38 insertions(+) diff --git a/Sources/epoch_config/Configs/CfgMarkerSets.hpp b/Sources/epoch_config/Configs/CfgMarkerSets.hpp index 5a95f757..e2dc6371 100644 --- a/Sources/epoch_config/Configs/CfgMarkerSets.hpp +++ b/Sources/epoch_config/Configs/CfgMarkerSets.hpp @@ -209,4 +209,11 @@ class CfgMarkerSets {"","ICON","","ColorGreen",0.2,{0.8,0.8}} }; }; + class HeliCrash { + markerArray[] = { + {"","ICON","EpochActive_Circle","ColorOrange",1,{0.6,0.6}}, + {"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}}, + {"","ICON","EpochHeli2","ColorOrange",1,{0.5,0.5}} + }; + }; }; diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 0cffb63f..e1100b1d 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -166,6 +166,17 @@ class CfgEpoch satelliteCompromisedColor = "ColorRed"; availableSatellites[] = {"Land_Wreck_Satellite_EPOCH"}; + // HeliCrashes and Loot Box Spawner + HeliCrashesEnabled = 1; // 0 = OFF + debugHeliCrashes = 0; // 1 = ON + showHeliCrashMarkers = 1; + maxSpawnedHeliCrashes = 4; + distFromOtherHeliCrashes = 2000; + heliCrashDecayMarkerColor = "ColorBrown"; // decay changes icon (_markers select 2) + heliCrashCompromisedColor = "ColorRed"; // compromised changes active surround (_markers select 0) + availableHeliCrashes[] = {"Land_Wreck_Heli_Attack_01_F","Land_Wreck_Heli_Attack_02_F"}; + heliCrashCustomLocs[] = {}; + propsPos[] = { // Will accept several variations of this entry to place objects on the map // _className - STRING - Class name of the object to spawn diff --git a/Sources/epoch_server_settings/configs/CfgLootTable.h b/Sources/epoch_server_settings/configs/CfgLootTable.h index e3c4a8ec..2b3c94a8 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable.h @@ -801,6 +801,20 @@ class CfgLootTable { { "PartOreSilver", "magazine" }, 13 } }; }; + + class HeliCrash + { + items[] = { + { { "Medical", "CfgLootTable" }, 5 }, + { { "Food", "CfgLootTable" }, 26 }, + { { "Backpack", "CfgLootTable" }, 10 }, + { { "Uniforms", "CfgLootTable" }, 13 }, + { { "Explosives", "CfgLootTable" }, 10 }, + { { "Hand", "CfgLootTable" }, 10 }, + { { "Vests", "CfgLootTable" }, 10 } + } + }; + class MetalBars { items[] = { diff --git a/Sources/epoch_server_settings/configs/CfgMainTable.h b/Sources/epoch_server_settings/configs/CfgMainTable.h index 43cf201f..0c9c6153 100644 --- a/Sources/epoch_server_settings/configs/CfgMainTable.h +++ b/Sources/epoch_server_settings/configs/CfgMainTable.h @@ -259,6 +259,12 @@ class CfgMainTable LootMax = 6; tables[] = { "Shipwreck" }; }; + class container_helicrash_epoch : Default + { + lootMin = 6; + LootMax = 10; + tables[] = { "HeliCrash" }; + }; class MineralDepositCopper_EPOCH : Default { lootMin = 5; From 0d1becf09f57cc13043c003902cf66df5f0b159c Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Sun, 11 Mar 2018 21:21:23 -0500 Subject: [PATCH 91/94] Move events to epoch_events pbo Modified config for easier reading of each settings comments. Changed all events to PrePostFix 2 with move to that folder Removed events folder from epoch_settings pbo --- .../@epochhive/epochconfig.hpp | 30 +-- .../@epochhive/epochconfig.hpp.bak | 179 ++++++++++++++++++ .../EpochEvents/AirDrop.sqf | 0 .../EpochEvents/CarnivalSpawner.sqf | 0 .../EpochEvents/ChangeWeather.sqf | 0 .../EpochEvents/ContainerSpawner.sqf | 0 .../EpochEvents/EarthQuake.sqf | 0 .../EpochEvents/FastNights.sqf | 0 .../EpochEvents/GardenManager.sqf | 0 .../EpochEvents/MessageServer.sqf | 0 .../EpochEvents/MoneyDrop.sqf | 0 .../EpochEvents/PaydayEvent.sqf | 0 .../EpochEvents/PlantSpawner.sqf | 0 .../EpochEvents/Satellite.sqf | 0 14 files changed, 198 insertions(+), 11 deletions(-) create mode 100644 Server_Install_Pack/@epochhive/epochconfig.hpp.bak rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/AirDrop.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/CarnivalSpawner.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/ChangeWeather.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/ContainerSpawner.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/EarthQuake.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/FastNights.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/GardenManager.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/MessageServer.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/MoneyDrop.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/PaydayEvent.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/PlantSpawner.sqf (100%) rename Sources/{epoch_server_settings => epoch_server_events}/EpochEvents/Satellite.sqf (100%) diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index d249291e..eaae3e0e 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -10,17 +10,25 @@ forceRestartTime = 14400; // 4 hour restarts // Events WeatherStaticForecast[] = {}; // Default: {75.5,0,{0,0,0},0,{1,1}}; // Clear day; {19,1,{1,1,40},1,{5,5}}; // Cold Foggy Rainy Overcast Windy; Format: {temp ,rain ,fog ,overcast ,wind } events[] = { - { 3600, "CarnivalSpawner", 0 , 1, -1, {} ,{"VR"}}, // SECOND , EVENT , INIT 1 = run script at startup or 0 normal delay, PREPOSTFIX 1 = use pre/postfix path (inside epoch settings pbo) 0 = use full file path, RUNNUMTIMES -1 infinite, execVM payload , disallowed worlds - // { 1800, "PaydayEvent", 0, 1}, - // { 1200, "MessageServer", 0, 1}, - { 2700, "AirDrop", 0 , 1, -1, {} ,{"VR"}}, - { 2400, "EarthQuake", 0 , 1, -1, {} ,{"VR"}}, - { 2700, "Satellite", 0 , 1, -1, {} ,{"VR"}}, - { 900, "ChangeWeather", 1 , 1, -1, {} ,{"VR"}}, - { 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}}, - { 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}}, - { 900, "MoneyDrop", 0 , 1 , -1, {} ,{"VR"}}, //No comma on last Entry - { 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry + { + 3600, // SECOND , + "CarnivalSpawner", // EVENT + 0, //INIT 1 = run script at startup or 0 normal delay + 2, //PREPOSTFIX 1 = (epoch_settings pbo) 2 = (epoch_events pbo) 0 = use full file path + -1, //RUNNUMTIMES -1 infinite + {}, //execVM payload + {"VR"} //disallowed worlds + }, + // { 1800, "PaydayEvent", 0, 2}, + // { 1200, "MessageServer", 0, 2}, + { 2700, "AirDrop", 0 , 2, -1, {} ,{"VR"}}, + { 2400, "EarthQuake", 0 , 2, -1, {} ,{"VR"}}, + { 2700, "Satellite", 0 , 2, -1, {} ,{"VR"}}, + { 900, "ChangeWeather", 1 , 2, -1, {} ,{"VR"}}, + { 1200, "ContainerSpawner", 0 , 2, -1, {} ,{"VR"}}, + { 1440, "GardenManager", 0 , 2, -1, {} ,{"VR"}}, + { 900, "MoneyDrop", 0 , 2 , -1, {} ,{"VR"}}, + { 300, "PlantSpawner", 0 , 2 , -1, {} ,{"VR"}} //No comma on last Entry }; // Antagonists diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp.bak b/Server_Install_Pack/@epochhive/epochconfig.hpp.bak new file mode 100644 index 00000000..9e48a96c --- /dev/null +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp.bak @@ -0,0 +1,179 @@ +serverRestart = "false"; // true sends #shutdown command to server after the time specified in ForceRestartTime +forceRestartTime = 14400; // 4 hour restarts + +// Time based + StaticDateTime[] = {}; // {0,0,0,8,0} would forces the server to start at 8am each time it is started while allowing the year, month and day to stay real time. Any values left at 0 will result in no change. + timeDifference = 0; // Server uses real time this will allow you to offset just the hour. + timeMultiplier = 4; // Sets a time multiplier for in-game time. The command range is now capped at 0.1 - 120 to avoid performance problems. + lootMultiplier = 0.5; // 1 = max loot bias. This controls how much loot can payout per Epoch loot container. + +// Events + WeatherStaticForecast[] = {}; // Default: {75.5,0,{0,0,0},0,{1,1}}; // Clear day; {19,1,{1,1,40},1,{5,5}}; // Cold Foggy Rainy Overcast Windy; Format: {temp ,rain ,fog ,overcast ,wind } + events[] = { + { + 3600, // SECOND , + "CarnivalSpawner", // EVENT + 0, //INIT 1 = run script at startup or 0 normal delay + 2, //PREPOSTFIX 1 = (epoch_settings pbo) 2 = (epoch_events pbo) 0 = use full file path + -1, //RUNNUMTIMES -1 infinite + {}, //execVM payload + {"VR"} //disallowed worlds + }, + // { 1800, "PaydayEvent", 0, 1}, + // { 1200, "MessageServer", 0, 1}, + { 2700, "AirDrop", 0 , 2, -1, {} ,{"VR"}}, + { 2400, "EarthQuake", 0 , 2, -1, {} ,{"VR"}}, + { 2700, "Satellite", 0 , 2, -1, {} ,{"VR"}}, + { 900, "ChangeWeather", 1 , 2, -1, {} ,{"VR"}}, + { 1200, "ContainerSpawner", 0 , 2, -1, {} ,{"VR"}}, + { 1440, "GardenManager", 0 , 2, -1, {} ,{"VR"}}, + { 900, "MoneyDrop", 0 , 2 , -1, {} ,{"VR"}}, + { 300, "PlantSpawner", 0 , 2 , -1, {} ,{"VR"}} //No comma on last Entry + }; + +// Antagonists + antagonistChancePDeath = 0.33; //33% chance when player was killed from a other player (selfkill doesn't count) + +// Player Related + cloneCost = 100; // debt incurred on player death + MaxBankDebitforTrade = -50000; // If Player has less money on Bank, Crypto from Trade goes directly to Bank instead to Player + +// Default Loadout + defaultUniformFemale = "U_Test_uniform"; + defaultVestFemale = "V_F41_EPOCH"; + defaultUniformMale = "U_Test1_uniform"; + defaultVestMale = "V_41_EPOCH"; + defaultGoggles = ""; + defaultHeadgear = ""; + defaultBackpack = ""; + defaultprimaryWeapon[] = {}; // {"arifle_MX_pointer_F","","acc_pointer_IR","",{"30Rnd_65x39_caseless_mag",29},{},""}; + defaultsecondaryWeapon[] = {}; // {"launch_NLAW_F","","","",{"NLAW_F",1},{},""}; + defaulthandgunWeapon[] = {}; // {"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""}; + defaultuniformItems[] = {}; // {{"FAK",1},{"30Rnd_65x39_caseless_mag",2,30},{"Chemlight_green",1,1}}; + defaultvestItems[] = {}; // {{"30Rnd_65x39_caseless_mag",3,30},{"16Rnd_9x21_Mag",2,16},{"SmokeShell",1,1},{"SmokeShellGreen",1,1},{"SmokeShellBlue",1,1},{"SmokeShellOrange",1,1},{"Chemlight_green",1,1}}; + defaultbackpackItems[] = {}; // {{"Medikit",1},{"FAK",10},{{"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""},1}}; + defaultassignedItems[] = {}; // {"Rangefinder","","","",{},{},""} + defaultlinkedItems[] = { + "ItemMap", // "ItemMap" + "", // "ItemGPS" or "ItemGeigerCounter_EPOCH", + "", // "EpochRadio0" through "EpochRadio9" + "", // "ItemCompass" + "", // "ItemWatch" + "" // "NVG_EPOCH" or "radiation_mask_epoch" + }; + +// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance. + ReservedVehSlots = 50; // Reserved Vehicle Slots (only needed, if you manually spawn in additional Vehicles - AdminTool / Blackmarket...) + disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup. + VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked + removevehweapons[] = { // remove these Weapons from spawned Vehicles + "missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F", + "Rocket_03_AP_Plane_CAS_02_F","Bomb_03_Plane_CAS_02_F","Bomb_04_Plane_CAS_01_F","Rocket_04_AP_Plane_CAS_01_F","Rocket_04_HE_Plane_CAS_01_F","Missile_AGM_02_Plane_CAS_01_F","Missile_AA_04_Plane_CAS_01_F", + "Gatling_30mm_Plane_CAS_01_F","GBU12BombLauncher_Plane_Fighter_03_F","missiles_ASRAAM","missiles_SCALPEL","Twin_Cannon_20mm","missiles_Zephyr","rockets_skyfire","gatling_30mm_vtol_02" + }; + removevehmagazinesturret[] = { // Remove these Magazines from the given Turret from spawned Vehicles + {"24Rnd_missiles",{-1}}, + {"200Rnd_40mm_G_belt",{0}} + }; + disableVehicleTIE = "true"; + +// BaseBuilding + StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the number lower performance. + BuildingSlotsLimit = 1500; // Max building slots allowed. Warning! Higher the number lower performance. + UseIndestructible = "false"; // Enable / Disable Indestructible BaseObjects + IndestructibleBaseObjects[] = { // Can be Names or Classes + "Constructions_static_F", + "Buildable_Storage", + "PlotPole_EPOCH", + "LockBox_EPOCH", + "Safe_EPOCH" + }; + ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of IndestructibleBaseObjects + "CinderWallGarage_EPOCH", + "WoodLargeWallDoorL_EPOCH", + "WoodLargeWallDoor_EPOCH", + "WoodWall4_EPOCH" + }; + UseDeSimulateObjects = "true"; // Disable Simulation for specifed Base Objects + DeSimulateObjects[] = { // Base Objects to disable Simulation. Can be Names or Classes + "PlotPole_EPOCH", + "WoodFoundation_EPOCH","Foundation_EPOCH", + "WoodQuarterFloor_EPOCH","WoodHalfFloor_EPOCH","WoodFloor_EPOCH", + "MetalQuarterFloor_EPOCH","MetalHalfFloor_EPOCH","MetalFloor_EPOCH", + "CinderQuarterFloor_EPOCH","CinderHalfFloor_EPOCH","CinderFloor_EPOCH", + "WoodLargeWall_EPOCH","WoodLargeWallDoorway_EPOCH","WoodLargeWallCor_EPOCH","WoodWall1_EPOCH","WoodWall2_EPOCH","WoodWallWindow_EPOCH", + "CinderWallHalf_EPOCH","CinderWall_EPOCH", + "WoodRamp_EPOCH","WoodStairs_EPOCH","WoodStairs2_EPOCH", + "SolarGen_EPOCH","SandbagWall_EPOCH","BarbedWire_EPOCH","Sink_EPOCH","BagBunker_EPOCH","WaterPump_EPOCH","Scaffolding_EPOCH","SunShade_EPOCH","WatchTower_EPOCH","SandbagWallLong_EPOCH","TankTrap_EPOCH" + }; + ExceptedDeSymObjects[] = { // Not Desymulated, also if in a Class of DeSimulateObjects + }; + +// Dynamic Simulation System + enableDynamicSimulationSystem = "true"; // enable / disable the complete dynamic simulation system + //Individual toggles for testing + vehicleDynamicSimulationSystem = "true"; // type car, air, boat + playerDynamicSimulationSystem = "true"; // clients + baseDynamicSimulationSystem = "true"; // plot pole and base pieces + // Distances and Coef + isMovingCoefValue = 2; + groupDynSimDistance = 500; + vehicleDynSimDistance = 350; + emptyVehicleDynSimDistance = 250; + propDynSimDistance = 50; + +// Traders + taxRate = 0.1; // controls the price increase for purchases + starterTraderItems[] = { // Starter Items for fresh spawned trader first array is classnames second is quantity. + {"ItemSodaBurst","meatballs_epoch","MortarBucket","CinderBlocks","VehicleRepair","CircuitParts","ItemCorrugated","PartPlankPack","ItemRock","ItemRope","ItemStick"}, + {5,5,5,5,5,5,5,5,5,5,5} + }; + NPCSlotsLimit = 30; // Max number of traders static or dynamic. Warning! Higher the number lower performance. + forceStaticTraders = "true"; // disables traders moving from work to home + TraderGodMode = "false"; // If true, Trader can not be killed by Players + storedVehicleLimit = 15; // Vehicles more than x stored in ALL Traders will automatically be deleted on Restart. + StaticTraderItemPurge[] = {100,15}; // {ItemCount,ReducePercent} - If a static trader have more than x different items, on restart the items will be reduced by y percent + DynamicTraderRespawnCount = 100; // If a dynamic Trader have more than x different Items, he will respawn on another Spot (with start Items) + TraderItemCountPerItem[] = {50,5}; // If the Trader has more than x pieces of an Item, it will be reduced to y pieces (on Restart) + TraderItemsDeleteInstant[] = { // List of Items, that will be deleted from Trader instant after sell + // "ItemVehDoc1", + // "ItemVehDoc2", + // "ItemVehDoc3", + // "ItemVehDoc4" + }; + TraderItemsDeleteRestart[] = { // List of Items, that will be deleted from Trader on Restart + // "ItemLockbox", + // "ItemSafe", + // "ItemGoldBar10oz" + }; + +// Spawntables + forcedVehicleSpawnTable = ""; // leave blank for default. Options: "allowedVehiclesList","allowedVehiclesList_CUP","allowedVehiclesList_MAD","allowedVehiclesList_MADCUP" + forcedLootSpawnTable = ""; // leave blank for default. Options: "CfgLootTable","CfgLootTable_CUP","CfgLootTable_MAD","CfgLootTable_MADCUP" + +// Markers + showEarthQuakes = "true"; // show mineral viens caused by earthquakes + showSatellites = "true"; // show crashed Satellites + showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival) + SHOW_TRADERS = "true"; // Show locations of traders + SHOW_JAMMERS = "false"; // Shows location of base jammers + SHOW_BOATLOOT = "true"; // Shows the location of shipwreck loot + DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles + +// Hive Related + vehicleLockTime = "1800"; // Controls how many seconds it takes to allow another person/group to unlock vehicle. + expiresBuilding = "604800"; // expiration date in seconds for buildings + expiresPlayer = "2592000"; // expiration date in seconds for players + expiresBank = "7776000"; // expiration date in seconds for players bank + expiresVehicle = "604800"; // expiration date in seconds for vehicles + expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory + expiresCommunityStats = "7776000"; // expiration date in seconds for players community stats + +// Admin Features + hiveAdminCmdExec = "false"; // true = enables extra (To Be Released) feature to allow execution of code via hive. + hiveAdminSavePlayerList = "true"; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID. + hiveAdminCmdTime = 5; // how many seconds between each command queue call. + +// DEBUG + useOldLoadVehicles = "false"; + enableUnitTestOnStart = 1; // enable extra debug for database calls. 1 = enabled. diff --git a/Sources/epoch_server_settings/EpochEvents/AirDrop.sqf b/Sources/epoch_server_events/EpochEvents/AirDrop.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/AirDrop.sqf rename to Sources/epoch_server_events/EpochEvents/AirDrop.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf b/Sources/epoch_server_events/EpochEvents/CarnivalSpawner.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/CarnivalSpawner.sqf rename to Sources/epoch_server_events/EpochEvents/CarnivalSpawner.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/ChangeWeather.sqf b/Sources/epoch_server_events/EpochEvents/ChangeWeather.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/ChangeWeather.sqf rename to Sources/epoch_server_events/EpochEvents/ChangeWeather.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf b/Sources/epoch_server_events/EpochEvents/ContainerSpawner.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/ContainerSpawner.sqf rename to Sources/epoch_server_events/EpochEvents/ContainerSpawner.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf b/Sources/epoch_server_events/EpochEvents/EarthQuake.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf rename to Sources/epoch_server_events/EpochEvents/EarthQuake.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/FastNights.sqf b/Sources/epoch_server_events/EpochEvents/FastNights.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/FastNights.sqf rename to Sources/epoch_server_events/EpochEvents/FastNights.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/GardenManager.sqf b/Sources/epoch_server_events/EpochEvents/GardenManager.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/GardenManager.sqf rename to Sources/epoch_server_events/EpochEvents/GardenManager.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/MessageServer.sqf b/Sources/epoch_server_events/EpochEvents/MessageServer.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/MessageServer.sqf rename to Sources/epoch_server_events/EpochEvents/MessageServer.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf b/Sources/epoch_server_events/EpochEvents/MoneyDrop.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/MoneyDrop.sqf rename to Sources/epoch_server_events/EpochEvents/MoneyDrop.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/PaydayEvent.sqf b/Sources/epoch_server_events/EpochEvents/PaydayEvent.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/PaydayEvent.sqf rename to Sources/epoch_server_events/EpochEvents/PaydayEvent.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf b/Sources/epoch_server_events/EpochEvents/PlantSpawner.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/PlantSpawner.sqf rename to Sources/epoch_server_events/EpochEvents/PlantSpawner.sqf diff --git a/Sources/epoch_server_settings/EpochEvents/Satellite.sqf b/Sources/epoch_server_events/EpochEvents/Satellite.sqf similarity index 100% rename from Sources/epoch_server_settings/EpochEvents/Satellite.sqf rename to Sources/epoch_server_events/EpochEvents/Satellite.sqf From e2c881ea313f58b335aaefa4349ea8d41b410dbc Mon Sep 17 00:00:00 2001 From: "DESKTOP-UH65DCE\\MusTanG" Date: Tue, 13 Mar 2018 12:59:06 -0500 Subject: [PATCH 92/94] missing ; --- Sources/epoch_server_settings/configs/CfgLootTable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server_settings/configs/CfgLootTable.h b/Sources/epoch_server_settings/configs/CfgLootTable.h index 2b3c94a8..6c158ba3 100644 --- a/Sources/epoch_server_settings/configs/CfgLootTable.h +++ b/Sources/epoch_server_settings/configs/CfgLootTable.h @@ -812,7 +812,7 @@ class CfgLootTable { { "Explosives", "CfgLootTable" }, 10 }, { { "Hand", "CfgLootTable" }, 10 }, { { "Vests", "CfgLootTable" }, 10 } - } + }; }; class MetalBars From 1d8ce6ae0a1329c5d62afb0a453009025a3140a6 Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 14 Mar 2018 22:33:12 +0100 Subject: [PATCH 93/94] Changelog --- changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index e6ab7385..b74a3c87 100644 --- a/changelog.md +++ b/changelog.md @@ -22,7 +22,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Nuisance multiplicator in cfgepochclient.hpp @He-Man - Reduce rads over time at cost of immunity @Raymix - Wearable Male & Female wearable full radiation suit @Helion4 -- December seasonal items (Santa / Snowman) @Helion4 +- December seasonal items (Santa hat / Snowman) @Helion4 - Autorun function (suggested by Ghostrider) @He-Man - Default Key is "W" - You can change the key in EPOCH ESC Menu @@ -32,6 +32,7 @@ All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) a - Inside Water, you can not Autorun - Helper 3D-Icon + Line on the part, where element is snapped on (while Base-Building) @He-Man - Config in cfgepochclient.hpp to block ATM's in Plotpole range @He-Man +- Power Sword @Helion ### Fixed - False BE kicks since Arma 3 1.80 update. - Nightlight now also follow players inside Vehicles @He-Man From 0374211bca0b70533a435cf0aacf3f4cc19878ba Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 14 Mar 2018 23:23:14 +0100 Subject: [PATCH 94/94] comment for magazinesAllTurrets --- Sources/epoch_config/Configs/CfgServicePoint.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/epoch_config/Configs/CfgServicePoint.hpp b/Sources/epoch_config/Configs/CfgServicePoint.hpp index ca27af21..b25a70f7 100644 --- a/Sources/epoch_config/Configs/CfgServicePoint.hpp +++ b/Sources/epoch_config/Configs/CfgServicePoint.hpp @@ -79,6 +79,7 @@ class CfgServicePoint { {"Ship",0}, {"Landvehicle",0} }; + /* Get all Weapons and Turrets with "magazinesAllTurrets vehicle" -> https://community.bistudio.com/wiki/magazinesAllTurrets */ VehiclesAndAmmo[] = { /* {