Jump to content

C4-timah

Member
  • Content Count

    44
  • Joined

  • Last visited

  • Days Won

    1

C4-timah last won the day on October 16 2018

C4-timah had the most liked content!

About C4-timah

  • Rank
    Survivor

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Since I have massively reduced the default epoch allowedVehiclesList, the crash sites no longer have vehicles or loot. I assume the loot is dependent on a vehicle spawning. All I have are floating balls of fire with pillars of smoke. Is there an allowedVehiclesList file in epochz that I need to modify so the mod will know which vehicles to spawn with the crash sites? Or am I posting in the wrong section because this would be the AE3 addon that has the crash sites? *Ok, so it is EpochZ addon for the crashsite issue. However loot does not actually populate, only the pillar of smoke and ball of flame. There used to be random burning vehicles with loot around them. The crash sites are loaded and I don't see any errors on server restart: 15:30:05 "EpochZ 1.0: Crashsite at [18604.2,16447.1] with 5 lootpiles " 15:30:05 "EpochZ 1.0: Crashsite at [14442.3,15893.7] with 5 lootpiles " 15:30:05 "EpochZ 1.0: Crashsite at [15989.2,11342] with 5 lootpiles " 15:30:05 "EpochZ 1.0: Crashsite at [18483.9,14542] with 7 lootpiles " 15:30:05 "EpochZ 1.0: Crashsite at [15816.7,16210.3] with 6 lootpiles " 15:30:05 "EpochZ 1.0: Crashsite at [15584.7,20077.8] with 5 lootpiles " 15:30:05 "EpochZ 1.0: Crashsite at [19027,10179.7] with 4 lootpiles " 15:30:05 "EpochZ 1.0: Crashsite at [17920.9,13533.6] with 6 lootpiles " I only modified my allowedVehiclesList to a handful of standard vehicles [hatchback, suv, pickup, quad, blue jetski, uh1h] that only spawn up to 3 each across the map. Could this be the problem? ** I have not modified anything dealing with the epochz addon. Thanks.
  2. It appears the EPOCH_server_revivePlayer.sqf is significantly different now. /* Author: Aaron Clark - EpochMod.com Contributors: He-Man Description: Player Login 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_server/compile/epoch_player/EPOCH_server_loadPlayer.sqf */ //[[[cog import generate_private_arrays ]]] private ["_Primary","_CheckLocation","_allGroupMembers","_alreadyDead","_assignedItems","_attachments","_backpack","_backpackItems","_canBeRevived","_class","_communityStats","_communityStatsArray","_currentWeapon","_deadPlayer","_defaultData","_dir","_equipped","_found","_goggles","_group","_handgunWeapon","_headgear","_instanceID","_jammer","_jammers","_linkedItems","_loadout","_location","_newLocation","_newPlyr","_playerData","_playerGroup","_playerGroupArray","_playerNetID","_playerUID","_primaryWeapon","_reject","_secondaryWeapon","_serverSettingsConfig","_type","_uniform","_uniformItems","_vars","_vest","_vestItems","_wMags","_wMagsArray","_weapon"]; //[[[end]]] _reject = true; params [["_player",objNull,[objNull]],["_isMale",true],["_fsmHandle",0],["_playerData",[]]]; if (!isNull _player) then { // load server settings _serverSettingsConfig = configFile >> "CfgEpochServer"; _instanceID = call EPOCH_fn_InstanceID; _playerNetID = owner _player; _playerUID = getPlayerUID _player; if (_playerUID != "") then { if (_playerdata isequalto []) then { // Make Hive call (["Player", _playerUID] call EPOCH_fnc_server_hiveGETRANGE) params [ ["_status", 0 ], ["_playerDataTmp", [] ] ]; if (_status == 1 && _playerDataTmp isEqualType []) then { _playerData = _playerDataTmp; }; }; // Apperance defaults _uniform = [_serverSettingsConfig, "defaultUniformFemale", "U_Test_uniform"] call EPOCH_fnc_returnConfigEntry; _class = "Epoch_Female_F"; _vest = [_serverSettingsConfig, "defaultVestFemale", "V_F41_EPOCH"] call EPOCH_fnc_returnConfigEntry; if (_isMale) then { _uniform = [_serverSettingsConfig, "defaultUniformMale", "U_Test1_uniform"] call EPOCH_fnc_returnConfigEntry; _class = "Epoch_Male_F"; _vest = [_serverSettingsConfig, "defaultVestMale", "V_41_EPOCH"] call EPOCH_fnc_returnConfigEntry; }; _goggles = [_serverSettingsConfig, "defaultGoggles", ""] call EPOCH_fnc_returnConfigEntry; _headgear = [_serverSettingsConfig, "defaultHeadgear", ""] call EPOCH_fnc_returnConfigEntry; _backpack = [_serverSettingsConfig, "defaultBackpack", ""] call EPOCH_fnc_returnConfigEntry; // Inventory defaults _primaryWeapon = [_serverSettingsConfig, "defaultprimaryWeapon", []] call EPOCH_fnc_returnConfigEntry; // ["arifle_MX_pointer_F","","acc_pointer_IR","",["30Rnd_65x39_caseless_mag",29],[],""]; _secondaryWeapon = [_serverSettingsConfig, "defaultsecondaryWeapon", []] call EPOCH_fnc_returnConfigEntry; // ["launch_NLAW_F","","","",["NLAW_F",1],[],""]; _handgunWeapon = [_serverSettingsConfig, "defaulthandgunWeapon", []] call EPOCH_fnc_returnConfigEntry; // ["hgun_P07_F","","","",["16Rnd_9x21_Mag",16],[],""]; _uniformItems = [_serverSettingsConfig, "defaultuniformItems", []] call EPOCH_fnc_returnConfigEntry; // [["FAK",1],["30Rnd_65x39_caseless_mag",2,30],["Chemlight_green",1,1]]; _vestItems = [_serverSettingsConfig, "defaultvestItems", []] call EPOCH_fnc_returnConfigEntry; // [["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]]; _backpackItems = [_serverSettingsConfig, "defaultbackpackItems", []] call EPOCH_fnc_returnConfigEntry; // [["Medikit",1],["FAK",10],[["hgun_P07_F","","","",["16Rnd_9x21_Mag",16],[],""],1]]; _assignedItems = [_serverSettingsConfig, "defaultassignedItems", ["","","","",[],[],""]] call EPOCH_fnc_returnConfigEntry; // ["Rangefinder","","","",[],[],""] _linkedItems = [_serverSettingsConfig, "defaultlinkedItems", ["ItemMap","","EpochRadio0","","",""]] call EPOCH_fnc_returnConfigEntry; // ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"] _currentWeapon = [_serverSettingsConfig, "defaultSelectedWeapon", ""] call EPOCH_fnc_returnConfigEntry; // class of selected weapon _loadout = [ _primaryWeapon, _secondaryWeapon, _handgunWeapon, [_uniform,_uniformItems], [_vest,_vestItems], [_backpack,_backpackItems], _headgear, _goggles, _assignedItems, _linkedItems ]; // default data, if "Player" data format is changed update this array! _defaultData = [[0, [], _instanceID, 1.0], [0, 0, 1, 0, [0,0,0,0,0,0,0,0,0,0,0]], ["", "", "", "", _currentWeapon, _class], [], call EPOCH_defaultVars_SEPXVar, _loadout, [], [], [], [], "", true]; // If data does not validate against default or is too short, override with default data. if !(_playerData isEqualTypeParams _defaultData) then { diag_log format["DEBUG: Invaild player data %1, defaults used instead.", _playerData]; _playerData = _defaultData; }; _playerData params ["_worldspace","_medical","","_server_vars","_vars","","","","","","_playerGroup","_canBeRevived"]; // Load world space and previous instance id _worldspace params ["_dir","_location","_prevInstance",["_schemaVersion",0.5]]; if (count _location == 2) then{ _location = (_location select 0) vectorAdd (_location select 1); }; // Get player group _playerGroupArray = []; // check players group if (_playerGroup != "") then { _found = false; (["Group", _playerGroup] call EPOCH_fnc_server_hiveGETRANGE) params [ ["_status", 0 ], ["_playerGroupArrayTmp", [] ] ]; if (_status == 1 && !(_playerGroupArrayTmp isEqualTo[])) then { _playerGroupArrayTmp params ["","","","_modArray","_memberArray"]; _found = _playerGroup == _playerUID; if (!_found) then { _allGroupMembers = (_modArray + _memberArray) apply {_x select 0}; _found = _playerUID in _allGroupMembers; }; if (_found) then { _playerGroupArray = _playerGroupArrayTmp; }; }; if (!_found) then { _playerGroup = ""; }; // diag_log format["DEBUG (Load Player) Set Group: %1", _playerGroup]; }; _medical params ["_bleedingRemaining","_fatigue","_oxygenRemaining","_damage",["_hitpoints",[0,0,0,0,0,0,0,0,0,0,0]] ]; _deadPlayer = ["PlayerStats", _playerUID, 0] call EPOCH_fnc_server_hiveGETBIT; // check if player is already dead or was critically hit HitHead = 2 or HitBody = 7 and if blood pressure too high. _alreadyDead = (_deadPlayer || (_damage == 1) || (_hitpoints select 2 == 1) || (_hitpoints select 7 == 1) || (_vars select 12 >= 180)); if (_alreadyDead || _prevInstance != _instanceID || (count _location) < 3 || !(_location isEqualType [])) then { // reset hitpoints _hitpoints = [0,0,0,0,0,0,0,0,0,0,0]; _dir = random 360; // try to find respawn point by position _newLocation = _server_vars param [0,[]]; // 0 = RESPAWN POS // normal respawn location _location = getMarkerPos "respawn_west"; _location set[2, 0]; if (_newLocation isEqualType [] && {(count _newLocation) == 3}) then { _CheckLocation = _newLocation; if (surfaceiswater _newLocation) then { _CheckLocation = ATLToASL _newLocation; }; _jammers = nearestObjects[_CheckLocation, ["PlotPole_EPOCH"], 6]; if !(_jammers isEqualTo[]) then { // get nearby object _jammer = _jammers param [0,objNull]; // check if object is not null and is alive. if (!isNull _jammer && {alive _jammer}) then { // check if player is still a member of object group. if ((_jammer getVariable["BUILD_OWNER", "-1"]) in [_playerUID, _playerGroup]) then { // Override location with that of object _location = _newLocation; }; }; }; }; if (_alreadyDead) then { _vars = call EPOCH_defaultVars_SEPXVar; _canBeRevived = true; }; }; _group = grpNull; // find existing group if (_playerGroup != "") then { { if ((_x getVariable["GROUP", ""]) == _playerGroup) exitWith{ _group = group _x; }; } forEach (allPlayers select {alive _x}); }; if (isNull _group) then { _group = createGroup [west, true]; }; _newPlyr = _group createUnit[_class, getMarkerPos "respawn_west", [], 0, "CAN_COLLIDE"]; _newPlyr hideobjectglobal true; if !(isNull _newPlyr) then { // disable AI on temp unit _newPlyr disableAI "ALL"; if (!_alreadyDead) then { // Medical _newPlyr setBleedingRemaining _bleedingRemaining; // _newPlyr setFatigue _fatigue; _newPlyr setOxygenRemaining _oxygenRemaining; _newPlyr setDamage _damage; } else { // player dead use default Data for appearance and loadout data _playerData = _defaultData; }; // disable further damage server side _newPlyr allowDamage false; // set player loadout _playerData params ["","","_appearance","","","_loadout"]; // get current weapon to send to param for selectWeapon _currentWeapon = _appearance param [4,""]; // _newPlyr setUnitLoadout [_loadout, false]; // Workaround for Client / Server synchronizing issue in SetUnitLoadout _loadabs = [_newPlyr,_loadout] call Epoch_server_SetUnitLoadout; if (_loadabs isequalto -1) then { deleteVehicle _newPlyr; }; // Final Push if (isNull _player) then { deleteVehicle _newPlyr; diag_log "Epoch: DEBUG: _player object was null reject connection"; } else { // add to cleanup addToRemainsCollector[_newPlyr]; _reject = false; if (_playerGroup != "") then { _newPlyr setVariable["GROUP", _playerGroup]; }; _newPlyr setVariable["PUID", _playerUID]; if !(_vars isEqualTo[]) then { _newPlyr setVariable["VARS", _vars]; }; if !(_server_vars isEqualTo[]) then{ _newPlyr setVariable["SERVER_VARS", _server_vars]; }; if (!_canBeRevived) then { _newPlyr setVariable["REVIVE", _canBeRevived]; }; // load community stats _communityStatsArray = ["CommunityStats", _playerUID] call EPOCH_fnc_server_hiveGETRANGE; _communityStats = (_communityStatsArray param [1,[]]) param [0,[]]; _newPlyr setVariable["COMMUNITY_STATS", _communityStats]; // Flag new body as ready for use. _newPlyr setVariable["FinalDest", [_location,_dir], true]; // Send message to player so they can take over the new body. [_playerNetID, _playerUID, [_newPlyr, _vars, _currentWeapon, _loadabs, _playerGroup, _canBeRevived, _newPlyr call EPOCH_server_setPToken,_playerGroupArray, _communityStats, _hitpoints], _fsmHandle, _player] call EPOCH_server_pushPlayer; // revive test _newPlyr setVariable ['#rev_enabled', true, true]; // [] remoteExec ["bis_fnc_reviveInit",_player]; // new Dynamicsimulation if([configFile >> "CfgEpochServer", "playerDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then { _newPlyr enableDynamicSimulation true; _newPlyr triggerDynamicSimulation true; }; }; } else { diag_log format["LOGIN FAILED UNIT NULL: %1 [%2|%3]", _player, _group, count allgroups]; }; }; }; if (_reject) then { diag_log format ["DEBUG PLAYER NOT SETUP OR INVAILD: %1", _player]; true remoteExec ['EPOCH_client_rejectPlayer',_player]; }; true Found the male class... // Apperance defaults _uniform = [_serverSettingsConfig, "defaultUniformFemale", "U_Test_uniform"] call EPOCH_fnc_returnConfigEntry; _class = "Epoch_Female_F"; _vest = [_serverSettingsConfig, "defaultVestFemale", "V_F41_EPOCH"] call EPOCH_fnc_returnConfigEntry; if (_isMale) then { _uniform = [_serverSettingsConfig, "defaultUniformMale", "U_Test1_uniform"] call EPOCH_fnc_returnConfigEntry; _class = "Epoch_Male_F"; _vest = [_serverSettingsConfig, "defaultVestMale", "V_41_EPOCH"] call EPOCH_fnc_returnConfigEntry; }; I assume that the above code for _class = "Epoch_Male_F"; is the correct one to comment out? Also I am unable to locate _newPlyr addUniform _uniform; in the EPOCH_server_loadPlayer.sqf or EPOCH_server_revivePlayer.sqf EPOCH_server_loadPlayer.sqf /* Author: Aaron Clark - EpochMod.com Contributors: He-Man Description: Player Login 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_server/compile/epoch_player/EPOCH_server_loadPlayer.sqf */ //[[[cog import generate_private_arrays ]]] private ["_Primary","_CheckLocation","_allGroupMembers","_alreadyDead","_assignedItems","_attachments","_backpack","_backpackItems","_canBeRevived","_class","_communityStats","_communityStatsArray","_currentWeapon","_deadPlayer","_defaultData","_dir","_equipped","_found","_goggles","_group","_handgunWeapon","_headgear","_instanceID","_jammer","_jammers","_linkedItems","_loadout","_location","_newLocation","_newPlyr","_playerData","_playerGroup","_playerGroupArray","_playerNetID","_playerUID","_primaryWeapon","_reject","_secondaryWeapon","_serverSettingsConfig","_type","_uniform","_uniformItems","_vars","_vest","_vestItems","_wMags","_wMagsArray","_weapon"]; //[[[end]]] _reject = true; params [["_player",objNull,[objNull]],["_isMale",true],["_fsmHandle",0],["_playerData",[]]]; if (!isNull _player) then { // load server settings _serverSettingsConfig = configFile >> "CfgEpochServer"; _instanceID = call EPOCH_fn_InstanceID; _playerNetID = owner _player; _playerUID = getPlayerUID _player; if (_playerUID != "") then { if (_playerdata isequalto []) then { // Make Hive call (["Player", _playerUID] call EPOCH_fnc_server_hiveGETRANGE) params [ ["_status", 0 ], ["_playerDataTmp", [] ] ]; if (_status == 1 && _playerDataTmp isEqualType []) then { _playerData = _playerDataTmp; }; }; // Apperance defaults _uniform = [_serverSettingsConfig, "defaultUniformFemale", "U_Test_uniform"] call EPOCH_fnc_returnConfigEntry; _class = "Epoch_Female_F"; _vest = [_serverSettingsConfig, "defaultVestFemale", "V_F41_EPOCH"] call EPOCH_fnc_returnConfigEntry; if (_isMale) then { _uniform = [_serverSettingsConfig, "defaultUniformMale", "U_Test1_uniform"] call EPOCH_fnc_returnConfigEntry; //_class = "Epoch_Male_F"; _vest = [_serverSettingsConfig, "defaultVestMale", "V_41_EPOCH"] call EPOCH_fnc_returnConfigEntry; }; _goggles = [_serverSettingsConfig, "defaultGoggles", ""] call EPOCH_fnc_returnConfigEntry; _headgear = [_serverSettingsConfig, "defaultHeadgear", ""] call EPOCH_fnc_returnConfigEntry; _backpack = [_serverSettingsConfig, "defaultBackpack", ""] call EPOCH_fnc_returnConfigEntry; // Inventory defaults _primaryWeapon = [_serverSettingsConfig, "defaultprimaryWeapon", []] call EPOCH_fnc_returnConfigEntry; // ["arifle_MX_pointer_F","","acc_pointer_IR","",["30Rnd_65x39_caseless_mag",29],[],""]; _secondaryWeapon = [_serverSettingsConfig, "defaultsecondaryWeapon", []] call EPOCH_fnc_returnConfigEntry; // ["launch_NLAW_F","","","",["NLAW_F",1],[],""]; _handgunWeapon = [_serverSettingsConfig, "defaulthandgunWeapon", []] call EPOCH_fnc_returnConfigEntry; // ["hgun_P07_F","","","",["16Rnd_9x21_Mag",16],[],""]; _uniformItems = [_serverSettingsConfig, "defaultuniformItems", []] call EPOCH_fnc_returnConfigEntry; // [["FAK",1],["30Rnd_65x39_caseless_mag",2,30],["Chemlight_green",1,1]]; _vestItems = [_serverSettingsConfig, "defaultvestItems", []] call EPOCH_fnc_returnConfigEntry; // [["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]]; _backpackItems = [_serverSettingsConfig, "defaultbackpackItems", []] call EPOCH_fnc_returnConfigEntry; // [["Medikit",1],["FAK",10],[["hgun_P07_F","","","",["16Rnd_9x21_Mag",16],[],""],1]]; _assignedItems = [_serverSettingsConfig, "defaultassignedItems", ["","","","",[],[],""]] call EPOCH_fnc_returnConfigEntry; // ["Rangefinder","","","",[],[],""] _linkedItems = [_serverSettingsConfig, "defaultlinkedItems", ["ItemMap","","EpochRadio0","","",""]] call EPOCH_fnc_returnConfigEntry; // ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"] _currentWeapon = [_serverSettingsConfig, "defaultSelectedWeapon", ""] call EPOCH_fnc_returnConfigEntry; // class of selected weapon _loadout = [ _primaryWeapon, _secondaryWeapon, _handgunWeapon, [_uniform,_uniformItems], [_vest,_vestItems], [_backpack,_backpackItems], _headgear, _goggles, _assignedItems, _linkedItems ]; // default data, if "Player" data format is changed update this array! _defaultData = [[0, [], _instanceID, 1.0], [0, 0, 1, 0, [0,0,0,0,0,0,0,0,0,0,0]], ["", "", "", "", _currentWeapon, _class], [], call EPOCH_defaultVars_SEPXVar, _loadout, [], [], [], [], "", true]; // If data does not validate against default or is too short, override with default data. if !(_playerData isEqualTypeParams _defaultData) then { diag_log format["DEBUG: Invaild player data %1, defaults used instead.", _playerData]; _playerData = _defaultData; }; _playerData params ["_worldspace","_medical","","_server_vars","_vars","","","","","","_playerGroup","_canBeRevived"]; // Load world space and previous instance id _worldspace params ["_dir","_location","_prevInstance",["_schemaVersion",0.5]]; if (count _location == 2) then{ _location = (_location select 0) vectorAdd (_location select 1); }; // Get player group _playerGroupArray = []; // check players group if (_playerGroup != "") then { _found = false; (["Group", _playerGroup] call EPOCH_fnc_server_hiveGETRANGE) params [ ["_status", 0 ], ["_playerGroupArrayTmp", [] ] ]; if (_status == 1 && !(_playerGroupArrayTmp isEqualTo[])) then { _playerGroupArrayTmp params ["","","","_modArray","_memberArray"]; _found = _playerGroup == _playerUID; if (!_found) then { _allGroupMembers = (_modArray + _memberArray) apply {_x select 0}; _found = _playerUID in _allGroupMembers; }; if (_found) then { _playerGroupArray = _playerGroupArrayTmp; }; }; if (!_found) then { _playerGroup = ""; }; // diag_log format["DEBUG (Load Player) Set Group: %1", _playerGroup]; }; _medical params ["_bleedingRemaining","_fatigue","_oxygenRemaining","_damage",["_hitpoints",[0,0,0,0,0,0,0,0,0,0,0]] ]; _deadPlayer = ["PlayerStats", _playerUID, 0] call EPOCH_fnc_server_hiveGETBIT; // check if player is already dead or was critically hit HitHead = 2 or HitBody = 7 and if blood pressure too high. _alreadyDead = (_deadPlayer || (_damage == 1) || (_hitpoints select 2 == 1) || (_hitpoints select 7 == 1) || (_vars select 12 >= 180)); if (_alreadyDead || _prevInstance != _instanceID || (count _location) < 3 || !(_location isEqualType [])) then { // reset hitpoints _hitpoints = [0,0,0,0,0,0,0,0,0,0,0]; _dir = random 360; // try to find respawn point by position _newLocation = _server_vars param [0,[]]; // 0 = RESPAWN POS // normal respawn location _location = getMarkerPos "respawn_west"; _location set[2, 0]; if (_newLocation isEqualType [] && {(count _newLocation) == 3}) then { _CheckLocation = _newLocation; if (surfaceiswater _newLocation) then { _CheckLocation = ATLToASL _newLocation; }; _jammers = nearestObjects[_CheckLocation, ["PlotPole_EPOCH"], 6]; if !(_jammers isEqualTo[]) then { // get nearby object _jammer = _jammers param [0,objNull]; // check if object is not null and is alive. if (!isNull _jammer && {alive _jammer}) then { // check if player is still a member of object group. if ((_jammer getVariable["BUILD_OWNER", "-1"]) in [_playerUID, _playerGroup]) then { // Override location with that of object _location = _newLocation; }; }; }; }; if (_alreadyDead) then { _vars = call EPOCH_defaultVars_SEPXVar; _canBeRevived = true; }; }; _group = grpNull; // find existing group if (_playerGroup != "") then { { if ((_x getVariable["GROUP", ""]) == _playerGroup) exitWith{ _group = group _x; }; } forEach (allPlayers select {alive _x}); }; if (isNull _group) then { _group = createGroup [west, true]; }; _newPlyr = _group createUnit[_class, getMarkerPos "respawn_west", [], 0, "CAN_COLLIDE"]; _newPlyr hideobjectglobal true; if !(isNull _newPlyr) then { // disable AI on temp unit _newPlyr disableAI "ALL"; if (!_alreadyDead) then { // Medical _newPlyr setBleedingRemaining _bleedingRemaining; // _newPlyr setFatigue _fatigue; _newPlyr setOxygenRemaining _oxygenRemaining; _newPlyr setDamage _damage; } else { // player dead use default Data for appearance and loadout data _playerData = _defaultData; }; // disable further damage server side _newPlyr allowDamage false; // set player loadout _playerData params ["","","_appearance","","","_loadout"]; // get current weapon to send to param for selectWeapon _currentWeapon = _appearance param [4,""]; // _newPlyr setUnitLoadout [_loadout, false]; // Workaround for Client / Server synchronizing issue in SetUnitLoadout _loadabs = [_newPlyr,_loadout] call Epoch_server_SetUnitLoadout; if (_loadabs isequalto -1) then { deleteVehicle _newPlyr; }; // Final Push if (isNull _player) then { deleteVehicle _newPlyr; diag_log "Epoch: DEBUG: _player object was null reject connection"; } else { // add to cleanup addToRemainsCollector[_newPlyr]; _reject = false; if (_playerGroup != "") then { _newPlyr setVariable["GROUP", _playerGroup]; }; _newPlyr setVariable["PUID", _playerUID]; if !(_vars isEqualTo[]) then { _newPlyr setVariable["VARS", _vars]; }; if !(_server_vars isEqualTo[]) then{ _newPlyr setVariable["SERVER_VARS", _server_vars]; }; if (!_canBeRevived) then { _newPlyr setVariable["REVIVE", _canBeRevived]; }; // load community stats _communityStatsArray = ["CommunityStats", _playerUID] call EPOCH_fnc_server_hiveGETRANGE; _communityStats = (_communityStatsArray param [1,[]]) param [0,[]]; _newPlyr setVariable["COMMUNITY_STATS", _communityStats]; // Flag new body as ready for use. _newPlyr setVariable["FinalDest", [_location,_dir], true]; // Send message to player so they can take over the new body. [_playerNetID, _playerUID, [_newPlyr, _vars, _currentWeapon, _loadabs, _playerGroup, _canBeRevived, _newPlyr call EPOCH_server_setPToken,_playerGroupArray, _communityStats, _hitpoints], _fsmHandle, _player] call EPOCH_server_pushPlayer; // revive test _newPlyr setVariable ['#rev_enabled', true, true]; // [] remoteExec ["bis_fnc_reviveInit",_player]; // new Dynamicsimulation if([configFile >> "CfgEpochServer", "playerDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then { _newPlyr enableDynamicSimulation true; _newPlyr triggerDynamicSimulation true; }; }; } else { diag_log format["LOGIN FAILED UNIT NULL: %1 [%2|%3]", _player, _group, count allgroups]; }; }; }; if (_reject) then { diag_log format ["DEBUG PLAYER NOT SETUP OR INVAILD: %1", _player]; true remoteExec ['EPOCH_client_rejectPlayer',_player]; }; true EPOCH_server_revivePlayer.sqf /* Author: Aaron Clark - EpochMod.com Contributors: He-Man Description: Player Revive 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_server/compile/epoch_player/EPOCH_server_revivePlayer.sqf */ //[[[cog import generate_private_arrays ]]] private ["_loadabs","_loadout","_CorpseCrypto","_PlayerCrypto","_attachments","_cIndex","_class","_currwh","_deleteprimary","_deletesecondary","_dir","_droppedPrimary","_droppedSecondary","_droppedWeapons","_equipped","_group","_garbage","_location","_newPlyr","_playerGroup","_playerUID","_token","_type","_vars","_wMags","_wMagsArray","_weapon","_wh","_kIndex","_reviver","_reviverCStats","_reviverKarma","_reviverKarmaAdj"]; //[[[end]]] params ["_player","_reviver",["_token","",[""]] ]; if !([_reviver, _token] call EPOCH_server_getPToken) exitWith{}; if (isNull _player) exitWith{}; if (_player distance _reviver > 20) exitWith{}; if (!local _player) then { _playerUID = getPlayerUID _player; if (!isNil "_playerUID" && !alive _player) then { if (_player == _reviver) exitWith { 'epochserver' callExtension format['820|%1|EpochMod.com Autoban #R1',getPlayerUID _reviver]; ['ahb', format['%1 (%2): Tried to Revive yourself (%3)', name _reviver, getPlayerUID _reviver, _this]] call EPOCH_fnc_server_hiveLog; }; _class = typeOf _player; if (_class in ["Epoch_Male_F", "Epoch_Female_F"]) then { if (_player getVariable["REVIVE", true]) then { if (_player getvariable ['Reviving', false]) exitwith { diag_log format['DEBUG Reviving skipped - Player already reviving : %1', _this]; }; _player setvariable ['Reviving',true]; diag_log format["DEBUG server_revivePlayer : %1", _this]; _location = getPosATL _player; _dir = getDir _player; _playerGroup = _player getVariable["GROUP", ""]; // Load Inventory _loadout = getUnitLoadout _player; _wh = nearestObjects[_player, ["WeaponHolderSimulated"], 12]; _droppedPrimary = []; _droppedSecondary = []; _deleteprimary = []; _deletesecondary = []; reverse _wh; { _currwh = _x; { _type = getNumber(configfile >> "cfgweapons" >> (_x select 0) >> "type"); switch _type do { case 1: {_droppedPrimary = _x; _deleteprimary = [_currwh]}; case 4: {_droppedSecondary = _x; _deletesecondary = [_currwh]}; }; } forEach (weaponsItemsCargo _x); } foreach _wh; { if (!isnull _x) then {deletevehicle _x}; } foreach (_deleteprimary+_deletesecondary); if (count _droppedPrimary == 6) then { _droppedPrimary set [6,_droppedPrimary select 5]; _droppedPrimary set [5,[]]; }; if (count _droppedSecondary == 6) then { _droppedSecondary set [6,_droppedSecondary select 5]; _droppedSecondary set [5,[]]; }; hideObjectGlobal _player; // create new player unit change this class later _group = grpNull; if (_playerGroup != "") then { { if ((_x getVariable["GROUP",""]) == _playerGroup) exitWith { _group = group _x; }; }forEach (allPlayers select {alive _x}); if (isNull _group) then { _group = createGroup [west, true]; }; diag_log format["DEBUG Group Found: %1", _group]; } else { _group = createGroup [west, true]; diag_log format["DEBUG Group Created: %1", _group]; }; _newPlyr = _group createUnit[_class, _location, [], 0, "CAN_COLLIDE"]; // new Dynamicsimulation if([configFile >> "CfgEpochServer", "playerDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry)then { _newPlyr enableDynamicSimulation true; _newPlyr triggerDynamicSimulation true; }; addToRemainsCollector[_newPlyr]; _newPlyr disableAI "ALL"; _newPlyr setVariable ["SETUP", true]; _newPlyr setVariable ["PUID", _playerUID]; _newPlyr setVariable ["GROUP", _playerGroup]; _newPlyr setVariable ["REVIVE", false]; _newPlyr setVariable ["SERVER_VARS",_player getVariable ["SERVER_VARS",[]]]; // _player playActionNow "Die"; _newPlyr setDir _dir; _newPlyr setPosATL _location; // Medical _newPlyr setFatigue 1; _newPlyr setDamage 0.25; // Add inventory _loadout set [0,_droppedPrimary]; _loadout set [1,_droppedSecondary]; // _newPlyr setUnitLoadout [_loadout, false]; // Workaround for Client / Server synchronizing issue in SetUnitLoadout _loadabs = [_newPlyr,_loadout] call Epoch_server_SetUnitLoadout; if (_loadabs isequalto -1) exitwith { removeFromRemainsCollector [_newPlyr]; deletevehicle _newPlyr; _player setvariable ['Reviving',false]; _player hideObjectGlobal false; }; _garbage = createVehicle [selectrandom ["MedicalGarbage_01_1x1_v1_F","MedicalGarbage_01_1x1_v3_F","MedicalGarbage_01_1x1_v2_F"], _location, [], 0, "CAN_COLLIDE"]; EPOCH_cleanupQueue pushBack _garbage; // Final Push _token = _newPlyr call EPOCH_server_setPToken; _CorpseCrypto = _player getVariable['Crypto', 0]; if (_CorpseCrypto > 0) then { _cIndex = EPOCH_customVars find 'Crypto'; _vars = _player getVariable['VARS', call EPOCH_defaultVars_SEPXVar]; _PlayerCrypto = _CorpseCrypto; _PlayerCrypto remoteExec ['EPOCH_effectCrypto',_player]; _vars set[_cIndex, _PlayerCrypto]; _newPlyr setVariable['VARS', _vars]; }; // send to player [_newPlyr, _token, _loadabs] remoteExec ['EPOCH_clientRevive',_player]; // send stat to reviver [_reviver, "Revives", 1, true] call EPOCH_server_updatePlayerStats; // send karma stat to reviver _kIndex = EPOCH_communityStats find "Karma"; _reviverCStats = _reviver getVariable["COMMUNITY_STATS", EPOCH_defaultStatVars]; _reviverKarma = _reviverCStats select _kIndex; _reviverKarmaAdj = 5; if(_reviverKarma < 0)then{_reviverKarmaAdj = -5}; [_reviver, "Karma", _reviverKarmaAdj, true] call EPOCH_server_updatePlayerStats; }; }; }; };
  3. For epochz mod, what is the easiest way to get Z's, Military AI and Survivors off the same team? I don't know how to use spawners. I'm hoping to be able to modify a setting within the mission sqf or something simple. I was under the impression Survivors wouldn't shoot you unless you engaged them first. Z's don't attack anyone but players. I'd like to have the Survivors neutral to players but Survivors, Z's and hostile AI against each other. It just makes more sense when I'm up to my eyeballs in an AI $h!t storm that when Z's roll in, they attack the AI and me, not just me. I know I've seen a post on this somewhere but couldn't find it again.
  4. Was able to test being killed by Z's tonight. Died without being kicked! Just have to test being infected but it appears its all good for now.
  5. After doing a second TP quest around Altis, removed all non-player owned vehicles. Waited 15min, logged out, saved the DB. Made sure to modify the epochConfig.hpp to allow for: ReservedVehSlots = 192; and // Spawntables forcedVehicleSpawnTable = "allowedVehiclesList"; after the server restart, only the 7 vehicles enabled from that table spawn, allowing for everything else to be purchased through HS Traders!
  6. My apologies, you are correct. I failed to mention that I placed those entries (in the format you have posted) originally in the setvariable.txt file and everyone was still being kicked, myself included. For some reason it seems to take my server longer to properly respond to corrections lately. Not sure what gives. I've reverted the two entries back to the way you have posted. I'll give it a week. This wouldn't be database sensitive would it? Not sure if that is even probable. I've got some active duty marines playing on our server from Camp Lejeune where my brother was posted back in the day. I kinda want to get this ironed out before they deploy. Afterthought, the Anti-virus injector and Anti-virus pills are not dropped by the Z's and do not spawn in any loot. Could this be a side issue?
  7. That was the first thing I did. Everyone still gets kicked. The above post includes the BE filter in setvariable.txt and that exact entry. No good. Thats what's confusing me. By all rights that should have fixed it. The next step is to disable the infection option which would really suck as the animation for being infected is totally awesome.
  8. I just did a full TP around the whole map. Wiped all but player owned. Restarted. It all returned. That was alot of plastic I lit off. Did some more editing of the allowedvehiclelist, changed the number of reserved vehicles and deleted some entries in the redis db of vehicles that I dont want spawning. The amount of vehicles is slowly dimishing after each server restart. Even reduced the number of spawns for the allowed list to thin the herd some more. We'll see how it pans out in a week or so. Vehicle timers should take care of the rest.
  9. Wow, had no intention of trying to steal players. I'm fairly certain my server pales in comparison to yours by a long shot. Piles of issues and BE filters I can't remedy while players continue to get kicked because of it. Named the server to match the mod being used. That's all.
  10. So, files are modified so that only a select amount of vehicles and one chopper spawn. However, it appears the server is still fully populated with every type of vehicle, even the ones that are zeroed out. Server restart doesn't remedy the issue. 1. Is there a simple server console string/command to use to destroy all spawned vehicles currently not owned by a player? 2. If 'No' to #1, is there an entry on the redis db tool that will allow me to purge old spawned vehicles? 3. If 'No' to #2, do I have to use admin "F1", enable 'Vehicle ESP' and teleport around to manually destroy all 160 spawned vehicles? Please let this NOT be my only option! I don't mind blowing stuff up, but c'mon! LOL!
  11. Are you using the BEM BattlEye Filter tool to update your .txt files? Link for tool: http://bem.themeq.xyz/index.php Line #32, this is where all script restriction #32's go: 5 createAgent !="bis_revive_ratioLethal = createAgent [\"Logic\", [10,10,0], [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent [\"Epoch_Sapper_F\", getPos _cage2, [], 0, \"FORM\"];" !="_unit = createAgent[_unitClass, position player, [], _zRange, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 0, \"CAN_COLLIDE\"];" !="_axeSapper = createAgent [\"Epoch_Sapper_F\", _pos, [], 12, \"FORM\"];" !="_nestMate = createAgent [\"Epoch_Sapper_F\", _garrPos, [], 0, \"FORM\"];" Your script restriction #32. You need to use the BEM tool to add this to the above line: "pos0 = [(_coords select 0),(_coords select 1),0]; _unit = createAgent [_agent, _pos0, [], 0, "CAN_COLLIDE"]; _unitdir = _objects" Download the .log and .txt file to your PC. The edit takes place on your PC in the BattlEye folder where you installed Arma3. You will upload the updated file to your server and restart for it to take effect or wait until your server restarts if its scheduled to do so.
  12. Apparently editing epochConfig.hpp by commenting out some of the default spawning events (Carnival, Money Drop, Plant Spawner, Earthquake, etc.) and reducing the epoch traders ( NPCSlotsLimit = 7 ) from the default amount has dropped the idle cpu % down by almost 20%! You can see where the CPU usage drops considerably when I make the change and restart. There is an increase when 3 players join and drops back to the 20% range when the leave.
  13. So...I changed all the vehicle quantity values to 0. Upon server restart, it even removed the vehicles purchased from HS_Traders and vehicles we owned and had items in. Restored the original cpp file, then restarted server and purchased and owned vehicles with items returned. Guess I'll have to play with this until it stops removing what players already own, or is this normal side effect?
  14. Mixed your server up with another I have on my favorites, my apologies. Another server announced WAI missions over the radio and hint messages. However they were using the original missions, both bandit and hero. I'd like to add some of the hero missions also which are still in the a3_epoch_WAI.pbo or WAI folder. I'll keep hunting. There may be a hint in the orignal WAI post on this forum.
  15. Reserved slots are currently at 15, which is less than the default. Thanks for the direction, much appreciated! Can the vehicles be commented out? From this: allowedVehiclesList[] = { {"C_Offroad_01_EPOCH",8}, {"C_Quadbike_01_EPOCH",8}, {"C_Hatchback_01_EPOCH",10}, {"C_Hatchback_02_EPOCH",10}, To this: allowedVehiclesList[] = { //{"C_Offroad_01_EPOCH",8}, //{"C_Quadbike_01_EPOCH",8}, //{"C_Hatchback_01_EPOCH",10}, //{"C_Hatchback_02_EPOCH",10}, Thanks!
×
×
  • Create New...