diff --git a/Changelogs/0.3.9.0.txt b/Changelogs/0.3.9.0.txt index 408a3feb..d0f5f072 100644 --- a/Changelogs/0.3.9.0.txt +++ b/Changelogs/0.3.9.0.txt @@ -1,7 +1,8 @@ [Added] Player option to Morph into a random antagonist (from deathMorphClass) after death. The array 'deathMorphClass' found in CfgEpochClient can be used to specify what antagonists to randomly spawn. [Added] Player option to detonate body after death. Sacrifice yourself by generating a runaway thermal cascade using the nano bots within your body. Nothing left to revive. -[Added] Server function to allow remote exec of setVariable on client - Allows client to ask another client to set a local variable, via the server. Server can run same function. -[Changed] Moved all Base Building configs to gamemode. + +[Changed] Moved all Base Building variables to gamemode config 'CfgObjectInteractions'. +[Changed] Moved all Item Interaction to gamemode config 'CfgItemInteractions'. [Changed] Sapper groan or detonate can be triggered by setting a variable on the target or sapper. [Changed] Server can be asked by a client / server to trigger an antagonist on another client. Antagonist is then run on target PC, independent from caller of function. [Changed] Epoch Unit Spawn code. Now can be called specifying the target of the antagonist. Antagonist will run on target client PC. @@ -16,13 +17,17 @@ unitTypes - an array of soldier classes to randomly choose from. Custom weapons maxUnitNum - Maximum number of units to spawn per UAV. minAISkill - Minimum value for any AI skill. maxAimingAccuracy -> maxGeneral - Set the maximum value for each available AI skill. A random number between minAISkill and the value for each will be set as that skill. + [Fixed] Getting wet and cold on standing on pier. Thanks to umfufu for the report! http://epochmod.com/forum/topic/41929-getting-10-points-of-wetness/ [Fixed] Missing texture issues with some base building objects since 0.3.8. + [Info] RConPort 2306 added to example-beserver.cfg for changes since A3 1.58. [Info] Removed old .bikey and added new one for 0390. [Info] Requires Arma 3 1.58 or higher. [Info] A big thanks to Isaac, Axeman's chief tester. **Server Only** +[Added] Server function to allow remote exec of setVariable on client - Allows client to ask another client to set a local variable, via the server. Server can run same function. +[Changed] Epoch Events can now self initlize [Info] Changed name of a3_epoch_server to epoch_server. [Info] Changed name of a3_epoch_server_settings to epoch_server_settings. diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server.pbo index 41d86a52..aa173fd4 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server.pbo differ diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo index 56b99702..c703b025 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo differ diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo index b2e7dc64..d7318d4a 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo differ diff --git a/Server_Install_Pack/@epochhive/epochconfig.hpp b/Server_Install_Pack/@epochhive/epochconfig.hpp index befcdd93..6ebd741f 100644 --- a/Server_Install_Pack/@epochhive/epochconfig.hpp +++ b/Server_Install_Pack/@epochhive/epochconfig.hpp @@ -12,11 +12,11 @@ lootMultiplier = 0.5; // 1 = max loot bias. This controls how much loot can payo // 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" }, // SECOND , EVENT - { 2400, "EarthQuake" }, - { 1800, "ChangeWeather" }, - { 1200, "ContainerSpawner" }, - { 300, "PlantSpawner" } //No comma on last Entry + { 3600, "CarnivalSpawner", 0 }, // SECOND , EVENT , INIT (1 or 0) 1 = run script at startup, 0 normal delay + { 2400, "EarthQuake", 0 }, + { 1800, "ChangeWeather", 1 }, + { 1200, "ContainerSpawner", 0 }, + { 300, "PlantSpawner", 0 } //No comma on last Entry }; // Antagonists diff --git a/Server_Install_Pack/mpmissions/epoch.Altis.pbo b/Server_Install_Pack/mpmissions/epoch.Altis.pbo index a3bc09fe..762273bb 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Altis.pbo and b/Server_Install_Pack/mpmissions/epoch.Altis.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Australia.pbo b/Server_Install_Pack/mpmissions/epoch.Australia.pbo index 1290d0f7..5221aa3a 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Australia.pbo and b/Server_Install_Pack/mpmissions/epoch.Australia.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo index 1b18d805..eb7c3d80 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo b/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo index ed9f9ce6..8030594d 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo and b/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo index 36c18b4b..13654574 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo and b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo index ed3c6255..3b29adf4 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo and b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo index fa1901b6..e444477e 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo and b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Esseker.pbo b/Server_Install_Pack/mpmissions/epoch.Esseker.pbo index eb31ba52..05d85f6b 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Esseker.pbo and b/Server_Install_Pack/mpmissions/epoch.Esseker.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo index a98862e5..2696ff44 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Napf.pbo b/Server_Install_Pack/mpmissions/epoch.Napf.pbo index 19b8b28e..eb511e13 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Napf.pbo and b/Server_Install_Pack/mpmissions/epoch.Napf.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Porto.pbo b/Server_Install_Pack/mpmissions/epoch.Porto.pbo index 2445f302..80c857f7 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Porto.pbo and b/Server_Install_Pack/mpmissions/epoch.Porto.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo index e3826f89..a5a3a34d 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo and b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Sara.pbo b/Server_Install_Pack/mpmissions/epoch.Sara.pbo index 97ec8591..f8a542e2 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Sara.pbo and b/Server_Install_Pack/mpmissions/epoch.Sara.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo index 3f9ed66d..c3bd6d9b 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo and b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo index 8c37b9d0..d67e8a5d 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo and b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo index b2aaaddf..b41a3ebb 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo and b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo index f299cc85..3179544e 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo and b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Takistan.pbo b/Server_Install_Pack/mpmissions/epoch.Takistan.pbo index bad6e243..db8ab14e 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Takistan.pbo and b/Server_Install_Pack/mpmissions/epoch.Takistan.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.VR.pbo b/Server_Install_Pack/mpmissions/epoch.VR.pbo index 2ff43e66..ed46335e 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.VR.pbo and b/Server_Install_Pack/mpmissions/epoch.VR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo index 27517c24..c3d0fb96 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo and b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo index 2dd4fc20..52db2912 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo and b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.utes.pbo b/Server_Install_Pack/mpmissions/epoch.utes.pbo index 18db7064..ed5b76f9 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.utes.pbo and b/Server_Install_Pack/mpmissions/epoch.utes.pbo differ diff --git a/Sources/epoch_config/build.hpp b/Sources/epoch_config/build.hpp index caca6599..e01c73d7 100644 --- a/Sources/epoch_config/build.hpp +++ b/Sources/epoch_config/build.hpp @@ -1 +1 @@ -build=453; +build=454; diff --git a/Sources/epoch_server/build.hpp b/Sources/epoch_server/build.hpp index caca6599..e01c73d7 100644 --- a/Sources/epoch_server/build.hpp +++ b/Sources/epoch_server/build.hpp @@ -1 +1 @@ -build=453; +build=454; 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 5eb1940e..5220b5d1 100644 --- a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf +++ b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf @@ -142,7 +142,7 @@ for "_i" from 0 to _maxTraderLimit do { _agent addEventHandler ["Killed", { _this call EPOCH_server_traderKilled; }]; if !(EPOCH_forceStaticTraders) then { - [_agent, _home, _work] execFSM "\x\addons\a3_epoch_server\system\Trader_brain.fsm"; + [_agent, _home, _work] execFSM "\epoch_server\system\Trader_brain.fsm"; }; _agent setVariable ["AI_SLOT", _i, true]; 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 286c39f7..f900844b 100644 --- a/Sources/epoch_server/compile/epoch_traders/EPOCH_server_spawnTraders.sqf +++ b/Sources/epoch_server/compile/epoch_traders/EPOCH_server_spawnTraders.sqf @@ -76,7 +76,7 @@ for "_i" from 1 to _spawnCount do { _agent addEventHandler["Killed", { _this call EPOCH_server_traderKilled; }]; if !(EPOCH_forceStaticTraders) then { - [_agent, _home, [_work, _schedule]] execFSM "\x\addons\a3_epoch_server\system\Trader_brain.fsm"; + [_agent, _home, [_work, _schedule]] execFSM "\epoch_server\system\Trader_brain.fsm"; }; ["AI", _objHiveKey, [_randomAIClass, _home, [_work, _schedule]]] call EPOCH_fnc_server_hiveSET; diff --git a/Sources/epoch_server/config.cpp b/Sources/epoch_server/config.cpp index 438cda74..423ee82f 100644 --- a/Sources/epoch_server/config.cpp +++ b/Sources/epoch_server/config.cpp @@ -20,7 +20,7 @@ class cfgFunctions tag = "EPOCH"; class Epoch_Server { - file = "\x\addons\a3_epoch_server\init"; + file = "\epoch_server\init"; class init { preInit = 1; @@ -38,7 +38,7 @@ class CfgServerFunctions class A3E { tag = "EPOCH"; - file = "\x\addons\a3_epoch_server\compile"; + file = "\epoch_server\compile"; class epoch_group { class server_upgradeGroup {}; class server_updatePlayerGroup {}; diff --git a/Sources/epoch_server/init/fn_postinit.sqf b/Sources/epoch_server/init/fn_postinit.sqf index 4749f152..14d6197f 100644 --- a/Sources/epoch_server/init/fn_postinit.sqf +++ b/Sources/epoch_server/init/fn_postinit.sqf @@ -16,7 +16,7 @@ if (isNil "Epoch_SStart") then { Epoch_SStart = true; [] spawn { call compile preprocessFileLineNumbers "epoch_code\init\both_init.sqf"; - call compile preprocessFileLineNumbers "\x\addons\a3_epoch_server\init\server_init.sqf"; + call compile preprocessFileLineNumbers "\epoch_server\init\server_init.sqf"; }; }; diff --git a/Sources/epoch_server/init/server_init.sqf b/Sources/epoch_server/init/server_init.sqf index ca5d2f12..91d33783 100644 --- a/Sources/epoch_server/init/server_init.sqf +++ b/Sources/epoch_server/init/server_init.sqf @@ -63,8 +63,8 @@ if (EPOCH_modCUPVehiclesEnabled) then { }; diag_log "Epoch: Init Variables"; -call compile preprocessFileLineNumbers "\x\addons\a3_epoch_server\init\server_variables.sqf"; -call compile preprocessFileLineNumbers "\x\addons\a3_epoch_server\init\server_securityfunctions.sqf"; +call compile preprocessFileLineNumbers "\epoch_server\init\server_variables.sqf"; +call compile preprocessFileLineNumbers "\epoch_server\init\server_securityfunctions.sqf"; ["I", _instanceID, "86400", ["CONTINUE"]] call EPOCH_fnc_server_hiveSETEX; diag_log format["Epoch: Start Hive, Instance ID: '%1'", _instanceID]; @@ -163,7 +163,7 @@ EPOCH_StorageSlotsLimit call EPOCH_load_storage; diag_log "Epoch: Loading static loot"; call EPOCH_server_spawnBoatLoot; -[] execFSM "\x\addons\a3_epoch_server\system\server_monitor.fsm"; +[] execFSM "\epoch_server\system\server_monitor.fsm"; // Setting Server Date and Time _dateChanged = false; diff --git a/Sources/epoch_server/init/server_securityfunctions.sqf b/Sources/epoch_server/init/server_securityfunctions.sqf index 3db1750e..478519ba 100644 --- a/Sources/epoch_server/init/server_securityfunctions.sqf +++ b/Sources/epoch_server/init/server_securityfunctions.sqf @@ -257,6 +257,27 @@ EPOCH_server_disconnect = compileFinal(" _ret "); +EPOCH_server_movePlayer = compileFinal(" +params [['_playerObj',objNull,[_playerObj]],'_pos']; +if !(isNull _playerObj) then { + "+_skn_antiTeleportPVC+" = true; + (owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"'; + [format['Teleport %1 (%2) To Position: %3', name _playerObj, getPlayerUID _playerObj,_pos], 0] call "+_skn_server_adminLog+"; + [vehicle _playerObj,_pos] spawn { + uiSleep 0.5; + (_this select 0) setPosATL (_this select 1); + }; +}; +"); + +EPOCH_server_teleportCheck = compileFinal(" +params [['_playerObj',objNull,[_playerObj]],'_allow']; +if !(isNull _playerObj) then { + "+_skn_antiTeleportPVC+" = _allow; + (owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"'; +}; +"); + _stringInArray = { private "_ret"; _ret = false; diff --git a/Sources/epoch_server/system/server_monitor.fsm b/Sources/epoch_server/system/server_monitor.fsm index 179e9ced..8cb5c289 100644 --- a/Sources/epoch_server/system/server_monitor.fsm +++ b/Sources/epoch_server/system/server_monitor.fsm @@ -385,12 +385,12 @@ class FSM action=/*%FSM*/"// Epoch Events" \n "_pvehTime = diag_tickTime;" \n "{" \n - " _x params [""_time"", ""_scriptName"", [""_runAtStart"",false]];" \n + " _x params [""_time"", ""_scriptName"", [""_runAtStart"",0]];" \n " _eventKey = format[""EPOCH_EVENT_%1"", _forEachIndex];" \n " _lastTime = missionNamespace getVariable _eventKey;" \n " if (isNil ""_lastTime"") then {" \n " _startTime = diag_tickTime;" \n - " if (_runAtStart) then {" \n + " if (_runAtStart isEqualTo 1) then {" \n " _startTime = diag_tickTime - _time;" \n " };" \n " missionNamespace setVariable[_eventKey, _startTime];" \n @@ -452,4 +452,4 @@ class FSM { }; }; -/*%FSM*/ \ No newline at end of file +/*%FSM*/ diff --git a/Sources/epoch_server_core/build.hpp b/Sources/epoch_server_core/build.hpp index caca6599..e01c73d7 100644 --- a/Sources/epoch_server_core/build.hpp +++ b/Sources/epoch_server_core/build.hpp @@ -1 +1 @@ -build=453; +build=454; diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index caca6599..e01c73d7 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=453; +build=454; diff --git a/Tools/Build/build_epoch.bat b/Tools/Build/build_epoch.bat index 30c6a925..2e7e9797 100644 --- a/Tools/Build/build_epoch.bat +++ b/Tools/Build/build_epoch.bat @@ -80,7 +80,7 @@ echo building server pbo echo build=%BUILDNUMBER%; > !serverBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons -SET TEMP_PATH=x\addons\a3_epoch_server +SET TEMP_PATH=epoch_server rd /s/q P:\!TEMP_PATH! xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\!TEMP_PATH! START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! @@ -94,7 +94,7 @@ echo building settings pbo echo build=%BUILDNUMBER%; > !settingsBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server_settings SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons -SET TEMP_PATH=a3_epoch_server_settings +SET TEMP_PATH=epoch_server_settings rd /s/q P:\!TEMP_PATH! xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\!TEMP_PATH! START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -packonly -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! diff --git a/build.txt b/build.txt index fafef07e..566751b8 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -453 +454