diff --git a/Changelogs/0.3.9.0.txt b/Changelogs/0.3.9.0.txt index 06176fd8..48c358a1 100644 --- a/Changelogs/0.3.9.0.txt +++ b/Changelogs/0.3.9.0.txt @@ -31,8 +31,11 @@ maxAimingAccuracy -> maxGeneral - Set the maximum value for each available AI sk - [_player,-100] call EPOCH_server_effectCrypto; // removes 100 [Added] New experimental PBO packing tool found in Epoch/Tools/PowerShell/ [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] Use new disableChannels syntax in 1.60 and enable text chat on side chat and not voice. Thanks to @morgoth0 for the heads up! https://github.com/EpochModTeam/Epoch/issues/544 [Changed] ForceRestart option should now restart as soon as all players disconnect and server is locked. [Changed] Epoch Events can now self initialize on server startup (if third events[] array element is 1). Fixes issue with weather not changing till first event run. +[Fixed] BE kick when player opened stock A3 dialog (Game > Options > Layout). +[Fixed] BE kick with Spawn Loot admin panel option. Thanks to @jostster for the report: https://github.com/EpochModTeam/Epoch/issues/540 [Info] Changed name of a3_epoch_server.pbo to epoch_server.pbo. Also changed path from \x\addons\a3_epoch_server to \epoch_server [Info] Changed name of a3_epoch_server_settings.pbo to epoch_server_settings.pbo. [Info] RConPort 2306 added to example-beserver.cfg for changes since A3 1.58. diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server.pbo index bdb8fec9..3ee19d1f 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 869e1586..d40f14db 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 a0007f45..2eac96d2 100644 Binary files a/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo and b/Server_Install_Pack/@epochhive/addons/epoch_server_settings.pbo differ diff --git a/Server_Install_Pack/mpmissions/epoch.Altis.pbo b/Server_Install_Pack/mpmissions/epoch.Altis.pbo index f8d74a54..9eda533f 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 c9f8664b..bab3bc12 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 96801456..6ebc9b3a 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 7fae0d50..27e82674 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 960d4c96..4ecc736d 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 16490ce3..59f479d2 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 f7f0a608..81085a70 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 70f667d7..6243c338 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 71fc29cf..f94aa4d4 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 8603ec3e..63776483 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 a0653a32..7cc061e1 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 f0d1b303..2b30c85a 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 2a319afd..9d3416cd 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 187ea0cb..c699f1ee 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 18468c14..3639d2ae 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 7eeacc63..6aae4b24 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 c93e2c66..85d5733a 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 bb4b635b..c1e8fba1 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 12a94d9c..2cc2d673 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 c6176006..47bf3633 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 ba5f52e9..4a2b17c5 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 cb76c1c4..48dcc01f 100644 Binary files a/Server_Install_Pack/mpmissions/epoch.utes.pbo and b/Server_Install_Pack/mpmissions/epoch.utes.pbo differ diff --git a/Server_Install_Pack/sc/BattlEye/scripts.txt b/Server_Install_Pack/sc/BattlEye/scripts.txt index a46647e9..0dda58b5 100644 --- a/Server_Install_Pack/sc/BattlEye/scripts.txt +++ b/Server_Install_Pack/sc/BattlEye/scripts.txt @@ -3,7 +3,6 @@ 7 forceRespawn !="reviveHandleForceRespawnAction" !="forcerespawn player;" 7 setFriend 7 setAmmo -7 RscDebugConsole_watch !="RscDebugConsole_watchSave = [true,true,true,true];" !="\"RscDebugConsole_watch\"" 7 enableFatigue 7 setUnitRecoilCoefficient 7 setWeaponReloadingTime @@ -37,7 +36,7 @@ 7 createAgent !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent ["Epoch_Sapper_F", getPos _cage2, [], 0, "FORM"];" 7 createTeam 7 createDialog !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog _tapDiag;" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';" -7 createDisplay !="createDisplay \"rmx_dynamenu\";" !="_parent createdisplay _displayClass;" +7 createDisplay !="createDisplay \"rmx_dynamenu\";" !="_parent createdisplay _displayClass;" !="finddisplay 151 createdisplay 'RscDisplayOptionsLayout'" 7 deleteMarker 7 setMarker !="CBA_fnc_setMarkerPersistent\"" !="\\fnc_setMarkerPersistent" !="\"setMarkerPersistent" 7 createMarker !="CBA_fnc_createMarker\"" !="\\fnc_createMarker" !="\"createMarker" !="cba_fCreateMarker" diff --git a/Server_Install_Pack/sc/server-example.cfg b/Server_Install_Pack/sc/server-example.cfg index c8dff4ca..e38769aa 100644 --- a/Server_Install_Pack/sc/server-example.cfg +++ b/Server_Install_Pack/sc/server-example.cfg @@ -1,14 +1,14 @@ // EPOCH SERVER CONFIG // GLOBAL SETTINGS -hostname = "EpochMod.com (0.3.8|1.58) ID02 YourHost"; +hostname = "EpochMod.com (0.3.8|1.60) ID02 YourHost"; password = ""; passwordAdmin = "!CHANGE_THIS_PASSWORD!"; serverCommandPassword = "!CHANGE_THIS_PASSWORD!"; logFile = "A3Master.log"; verifySignatures = 2; BattlEye = 1; -requiredBuild = 135656; +requiredBuild = 136470; // WHITELIST FILE TYPES allowedLoadFileExtensions[] = {:}; diff --git a/Sources/epoch_config/build.hpp b/Sources/epoch_config/build.hpp index d821bca3..de40a398 100644 --- a/Sources/epoch_config/build.hpp +++ b/Sources/epoch_config/build.hpp @@ -1 +1 @@ -build=492; +build=500; diff --git a/Sources/epoch_config/sandbox_config.hpp b/Sources/epoch_config/sandbox_config.hpp index 726a51fa..81d3401a 100644 --- a/Sources/epoch_config/sandbox_config.hpp +++ b/Sources/epoch_config/sandbox_config.hpp @@ -31,7 +31,7 @@ OnLoadMissionTime = False; onLoadName = "Epoch Mod"; disabledAI = true; scriptedPlayer = 1; -disableChannels[]={0,1,2,6}; +disableChannels[]={{0,true,true},{1,false,true},{2,true,true},{6,true,true}}; // allow text only on side chat enableItemsDropping = 0; briefing = 0; debriefing = 0; diff --git a/Sources/epoch_server/build.hpp b/Sources/epoch_server/build.hpp index d821bca3..de40a398 100644 --- a/Sources/epoch_server/build.hpp +++ b/Sources/epoch_server/build.hpp @@ -1 +1 @@ -build=492; +build=500; diff --git a/Sources/epoch_server/compile/epoch_player/EPOCH_server_onPlayerDisconnect.sqf b/Sources/epoch_server/compile/epoch_player/EPOCH_server_onPlayerDisconnect.sqf index 9dfd742d..108551f2 100644 --- a/Sources/epoch_server/compile/epoch_player/EPOCH_server_onPlayerDisconnect.sqf +++ b/Sources/epoch_server/compile/epoch_player/EPOCH_server_onPlayerDisconnect.sqf @@ -14,7 +14,6 @@ */ private ["_return"]; params ["_player","_id","_uid","_name"]; - _return = false; if (!isNull _player) then { if (_player getVariable["SETUP", false]) then { @@ -27,4 +26,6 @@ if (!isNull _player) then { deleteVehicle _player; }; }; +_uid call EPOCH_server_disconnect; +['Disconnected', [_uid, _name]] call EPOCH_fnc_server_hiveLog; _return diff --git a/Sources/epoch_server/init/server_init.sqf b/Sources/epoch_server/init/server_init.sqf index ea3cc735..fa0affde 100644 --- a/Sources/epoch_server/init/server_init.sqf +++ b/Sources/epoch_server/init/server_init.sqf @@ -69,20 +69,17 @@ call compile preprocessFileLineNumbers "\epoch_server\init\server_securityfuncti diag_log format["Epoch: Start Hive, Instance ID: '%1'", _instanceID]; diag_log "Epoch: Init Connect/Disconnect handlers"; -addMissionEventHandler ["HandleDisconnect", { _this call EPOCH_server_onPlayerDisconnect }]; -["EPOCH_onPlayerConnected", "onPlayerConnected", { - "epochserver" callExtension format["001|%1", _uid]; - diag_log format["playerConnected:%1:%2", _uid, _name]; - ['Connected', [_uid, _name]] call EPOCH_fnc_server_hiveLog; +onPlayerConnected {}; // seems this is needed or addMissionEventHandler "PlayerConnected" does not work. as of A3 1.60 +addMissionEventHandler ["PlayerConnected", { + params ["_id","_uid","_name","_jip","_owner"]; + // TODO: diabled STEAMAPI - Vac ban check needs reworked. + // "epochserver" callExtension format["001|%1", _uid]; + // diag_log format["playerConnected:%1", _this]; ["PlayerData", _uid, EPOCH_expiresPlayer, [_name]] call EPOCH_fnc_server_hiveSETEX; -}] call BIS_fnc_addStackedEventHandler; - -["EPOCH_onPlayerDisconnected", "onPlayerDisconnected", { - diag_log format["playerDisconnected:%1:%2", _uid, _name]; - ['Disconnected', [_uid, _name]] call EPOCH_fnc_server_hiveLog; - _uid call EPOCH_server_disconnect; -}] call BIS_fnc_addStackedEventHandler; + ['Connected', [_uid, _name]] call EPOCH_fnc_server_hiveLog; +}]; +addMissionEventHandler ["HandleDisconnect", {_this call EPOCH_server_onPlayerDisconnect}]; diag_log "Epoch: Setup Side Settings"; //set side status diff --git a/Sources/epoch_server/init/server_securityfunctions.sqf b/Sources/epoch_server/init/server_securityfunctions.sqf index e64e2ef6..cd7b5c57 100644 --- a/Sources/epoch_server/init/server_securityfunctions.sqf +++ b/Sources/epoch_server/init/server_securityfunctions.sqf @@ -575,15 +575,13 @@ call compile("'"+_skn_doTokenAuth+"' addPublicVariableEventHandler { _array = _this select 1; _tokenSet = false; if !([_array select 1, _array select 2] call EPOCH_server_getPToken) exitWith{}; - if ((_array select 0) isEqualType 'STRING') then { - if (_array select 0 == '"+_skn_AH_rndVarAHInitCheckToken+"') then { - _tokenSet = true; - _puid = (_array select 1) getVariable['PUID', '']; - if (_puid != '') then { - if !(_puid in "+_skn_AH_rndVarAHInitCheck+") then { - "+_skn_AH_rndVarAHInitCheck+" pushBack _puid; - diag_log format['DEBUG: player auth token set %1', _array]; - }; + if (_array select 0 isEqualTo '"+_skn_AH_rndVarAHInitCheckToken+"') then { + _tokenSet = true; + _puid = (_array select 1) getVariable['PUID', '']; + if (_puid != '') then { + if !(_puid in "+_skn_AH_rndVarAHInitCheck+") then { + "+_skn_AH_rndVarAHInitCheck+" pushBack _puid; + diag_log format['DEBUG: player auth token set %1', _array]; }; }; }; @@ -1474,7 +1472,7 @@ _skn_admincode = compileFinal (" _cntBuildings = _cntBuildings + 1; }; }forEach (nearestObjects[player, _lootClasses, _this]); - [format['Spawn Loot (%1) for %2 Buildings',_this,_cntBuildings],0] call "+_skn_adminLog_PVC+"; + [format['Looting %2 Buildings within (%1)m',_this,_cntBuildings],0] call "+_skn_adminLog_PVC+"; hint format['Spawned Loot for %1 Buildings',_cntBuildings]; }; "+_skn_old_esp+" = { diff --git a/Sources/epoch_server_core/build.hpp b/Sources/epoch_server_core/build.hpp index d821bca3..de40a398 100644 --- a/Sources/epoch_server_core/build.hpp +++ b/Sources/epoch_server_core/build.hpp @@ -1 +1 @@ -build=492; +build=500; diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf index 1418849d..dbc3ee5c 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf @@ -13,4 +13,4 @@ https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf */ params ["_prefix","_val"]; -"epochserver" callExtension format["700|%1|%2", _prefix, _val]; +"epochserver" callExtension format["701|%1|%2", _prefix, _val]; diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index d821bca3..de40a398 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=492; +build=500; diff --git a/build.txt b/build.txt index 2cb5b19e..bcfdc40b 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -492 +500