mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
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
This commit is contained in:
parent
f582311331
commit
8ab05047e9
@ -1,17 +1,15 @@
|
|||||||
serverRestart = "false"; // true sends #shutdown command to server after the time specified in ForceRestartTime
|
serverRestart = "false"; // true sends #shutdown command to server after the time specified in ForceRestartTime
|
||||||
forceRestartTime = 14400; // 4 hour restarts
|
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.
|
|
||||||
|
|
||||||
// Time based
|
// 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.
|
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.
|
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.
|
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.
|
lootMultiplier = 0.5; // 1 = max loot bias. This controls how much loot can payout per Epoch loot container.
|
||||||
|
|
||||||
// Events
|
// 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 <scalar>,rain <scalar>,fog <array>,overcast <scalar>,wind <array>}
|
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 <scalar>,rain <scalar>,fog <array>,overcast <scalar>,wind <array>}
|
||||||
events[] = {
|
events[] = {
|
||||||
{ 3600, "CarnivalSpawner", 0 , 1, -1, {} ,{"VR"}}, // SECOND <scalar>, EVENT <string>, INIT <scalar> 1 = run script at startup or 0 normal delay, PREPOSTFIX <scalar> 1 = use pre/postfix path (inside epoch settings pbo) 0 = use full file path, RUNNUMTIMES <scalar> -1 infinite, execVM payload <array>, disallowed worlds <array>
|
{ 3600, "CarnivalSpawner", 0 , 1, -1, {} ,{"VR"}}, // SECOND <scalar>, EVENT <string>, INIT <scalar> 1 = run script at startup or 0 normal delay, PREPOSTFIX <scalar> 1 = use pre/postfix path (inside epoch settings pbo) 0 = use full file path, RUNNUMTIMES <scalar> -1 infinite, execVM payload <array>, disallowed worlds <array>
|
||||||
// { 1800, "PaydayEvent", 0, 1},
|
// { 1800, "PaydayEvent", 0, 1},
|
||||||
// { 1200, "MessageServer", 0, 1},
|
// { 1200, "MessageServer", 0, 1},
|
||||||
@ -22,102 +20,134 @@ events[] = {
|
|||||||
{ 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}},
|
{ 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}},
|
||||||
{ 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}},
|
{ 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}},
|
||||||
{ 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry
|
{ 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry
|
||||||
};
|
};
|
||||||
|
|
||||||
// Antagonists
|
// 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
|
// Player Related
|
||||||
cloneCost = 100; // debt incurred on player death
|
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
|
MaxBankDebitforTrade = -50000; // If Player has less money on Bank, Crypto from Trade goes directly to Bank instead to Player
|
||||||
|
|
||||||
// Default Loadout
|
// Default Loadout
|
||||||
defaultUniformFemale = "U_Test_uniform";
|
defaultUniformFemale = "U_Test_uniform";
|
||||||
defaultVestFemale = "V_F41_EPOCH";
|
defaultVestFemale = "V_F41_EPOCH";
|
||||||
defaultUniformMale = "U_Test1_uniform";
|
defaultUniformMale = "U_Test1_uniform";
|
||||||
defaultVestMale = "V_41_EPOCH";
|
defaultVestMale = "V_41_EPOCH";
|
||||||
defaultGoggles = "";
|
defaultGoggles = "";
|
||||||
defaultHeadgear = "";
|
defaultHeadgear = "";
|
||||||
defaultBackpack = "";
|
defaultBackpack = "";
|
||||||
defaultprimaryWeapon[] = {}; // {"arifle_MX_pointer_F","","acc_pointer_IR","",{"30Rnd_65x39_caseless_mag",29},{},""};
|
defaultprimaryWeapon[] = {}; // {"arifle_MX_pointer_F","","acc_pointer_IR","",{"30Rnd_65x39_caseless_mag",29},{},""};
|
||||||
defaultsecondaryWeapon[] = {}; // {"launch_NLAW_F","","","",{"NLAW_F",1},{},""};
|
defaultsecondaryWeapon[] = {}; // {"launch_NLAW_F","","","",{"NLAW_F",1},{},""};
|
||||||
defaulthandgunWeapon[] = {}; // {"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""};
|
defaulthandgunWeapon[] = {}; // {"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""};
|
||||||
defaultuniformItems[] = {}; // {{"FAK",1},{"30Rnd_65x39_caseless_mag",2,30},{"Chemlight_green",1,1}};
|
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}};
|
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}};
|
defaultbackpackItems[] = {}; // {{"Medikit",1},{"FAK",10},{{"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""},1}};
|
||||||
defaultassignedItems[] = {}; // {"Rangefinder","","","",{},{},""}
|
defaultassignedItems[] = {}; // {"Rangefinder","","","",{},{},""}
|
||||||
defaultlinkedItems[] = {
|
defaultlinkedItems[] = {
|
||||||
"ItemMap", // "ItemMap"
|
"ItemMap", // "ItemMap"
|
||||||
"", // "ItemGPS" or "ItemGeigerCounter_EPOCH",
|
"", // "ItemGPS" or "ItemGeigerCounter_EPOCH",
|
||||||
"EpochRadio0", // "EpochRadio0" through "EpochRadio9"
|
"EpochRadio0", // "EpochRadio0" through "EpochRadio9"
|
||||||
"", // "ItemCompass"
|
"", // "ItemCompass"
|
||||||
"", // "ItemWatch"
|
"", // "ItemWatch"
|
||||||
"" // "NVG_EPOCH" or "radiation_mask_epoch"
|
"" // "NVG_EPOCH" or "radiation_mask_epoch"
|
||||||
};
|
};
|
||||||
|
|
||||||
// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance.
|
// 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.
|
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.
|
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.
|
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
|
VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked
|
||||||
removevehweapons[] = { // remove these Weapons from spawned Vehicles
|
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",
|
"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",
|
"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"
|
"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
|
removevehmagazinesturret[] = { // Remove these Magazines from the given Turret from spawned Vehicles
|
||||||
{"24Rnd_missiles",{-1}},
|
{"24Rnd_missiles",{-1}},
|
||||||
{"200Rnd_40mm_G_belt",{0}}
|
{"200Rnd_40mm_G_belt",{0}}
|
||||||
};
|
};
|
||||||
disableVehicleTIE = "true";
|
disableVehicleTIE = "true";
|
||||||
|
|
||||||
// BaseBuilding
|
// BaseBuilding
|
||||||
UseIndestructible = "false"; // Enable / Disable Indestructible BaseObjects
|
StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the number lower performance.
|
||||||
IndestructibleBaseObjects[] = { // Can be Names or Classes
|
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",
|
"Constructions_static_F",
|
||||||
"Buildable_Storage",
|
"Buildable_Storage",
|
||||||
"PlotPole_EPOCH",
|
"PlotPole_EPOCH",
|
||||||
"LockBox_EPOCH",
|
"LockBox_EPOCH",
|
||||||
"Safe_EPOCH"
|
"Safe_EPOCH"
|
||||||
};
|
};
|
||||||
ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of IndestructibleBaseObjects
|
ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of IndestructibleBaseObjects
|
||||||
"CinderWallGarage_EPOCH",
|
"CinderWallGarage_EPOCH",
|
||||||
"WoodLargeWallDoorL_EPOCH",
|
"WoodLargeWallDoorL_EPOCH",
|
||||||
"WoodLargeWallDoor_EPOCH",
|
"WoodLargeWallDoor_EPOCH",
|
||||||
"WoodWall4_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
|
// Traders
|
||||||
taxRate = 0.1; // controls the price increase for purchases
|
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.
|
starterTraderItems[] = { // 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.
|
{"ItemSodaBurst","meatballs_epoch","MortarBucket","CinderBlocks","VehicleRepair","CircuitParts","ItemCorrugated","PartPlankPack","ItemRock","ItemRope","ItemStick"},
|
||||||
forceStaticTraders = "true"; // disables traders moving from work to home
|
{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"
|
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"
|
forcedLootSpawnTable = ""; // leave blank for default. Options: "CfgLootTable","CfgLootTable_CUP","CfgLootTable_MAD","CfgLootTable_MADCUP"
|
||||||
|
|
||||||
// Markers
|
// Markers
|
||||||
showEarthQuakes = "true"; // show mineral viens caused by earthquakes
|
showEarthQuakes = "true"; // show mineral viens caused by earthquakes
|
||||||
showSatellites = "true"; // show crashed Satellites
|
showSatellites = "true"; // show crashed Satellites
|
||||||
showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival)
|
showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival)
|
||||||
SHOW_TRADERS = "true"; // Show locations of traders
|
SHOW_TRADERS = "true"; // Show locations of traders
|
||||||
SHOW_JAMMERS = "false"; // Shows location of base jammers
|
SHOW_JAMMERS = "false"; // Shows location of base jammers
|
||||||
SHOW_BOATLOOT = "true"; // Shows the location of shipwreck loot
|
SHOW_BOATLOOT = "true"; // Shows the location of shipwreck loot
|
||||||
DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles
|
DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles
|
||||||
|
|
||||||
// Hive Related
|
// Hive Related
|
||||||
expiresBuilding = "604800"; // expiration date in seconds for buildings
|
expiresBuilding = "604800"; // expiration date in seconds for buildings
|
||||||
expiresPlayer = "2592000"; // expiration date in seconds for players
|
expiresPlayer = "2592000"; // expiration date in seconds for players
|
||||||
expiresBank = "7776000"; // expiration date in seconds for players bank
|
expiresBank = "7776000"; // expiration date in seconds for players bank
|
||||||
expiresVehicle = "604800"; // expiration date in seconds for vehicles
|
expiresVehicle = "604800"; // expiration date in seconds for vehicles
|
||||||
expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory
|
expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory
|
||||||
expiresCommunityStats = "7776000"; // expiration date in seconds for players community stats
|
expiresCommunityStats = "7776000"; // expiration date in seconds for players community stats
|
||||||
|
|
||||||
// Admin Features
|
// Admin Features
|
||||||
hiveAdminCmdExec = "false"; // true = enables extra (To Be Released) feature to allow execution of code via hive.
|
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.
|
hiveAdminSavePlayerList = "true"; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID.
|
||||||
hiveAdminCmdTime = 5; // how many seconds between each command queue call.
|
hiveAdminCmdTime = 5; // how many seconds between each command queue call.
|
||||||
|
|
||||||
// DEBUG
|
// DEBUG
|
||||||
useOldLoadVehicles = "false";
|
useOldLoadVehicles = "false";
|
||||||
enableUnitTestOnStart = 1; // enable extra debug for database calls. 1 = enabled.
|
enableUnitTestOnStart = 1; // enable extra debug for database calls. 1 = enabled.
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/init/both_init.sqf
|
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/init/both_init.sqf
|
||||||
*/
|
*/
|
||||||
//[[[cog import generate_private_arrays ]]]
|
//[[[cog import generate_private_arrays ]]]
|
||||||
private ["_cfgDynamicSimulation","_communityStatsInit","_customVarsInit","_dynSimToggle"];
|
private ["_communityStatsInit","_customVarsInit","_dynSimToggle"];
|
||||||
//[[[end]]]
|
//[[[end]]]
|
||||||
|
|
||||||
// Check if Advanced Vehicle Repair is enabled
|
// 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.
|
// 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);
|
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");
|
|
||||||
};
|
|
||||||
|
@ -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;
|
|
||||||
};
|
|
@ -88,7 +88,6 @@ showHUD[] =
|
|||||||
#include "Configs\CfgSwitchMovehandler.hpp"
|
#include "Configs\CfgSwitchMovehandler.hpp"
|
||||||
#include "Configs\CfgVehicleUpgrades.hpp"
|
#include "Configs\CfgVehicleUpgrades.hpp"
|
||||||
#include "Configs\CfgReadingDocuments.hpp"
|
#include "Configs\CfgReadingDocuments.hpp"
|
||||||
#include "Configs\CfgDynamicSimulation.hpp"
|
|
||||||
#include "Configs\CfgMarkerSets.hpp"
|
#include "Configs\CfgMarkerSets.hpp"
|
||||||
|
|
||||||
// A3 specific configs
|
// A3 specific configs
|
||||||
|
@ -13,13 +13,17 @@
|
|||||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf
|
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf
|
||||||
*/
|
*/
|
||||||
//[[[cog import generate_private_arrays ]]]
|
//[[[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]]]
|
//[[[end]]]
|
||||||
_maxTTL = parseNumber EPOCH_expiresBuilding;
|
_maxTTL = parseNumber EPOCH_expiresBuilding;
|
||||||
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
||||||
|
_baseDynamicSimulationSystem = [_serverSettingsConfig, "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry;
|
||||||
_UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry;
|
_UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry;
|
||||||
_IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
_IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
_ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] 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;
|
_cfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||||
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_buildingJammerRange = getNumber(_cfgEpochClient >> "buildingJammerRange");
|
_buildingJammerRange = getNumber(_cfgEpochClient >> "buildingJammerRange");
|
||||||
@ -30,6 +34,8 @@ _VAL = ["", [], "", "", 0, []];
|
|||||||
for "_i" from 0 to _this do {
|
for "_i" from 0 to _this do {
|
||||||
_vehHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID),_i];
|
_vehHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID),_i];
|
||||||
_response = ["Building", _vehHiveKey] call EPOCH_fnc_server_hiveGETTTL;
|
_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 {
|
if ((_response select 0) == 1 && (_response select 1) isEqualType [] && !((_response select 1) isEqualTo [])) then {
|
||||||
_arr = _response select 1;
|
_arr = _response select 1;
|
||||||
@ -81,20 +87,30 @@ for "_i" from 0 to _this do {
|
|||||||
|
|
||||||
_baseObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"];
|
_baseObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"];
|
||||||
if (_UseIndestructible) then {
|
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;
|
_baseObj allowdamage false;
|
||||||
|
_DamageAllowed = false;
|
||||||
};
|
};
|
||||||
} foreach _IndestructibleBaseObjects;
|
} 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 setposATL _location;
|
||||||
_baseObj setVectorDirAndUp _worldspace;
|
_baseObj setVectorDirAndUp _worldspace;
|
||||||
|
|
||||||
|
if (_Simulated && _baseDynamicSimulationSystem) then { // Only needed, if simulation is not disabled
|
||||||
// new Dynamicsimulation
|
// new Dynamicsimulation
|
||||||
if(["CfgDynamicSimulation", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then
|
|
||||||
{
|
|
||||||
_baseObj enableSimulationGlobal false; // turn off sim on server start, let dynSim activate it to true
|
_baseObj enableSimulationGlobal false; // turn off sim on server start, let dynSim activate it to true
|
||||||
_baseObj enableDynamicSimulation true;
|
_baseObj enableDynamicSimulation true;
|
||||||
_baseObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server
|
_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 setDamage _damage;
|
||||||
|
if (_DamageAllowed) then { // Only needed, if damage is allowed
|
||||||
_baseObj call EPOCH_server_buildingInit;
|
_baseObj call EPOCH_server_buildingInit;
|
||||||
|
};
|
||||||
_baseObj setVariable ["BUILD_SLOT", _i, true];
|
_baseObj setVariable ["BUILD_SLOT", _i, true];
|
||||||
|
|
||||||
if (_owner != "-1") then {
|
if (_owner != "-1") then {
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf
|
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf
|
||||||
*/
|
*/
|
||||||
//[[[cog import generate_private_arrays ]]]
|
//[[[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]]]
|
//[[[end]]]
|
||||||
params ["_vehicle", "_player", ["_token","",[""]] ];
|
params ["_vehicle", "_player", ["_token","",[""]] ];
|
||||||
|
|
||||||
@ -25,10 +25,6 @@ _playerUID = getPlayerUID _player;
|
|||||||
if (!isNull ropeAttachedTo _vehicle) exitWith{};
|
if (!isNull ropeAttachedTo _vehicle) exitWith{};
|
||||||
|
|
||||||
_oemType = typeOf _vehicle;
|
_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;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_staticClassConfig = (_cfgBaseBuilding >> _oemType >> "staticClass");
|
_staticClassConfig = (_cfgBaseBuilding >> _oemType >> "staticClass");
|
||||||
if (isText _staticClassConfig) then {
|
if (isText _staticClassConfig) then {
|
||||||
@ -51,16 +47,6 @@ if (isText _staticClassConfig) then {
|
|||||||
EPOCH_activeGardens pushBackUnique _storageObj;
|
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{
|
if (getNumber(_cfgBaseBuilding >> _staticClass >> "isSecureStorage") == 1) then{
|
||||||
_storageObj setVariable["EPOCH_Locked", false, true];
|
_storageObj setVariable["EPOCH_Locked", false, true];
|
||||||
};
|
};
|
||||||
@ -70,8 +56,9 @@ if (isText _staticClassConfig) then {
|
|||||||
_storageObj setVariable["STORAGE_SLOT", _slot, true];
|
_storageObj setVariable["STORAGE_SLOT", _slot, true];
|
||||||
|
|
||||||
_storageObj call EPOCH_server_save_storage;
|
_storageObj call EPOCH_server_save_storage;
|
||||||
|
if (isDamageAllowed _storageObj) then { // Only needed, if damage is allowed
|
||||||
_storageObj call EPOCH_server_storageInit;
|
_storageObj call EPOCH_server_storageInit;
|
||||||
|
};
|
||||||
diag_log format["Epoch: STORAGE: %1 created storage %2 at %3 with slot %4", _playerUID, _staticClass, _vehiclePos, _slot];
|
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 {
|
if (_objSlot != -1) then {
|
||||||
_newVehicle = [_vehicle, false] call EPOCH_server_simulSwap;
|
_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 setVariable["BUILD_OWNER", _playerUID, true];
|
||||||
_newVehicle call EPOCH_saveBuilding;
|
_newVehicle call EPOCH_saveBuilding;
|
||||||
};
|
};
|
||||||
|
@ -35,12 +35,12 @@ if (_objSlot != -1) then {
|
|||||||
_textureSlot = _object getVariable["TEXTURE_SLOT", 0];
|
_textureSlot = _object getVariable["TEXTURE_SLOT", 0];
|
||||||
_damage = damage _object;
|
_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 = [_class,_object] call EPOCH_swapBuilding;
|
||||||
|
|
||||||
_newObj setVariable ["BUILD_SLOT",_objSlot,true];
|
_newObj setVariable ["BUILD_SLOT",_objSlot,true];
|
||||||
|
if (isDamageAllowed _newObj) then { // Only needed, if damage is allowed
|
||||||
_newObj call EPOCH_server_buildingInit;
|
_newObj call EPOCH_server_buildingInit;
|
||||||
|
};
|
||||||
|
|
||||||
if (_textureSlot != 0) then {
|
if (_textureSlot != 0) then {
|
||||||
// get texture path from index
|
// get texture path from index
|
||||||
|
@ -29,7 +29,9 @@ if (_objSlot != -1) then {
|
|||||||
_class = _upgrade select 0;
|
_class = _upgrade select 0;
|
||||||
_newObj = [_class,_object] call EPOCH_swapBuilding;
|
_newObj = [_class,_object] call EPOCH_swapBuilding;
|
||||||
_newObj setVariable ["BUILD_SLOT",_objSlot,true];
|
_newObj setVariable ["BUILD_SLOT",_objSlot,true];
|
||||||
|
if (isDamageAllowed _newObj) then { // Only needed, if damage is allowed
|
||||||
_newObj call EPOCH_server_buildingInit;
|
_newObj call EPOCH_server_buildingInit;
|
||||||
|
};
|
||||||
_newObj call EPOCH_saveBuilding;
|
_newObj call EPOCH_saveBuilding;
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
|
@ -10,12 +10,41 @@ if (!isNull _object && !(_class isEqualTo "")) then {
|
|||||||
if (!isNull _newObj) then {
|
if (!isNull _newObj) then {
|
||||||
_object hideObjectGlobal true;
|
_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
|
// new Dynamicsimulation
|
||||||
if(["CfgDynamicSimulation", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntryV2)then
|
if([configFile >> "CfgEpochServer", "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then
|
||||||
{
|
{
|
||||||
_newObj enableDynamicSimulation true;
|
_newObj enableDynamicSimulation true;
|
||||||
_newObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server
|
_newObj triggerDynamicSimulation false; // this object doesnt need to turn anything on in the server
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
switch (_method) do {
|
switch (_method) do {
|
||||||
case 0: {
|
case 0: {
|
||||||
|
@ -369,7 +369,7 @@ if (!isNull _player) then {
|
|||||||
// [] remoteExec ["bis_fnc_reviveInit",_player];
|
// [] remoteExec ["bis_fnc_reviveInit",_player];
|
||||||
|
|
||||||
// new Dynamicsimulation
|
// 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 enableDynamicSimulation true;
|
||||||
_newPlyr triggerDynamicSimulation true;
|
_newPlyr triggerDynamicSimulation true;
|
||||||
|
@ -102,7 +102,7 @@ if (!local _player) then {
|
|||||||
_newPlyr = _group createUnit[_class, _location, [], 0, "CAN_COLLIDE"];
|
_newPlyr = _group createUnit[_class, _location, [], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
// new Dynamicsimulation
|
// 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 enableDynamicSimulation true;
|
||||||
_newPlyr triggerDynamicSimulation true;
|
_newPlyr triggerDynamicSimulation true;
|
||||||
|
@ -102,7 +102,7 @@ if !(_debugBox isEqualTo "") then {
|
|||||||
if((_deSimulate) || (_disableSim isEqualTo "true"))then{
|
if((_deSimulate) || (_disableSim isEqualTo "true"))then{
|
||||||
_ep enableSimulationGlobal false;
|
_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 enableDynamicSimulation (_dynSim isEqualTo "true");
|
||||||
};
|
};
|
||||||
_ep allowDamage (_allowDmg isEqualTo "true");
|
_ep allowDamage (_allowDmg isEqualTo "true");
|
||||||
|
@ -29,6 +29,7 @@ _jammerRange = getNumber(_config >> "buildingJammerRange");
|
|||||||
|
|
||||||
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
||||||
_immuneIfStartInBase = [_serverSettingsConfig, "immuneIfStartInBase", true] call EPOCH_fnc_returnConfigEntry;
|
_immuneIfStartInBase = [_serverSettingsConfig, "immuneIfStartInBase", true] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
_vehicleDynamicSimulationSystem = [_serverSettingsConfig, "vehicleDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
|
||||||
_removeweapons = [_serverSettingsConfig, "removevehweapons", []] call EPOCH_fnc_returnConfigEntry;
|
_removeweapons = [_serverSettingsConfig, "removevehweapons", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
_removemagazinesturret = [_serverSettingsConfig, "removevehmagazinesturret", []] call EPOCH_fnc_returnConfigEntry;
|
_removemagazinesturret = [_serverSettingsConfig, "removevehmagazinesturret", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
@ -213,7 +214,7 @@ for "_i" from 1 to _maxVehicleLimit do {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// new Dynamicsimulation
|
// 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 enableSimulationGlobal false; // turn it off until activated by dynamicSim
|
||||||
_vehicle enableDynamicSimulation true;
|
_vehicle enableDynamicSimulation true;
|
||||||
|
@ -99,7 +99,7 @@ _newHitpoints = getAllHitPointsDamage _newVeh;
|
|||||||
} foreach (_OldHitPoints select 0);
|
} foreach (_OldHitPoints select 0);
|
||||||
|
|
||||||
// new Dynamicsimulation
|
// 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 enableSimulationGlobal false; // turn it off until activated by dynamicSim
|
||||||
_newveh enableDynamicSimulation true;
|
_newveh enableDynamicSimulation true;
|
||||||
|
@ -115,7 +115,7 @@ if !(isNull _vehObj) then{
|
|||||||
};
|
};
|
||||||
|
|
||||||
// new Dynamicsimulation
|
// 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 enableSimulationGlobal false; // turn it off until activated by dynamicSim
|
||||||
_vehObj enableDynamicSimulation true;
|
_vehObj enableDynamicSimulation true;
|
||||||
|
@ -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_variables.sqf";
|
||||||
call compile preprocessFileLineNumbers "\epoch_server\init\server_securityfunctions.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;
|
["I", _instanceID, "86400", ["CONTINUE"]] call EPOCH_fnc_server_hiveSETEX;
|
||||||
diag_log format["Epoch: Start Hive, Instance ID: '%1'", _instanceID];
|
diag_log format["Epoch: Start Hive, Instance ID: '%1'", _instanceID];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user