mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
commit
9c222bb556
Binary file not shown.
Binary file not shown.
@ -223,5 +223,4 @@ forceRestartTime = 14400; // 4 hour restarts
|
||||
hiveAdminCmdTime = 5; // how many seconds between each command queue call.
|
||||
|
||||
// DEBUG
|
||||
useOldLoadVehicles = "false";
|
||||
enableUnitTestOnStart = 1; // enable extra debug for database calls. 1 = enabled.
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -8,20 +8,20 @@
|
||||
5 assignAs !"assignAsCargo" !="_unit assignAsGunner _axeCopter;" !="_driver assignAsDriver _axeCopter;" !="axeVIP assignAsDriver vehicle axeVIP;"
|
||||
5 assignAsCargo !="_x assignAsCargo axeGeneralsBoat;" !="axeVIP assignAsCargo vehicle player;" !="axeVIP assignAsCargo vehicle axeVIP;"
|
||||
5 allowDamage !="_unit allowDamage false;" !="_unit allowDamage true;" !="player allowDamage true;" !="vehicle player allowDamage true;" !="player allowDamage false;" !="_target allowDamage true;" !="_cargo allowDamage false;" !="if (_god) then {_vehicle allowdamage"
|
||||
5 addWeaponCargo !="_acceptHolder addWeaponCargo [_wWeapon, 1] ;" !="CBA_fnc_addWeaponCargo" !="\\fnc_addWeaponCargo" !="\"addWeaponCargo" !="cba_fAddWeaponCargo"
|
||||
5 addWeaponCargo !="_acceptHolder addWeaponCargo [_wWeapon, 1] ;" !="CBA_fnc_addWeaponCargo" !="\\fnc_addWeaponCargo" !="\"addWeaponCargo" !="cba_fAddWeaponCargo" !="_loot addweaponcargoglobal [_weapon,_weaponAmount];"
|
||||
5 onMapSingleClick !="onMapSingleClick '';" !="\"onmapsingleclick\""
|
||||
5 addMagazine !"addMagazineCargo" !="player addMagazine [_item,_count];" !="player addMagazine \"sledge_swing\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine \"stick_swing\";" !="_wh addMagazineAmmoCargo[_item, 1, _count];" !="CBA_fnc_addMagazine" !="\\fnc_addMagazine" !="\"addMagazine" !="vehicle player addMagazineTurret" !="vehicle player addMagazineTurret" !="EPOCH_fnc_addMagazineOverflow" !="_vehicle addMagazineTurret [_ammotype, _turret, _ammocount]" !="_container addMagazineAmmoCargo _x;"
|
||||
5 addMagazineCargo !="_dogHolder addMagazineCargo [\"RabbitCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Pelt_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Venom_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"SnakeCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"ChickenCarcass_EPOCH\", 1]" !="_acceptHolder addMagazineCargo [_wAmmo, 1] ;" !="CBA_fnc_addMagazineCargo" !="\\fnc_addMagazineCargo" !="\"addMagazineCargo" !="cba_fAddMagazineCargo"
|
||||
5 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo" !="wH = _nearByHolder select 0;\n};\nif !(isNull _wh) then {\n_wh addItemCargoGlobal [_item,1];\n};\n};\n};\n\n_fnc_findItemInContainers = " !="player addItem 'ItemRope';" !="_container addItemCargoGlobal [_type,_cnt];"
|
||||
5 addMagazineCargo !="_dogHolder addMagazineCargo [\"RabbitCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Pelt_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"Venom_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"SnakeCarcass_EPOCH\", 1]" !="_dogHolder addMagazineCargo [\"ChickenCarcass_EPOCH\", 1]" !="_acceptHolder addMagazineCargo [_wAmmo, 1] ;" !="CBA_fnc_addMagazineCargo" !="\\fnc_addMagazineCargo" !="\"addMagazineCargo" !="cba_fAddMagazineCargo" !="_loot addmagazinecargoglobal [_magazine,_magazineAmount];"
|
||||
5 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo" !="wH = _nearByHolder select 0;\n};\nif !(isNull _wh) then {\n_wh addItemCargoGlobal [_item,1];\n};\n};\n};\n\n_fnc_findItemInContainers = " !="player addItem 'ItemRope';" !="_container addItemCargoGlobal [_type,_cnt];" !="_loot additemcargoglobal [_item,_itemAmount];"
|
||||
5 addBackPack !="fnc_addBackpackCargo" !="_newPlyr addBackpack _bpack;"
|
||||
5 addMissionEventHandler !="CBA_clientID = [0, 2] select isMultiplayer;\naddMissionEventHandler [\"PlayerConnected\", {\nparams [\"_id\", \"_uid\", \"_name\"" !="addMissionEventHandler [\"EachFrame\", {call cba_common_fnc_onFrame}];" !="addMissionEventHandler [\"HandleDisconnect\"," !="addMissionEventHandler [\"Loaded\"," !="addMissionEventHandler ['Draw3D',_var + \"call Epoch_gui3DCooldownEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dModelPosEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dWorldPosEH;\"];" !="addMissionEventHandler [\n\"ended\",\n{\n\nBIS_fnc_missionHandlers_end = _this;" !="private _ehId = addMissionEventHandler [_event select [2], _code];" !="addMissionEventHandler [\"PlayerViewChanged\", {if (cameraView isEqualTo \"GROUP\") then {vehicle player switchCamera \"Internal\";};}];" !="addMissionEventHandler [\"EachFrame\",\n{\n;\n\n\nmissionNamespace setVariable [\"BIS_"
|
||||
5 removeMissionEventHandler !="removeMissionEventHandler [\"Draw3D\", _id];" !="removeMissionEventHandler [_event select [2], _x select 1];"
|
||||
5 removeAllWeapons !="removeAllWeapons axeGeneral;"
|
||||
5 setViewDistance !="setViewDistance 1600"
|
||||
5 createGroup !="EPOCH_server_createGroup" !="_grp = createGroup [RESISTANCE, true];" !="if (isserver) then {\n_group = creategroup sidelogic;" !="grpVIPGeneral = createGroup [RESISTANCE, true];" !="_grp = createGroup side _plyr;" !="_grp = createGroup [_side, true];" !="_grp = createGroup [(side _plyr), true];" !="createcenter sidelogic;\n_grpLogic = creategroup sidelogic;\nbis_functions_mainscope" !="_group = createGroup [west, true];"
|
||||
5 createGroup !="EPOCH_server_createGroup" !="_grp = createGroup [RESISTANCE, true];" !="if (isserver) then {\n_group = creategroup sidelogic;" !="grpVIPGeneral = createGroup [RESISTANCE, true];" !="_grp = createGroup side _plyr;" !="_grp = createGroup [_side, true];" !="_grp = createGroup [(side _plyr), true];" !="createcenter sidelogic;\n_grpLogic = creategroup sidelogic;\nbis_functions_mainscope" !="_group = createGroup [west, true];" !="_newgroup = creategroup civilian;"
|
||||
5 createVehicleCrew !="createvehiclecrew _x;"
|
||||
5 createVehicleLocal !="\"Sign_Arrow_Direction_Yellow_F\" createVehicleLocal" !="\"#particlesource\" createVehicleLocal" !="\"#lightpoint\" createVehicleLocal" !="\"BloodSplat\" createVehicleLocal" !="[\"lightning1_F\", \"lightning2_F\"] call BIS_fnc_selectRandom;\n_lighting = _class createVehicleLocal" !="SLX_XEH_DUMMY createVehicleLocal [0, 0, 0];" !="CBA_eventHandlers = \"Logic\" createVehicleLocal [0, 0];"
|
||||
5 createUnit !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit [\"I_officer_F\", axeGeneralPos, [], 1, \"CAN_COLLIDE\"];" !="bis_functions_mainscope = _grpLogic createunit [\"Logic\",[9,9,9],[],0,\"none\"];" !="_unit = _grp createUnit[selectRandom _arrUnits, _pos, [], 0, \"FORM\"];" !="_driver = (group player) createUnit[\"I_UAV_AI\", position axeUAV, [], 0, \"CAN_COLLIDE\"];"
|
||||
5 createUnit !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit [\"I_officer_F\", axeGeneralPos, [], 1, \"CAN_COLLIDE\"];" !="bis_functions_mainscope = _grpLogic createunit [\"Logic\",[9,9,9],[],0,\"none\"];" !="_unit = _grp createUnit[selectRandom _arrUnits, _pos, [], 0, \"FORM\"];" !="_driver = (group player) createUnit[\"I_UAV_AI\", position axeUAV, [], 0, \"CAN_COLLIDE\"];" !="_unit = _grp createUnit [\"C_Man_1\", [0,0,0], [], 0, \"CAN_COLLIDE\"];"
|
||||
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\"];"
|
||||
5 createDialog !="createDialog 'server_info_picture'" !="createdialog 'epoch_tablet_gui'" !="createdialog 'Epoch_CamDialog'" !="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';" !="createDialog \"Epoch_myTempGroup\";" !="createDialog (if ((Epoch_my_tempGroupUID == \"\") && (Epoch_my_tempGroup isEqualTo [])) then {\"EPOCH_createTempGrp\"} else {\"Epoch_myTempGroup\"});" !="createDialog \"tempGroupRequests\";" !="createdialog 'EPOCH_SimpleInput';" !="createdialog 'PlayerStatsDialog'" !="'ServerStatsDialog'"
|
||||
5 createDisplay !="createDisplay \"rmx_dynamenu\";" !="createDisplay \"rmx_moveDynamicHUD\";" !="_parent createdisplay _displayClass;" !="finddisplay 151 createdisplay 'RscDisplayOptionsLayout'" !="_display createdisplay \"RscDisplayDLCPreview\";"
|
||||
@ -31,13 +31,13 @@
|
||||
5 assignItem !="axeVIP assignItem _item;" !="unassignItem"
|
||||
5 ctrlSetEventHandler !="ctrlSetEventHandler [\"mouseButtonDown\", _action];" !="_ctrlButtonOK ctrlseteventhandler [\"buttonclick\"," !="ctrlSetEventHandler ['LBDblClick', '_this call" !="_buttonRespawn ctrlseteventhandler [\"buttonclick\",\"with uinamespace do {['buttonRespawn'," !="_ctrl ctrlSetEventHandler [\"mouseEnter\"" !="_ctrlBtn ctrlSetEventHandler [\"MouseButtonDblClick\", _verAct];" !="_button_gen ctrlSetEventHandler [\"ButtonClick\",_btn_code + \"(uiNamespace getVariable [\"" !="t \"#(rgb,8,8,3)color(1,1,1,0.1)\";\n_c ctrlCommit 0;\n_c ctrlSetEventHandler [\"MouseButtonUp\",format[\"['remove',%1,(_this select 1)" !="ctrlSetEventHandler [\"ButtonClick\",\"_slider = ((finddisplay 602) displayCtrl 654001);"
|
||||
5 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !="player addeventhandler [\"PostReset\",{BIS_EnginePPReset = true;} ];" !="player addEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="\"CBA_fnc_addEventHandler\"" !="\\fnc_addEventHandler" !="\"addEventHandler" !="_eventFunc = _eventFunc + \"(_this select 0) addEventHandler ['Respawn', \" + str _eventFunc + \"];\";" !="_unit addEventHandler [\"hitpart\"," !="CBA_fnc_addEventHandler" !="_unit addEventHandler [_x, format ['call cba_xeh_fnc_%1', _x]];" !="_ship addEventHandler [\"AttributesChanged3DEN\"" !="addEventHandler [\"HandleDamage\",bis_fnc_reviveOnPlayerHandleDamage];" !="_unit addEventHandler [\"FiredNear\"" !="_smokeEH = _plyr addEventHandler [\"FiredNear\", \"airDropHandle setFSMVariable" !="_onContactEH = _currentTarget addEventHandler[\"EpeContactStart"" !="_object addeventhandler [\"local\",{[[_this select 0],\"bis_fnc_objectVar\""
|
||||
5 displayAddEventHandler !="(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !="displayAddEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="displayaddeventhandler [\"mousemoving\"," !="_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'" !="_display displayaddeventhandler [_x,_fnc_animate];" !="Development\") then\n{\n_display displayaddeventhandler [\n\"keydown\"" !="CBA_fnc_addDisplayHandler" !="_display displayAddEventHandler [\"MouseMoving" !="private _handler = _display displayAddEventHandler [_key, _code];" !="_display displayAddEventHandler [\"KeyDown\", \"_this call cba_keybinding_fnc_onKeyDown\"" !="isplay 602};\n\n_display = (findDisplay 602);\n_display displayAddEventHandler [\"MouseButtonUp\",\"[] spawn {rmx_var_fav_selected = f" !="displayaddeventhandler\n[\n\"mousemoving\"" !="_ctrlBohemia ctrlcommit 0;\n\n\n_display displayaddeventhandler"
|
||||
5 ctrlAddEventHandler !="_control = _display displayctrl 37305; \n_control ctrladdeventhandler" !="_ctrlMap = _display displayctrl 101;\n_ctrlMap ctrladdeventhandler" !="_display displayctrl 21995;\n_assetsButton ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2406; \n_control ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2400;\n_control ctrladdeventhandler [\"buttonclick\"," !="ctrladdeventhandler [\"lbselchanged\"," !="ctrladdeventhandler [\n\"lbselchanged\"," !="_ButtonGeneral ctrladdeventhandler [\"buttonclick\"," !="_ctrlExecuteLocal ctrladdeventhandler [\"buttonclick\"," !="_bg ctrlAddEventHandler [\"MouseEnter\"," !="_container ctrlAddEventHandler [\"LBDblClick\",\"_this call EPOCH_itemInteractClick\"];" !="(uiNamespace getVariable 'ESP_map') ctrlAddEventHandler['Draw', '_esp_targets = EPOCH_ESPMAP_TARGETS;" !="ctrlAddEventHandler ['MouseButtonDown'" !="_ctrl ctrlSetEventHandler [\"mouseEnter\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseExit\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseButtonDown\", (format [\"call %1;\",(_buttonSettings select _e select 2)])];" !="_prevButton ctrlAddEventHandler [\"MouseButtonUp\", {_this call cba_diagnostic_fnc_debug" !="BIS_RscRespawnControlsMap_ctrlHeaderRespawnButton ctrlAddEventhandler [\"ButtonDown\"" !="_control = _display displayctrl 105;\n_control ctrladdeventhandler [\"MouseButtonUp\"" !="ctrlHeaderRespawnButton\", controlNull]) ctrlAddEventhandler [\"ButtonDown\"" !="_selected = false;\n{\n_c = _display displayCtrl _x;\n_c ctrlAddEventHandler [\"LBDrag\",\"rmx_var_favBar_Item = (_this call epoch_fav" !="_ctrlMouseArea ctrladdeventhandler [\"setfocus\",{with uinamespace do {[\"dlcClear\",[ctrlpar" !="13484 ctrlAddEventHandler [\"ButtonClick\", {[\"executeButton\"," !="_ctrlButtonPurchase ctrladdeventhandler"
|
||||
5 displayAddEventHandler !="(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !="displayAddEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="displayaddeventhandler [\"mousemoving\"," !="_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'" !="_display displayaddeventhandler [_x,_fnc_animate];" !="Development\") then\n{\n_display displayaddeventhandler [\n\"keydown\"" !="CBA_fnc_addDisplayHandler" !="_display displayAddEventHandler [\"MouseMoving" !="private _handler = _display displayAddEventHandler [_key, _code];" !="_display displayAddEventHandler [\"KeyDown\", \"_this call cba_keybinding_fnc_onKeyDown\"" !="isplay 602};\n\n_display = (findDisplay 602);\n_display displayAddEventHandler [\"MouseButtonUp\",\"[] spawn {rmx_var_fav_selected = f" !="displayaddeventhandler\n[\n\"mousemoving\"" !="_ctrlBohemia ctrlcommit 0;\n\n\n_display displayaddeventhandler" !="(findDisplay 46) displayAddEventHandler [\"KeyDown\", {\nprivate _code = _this select 1;"
|
||||
5 ctrlAddEventHandler !="_control = _display displayctrl 37305; \n_control ctrladdeventhandler" !="_ctrlMap = _display displayctrl 101;\n_ctrlMap ctrladdeventhandler" !="_display displayctrl 21995;\n_assetsButton ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2406; \n_control ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2400;\n_control ctrladdeventhandler [\"buttonclick\"," !="ctrladdeventhandler [\"lbselchanged\"," !="ctrladdeventhandler [\n\"lbselchanged\"," !="_ButtonGeneral ctrladdeventhandler [\"buttonclick\"," !="_ctrlExecuteLocal ctrladdeventhandler [\"buttonclick\"," !="_bg ctrlAddEventHandler [\"MouseEnter\"," !="_container ctrlAddEventHandler [\"LBDblClick\",\"_this call EPOCH_itemInteractClick\"];" !="(uiNamespace getVariable 'ESP_map') ctrlAddEventHandler['Draw', '_esp_targets = EPOCH_ESPMAP_TARGETS;" !="ctrlAddEventHandler ['MouseButtonDown'" !="_ctrl ctrlSetEventHandler [\"mouseEnter\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseExit\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseButtonDown\", (format [\"call %1;\",(_buttonSettings select _e select 2)])];" !="_prevButton ctrlAddEventHandler [\"MouseButtonUp\", {_this call cba_diagnostic_fnc_debug" !="BIS_RscRespawnControlsMap_ctrlHeaderRespawnButton ctrlAddEventhandler [\"ButtonDown\"" !="_control = _display displayctrl 105;\n_control ctrladdeventhandler [\"MouseButtonUp\"" !="ctrlHeaderRespawnButton\", controlNull]) ctrlAddEventhandler [\"ButtonDown\"" !="_selected = false;\n{\n_c = _display displayCtrl _x;\n_c ctrlAddEventHandler [\"LBDrag\",\"rmx_var_favBar_Item = (_this call epoch_fav" !="_ctrlMouseArea ctrladdeventhandler [\"setfocus\",{with uinamespace do {[\"dlcClear\",[ctrlpar" !="13484 ctrlAddEventHandler [\"ButtonClick\", {[\"executeButton\"," !="_ctrlButtonPurchase ctrladdeventhandler" !="ctrlAddEventHandler [ \"Draw\",{[2, _this] call BIS_fnc_OM_handleMapControls"
|
||||
5 removeAllEventHandlers !"ctrlRemoveAllEventHandlers" !"displayRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="{_ship removeAllEventHandlers _x;} forEach [\"AttributesChanged3DEN\"" !="_zombie removeAllEventHandlers \"Hit\";" !="_zombie removeAllEventHandlers \"FiredNear\";"
|
||||
5 displayRemoveAllEventHandlers !="_display displayRemoveAllEventHandlers _x;" !="if !(isMultiplayer) then { { (findDisplay 46) displayRemoveAllEventHandlers _x } forEach [\"KeyUp\", \"KeyDown\"] };"
|
||||
5 removeAllMissionEventHandlers
|
||||
5 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'"
|
||||
5 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !="_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !=" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="player removeEventHandler [_x, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler"
|
||||
5 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !="_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !=" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="player removeEventHandler [_x, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler" !="getvariable \"BIS_OM_HandleMapControls_mapHandler\") ctrlRemoveEventHandler [_x select 0, _x select 1]"
|
||||
5 switchCamera !="vehicle player switchCamera" !="_antagonist switchCamera \"Internal\";"
|
||||
5 remoteControl !="fn_moduleRemoteControl.sqf" !="\"BIS_fnc_moduleRemoteControl\""
|
||||
5 drawIcon3D !="EPOCH_drawIcon3dStability" !="EPOCH_drawIcon3d" !="drawIcon3D[\"\x\addons\a3_epoch_code\Data\Member.paa\",_color,_pos,1,1,0,_text,1,0.025,\"PuristaMedium\"];\n}forEach EPOCH_ESP_TARGETS;" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_stability],_color,(getPosATL EPOCH_stabilityTarget),5,5,0,\"\",1,0.05,\"PuristaMedium\"];" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_num],_color,_pos,4,4,0,\"\",1,0.05,\"PuristaMedium\"];" !="if (_condition) then {\ndrawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text," !="drawIcon3D [\"\A3\UI_F_MP_Mark\Data\Tasks\Misc\background.paa\"" !="drawIcon3D\n[\n(_x getVariable [\"bis_fnc_reviveGet3dIcons_textures" !="drawIcon3D[\"x\addons\a3_epoch_code\Data\UI\snap_ca.paa\"" !="drawIcon3D [\"\a3\ui_f\data\map\diary\icons\unitgroup_ca.paa\""
|
||||
@ -45,5 +45,5 @@
|
||||
5 ctrlCreate !="_parent ctrlcreate [\"RscMessageBox\",2351];" !="_c = _dsp ctrlCreate [\"rmx_drag_RscActivePicture\", call epoch_getIDC];" !="_c = _dsp ctrlCreate [\"rmx_t1\", call epoch_getIDC];" !="ctrlCreate [\"RscProgress\",_idc + 1];" !="ctrlCreate [\"rmx_rscControlsGroup\"" !="_ListGroup = _display ctrlCreate [\"RscControlsGroupNoHScrollbars\"" !="ctrlCreate [_x,call _getIDC];" !="_mainGrp = _display ctrlCreate [\"Epoch_main_config_group\",_value];" !="ctrlCreate !="_prevButton = _display ctrlCreate [\"RscButtonMenu\", 90110, _dbg];" [\"RscControlsGroupNoScrollbars\",call epoch_getIDC];" !="ctrlCreate [\"rmx_rscPicture\",(66600 + _e)];" !="ctrlCreate [\"RscStructuredText\",call epoch_getIDC];" !="_bar = _display ctrlCreate [\"RscCustomProgress\"" !="_group = _dsp ctrlCreate [\"rmx_rscControlsGroup\", call Epoch_getIDC]" !="_control = _display ctrlCreate [\"RscControlsGroupNoScrollbars\", 5678910];"
|
||||
5 deleteVehicleCrew !="fn_deleteVehicleCrew.sqf" !="\"BIS_fnc_deleteVehicleCrew\""
|
||||
5 selectPlayer !="selectPlayer _playerObject;"
|
||||
5 playSound3D !="playSound3D [_soundEffectFinal, _unit, false, getPosASL _unit, 1, 1, _soundEffectRange];" !="playSound3D ['a3\sounds_f\air\heli_attack_02\alarm.wss', player, false,getposasl _object, 1, 1, 300];" !="playSound3D [\"a3\Sounds_F\environment\animals\Goats\Goat_\" + selectRandom"
|
||||
5 playSound3D !="playSound3D [_soundEffectFinal, _unit, false, getPosASL _unit, 1, 1, _soundEffectRange];" !="playSound3D ['a3\sounds_f\air\heli_attack_02\alarm.wss', player, false,getposasl _object, 1, 1, 300];" !="playSound3D [\"a3\Sounds_F\environment\animals\Goats\Goat_\" + selectRandom" !="playsound3d [_vehicleSplat, _zombie"
|
||||
5 setUnitLoadout !="Epoch_SetUnitLoadout" !="_newPlyr setunitloadout _loadout;"
|
||||
|
@ -22,6 +22,9 @@ _canAutoRun = true;
|
||||
if !(alive player) exitwith {
|
||||
false
|
||||
};
|
||||
if (lifeState player == "INCAPACITATED") exitwith {
|
||||
false
|
||||
};
|
||||
/*
|
||||
if !(istouchingground player) exitwith {
|
||||
false
|
||||
|
@ -61,7 +61,7 @@ _mycams spawn {
|
||||
Epoch_CamFilmGrain = ppEffectCreate ["FilmGrain", 2000 + 25];
|
||||
};
|
||||
Epoch_CamFilmGrain ppEffectEnable true;
|
||||
_intensity = ((player distance Epoch_ActiveCam) / 10000) min 1;
|
||||
_intensity = ((player distance Epoch_ActiveCam) / 4000) min 1;
|
||||
_sharpness = 1.25 - _intensity;
|
||||
Epoch_CamFilmGrain ppEffectAdjust [_intensity,_sharpness,2.01,0.75,1.0,true];
|
||||
Epoch_CamFilmGrain ppEffectCommit 0;
|
||||
@ -81,8 +81,11 @@ _mycams spawn {
|
||||
_EpochCam camSetTarget _targetpos;
|
||||
_EpochCam camCommit 0;
|
||||
_dirs = [5,10,15,20,25,30,35,40,45,40,35,30,25,20,15,10,5,0,-5,-10,-15,-20,-25,-30,-35,-40,-45,-40,-35,-30,-25,-20,-15,-10,-5,0];
|
||||
_GrainUpdateIntervall = 5;
|
||||
_nextgrainupdate = diag_ticktime;
|
||||
while {!isnull _display} do {
|
||||
Epoch_CamAdjust params ["_dir","_height","_zoom"];
|
||||
_playerdist = player distance Epoch_ActiveCam;
|
||||
_AutoCam = Epoch_AutoCam;
|
||||
if !(_ActiveCam isequalto Epoch_ActiveCam) then {
|
||||
_ActiveCam = Epoch_ActiveCam;
|
||||
@ -96,11 +99,14 @@ _mycams spawn {
|
||||
_EpochCam cameraEffect ['internal', 'front'];
|
||||
_EpochCam camCommit 0;
|
||||
_targetheight = ((getposasl Epoch_ActiveCam) select 2)-50;
|
||||
_intensity = ((player distance Epoch_ActiveCam) / 10000) min 1;
|
||||
(_display displayctrl 1000) ctrlsettext format ["Cam %1",(_mycams find Epoch_ActiveCam) + 1];
|
||||
};
|
||||
if (_nextgrainupdate <= diag_ticktime) then {
|
||||
_intensity = (_playerdist / 4000) min 1;
|
||||
_sharpness = 1.25 - _intensity;
|
||||
Epoch_CamFilmGrain ppEffectAdjust [_intensity,_sharpness,2.01,0.75,1.0,true];
|
||||
Epoch_CamFilmGrain ppEffectCommit 0;
|
||||
(_display displayctrl 1000) ctrlsettext format ["Cam %1",(_mycams find Epoch_ActiveCam) + 1];
|
||||
Epoch_CamFilmGrain ppEffectCommit _GrainUpdateIntervall;
|
||||
_nextgrainupdate = diag_ticktime + _GrainUpdateIntervall;
|
||||
};
|
||||
if !(Epoch_AutoCam) then {
|
||||
_targetheight = ((_targetheight + _height) min 50) max -150;
|
||||
|
@ -89,3 +89,26 @@ if (_woman == 1) then {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_tocheckfor = switch _item do {
|
||||
case (uniform player): {uniformcontainer player};
|
||||
case (vest player): {vestcontainer player};
|
||||
case (backpack player): {backpackcontainer player};
|
||||
default {objnull};
|
||||
};
|
||||
if (!isnull _tocheckfor) then {
|
||||
{
|
||||
_target = _x;
|
||||
_subcontainers = everyContainer _target;
|
||||
{
|
||||
_subcontainer = _x;
|
||||
if (_tocheckfor == (_subcontainer select 1)) then {
|
||||
switch _item do {
|
||||
case (uniform player): {removeUniform player;};
|
||||
case (vest player): {removeVest player;};
|
||||
case (backpack player): {removeBackpack player;};
|
||||
};
|
||||
};
|
||||
} foreach _subcontainers;
|
||||
} foreach (nearestobjects [player,['WeaponHolder','WeaponHolderSimulated','MAN','Landvehicle','SHIP','AIR','ReammoBox_F'],10]);
|
||||
};
|
||||
|
@ -13,11 +13,16 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_HandleDamage.sqf
|
||||
*/
|
||||
params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];
|
||||
|
||||
_this call EPOCH_custom_EH_HandleDamage;
|
||||
|
||||
if !(_source isEqualTo _unit) then {
|
||||
if ((missionnamespace getvariable ["EPOCH_HandleDamageTimeOut",diag_ticktime]) > diag_ticktime) exitwith {}; // prevent multiple actions here
|
||||
EPOCH_HandleDamageTimeOut = diag_ticktime + 0.1;
|
||||
if ((missionnamespace getvariable ["EPOCH_HandleDamageTimeOut",diag_ticktime]) - diag_ticktime > 5) exitwith {_damage = 1;};
|
||||
switch _projectile do {
|
||||
case "B_EnergyPack": {
|
||||
_damage = 0;
|
||||
if ((missionnamespace getvariable ["EPOCH_HandleDamageTimeOut",diag_ticktime]) > diag_ticktime) exitwith {}; // prevent multiple actions here
|
||||
EPOCH_HandleDamageTimeOut = diag_ticktime + 0.1;
|
||||
if (_source distance _unit > 10) exitwith {};
|
||||
if !(missionnamespace getvariable ["EPOCH_OldRevive",false]) then {
|
||||
_attachments = handgunItems _source;
|
||||
@ -58,6 +63,9 @@ if !(_source isEqualTo _unit) then {
|
||||
case "bbag_pvc";
|
||||
case "xbow_tranq";
|
||||
case "tranq_dart": {
|
||||
_damage = 0;
|
||||
if ((missionnamespace getvariable ["EPOCH_HandleDamageTimeOut",diag_ticktime]) > diag_ticktime) exitwith {}; // prevent multiple actions here
|
||||
EPOCH_HandleDamageTimeOut = diag_ticktime + 0.1;
|
||||
if !(lifeState _unit == "INCAPACITATED") then {
|
||||
EPOCH_HandleDamageTimeOut = diag_ticktime + 1;
|
||||
_unit setUnconscious true;
|
||||
@ -69,6 +77,7 @@ if !(_source isEqualTo _unit) then {
|
||||
case "B_Swing";
|
||||
case "B_Stick";
|
||||
case "B_Hatchet": {
|
||||
if ((missionnamespace getvariable ["EPOCH_HandleDamageTimeOut",diag_ticktime]) > diag_ticktime) exitwith {}; // prevent multiple actions here
|
||||
if !(lifeState _unit == "INCAPACITATED") then {
|
||||
if ((random 100) < (["CfgEpochClient", "UnconsciousChance", 30] call EPOCH_fnc_returnConfigEntryV2)) then {
|
||||
EPOCH_HandleDamageTimeOut = diag_ticktime + 1;
|
||||
|
@ -17,3 +17,6 @@ if !(EPOCH_arr_interactedObjs isEqualTo[]) then {
|
||||
[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2];
|
||||
EPOCH_arr_interactedObjs = [];
|
||||
};
|
||||
if !(player == Vehicle Player) then {
|
||||
call EPOCH_ReloadLoadout;
|
||||
};
|
@ -55,7 +55,32 @@ if(_deathMarkerON && ('ItemGPS' in (assignedItems _unit)))then{
|
||||
profileNameSpace setVariable["EPOCHLastKnownDeath",getPos _unit];
|
||||
};
|
||||
|
||||
[player,_killer,toArray profileName,Epoch_personalToken] remoteExec ["EPOCH_server_deadPlayer",2];
|
||||
// Check, if Player got killed by another Player (opponent) in his Base
|
||||
_homekill = false;
|
||||
if (_unit !=_killer) then {
|
||||
if (isplayer _killer) then {
|
||||
if !(_killer in (units (group Player))) then {
|
||||
_SupressBaseSpawnOnHomekillTime = ["CfgEpochClient", "SupressBaseSpawnOnHomekillTime", 0] call EPOCH_fnc_returnConfigEntryV2;
|
||||
if (_SupressBaseSpawnOnHomekillTime > 0) then {
|
||||
_jammer = nearestObjects[player, call EPOCH_JammerClasses, ["CfgEpochClient", "minJammerDistance", 650] call EPOCH_fnc_returnConfigEntryV2];
|
||||
if !(_jammer isEqualTo []) then {
|
||||
_nearestJammer = _jammer select 0;
|
||||
if ((_nearestJammer getVariable["BUILD_OWNER", "-1"]) in[getPlayerUID player, Epoch_my_GroupUID]) then {
|
||||
_CfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_JammerConfig = (_CfgEpochClient >> "CfgJammers" >> (typeof _nearestJammer));
|
||||
_buildingJammerRange = getnumber (_JammerConfig >> "buildingJammerRange");
|
||||
if (_unit distance _nearestJammer < _buildingJammerRange) then {
|
||||
_homekill = true;
|
||||
[format ["Base Spawn disabled for %1 minutes (killed in your Territory)",(_SupressBaseSpawnOnHomekillTime/60) tofixed 1],5] call Epoch_Message;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
[player,_killer,toArray profileName,Epoch_personalToken,_homekill] remoteExec ["EPOCH_server_deadPlayer",2];
|
||||
|
||||
// disable build mode
|
||||
EPOCH_buildMode = 0;
|
||||
|
@ -290,9 +290,9 @@ if (_dikCode in (actionKeys "NightVision")) then {
|
||||
if(!_ctrl && (_dikCode in (actionKeys "HeliRopeAction")))then{
|
||||
if (player == vehicle player) exitwith {};
|
||||
_msg = "";
|
||||
if(EPOCH_ArmaSlingLoad)then{
|
||||
if (["CfgEpochClient", "ActionHookRope", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
if(driver vehicle player isEqualTo player)then{
|
||||
if(currentPilot vehicle player isEqualTo player)then{
|
||||
if(EPOCH_ArmaSlingLoad)then{
|
||||
if (["CfgEpochClient", "ActionHookRope", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
_slung = ropeAttachedObjects vehicle player;
|
||||
if(_slung isEqualTo [])then{
|
||||
if!('ItemRope' in magazines player) then {
|
||||
@ -305,10 +305,10 @@ if(!_ctrl && (_dikCode in (actionKeys "HeliRopeAction")))then{
|
||||
player addItem 'ItemRope';
|
||||
};
|
||||
};
|
||||
}else{
|
||||
_msg = "Hook/Unhook Malfunction, overrode by R3F or AdvSlingLoad";
|
||||
_handled = true;
|
||||
};
|
||||
}else{
|
||||
_msg = "Hook/Unhook Malfunction, overrode by R3F or AdvSlingLoad";
|
||||
_handled = true;
|
||||
};
|
||||
if!(_msg isEqualTo "")then{
|
||||
[_msg,5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack;
|
||||
|
@ -172,7 +172,11 @@ if (EPOCH_debugMode) then {
|
||||
if (_x == "Temp") then {
|
||||
_customVars = _customVars + format["<t size='1.15' font='puristaLight' align='left'>%1: </t><t size='1.15' font='puristaLight' align='right'>%2°F | %3°C</t><br/>", _x,_val,_val call EPOCH_convertTemp];
|
||||
} else {
|
||||
_customVars = _customVars + format["<t size='1.15' font='puristaLight' align='left'>%1: </t><t size='1.15' font='puristaLight' align='right'>%2</t><br/>", _x,_val];
|
||||
if (_x == "Crypto") then {
|
||||
_customVars = _customVars + format["<t size='1.15' font='puristaLight' align='left'>%1: </t><t size='1.15' font='puristaLight' align='right'>%2</t><br/>", _x,Epoch_PlayerCrypto];
|
||||
} else {
|
||||
_customVars = _customVars + format["<t size='1.15' font='puristaLight' align='left'>%1: </t><t size='1.15' font='puristaLight' align='right'>%2</t><br/>", _x,_val];
|
||||
};
|
||||
};
|
||||
}
|
||||
}forEach _customVarNames;
|
||||
|
@ -239,8 +239,10 @@ _PlayTimeTimer = diag_ticktime;
|
||||
_UpdateTopStats = false;
|
||||
EPOCH_MyStatsPublic = !((missionnamespace getvariable ["EPOCH_totalPublicStats",1]) isEqualTo 0);
|
||||
|
||||
_LastLootCall = diag_ticktime - 30;
|
||||
_lootBubble = {
|
||||
private["_jammer", "_others", "_objects", "_nearObjects", "_building", "_lootDist", "_lootLoc", "_playerPos", "_distanceTraveled","_AddBias","_dir","_minlootdist","_maxlootdist"];
|
||||
if (diag_ticktime - _LastLootCall < 12) exitwith {};
|
||||
if (!alive player) exitwith {};
|
||||
if (speed vehicle player > 30) exitwith {};
|
||||
_playerPos = getPosATL vehicle player;
|
||||
@ -369,6 +371,7 @@ _lootBubble = {
|
||||
} foreach _objects;
|
||||
// systemchat format ["Spawned Loot in %1 Buildings", count _LootsArray];
|
||||
if !(_LootsArray isEqualTo []) then {
|
||||
_LastLootCall = diag_Ticktime;
|
||||
[player,Epoch_personalToken,_LootsArray] remoteExec ["EPOCH_server_spawnLoot",2];
|
||||
};
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -14,11 +14,12 @@
|
||||
/*[[[cog from arma_config_tools import *; json_to_arma()]]]*/
|
||||
class CfgEpochClient
|
||||
{
|
||||
epochVersion = "1.3.2";
|
||||
epochVersion = "1.3.3";
|
||||
ArmAVersion = 176;
|
||||
debug = "true"; // true = enable extra rpt debug lines, false to disable
|
||||
debug = "false"; // true = enable extra rpt debug lines, false to disable
|
||||
ForceGender = ""; // Force Players to spawn as "Male" or "Female"
|
||||
RemoveLaserfromUAV = "true"; // remove LaserDesignator from assembled UAV's
|
||||
RemoveTIfromUAV = "true"; // remove Thermal from assembled UAV's
|
||||
|
||||
UseOldRevive = "false"; // Revive / Heal Player has been changed to use "HandleDamage" Eventhandler. If scripts are breaking it for you, set it to true (not recommended!)
|
||||
UnconsciousChance = 30; // Change in percent to get unconscious by a hit with an Axe / Sledge / Sword
|
||||
@ -40,6 +41,7 @@ class CfgEpochClient
|
||||
baseThirstLoss = 2; // increase number to speed up rate of Thirst loss
|
||||
accelerateHTALoss = "false"; // use server's time acceleration to increase the rate of Hunger, Thirst and Alcohol loss
|
||||
|
||||
SupressBaseSpawnOnHomekillTime = 1200; // Suppress Base Spawn for xxx seconds, when Player got Killed by an opponent in his own Territory
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
buildingNearbyMilitaryClasses[] = {"Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"};
|
||||
@ -54,6 +56,7 @@ class CfgEpochClient
|
||||
splitCountLimits = 0; //1 = distinguish buildingCountLimit from storageCountLimit (ex.: buildingCountLimit=100, storageCountLimit=100 >> you can build 100 baseparts AND additional 100 storage objects like safes, lockboxes...)
|
||||
MaxBuildingTilt = 180; // Max degrees players can tilt building elements
|
||||
EnablePhysicsOnBuild = "true"; // Building parts need Snap (hold) points to not fall on the ground while building
|
||||
BaseCamOnlyHome = "true"; // set to false, to allow BaseCam usage outside Players PlotPole range (doubleclick on BaseCam Terminal in Inventory)
|
||||
|
||||
class CfgJammers {
|
||||
class PlotPole_EPOCH // Jammer Classname
|
||||
@ -261,7 +264,7 @@ class CfgEpochClient
|
||||
{"NPCTrades","Trades at Trader"},
|
||||
{"BuildingsSet","Placed Buildings"},
|
||||
{"CraftedItems","Crafted Items"},
|
||||
{"Karma","Karma","round %1"},
|
||||
{"AntagonistKills","Killed Antagonists"},
|
||||
{"Murders","Player Kills"},
|
||||
{"AIKills","AI Kills"},
|
||||
{"Deaths","Deaths by Player"},
|
||||
@ -282,7 +285,7 @@ class CfgEpochClient
|
||||
Killed = "_this call EPOCH_fnc_playerDeath;_this call Epoch_custom_EH_Killed";
|
||||
HandleRating = "0";
|
||||
HandleScore = "";
|
||||
HandleDamage = "_this call EPOCH_HandleDamage;_this call EPOCH_custom_EH_HandleDamage";
|
||||
HandleDamage = "_this call EPOCH_HandleDamage";
|
||||
HandleHeal = "";
|
||||
Dammaged = "";
|
||||
Hit = "_this call EPOCH_custom_EH_Hit";
|
||||
@ -291,7 +294,7 @@ class CfgEpochClient
|
||||
GetOutMan = "_this call EPOCH_getOutMan;_this call Epoch_custom_EH_GetOutMan";
|
||||
SeatSwitchedMan = "_this call EPOCH_custom_EH_SeatSwitchedMan";
|
||||
FiredNear = "_this call EPOCH_custom_EH_FiredNear";
|
||||
WeaponAssembled = "clearItemCargoGlobal (_this select 1);if (['CfgEpochClient','RemoveLaserfromUAV',true] call EPOCH_fnc_returnConfigEntryV2) then {(_this select 1) removeWeaponTurret ['Laserdesignator_mounted',[0]]}; if ((_this select 1) isKindOf 'UAV_01_base_F' || (_this select 1) isKindOf 'UAV_06_base_F') then {['UAV assembled - Connect it with DynaMenu (Space)',5] call Epoch_Message}";
|
||||
WeaponAssembled = "clearItemCargoGlobal (_this select 1);if (['CfgEpochClient','RemoveTIfromUAV',true] call EPOCH_fnc_returnConfigEntryV2) then {(_this select 1) disableTIEquipment true}; if (['CfgEpochClient','RemoveLaserfromUAV',true] call EPOCH_fnc_returnConfigEntryV2) then {(_this select 1) removeWeaponTurret ['Laserdesignator_mounted',[0]]}; if ((_this select 1) isKindOf 'UAV_01_base_F' || (_this select 1) isKindOf 'UAV_06_base_F') then {['UAV assembled - Connect it with DynaMenu (Space)',5] call Epoch_Message}";
|
||||
// suppress these units from spawning near Jammer or Traders
|
||||
nonJammerAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_F","Epoch_SapperG_F","Epoch_SapperB_F","I_UAV_01_F","EPOCH_RyanZombie_1"};
|
||||
nonTraderAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_F","Epoch_SapperG_F","Epoch_SapperB_F","I_UAV_01_F","Epoch_Cloak_F","GreatWhite_F","EPOCH_RyanZombie_1"};
|
||||
|
@ -269,7 +269,7 @@ class CfgItemSort
|
||||
"V_PlateCarrierSpec_blk",
|
||||
"V_HarnessO_ghex_F",
|
||||
"V_HarnessOGL_ghex_F",
|
||||
"V_PlateCarroer2_tna_F",
|
||||
"V_PlateCarrier2_tna_F",
|
||||
"V_PlateCarrierGL_tna_F",
|
||||
"V_PlateCarrier2_blk"
|
||||
};
|
||||
|
@ -2568,6 +2568,10 @@ class CfgPricing
|
||||
{
|
||||
price = 150;
|
||||
};
|
||||
class srifle_DMR_04_F
|
||||
{
|
||||
price = 150;
|
||||
};
|
||||
class srifle_DMR_04_Tan_F
|
||||
{
|
||||
price = 150;
|
||||
@ -4194,6 +4198,58 @@ class CfgPricing
|
||||
{
|
||||
price = 5;
|
||||
};
|
||||
class V_Press_F
|
||||
{
|
||||
price = 5;
|
||||
};
|
||||
class V_PlateCarrier1_tna_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_TacChestrig_grn_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_TacChestrig_oli_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_TacChestrig_cbr_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_PlateCarrierSpec_tna_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_PlateCarrierSpec_mtp
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_PlateCarrierSpec_blk
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_HarnessO_ghex_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_HarnessOGL_ghex_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_PlateCarrier2_tna_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_PlateCarrierGL_tna_F
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class V_PlateCarrier2_blk
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class H_1_EPOCH
|
||||
{
|
||||
price = 3;
|
||||
|
@ -186,8 +186,9 @@ class CfgServicePoint {
|
||||
};
|
||||
class I_LT_01_cannon_F {
|
||||
MagsTurrets[] = {
|
||||
{"SmokeLauncherMag",{0},2,50},
|
||||
{"200Rnd_762x51_Belt_Yellow",{0},1,300}
|
||||
{"SmokeLauncherMag",{0},1,50},
|
||||
// {"60Rnd_20mm_HE_shells",{0},60,4,9999999},
|
||||
{"200Rnd_762x51_Belt_Yellow",{0},4,300}
|
||||
};
|
||||
};
|
||||
class I_LT_01_scout_F {
|
||||
@ -202,16 +203,10 @@ class CfgServicePoint {
|
||||
};
|
||||
class I_MRAP_03_hmg_F {
|
||||
MagsTurrets[] = {
|
||||
{"500Rnd_127x99_mag_Tracer_Red",{0},3,1500},
|
||||
{"200Rnd_127x99_mag_Tracer_Red",{0},3,600},
|
||||
{"SmokeLauncherMag",{1},2,50}
|
||||
};
|
||||
};
|
||||
class O_MRAP_02_EPOCH1 {
|
||||
MagsTurrets[] = {
|
||||
{"SmokeLauncherMag",{-1},2,50}
|
||||
};
|
||||
};
|
||||
class B_Heli_Transport_01_F {
|
||||
MagsTurrets[] = {
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150},
|
||||
@ -231,20 +226,26 @@ class CfgServicePoint {
|
||||
class B_G_Offroad_01_armed_EPOCH2 : B_G_Offroad_01_armed_F {};
|
||||
class B_G_Offroad_01_armed_EPOCH3 : B_G_Offroad_01_armed_F {};
|
||||
class B_G_Offroad_01_armed_EPOCH4 : B_G_Offroad_01_armed_F {};
|
||||
class I_MRAP_03 {
|
||||
MagsTurrets[] = {
|
||||
{"SmokeLauncherMag",{0},1,150}
|
||||
};
|
||||
};
|
||||
class I_MRAP_03_EPOCH {
|
||||
MagsTurrets[] = {
|
||||
};
|
||||
};
|
||||
class O_MRAP_02_F {
|
||||
MagsTurrets[] = {
|
||||
{"SmokeLauncherMag",{-1},1,150}
|
||||
{"SmokeLauncherMag",{-1},1,50}
|
||||
};
|
||||
};
|
||||
class O_MRAP_02_EPOCH1 : O_MRAP_02_F {};
|
||||
class O_MRAP_02_EPOCH2 : O_MRAP_02_F {};
|
||||
class O_MRAP_02_EPOCH3 : O_MRAP_02_F {};
|
||||
class O_MRAP_02_EPOCH4 : O_MRAP_02_F {};
|
||||
class I_MRAP_03 {
|
||||
MagsTurrets[] = {
|
||||
// {"Laserbatteries",{0},1,1.0002e+007,2},
|
||||
{"SmokeLauncherMag",{0},1,50}
|
||||
};
|
||||
};
|
||||
class I_MRAP_03_EPOCH : I_MRAP_03 {};
|
||||
class I_MRAP_03_EPOCH1 : I_MRAP_03 {};
|
||||
class I_MRAP_03_EPOCH2 : I_MRAP_03 {};
|
||||
class I_MRAP_03_EPOCH3 : I_MRAP_03 {};
|
||||
class I_MRAP_03_EPOCH4 : I_MRAP_03 {};
|
||||
class B_LSV_01_armed_olive_F {
|
||||
MagsTurrets[] = {
|
||||
{"100Rnd_127x99_mag_Tracer_Red",{0},3,200},
|
||||
@ -297,6 +298,7 @@ class CfgServicePoint {
|
||||
};
|
||||
};
|
||||
class I_Heli_Transport_02_EPOCH : I_Heli_Transport_02_F {};
|
||||
class C_IDAP_Heli_Transport_02_F : I_Heli_Transport_02_F {};
|
||||
class B_Heli_Transport_03_F {
|
||||
MagsTurrets[] = {
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150},
|
||||
|
1
Sources/epoch_server/$PREFIX$
Normal file
1
Sources/epoch_server/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
epoch_server
|
@ -53,109 +53,10 @@ if (_vehSlot != -1 || _storageSlot != "ABORT" || _isTemporary == 1) then{
|
||||
|
||||
// if normal storage device dump items on ground.
|
||||
if (_building isKindOf "Buildable_Storage") then {
|
||||
|
||||
// may not be needed but should prevent <null> in DB.
|
||||
_wepsItemsCargo = weaponsItemsCargo _building;
|
||||
if (isNil "_wepsItemsCargo") then{
|
||||
_wepsItemsCargo = [];
|
||||
};
|
||||
_magsAmmoCargo = magazinesAmmoCargo _building;
|
||||
if (isNil "_magsAmmoCargo") then{
|
||||
_magsAmmoCargo = [];
|
||||
};
|
||||
|
||||
// dump items on ground
|
||||
_inventory = [
|
||||
_wepsItemsCargo,
|
||||
_magsAmmoCargo,
|
||||
getBackpackCargo _building,
|
||||
getItemCargo _building
|
||||
];
|
||||
|
||||
_inventory = _building call EPOCH_server_CargoSave;
|
||||
[_building, _player] call EPOCH_server_save_killedStorage;
|
||||
deleteVehicle _building;
|
||||
|
||||
{
|
||||
_objType = _forEachIndex;
|
||||
|
||||
_objTypes = _x;
|
||||
_objQty = [];
|
||||
|
||||
if (_objType in[2, 3]) then{
|
||||
_objTypes = _x select 0;
|
||||
_objQty = _x select 1;
|
||||
};
|
||||
|
||||
{
|
||||
switch _objType do {
|
||||
case 0: {
|
||||
if (_x isEqualType []) then{
|
||||
_arrCount = count _x;
|
||||
if (_arrCount >= 4) then{
|
||||
|
||||
_gwh addWeaponCargoGlobal[_x deleteAt 0, 1];
|
||||
|
||||
_attachments = [];
|
||||
_wMags = false;
|
||||
_wMagsArray = [];
|
||||
// suppressor, laser, optics, magazines(array), bipods
|
||||
{
|
||||
// magazines
|
||||
if (_x isEqualType []) then{
|
||||
_wMags = true;
|
||||
_wMagsArray = _x;
|
||||
}
|
||||
else {
|
||||
// attachments
|
||||
if (_x != "") then{
|
||||
_attachments pushBack _x;
|
||||
};
|
||||
};
|
||||
} forEach _x;
|
||||
|
||||
// add all attachments to vehicle
|
||||
// TODO replace with adding attachments directly to gun (Arma feature dependant)
|
||||
{
|
||||
_gwh addItemCargoGlobal[_x, 1];
|
||||
} forEach _attachments;
|
||||
|
||||
if (_wMags) then{
|
||||
if (_wMagsArray isEqualType [] && (count _wMagsArray) >= 2) then{
|
||||
_gwh addMagazineAmmoCargo[_wMagsArray select 0, 1, _wMagsArray select 1];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
case 1: {
|
||||
if (_x isEqualType []) then{
|
||||
if ((count _x) == 2) then{
|
||||
_magazineName = _x select 0;
|
||||
_magazineSize = _x select 1;
|
||||
|
||||
if ((_magazineName isEqualType "STRING") && (_magazineSize isEqualType 0)) then{
|
||||
_gwh addMagazineAmmoCargo[_magazineName, 1, _magazineSize];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
case 2: {
|
||||
if (_x isEqualType "STRING") then{
|
||||
_qty = _objQty select _forEachIndex;
|
||||
_gwh addBackpackCargoGlobal[_x, _qty];
|
||||
};
|
||||
};
|
||||
case 3: {
|
||||
if (_x isEqualType "STRING") then{
|
||||
_qty = _objQty select _forEachIndex;
|
||||
_gwh addItemCargoGlobal[_x, _qty];
|
||||
};
|
||||
};
|
||||
};
|
||||
}forEach _objTypes;
|
||||
}forEach _inventory;
|
||||
|
||||
[_gwh,_inventory] call EPOCH_server_CargoFill;
|
||||
} else {
|
||||
|
||||
// Remove trap object
|
||||
|
@ -15,7 +15,7 @@
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_bankBalance","_bankData","_cIndex","_current_crypto","_defaultVars","_playerName","_playerUID","_pos","_response","_triggerType","_vars","_killerUID","_deathType","_killerCommunityStats","_mIndex","_current_murders","_communityStats","_sIndex","_current_suicides","_dIndex","_current_deaths","_playerKarmaAdj","_killerKarmaAdj","_kIndex","_playerCStats","_playerKarma","_playerIsNeutral","_playerIsBandit","_playerIsHero","_killerCStats","_killerKarma","_karmaLimitsArray","_lowKarmaLevel1","_highKarmaLevel1"];
|
||||
//[[[end]]]
|
||||
params ["_playerObj","_killer","_playerName",["_token","",[""]] ];
|
||||
params ["_playerObj","_killer","_playerName",["_token","",[""]], ["_homekill",false]];
|
||||
|
||||
// handle token check and isnull for _player
|
||||
if !([_playerObj, _token] call EPOCH_server_getPToken) exitWith{};
|
||||
@ -141,3 +141,20 @@ if (EPOCH_cloneCost > 0) then {
|
||||
["Bank", _playerUID, EPOCH_expiresBank, [_bankBalance]] call EPOCH_fnc_server_hiveSETEX;
|
||||
};
|
||||
};
|
||||
|
||||
// Check for BaseKill and skip Base Spawn for the next xxx seconds
|
||||
if (_homekill) then {
|
||||
_SupressBaseSpawnOnHomekillTime = ["CfgEpochClient", "SupressBaseSpawnOnHomekillTime", 0] call EPOCH_fnc_returnConfigEntryV2;
|
||||
if (isnil "Epoch_BaseSpawnSkips") then {
|
||||
Epoch_BaseSpawnSkips = [[],[]];
|
||||
};
|
||||
Epoch_BaseSpawnSkips params ["_SpawnSkipUIDs","_SpawnSkipTimers"];
|
||||
_idx = _SpawnSkipUIDs find _playerUID;
|
||||
if (_idx > -1) then {
|
||||
_SpawnSkipTimers set [_idx,diag_ticktime + _SupressBaseSpawnOnHomekillTime];
|
||||
}
|
||||
else {
|
||||
_SpawnSkipUIDs pushback _playerUID;
|
||||
_SpawnSkipTimers pushback (diag_ticktime + _SupressBaseSpawnOnHomekillTime);
|
||||
};
|
||||
};
|
||||
|
@ -145,6 +145,16 @@ if (!isNull _player) then {
|
||||
};
|
||||
};
|
||||
if (_newLocation isEqualType [] && {(count _newLocation) == 3}) then {
|
||||
|
||||
// Check for BaseKill and skip Base Spawn
|
||||
Epoch_BaseSpawnSkips params ["_SpawnSkipUIDs","_SpawnSkipTimers"];
|
||||
_SpawnSkipTime = 0;
|
||||
_idx = _SpawnSkipUIDs find _playerUID;
|
||||
if (_idx > -1) then {
|
||||
_SpawnSkipTime = _SpawnSkipTimers select _idx;
|
||||
};
|
||||
if (_SpawnSkipTime > diag_ticktime) exitwith {};
|
||||
|
||||
_CheckLocation = _newLocation;
|
||||
if (surfaceiswater _newLocation) then {
|
||||
_CheckLocation = ATLToASL _newLocation;
|
||||
|
@ -59,10 +59,10 @@ if (_sIndex > -1) then {
|
||||
_currentStat = _playerStats select _sIndex;
|
||||
//set the new stat value
|
||||
if (_isTotal) then {
|
||||
_playerStats set[_sIndex, _adjust];
|
||||
_playerStats set[_sIndex, _adjust min 3.4028235e+37 max -3.4028235e+37]; // +/- 3.4028235e+38 is Epoch Extension limit!
|
||||
}
|
||||
else {
|
||||
_playerStats set[_sIndex, _currentStat + _adjust];
|
||||
_playerStats set[_sIndex, (_currentStat + _adjust) min 3.4028235e+37 max -3.4028235e+37];
|
||||
};
|
||||
//set the new stats array back onto this playerObj
|
||||
_playerObj setVariable["COMMUNITY_STATS", _playerStats];
|
||||
|
@ -24,7 +24,7 @@ if !((_playerUID isequalto '') || (_vars isequalto [])) then {
|
||||
if !(_publicindex isequalto -1) then {
|
||||
_makepublic = _vars select _publicindex;
|
||||
};
|
||||
_tempStats = EPOCH_TopStats;
|
||||
_tempStats = +EPOCH_TopStats;
|
||||
{
|
||||
_ThisStatArr = _x;
|
||||
_playerisin = false;
|
||||
@ -51,7 +51,9 @@ if !((_playerUID isequalto '') || (_vars isequalto [])) then {
|
||||
};
|
||||
};
|
||||
} foreach _tempStats;
|
||||
EPOCH_TopStats = _tempStats;
|
||||
["CommunityStats", "0_TopStats", EPOCH_expiresCommunityStats, EPOCH_TopStats] call EPOCH_fnc_server_hiveSETEX;
|
||||
publicvariable "EPOCH_TopStats";
|
||||
if !(EPOCH_TopStats isEqualTo _tempStats) then {
|
||||
EPOCH_TopStats = _tempStats;
|
||||
["CommunityStats", "0_TopStats", EPOCH_expiresCommunityStats, EPOCH_TopStats] call EPOCH_fnc_server_hiveSETEX;
|
||||
publicvariable "EPOCH_TopStats";
|
||||
};
|
||||
};
|
||||
|
@ -42,6 +42,8 @@ _TraderDeco = [_serverSettingsConfig, "TraderDeco", true] call EPOCH_fnc_returnC
|
||||
_WinterDeco = (Epoch_ServerRealtime select 1) == 12 && (Epoch_ServerRealtime select 2) > 20 && _TraderDeco;
|
||||
_HelloweenDeco = (((Epoch_ServerRealtime select 1) == 10 && (Epoch_ServerRealtime select 2) >= 24) || ((Epoch_ServerRealtime select 1) == 11 && (Epoch_ServerRealtime select 2) <= 3)) && _TraderDeco;
|
||||
|
||||
_StoredVehiclesTmp = [];
|
||||
|
||||
_TraderInit = {
|
||||
_this allowdamage !_TraderGodMode;
|
||||
_this setDir _dir;
|
||||
@ -95,34 +97,8 @@ _TraderItemsClean = {
|
||||
}
|
||||
else {
|
||||
if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") then {
|
||||
_newstock = 0;
|
||||
for "_k" from 1 to _currentStock do {
|
||||
if (EPOCH_storedVehicleCount < _storedVehicleLimit) then {
|
||||
_newstock = _newstock + 1;
|
||||
EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + 1;
|
||||
if !(_item in EPOCH_traderStoredVehicles) then {
|
||||
EPOCH_traderStoredVehicles pushBack _item;
|
||||
EPOCH_traderStoredVehiclesCnt pushBack 1;
|
||||
}
|
||||
else {
|
||||
_indexStock = EPOCH_traderStoredVehicles find _item;
|
||||
if (_indexStock != -1) then {
|
||||
_existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock;
|
||||
EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + 1)];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
if !(_newstock == _currentStock) then {
|
||||
_arrchanged = true;
|
||||
if (_newstock > 0) then {
|
||||
// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Changed stock of %2 from Trader | _currentStock: %3 | _newstock: %4 | EPOCH_storedVehicleCount: %5 | _storedVehicleLimit: %6",_i,str _item,_currentStock,_newstock,EPOCH_storedVehicleCount,_storedVehicleLimit];
|
||||
(_arr select 1) set [_idx,_newstock];
|
||||
}
|
||||
else {
|
||||
// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Removed %2 from Trader | EPOCH_storedVehicleCount: %3 | _storedVehicleLimit: %4",_i,str _item,EPOCH_storedVehicleCount,_storedVehicleLimit];
|
||||
_delete = true;
|
||||
};
|
||||
_StoredVehiclesTmp pushback [_i,_item];
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -234,4 +210,47 @@ for "_i" from 0 to (_maxTraderLimit-1) do {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Remove random overloaded Vehicles from Traders
|
||||
for "_i" from 1 to ((count _StoredVehiclesTmp) - _storedVehicleLimit) do {
|
||||
_selected = _StoredVehiclesTmp deleteat (((round random (count _StoredVehiclesTmp))-1) max 0);
|
||||
_selected params ["_AiSlot","_Item"];
|
||||
{
|
||||
if ((_x getvariable ["AI_SLOT",-1]) isEqualTo _AiSlot) exitwith {
|
||||
_arr = _x getVariable ["AI_ITEMS", [[],[]]];
|
||||
_arr params ["_itemsarr","_cntarray"];
|
||||
_idx = _itemsarr find _Item;
|
||||
if (_idx > -1) then {
|
||||
if ((_cntarray select _idx) > 1) then {
|
||||
_cntarray set [_idx,(_cntarray select _idx) - 1];
|
||||
}
|
||||
else {
|
||||
_itemsarr deleteat _idx;
|
||||
_cntarray deleteat _idx;
|
||||
};
|
||||
_x setVariable ["AI_ITEMS", _arr, true];
|
||||
_objHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID), _AiSlot];
|
||||
["AI_ITEMS", _objHiveKey, EPOCH_expiresAIdata, _arr] call EPOCH_fnc_server_hiveSETEX;
|
||||
};
|
||||
};
|
||||
} foreach EPOCH_Traders;
|
||||
};
|
||||
|
||||
// Count all left over Vehicles in Trader Stock
|
||||
{
|
||||
EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + 1;
|
||||
_x params ["","_item"];
|
||||
if !(_item in EPOCH_traderStoredVehicles) then {
|
||||
EPOCH_traderStoredVehicles pushBack _item;
|
||||
EPOCH_traderStoredVehiclesCnt pushBack 1;
|
||||
}
|
||||
else {
|
||||
_indexStock = EPOCH_traderStoredVehicles find _item;
|
||||
if (_indexStock != -1) then {
|
||||
_existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock;
|
||||
EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + 1)];
|
||||
};
|
||||
};
|
||||
} foreach _StoredVehiclesTmp;
|
||||
|
||||
true
|
||||
|
@ -91,8 +91,7 @@ if (_slot != -1) then {
|
||||
removeFromRemainsCollector [_vehicle];
|
||||
deleteVehicle _vehicle;
|
||||
_vehHiveKey = format["%1:%2", (call EPOCH_fn_InstanceID), _vehSlot];
|
||||
_VAL = [];
|
||||
["Vehicle", _vehHiveKey, _VAL] call EPOCH_fnc_server_hiveSET;
|
||||
["Vehicle", _vehHiveKey] call EPOCH_fnc_server_hiveDEL;
|
||||
EPOCH_VehicleSlots pushBack _vehSlot;
|
||||
missionNamespace setVariable ['EPOCH_VehicleSlotCount', count EPOCH_VehicleSlots, true];
|
||||
};
|
||||
|
@ -1,281 +0,0 @@
|
||||
/*
|
||||
Author: Aaron Clark - EpochMod.com
|
||||
|
||||
Contributors:
|
||||
|
||||
Description:
|
||||
Load Vehicles
|
||||
|
||||
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/master/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_actualHitpoints","_allHitpoints","_allVehicles","_arr","_arrNum","_attachments","_class","_color","_colors","_config","_count","_damage","_dataFormat","_dataFormatCount","_diag","_dmg","_found","_hitpoints","_immuneVehicleSpawn","_immuneVehicleSpawnTime","_location","_magazineName","_magazineSize","_magazineSizeMax","_marker","_objQty","_objType","_objTypes","_qty","_removemagazinesturret","_removeweapons","_response","_selections","_serverSettingsConfig","_simulationHandler","_textureSelectionIndex","_textures","_vehHiveKey","_vehicle","_vehicleSlotIndex","_wMags","_wMagsArray","_worldspace"];
|
||||
//[[[end]]]
|
||||
params [["_maxVehicleLimit",0]];
|
||||
|
||||
_diag = diag_tickTime;
|
||||
_dataFormat = ["", [], 0, [], 0, [], [], 0];
|
||||
_dataFormatCount = count _dataFormat;
|
||||
EPOCH_VehicleSlots = [];
|
||||
_allVehicles = [];
|
||||
|
||||
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
||||
_immuneVehicleSpawn = [_serverSettingsConfig, "immuneVehicleSpawn", false] call EPOCH_fnc_returnConfigEntry;
|
||||
_removeweapons = [_serverSettingsConfig, "removevehweapons", []] call EPOCH_fnc_returnConfigEntry;
|
||||
_removemagazinesturret = [_serverSettingsConfig, "removevehmagazinesturret", []] call EPOCH_fnc_returnConfigEntry;
|
||||
_disableVehicleTIE = [_serverSettingsConfig, "disableVehicleTIE", true] call EPOCH_fnc_returnConfigEntry;
|
||||
|
||||
for "_i" from 1 to _maxVehicleLimit do {
|
||||
_vehicleSlotIndex = EPOCH_VehicleSlots pushBack str(_i);
|
||||
|
||||
_vehHiveKey = format ["%1:%2", call EPOCH_fn_InstanceID,_i];
|
||||
_response = ["Vehicle", _vehHiveKey] call EPOCH_fnc_server_hiveGETRANGE;
|
||||
|
||||
if ((_response select 0) == 1 && (_response select 1) isEqualType []) then {
|
||||
_arr = _response select 1;
|
||||
_arrNum = count _arr;
|
||||
|
||||
if (_arrNum == _dataFormatCount) then {
|
||||
|
||||
// Validate and replace invaild data
|
||||
{
|
||||
if !((_arr select _forEachIndex) isEqualType _x) then {_arr set[_forEachIndex, _x]};
|
||||
} forEach _dataFormat;
|
||||
|
||||
_class = _arr select 0;
|
||||
_worldspace = _arr select 1;
|
||||
_damage = _arr select 2;
|
||||
|
||||
if (_class != "" && _damage < 1) then {
|
||||
_worldspace params [["_location",[]],["_VectorDir",[0,0,0]],["_VectorUp",[0,0,1]],["_useposworld",false]];
|
||||
|
||||
if !(_location isEqualTo []) then {
|
||||
|
||||
// increased position precision
|
||||
if (count _location == 2) then{
|
||||
_location = (_location select 0) vectorAdd (_location select 1);
|
||||
};
|
||||
|
||||
EPOCH_VehicleSlots deleteAt _vehicleSlotIndex;
|
||||
|
||||
// temp for changes in class names
|
||||
_found = ["O_Heli_Transport_04_F","O_Heli_Transport_04_bench_F","O_Heli_Transport_04_box_F","O_Heli_Transport_04_covered_F","B_Heli_Transport_03_unarmed_F","O_Truck_03_covered_F"] find _class;
|
||||
if (_found != -1) then {
|
||||
_class = ["O_Heli_Transport_04_EPOCH","O_Heli_Transport_04_bench_EPOCH","O_Heli_Transport_04_box_EPOCH","O_Heli_Transport_04_covered_EPOCH","B_Heli_Transport_03_unarmed_EPOCH","O_Truck_03_covered_EPOCH"] select _found;
|
||||
};
|
||||
|
||||
_vehicle = createVehicle [_class, [random 500, random 500,500], [], 0, "CAN_COLLIDE"];
|
||||
_allVehicles pushBack _vehicle;
|
||||
_vehicle call EPOCH_server_setVToken;
|
||||
if (_useposworld) then {
|
||||
_vehicle setposWorld _location;
|
||||
}
|
||||
else {
|
||||
_vehicle setposATL _location;
|
||||
};
|
||||
_vehicle setVectorDirAndUp [_VectorDir,_VectorUp];
|
||||
_vehicle setDamage _damage;
|
||||
|
||||
_allHitpoints = getAllHitPointsDamage _vehicle;
|
||||
if !(_allHitpoints isEqualTo []) then{
|
||||
_actualHitpoints = _allHitpoints select 0;
|
||||
_hitpoints = _arr select 3;
|
||||
if ((count _actualHitpoints) == (count _hitpoints)) then{
|
||||
{
|
||||
_dmg = _hitpoints param [_forEachIndex,0];
|
||||
if (_x in ["HitFuel", "HitEngine"]) then {
|
||||
_dmg = _dmg min 0.9;
|
||||
};
|
||||
_vehicle setHitIndex [_forEachIndex, _dmg];
|
||||
} forEach _actualHitpoints;
|
||||
};
|
||||
};
|
||||
|
||||
if (_immuneVehicleSpawn) then{
|
||||
_vehicle allowDamage false;
|
||||
};
|
||||
|
||||
_vehicle setFuel (_arr select 4);
|
||||
|
||||
_vehicle call EPOCH_server_vehicleInit;
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> _class >> "availableColors";
|
||||
if (isArray(_config)) then {
|
||||
_color = _arr select 7;
|
||||
_colors = getArray(_config);
|
||||
_textureSelectionIndex = configFile >> "CfgVehicles" >> _class >> "textureSelectionIndex";
|
||||
_selections = if (isArray(_textureSelectionIndex)) then { getArray(_textureSelectionIndex) } else { [0] };
|
||||
_count = (count _colors) - 1;
|
||||
{
|
||||
_textures = _colors select 0;
|
||||
if (_count >= _forEachIndex) then {
|
||||
_textures = _colors select _forEachIndex;
|
||||
};
|
||||
_vehicle setObjectTextureGlobal [_x, _textures select _color];
|
||||
} forEach _selections;
|
||||
_vehicle setVariable ["VEHICLE_TEXTURE", _color];
|
||||
};
|
||||
|
||||
clearWeaponCargoGlobal _vehicle;
|
||||
clearMagazineCargoGlobal _vehicle;
|
||||
clearBackpackCargoGlobal _vehicle;
|
||||
clearItemCargoGlobal _vehicle;
|
||||
|
||||
if !(_removeweapons isequalto []) then {
|
||||
{
|
||||
_vehicle removeWeaponGlobal _x;
|
||||
} foreach _removeweapons;
|
||||
};
|
||||
if !(_removemagazinesturret isequalto []) then {
|
||||
{
|
||||
_vehicle removeMagazinesTurret _x;
|
||||
} foreach _removemagazinesturret;
|
||||
};
|
||||
|
||||
if (_disableVehicleTIE) then {
|
||||
_vehicle disableTIEquipment true;
|
||||
};
|
||||
|
||||
_vehicle lock true;
|
||||
|
||||
_vehicle setVariable ["VEHICLE_SLOT", str(_i), true];
|
||||
|
||||
//diag_log format ["FILLING: _vehicle %1 pos: %2", _vehicle, (getPosATL _vehicle)];
|
||||
{
|
||||
_objType = _forEachIndex;
|
||||
|
||||
_objTypes = _x;
|
||||
_objQty = [];
|
||||
|
||||
if (_objType in [1, 2, 3]) then {
|
||||
_objTypes = _x select 0;
|
||||
_objQty = _x select 1;
|
||||
};
|
||||
|
||||
{
|
||||
switch _objType do {
|
||||
// Weapon cargo
|
||||
case 0: {
|
||||
if (_x isEqualType []) then {
|
||||
if ((count _x) >= 4) then {
|
||||
|
||||
_vehicle addWeaponCargoGlobal[_x deleteAt 0, 1];
|
||||
|
||||
_attachments = [];
|
||||
_wMags = false;
|
||||
_wMagsArray = [];
|
||||
// suppressor, laser, optics, magazines(array), bipods
|
||||
{
|
||||
// magazines
|
||||
if (_x isEqualType []) then{
|
||||
_wMags = true;
|
||||
_wMagsArray = _x;
|
||||
}
|
||||
else {
|
||||
// attachments
|
||||
if (_x != "") then{
|
||||
_attachments pushBack _x;
|
||||
};
|
||||
};
|
||||
} forEach _x;
|
||||
|
||||
// add all attachments to vehicle
|
||||
// TODO replace with adding attachments directly to gun (Arma feature dependant)
|
||||
{
|
||||
_vehicle addItemCargoGlobal[_x, 1];
|
||||
} forEach _attachments;
|
||||
|
||||
if (_wMags) then{
|
||||
if (_wMagsArray isEqualType [] && (count _wMagsArray) >= 2) then{
|
||||
_vehicle addMagazineAmmoCargo[_wMagsArray select 0, 1, _wMagsArray select 1];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
// Magazine cargo
|
||||
case 1: {
|
||||
_magazineName = _x;
|
||||
_magazineSize = _objQty select _forEachIndex;
|
||||
|
||||
if ((_magazineName isEqualType "STRING") && (_magazineSize isEqualType 0)) then {
|
||||
_magazineSizeMax = getNumber (configFile >> "CfgMagazines" >> _magazineName >> "count");
|
||||
if (_magazineSizeMax >= 1) then {
|
||||
// Add full magazines cargo
|
||||
_vehicle addMagazineAmmoCargo [_magazineName, floor (_magazineSize / _magazineSizeMax), _magazineSizeMax];
|
||||
|
||||
// Add last non full magazine
|
||||
if ((_magazineSize % _magazineSizeMax) > 0) then {
|
||||
_vehicle addMagazineAmmoCargo [_magazineName, 1, floor (_magazineSize % _magazineSizeMax)];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
// Backpack cargo
|
||||
case 2: {
|
||||
if (_x isEqualType "STRING") then {
|
||||
_qty = _objQty select _forEachIndex;
|
||||
_vehicle addBackpackCargoGlobal [_x, _qty];
|
||||
};
|
||||
};
|
||||
// Item cargo
|
||||
case 3: {
|
||||
if (_x isEqualType "STRING") then {
|
||||
_qty = _objQty select _forEachIndex;
|
||||
_vehicle addItemCargoGlobal [_x, _qty];
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach _objTypes;
|
||||
} forEach (_arr select 5);
|
||||
|
||||
// remove and add back magazines
|
||||
if !((_arr select 6) isequalto []) then {
|
||||
if ((_arr select 6 select 0) isequaltype true) then {
|
||||
{
|
||||
_vehicle removeMagazinesTurret [_x select 0, _x select 1];
|
||||
} foreach magazinesAllTurrets _vehicle;
|
||||
{
|
||||
if ((_x select 2) > 0) then {
|
||||
_vehicle addMagazineTurret [_x select 0,_x select 1,_x select 2];
|
||||
};
|
||||
} foreach (_arr select 6 select 1);
|
||||
}
|
||||
else {
|
||||
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
|
||||
{_vehicle addMagazine _x}count (_arr select 6);
|
||||
};
|
||||
};
|
||||
|
||||
if (EPOCH_DEBUG_VEH) then {
|
||||
_marker = createMarker [str(_location) , _location];
|
||||
_marker setMarkerShape "ICON";
|
||||
_marker setMarkerType "mil_dot";
|
||||
_marker setMarkerText _class;
|
||||
_marker setMarkerColor "ColorGreen";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// re-enable damage to vehicles after we wait
|
||||
if (_immuneVehicleSpawn) then{
|
||||
_immuneVehicleSpawnTime = [_serverSettingsConfig, "immuneVehicleSpawnTime", 120] call EPOCH_fnc_returnConfigEntry;
|
||||
[_allVehicles,_immuneVehicleSpawnTime] spawn{
|
||||
sleep (_this select 1);
|
||||
{_x allowDamage true} count (_this select 0);
|
||||
};
|
||||
};
|
||||
|
||||
addToRemainsCollector _allVehicles;
|
||||
|
||||
diag_log format ["Epoch: Vehicle SPAWN TIMER %1, LOADED %2 VEHICLES", diag_tickTime - _diag, count _allVehicles];
|
||||
|
||||
true
|
@ -25,6 +25,16 @@
|
||||
|
||||
|
||||
params [["_vehicle",objnull],["_items",[]]];
|
||||
private ["_subcontainersuffix"];
|
||||
_subcontainersuffix = [];
|
||||
|
||||
if !(_vehicle iskindof "weaponholder") then {
|
||||
clearweaponcargoglobal _vehicle;
|
||||
clearitemcargoglobal _vehicle;
|
||||
clearmagazinecargoglobal _vehicle;
|
||||
clearbackpackcargoglobal _vehicle;
|
||||
};
|
||||
|
||||
{
|
||||
_objType = _forEachIndex;
|
||||
_objTypes = _x;
|
||||
@ -78,26 +88,23 @@ params [["_vehicle",objnull],["_items",[]]];
|
||||
};
|
||||
// Sub-Containers
|
||||
case 4: {
|
||||
_type = _x select 0;
|
||||
_subContainers = (everycontainer _vehicle) select {(_x select 0) isequalto _type && magazinesAmmoCargo (_x select 1) isequalto [] && weaponsItemsCargo (_x select 1) isequalto []};
|
||||
if !(_subContainers isequalto []) then {
|
||||
_subContainer = _subContainers select 0 select 1;
|
||||
[_subContainer,_x select 1] call EPOCH_server_CargoFill;
|
||||
}
|
||||
else {
|
||||
if (_type isKindOf "Bag_Base") then {
|
||||
_vehicle addBackpackCargoGlobal [_type, 1];
|
||||
}
|
||||
else {
|
||||
_vehicle addItemCargoGlobal [_type, 1];
|
||||
};
|
||||
_subContainers = (everycontainer _vehicle) select {(_x select 0) isequalto _type && magazinesAmmoCargo (_x select 1) isequalto [] && weaponsItemsCargo (_x select 1) isequalto []};
|
||||
if !(_subContainers isequalto []) then {
|
||||
_subContainer = _subContainers select 0 select 1;
|
||||
[_subContainer,_x select 1] call EPOCH_server_CargoFill;
|
||||
};
|
||||
};
|
||||
_subcontainersuffix pushback _x;
|
||||
};
|
||||
};
|
||||
} forEach _objTypes;
|
||||
} forEach _items;
|
||||
_subContainers = (everycontainer _vehicle);
|
||||
{
|
||||
clearweaponcargoglobal (_x select 1);
|
||||
clearitemcargoglobal (_x select 1);
|
||||
clearmagazinecargoglobal (_x select 1);
|
||||
clearbackpackcargoglobal (_x select 1);
|
||||
} foreach _subContainers;
|
||||
{
|
||||
_type = _x select 0;
|
||||
_subContainers = (everycontainer _vehicle) select {(_x select 0) isequalto _type && magazinesAmmoCargo (_x select 1) isequalto [] && weaponsItemsCargo (_x select 1) isequalto []};
|
||||
if !(_subContainers isequalto []) then {
|
||||
_subContainer = _subContainers select 0 select 1;
|
||||
[_subContainer,_x select 1] call EPOCH_server_CargoFill;
|
||||
};
|
||||
} foreach _subcontainersuffix;
|
@ -29,114 +29,17 @@ if (_class isKindOf 'Constructions_lockedstatic_F') then {
|
||||
|
||||
_posWH = getPosATL _unit;
|
||||
|
||||
// may not be needed but should prevent <null> in DB.
|
||||
_wepsItemsCargo = weaponsItemsCargo _unit;
|
||||
if (isNil "_wepsItemsCargo") then {
|
||||
_wepsItemsCargo = [];
|
||||
};
|
||||
_magsAmmoCargo = magazinesAmmoCargo _unit;
|
||||
if (isNil "_magsAmmoCargo") then {
|
||||
_magsAmmoCargo = [];
|
||||
};
|
||||
|
||||
// dump items on ground
|
||||
_inventory = [
|
||||
_wepsItemsCargo,
|
||||
_magsAmmoCargo,
|
||||
getBackpackCargo _unit,
|
||||
getItemCargo _unit
|
||||
];
|
||||
|
||||
_inventory = _unit call EPOCH_server_CargoSave;
|
||||
[_unit, _player] call EPOCH_server_save_killedStorage;
|
||||
deleteVehicle _unit;
|
||||
|
||||
_gwh = createVehicle["groundWeaponHolder", _posWH, [], 0, "CAN_COLLIDE"];
|
||||
_gwh setPosATL _posWH;
|
||||
[_gwh,_inventory] call EPOCH_server_CargoFill;
|
||||
_config = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||
_returnItems = getArray(_config >> _class >> "returnOnPack");
|
||||
{
|
||||
_gwh addMagazineCargoGlobal _x;
|
||||
} forEach _returnItems;
|
||||
|
||||
{
|
||||
_objType = _forEachIndex;
|
||||
|
||||
_objTypes = _x;
|
||||
_objQty = [];
|
||||
|
||||
if (_objType in[2, 3]) then {
|
||||
_objTypes = _x select 0;
|
||||
_objQty = _x select 1;
|
||||
};
|
||||
|
||||
{
|
||||
switch _objType do {
|
||||
case 0: {
|
||||
if (_x isEqualType []) then {
|
||||
_arrCount = count _x;
|
||||
if (_arrCount >= 4) then {
|
||||
|
||||
_gwh addWeaponCargoGlobal[_x deleteAt 0, 1];
|
||||
|
||||
_attachments = [];
|
||||
_wMags = false;
|
||||
_wMagsArray = [];
|
||||
// suppressor, laser, optics, magazines(array), bipods
|
||||
{
|
||||
// magazines
|
||||
if (_x isEqualType []) then{
|
||||
_wMags = true;
|
||||
_wMagsArray = _x;
|
||||
}
|
||||
else {
|
||||
// attachments
|
||||
if (_x != "") then{
|
||||
_attachments pushBack _x;
|
||||
};
|
||||
};
|
||||
} forEach _x;
|
||||
|
||||
// add all attachments to vehicle
|
||||
// TODO replace with adding attachments directly to gun (Arma feature dependant)
|
||||
{
|
||||
_gwh addItemCargoGlobal[_x, 1];
|
||||
} forEach _attachments;
|
||||
|
||||
if (_wMags) then{
|
||||
if (_wMagsArray isEqualType [] && (count _wMagsArray) >= 2) then{
|
||||
_gwh addMagazineAmmoCargo[_wMagsArray select 0, 1, _wMagsArray select 1];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
case 1: {
|
||||
if (_x isEqualType []) then {
|
||||
if ((count _x) == 2) then {
|
||||
_magazineName = _x select 0;
|
||||
_magazineSize = _x select 1;
|
||||
|
||||
if ((_magazineName isEqualType "STRING") && (_magazineSize isEqualType 0)) then {
|
||||
_gwh addMagazineAmmoCargo[_magazineName, 1, _magazineSize];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
case 2: {
|
||||
if (_x isEqualType "STRING") then {
|
||||
_qty = _objQty select _forEachIndex;
|
||||
_gwh addBackpackCargoGlobal[_x, _qty];
|
||||
};
|
||||
};
|
||||
case 3: {
|
||||
if (_x isEqualType "STRING") then {
|
||||
_qty = _objQty select _forEachIndex;
|
||||
_gwh addItemCargoGlobal[_x, _qty];
|
||||
};
|
||||
};
|
||||
};
|
||||
}forEach _objTypes;
|
||||
}forEach _inventory;
|
||||
};
|
||||
};
|
||||
|
@ -95,7 +95,6 @@ class CfgServerFunctions
|
||||
class server_save_killedStorage {};
|
||||
class server_save_killedBuilding {};
|
||||
class load_vehicles {};
|
||||
class load_vehicles_old {};
|
||||
class load_storage {};
|
||||
class server_save_storage {};
|
||||
class spawn_vehicles {};
|
||||
@ -152,7 +151,7 @@ class CfgServerFunctions
|
||||
};
|
||||
class CfgServerVersion
|
||||
{
|
||||
client = "1.3.2";
|
||||
config = "1.3.2";
|
||||
client = "1.3.3";
|
||||
config = "1.3.3";
|
||||
hive = "0.6.0.0";
|
||||
};
|
||||
|
@ -216,11 +216,7 @@ _vehicleSlotLimit = 0;
|
||||
{_vehicleSlotLimit = _vehicleSlotLimit + (_x select 1)} forEach _allowedVehiclesList;
|
||||
_ReservedVehSlots = [_serverSettingsConfig, "ReservedVehSlots", 50] call EPOCH_fnc_returnConfigEntry;
|
||||
_vehicleSlotLimit = _vehicleSlotLimit + _ReservedVehSlots;
|
||||
if (EPOCH_useOldLoadVehicles) then {
|
||||
_vehicleSlotLimit call EPOCH_load_vehicles_old;
|
||||
} else {
|
||||
_vehicleSlotLimit call EPOCH_load_vehicles;
|
||||
};
|
||||
_vehicleSlotLimit call EPOCH_load_vehicles;
|
||||
diag_log "Epoch: Spawning vehicles";
|
||||
_allowedVehiclesListArray = [];
|
||||
{
|
||||
|
@ -61,7 +61,6 @@ private _configArray = [
|
||||
["hiveAdminSavePlayerList", true],
|
||||
["hiveAdminCmdTime", 5],
|
||||
["DEBUG_VEH", false],
|
||||
["useOldLoadVehicles", false],
|
||||
["enableUnitTestOnStart", 0],
|
||||
["forcedVehicleSpawnTable",""],
|
||||
["forcedLootSpawnTable",""]
|
||||
|
1
Sources/epoch_server_core/$PREFIX$
Normal file
1
Sources/epoch_server_core/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
epoch_server_core
|
1
Sources/epoch_server_debris_event/$PREFIX$
Normal file
1
Sources/epoch_server_debris_event/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
epoch_server_debris_event
|
1
Sources/epoch_server_events/$PREFIX$
Normal file
1
Sources/epoch_server_events/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
epoch_server_events
|
1
Sources/epoch_server_settings/$PREFIX$
Normal file
1
Sources/epoch_server_settings/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
epoch_server_settings
|
@ -20,7 +20,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
epochVersion = "1.3.2";
|
||||
epochVersion = "1.3.3";
|
||||
requiredAddons[] = {};
|
||||
#include "build.hpp"
|
||||
};
|
||||
|
@ -838,7 +838,7 @@ class CfgLootTable
|
||||
class Pistols_Vanilla
|
||||
{
|
||||
items[] = {
|
||||
{ { "Hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "MultiGun", "weapon" }, 5 },
|
||||
{ { "hgun_Pistol_heavy_01_F", "weapon" }, 9 },
|
||||
{ { "hgun_P07_F", "weapon" }, 10 },
|
||||
@ -1575,7 +1575,13 @@ class CfgLootTable
|
||||
{ { "U_C_ConstructionCoverall_Black_F", "item" }, 1 },
|
||||
{ { "U_C_ConstructionCoverall_Blue_F", "item" }, 1 },
|
||||
{ { "U_C_Paramedic_01_F", "item" }, 1 },
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 }
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_cargo_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_jeans_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_TeeShorts_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_Tee_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_casual_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_shorts_F", "item" }, 1 }
|
||||
};
|
||||
};
|
||||
class Uniforms_Male_ApexDLC
|
||||
@ -1756,7 +1762,7 @@ class CfgLootTable
|
||||
{ { "V_PlateCarrierSpec_blk", "item" }, 1 },
|
||||
{ { "V_HarnessO_ghex_F", "item" }, 1 },
|
||||
{ { "V_HarnessOGL_ghex_F", "item" }, 1 },
|
||||
{ { "V_PlateCarroer2_tna_F", "item" }, 1 },
|
||||
{ { "V_PlateCarrier2_tna_F", "item" }, 1 },
|
||||
{ { "V_PlateCarrierGL_tna_F", "item" }, 1 }
|
||||
};
|
||||
};
|
||||
|
@ -838,7 +838,7 @@ class CfgLootTable_CUP
|
||||
class Pistols_Vanilla
|
||||
{
|
||||
items[] = {
|
||||
{ { "Hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "MultiGun", "weapon" }, 5 },
|
||||
{ { "hgun_Pistol_heavy_01_F", "weapon" }, 9 },
|
||||
{ { "hgun_P07_F", "weapon" }, 10 },
|
||||
@ -1575,7 +1575,13 @@ class CfgLootTable_CUP
|
||||
{ { "U_C_ConstructionCoverall_Black_F", "item" }, 1 },
|
||||
{ { "U_C_ConstructionCoverall_Blue_F", "item" }, 1 },
|
||||
{ { "U_C_Paramedic_01_F", "item" }, 1 },
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 }
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_cargo_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_jeans_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_TeeShorts_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_Tee_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_casual_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_shorts_F", "item" }, 1 }
|
||||
};
|
||||
};
|
||||
class Uniforms_Male_ApexDLC
|
||||
|
@ -838,7 +838,7 @@ class CfgLootTable_MAD
|
||||
class Pistols_Vanilla
|
||||
{
|
||||
items[] = {
|
||||
{ { "Hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "MultiGun", "weapon" }, 5 },
|
||||
{ { "hgun_Pistol_heavy_01_F", "weapon" }, 9 },
|
||||
{ { "hgun_P07_F", "weapon" }, 10 },
|
||||
@ -1575,7 +1575,13 @@ class CfgLootTable_MAD
|
||||
{ { "U_C_ConstructionCoverall_Black_F", "item" }, 1 },
|
||||
{ { "U_C_ConstructionCoverall_Blue_F", "item" }, 1 },
|
||||
{ { "U_C_Paramedic_01_F", "item" }, 1 },
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 }
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_cargo_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_jeans_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_TeeShorts_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_Tee_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_casual_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_shorts_F", "item" }, 1 }
|
||||
};
|
||||
};
|
||||
class Uniforms_Male_ApexDLC
|
||||
|
@ -838,7 +838,7 @@ class CfgLootTable_MADCUP
|
||||
class Pistols_Vanilla
|
||||
{
|
||||
items[] = {
|
||||
{ { "Hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "hgun_Pistol_Signal_F", "weapon" }, 4 },
|
||||
{ { "MultiGun", "weapon" }, 5 },
|
||||
{ { "hgun_Pistol_heavy_01_F", "weapon" }, 9 },
|
||||
{ { "hgun_P07_F", "weapon" }, 10 },
|
||||
@ -1575,7 +1575,13 @@ class CfgLootTable_MADCUP
|
||||
{ { "U_C_ConstructionCoverall_Black_F", "item" }, 1 },
|
||||
{ { "U_C_ConstructionCoverall_Blue_F", "item" }, 1 },
|
||||
{ { "U_C_Paramedic_01_F", "item" }, 1 },
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 }
|
||||
{ { "U_C_Mechanic_01_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_cargo_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_jeans_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_TeeShorts_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_Tee_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_casual_F", "item" }, 1 },
|
||||
{ { "U_C_IDAP_Man_shorts_F", "item" }, 1 }
|
||||
};
|
||||
};
|
||||
class Uniforms_Male_ApexDLC
|
||||
|
1
Sources/epoch_server_vip_event/$PREFIX$
Normal file
1
Sources/epoch_server_vip_event/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
epoch_server_vip_event
|
34
changelog.md
34
changelog.md
@ -1,6 +1,40 @@
|
||||
# Change Log
|
||||
All changes for [Arma 3](https://arma3.com/) [Epoch Mod](https://epochmod.com) are listed in this changelog.
|
||||
|
||||
## [1.3.3.0] - 2020-06-03
|
||||
### Added
|
||||
- Some Dupe fixes
|
||||
|
||||
### Fixed
|
||||
- In some Cases, Players were not able to use Binocular in cargo of Vehicles by using R3F or AdvSlingLoad
|
||||
- Player Krypto was not updated in Debug Monitor
|
||||
- Ground Loot now shows as "ground" instead of "crate" in inventory
|
||||
- Snappoint for half cinder walls on top was not 100% correct
|
||||
|
||||
### Changed
|
||||
- Some cleanups for no longer needed scripts
|
||||
- Reduced Server calls for Loot Spawn (but not reduced Loot in general!)
|
||||
- Replaced Karma by AntagonistKills in Topstats (because Karma is currently broken a bit)
|
||||
- Better randomize left Vehicles in Traders (Do not only store Vehicles in Trader Slots order)
|
||||
- Removed Thermal from assembled UAVs (by default)
|
||||
|
||||
### Server Owners
|
||||
- Reworked CfgServicePoint a bit (added Vehicles + smaller tweaks)
|
||||
- Cleaned up some scripts - more usage of already existing sub functions (EPOCH_server_CargoSave / EPOCH_server_CargoLoad)
|
||||
- Option in cfgepochclient "SupressBaseSpawnOnHomekillTime" to prevent Base spawn for xxx seconds after BaseKill
|
||||
- Karma variable is currently broken and caused community stats to not save correctly.
|
||||
- Community save should be fixed now. Karma is still WIP
|
||||
- Added a Config "BaseCamOnlyHome" in cfgepochclient to allow Players to use Basecamterminal (from Inventory) outside their Base
|
||||
- Picture get more and more noisy by distance
|
||||
- Fixed an issue, that new expansion Backpacks could get doubled on restarts
|
||||
- Added some more IDAP-Uniforms that don't require the Orange-DLC:
|
||||
- U_C_IDAP_Man_cargo_F
|
||||
- U_C_IDAP_Man_jeans_F
|
||||
- U_C_IDAP_Man_TeeShorts_F
|
||||
- U_C_IDAP_Man_Tee_F
|
||||
- U_C_IDAP_Man_casual_F
|
||||
- U_C_IDAP_Man_shorts_F
|
||||
|
||||
## [1.3.2.0] - 2019-11-02
|
||||
### Added
|
||||
- Non Lethal Weapons
|
||||
|
Loading…
Reference in New Issue
Block a user