From ba8702d9ed10e774e1e8acef6ea4312991c9d123 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 28 Dec 2015 10:31:54 -0600 Subject: [PATCH] 0.3.7.005 --- Changelogs/0.3.7.0.txt | 16 +-- .../@epochhive/addons/a3_epoch_server.pbo | Bin 364388 -> 364669 bytes .../sc/battleye/remoteexec.txt | 2 +- Server_Install_Pack/sc/battleye/scripts.txt | 4 +- Sources/epoch_code/System/Sapper_Brain.fsm | 4 +- .../epoch_code/System/Trader_Missions_VIP.fsm | 12 +-- .../epoch_code/System/sapperSwarmMember.fsm | 6 +- Sources/epoch_code/compile/EPOCH_fish.sqf | 4 +- .../epoch_code/compile/EPOCH_lootTrash.sqf | 3 +- .../compile/EPOCH_supportCopter.sqf | 4 +- .../epoch_code/compile/EPOCH_unitSpawn.sqf | 4 +- .../compile/building/EPOCH_staticMove.sqf | 4 +- .../EPOCH_client_loadAnimalBrain.sqf | 4 +- .../missions/EPOCH_mission_cage_sapper.sqf | 8 +- Sources/epoch_config/Configs/CfgMagazines.hpp | 3 + .../Configs/CfgMagazines/Custom.hpp | 101 ++++++++++++++++++ Sources/epoch_config/Configs/CfgPricing.hpp | 40 +++++++ .../EPOCH_server_lockVehicle.sqf | 13 ++- 18 files changed, 193 insertions(+), 39 deletions(-) create mode 100644 Sources/epoch_config/Configs/CfgMagazines/Custom.hpp diff --git a/Changelogs/0.3.7.0.txt b/Changelogs/0.3.7.0.txt index 5e4c9410..da5b1690 100644 --- a/Changelogs/0.3.7.0.txt +++ b/Changelogs/0.3.7.0.txt @@ -1,12 +1,16 @@ **Client** +[ADDED] Hotwire Kit (ItemHotwire) +[ADDED] Key Makers Kit (ItemKeyKit) +[ADDED] Keys in colors: (Black ItemKey,ItemKeyRed,ItemKeyGreen,ItemKeyBlue,ItemKeyYellow) +[ADDED] 55 Gallon Fuel Barrel (Full - ItemBarrelF | Empty - ItemBarrelE) +[ADDED] Metal Pipes (ItemPipe) +[WIP] Light Bulb (ItemBulb) +[WIP] Burlap (ItemBurlap) +[WIP] Briefcase (Empty - ItemBriefcaseE) +[WIP] Documents (Trash,Books,Vehicle Upgrades) (ItemDoc1, ItemDoc2) [Changed] Change all publicVariableServer calls to use remoteExec calls for better performance. [Fixed] Custom epoch swing animations for Hatchet and sledge now work correctly. -[WIP] Hotwire Kit -[WIP] Key Makers Kit -[WIP] Keys in colors: (Black,Red,Green,Blue,Yellow) -[WIP] 55 Gallon Fuel Barrel (Full/Empty) -[WIP] Metal Pipes -[WIP] Documents (Trash,Vehicle Upgrades) **Server** [Updated] New Battleye remoteExec.txt for added remoteExec calls. +[Changed] Driver or passengers of a driverless can now control vehicle locks. [Info] Removed old .bikey and added new one for 0370. diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 0ed7c2ecd10662026161a7542c46372d0972a6d9..c0c560fb1ebdf09f2560ccb92d5edf73ef907ea5 100644 GIT binary patch delta 444 zcmaDdPwejku?@d?*#4cb3F~K^T*#v`-Tyk1z~rNXf}34=m$0&>`Zk7rWSg8Qq&odA zA2Y{h8Q}^>=1Skj=IJ8ar;9L}WKKS?op<`RTEKLy)p4?z9J3ZhQGt2h4 zBqo0*VSRmt^wbiCoc!eM)D(r{lEjkK>8n$iwCm$jiZaVmixg}Xpp5vk)QrsJoK$OG zE}*95jMU_8h0HXCf}F%kpt8(js5)M*_{?G#nBI7}v}<8$VopfD0@Pfbrex+7XQreo zxI%4HD9N^Op`s?4UH^~EKQBuV>U7YG4uAA ejVxd8ipUynuRB_MxwW;TY1a$4-JYq%i{k(%%cDyG delta 171 zcmV;c0960|pcdqw7O?sZ2696jRf_?WaSSAv?$-hgvoH<01(Og91OnUzlVK7imul4l z46`5;bO8gyt$Kr(6t|ZY0W@isFDwBKm)d;+khg4p0o3CGAeRwY0v(o!0|d8WVggSB zm&IfPDVMip0#&y{W&+OvmlIe58k3-19k)to0whWYFgP_hI5jbcb+Q77b+QAub+QEX Z-4uQ|merIztYkpbVnBx#o*Q7u9>=tSKCS=& diff --git a/Server_Install_Pack/sc/battleye/remoteexec.txt b/Server_Install_Pack/sc/battleye/remoteexec.txt index 3121fdca..8d8830fa 100644 --- a/Server_Install_Pack/sc/battleye/remoteexec.txt +++ b/Server_Install_Pack/sc/battleye/remoteexec.txt @@ -1 +1 @@ -5 "" !="epoch_server_checkplayer [A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3} \(.+\) REMOTE" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|localCleanup|createAirDrop|airDropCrate) \[.+\]" +5 "" !="epoch_server_checkplayer [A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3} \(.+\) REMOTE" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|localCleanup|createAirDrop|airDropCrate|destroytrash) \[.+\]" diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index e9b292a6..a1956211 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -50,8 +50,8 @@ 7 displaySetEventHandler 7 ctrlSetEventHandler !"BIS_fnc_guiMessage_status" !"ctrlSetEventHandler ['LBDblClick', '_this call" !="_buttonRespawn ctrlseteventhandler [\"buttonclick\",\"with uinamespace do {['buttonRespawn'," !="_ctrl ctrlSetEventHandler [\"mouseEnter\"" 7 addMPEventHandler -7 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !"FiredNear" !"EpeContactStart" !"InventoryClosed" !"GetOut" !"InventoryOpened" !"local" !"Respawn" !"Put" !"Take" !"Fired" !"Killed" !" [\"PostReset\",{BIS_EnginePPReset = true;} ];" !"_logic addeventhandler [\n\"local\"" -7 displayAddEventHandler !"[_display] call _fnc_animate;" !"tVersion select 4) == \"Development\") then" !"_display displayaddeventhandler\n[\n\"mousemoving\"," !"(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !"(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"_this call EPOCH_KeyDown\"];" !="_addCase = _display46 displayAddEventHandler ['KeyDown',{_this call EPOCH_KeyDown;}];" !"_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'" +7 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !"[\"FiredNear"\" !"[\"EpeContactStart"\" !"[\"GetOut"\" !"[\"local"\" !"[\"PostReset"\" !"[\"TaskSetAsCurrent"\" !="player addEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" +7 displayAddEventHandler !="_display displayAddEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !"[_display] call _fnc_animate;" !"tVersion select 4) == \"Development\") then" !"_display displayaddeventhandler\n[\n\"mousemoving\"," !="_addCase = _display46 displayAddEventHandler ['KeyDown',{_this call EPOCH_KeyDown;}];" !"_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'" 7 ctrlAddEventHandler !"rCfg >> \"refreshDelay\");" !" [\n\"draw\"," !" [\"buttonclick\"," !="(uiNamespace getVariable 'ESP_map') ctrlAddEventHandler['Draw', '_esp_targets = EPOCH_ESPMAP_TARGETS;" !="ctrlAddEventHandler ['MouseButtonDown'" !="(_display displayctrl _idc) ctrlAddEventHandler [\"LBSelChanged\"," !="_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)])];" 7 removeAllEventHandlers !="ctrlRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="_display46 displayRemoveAllEventHandlers 'KeyDown';" 7 removeAllMissionEventHandlers diff --git a/Sources/epoch_code/System/Sapper_Brain.fsm b/Sources/epoch_code/System/Sapper_Brain.fsm index 855371a1..ce5ee55d 100644 --- a/Sources/epoch_code/System/Sapper_Brain.fsm +++ b/Sources/epoch_code/System/Sapper_Brain.fsm @@ -1206,8 +1206,8 @@ class FSM "_bomb = createVehicle [""Sapper_Charge_Ammo"", (getposATL _nestMate), [], 0, ""CAN_COLLIDE""] ; " \n "_bomb attachTo [_nestMate, [0,0,0],""Pelvis""];" \n "_nestMate setVariable [""bomb"",_bomb];" \n - "EPOCH_TEMPOBJ_PVS = _nestMate;" \n - "EPOCH_TEMPOBJ_PVS remoteExec [""EPOCH_localCleanup"",2];" \n + "" \n + "[_nestMate] remoteExec [""EPOCH_localCleanup"",2];" \n "_nestMate disableAI ""TARGET"";" \n "_nestMate disableAI ""AUTOTARGET"";" \n "_nestMate disableAI ""FSM"";" \n diff --git a/Sources/epoch_code/System/Trader_Missions_VIP.fsm b/Sources/epoch_code/System/Trader_Missions_VIP.fsm index eb15ec85..d4717094 100644 --- a/Sources/epoch_code/System/Trader_Missions_VIP.fsm +++ b/Sources/epoch_code/System/Trader_Missions_VIP.fsm @@ -914,8 +914,8 @@ class FSM "axeVIP = _grp createUnit [""Epoch_Female_CamoRed_F"",_pos,[],0,""FORM""];" \n "" \n "if !(isNull axeVIP) then {" \n - " EPOCH_TEMPOBJ_PVS = axeVIP;" \n - " EPOCH_TEMPOBJ_PVS remoteExec [""EPOCH_localCleanup"",2];" \n + "" \n + " [axeVIP] remoteExec [""EPOCH_localCleanup"",2];" \n "};" \n "" \n "_grp setCombatMode ""BLUE"";" \n @@ -1038,8 +1038,8 @@ class FSM " removeAllWeapons axeGeneral;" \n "" \n "if !(isNull axeGeneral) then {" \n - " EPOCH_TEMPOBJ_PVS = axeGeneral;" \n - " EPOCH_TEMPOBJ_PVS remoteExec [""EPOCH_localCleanup"",2];" \n + "" \n + " [axeGeneral] remoteExec [""EPOCH_localCleanup"",2];" \n "};" \n "" \n " for ""_i"" from 1 to 3 step 1 do" \n @@ -1051,8 +1051,8 @@ class FSM " _unit addEventHandler [""FiredNear"", ""group (_this select 0) setVariable[""""shotsFired"""",[(_this select 1),(_this select 2)]]""];" \n " _unit addEventHandler [""Killed"", ""group (_this select 0) setVariable[""""killer"""",_this select 1]""];" \n " if !(isNull _unit) then {" \n - " EPOCH_TEMPOBJ_PVS = _unit;" \n - " EPOCH_TEMPOBJ_PVS remoteExec [""EPOCH_localCleanup"",2];" \n + "" \n + " [_unit] remoteExec [""EPOCH_localCleanup"",2];" \n " };" \n " [_unit,axeGeneral] execFSM ""\x\addons\a3_epoch_code\System\Mission_VIP_Militia.fsm"";" \n "" \n diff --git a/Sources/epoch_code/System/sapperSwarmMember.fsm b/Sources/epoch_code/System/sapperSwarmMember.fsm index 6e207b95..5fbc061c 100644 --- a/Sources/epoch_code/System/sapperSwarmMember.fsm +++ b/Sources/epoch_code/System/sapperSwarmMember.fsm @@ -49,8 +49,8 @@ class FSM "" \n "" \n "if !(isNull _unit) then {" \n - " EPOCH_TEMPOBJ_PVS = _unit;" \n - " EPOCH_TEMPOBJ_PVS remoteExec [""EPOCH_localCleanup"",2];" \n + "" \n + " [_unit] remoteExec [""EPOCH_localCleanup"",2];" \n "};" \n "" \n "_randomGroan = {" \n @@ -610,4 +610,4 @@ class FSM { "end" }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/EPOCH_fish.sqf b/Sources/epoch_code/compile/EPOCH_fish.sqf index af7cb7b8..42b668a0 100644 --- a/Sources/epoch_code/compile/EPOCH_fish.sqf +++ b/Sources/epoch_code/compile/EPOCH_fish.sqf @@ -34,8 +34,8 @@ if (surfaceIsWater _currentPos) then { // Cast _bobber = createVehicle ["Bobber_EPOCH",_currentPos, [], 0, "CAN_COLLIDE"]; - EPOCH_TEMPOBJ_PVS = [_bobber]; - EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; + // send to server + [_bobber] remoteExec ["EPOCH_localCleanup",2]; _bobber setPosASL _currentPos; _bobber setVariable ["EPOCH_bobberTime", diag_tickTime]; diff --git a/Sources/epoch_code/compile/EPOCH_lootTrash.sqf b/Sources/epoch_code/compile/EPOCH_lootTrash.sqf index 3c051a39..6c7936b4 100644 --- a/Sources/epoch_code/compile/EPOCH_lootTrash.sqf +++ b/Sources/epoch_code/compile/EPOCH_lootTrash.sqf @@ -107,8 +107,7 @@ if (diag_tickTime - EPOCH_lastTrash > 2) then { _id = [_animal, true] execFSM "\x\addons\a3_epoch_code\System\Animal_brain.fsm"; _animals pushBack _animal; }; - EPOCH_TEMPOBJ_PVS = _animals; - EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; + _animals remoteExec ["EPOCH_localCleanup",2]; }; }; if (!isNull EPOCH_bankTerminal) then { diff --git a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf index 4d6fee2e..66c77429 100644 --- a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf +++ b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf @@ -58,5 +58,5 @@ for "_i" from 0 to ((count _arrUnits)-1) do { }; // cleanup units or (transfer ownership) if player logs out -EPOCH_TEMPOBJ_PVS = _units; -EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; +// send to server +_units remoteExec ["EPOCH_localCleanup",2]; diff --git a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf index 654ac670..8076986a 100644 --- a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf +++ b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf @@ -114,6 +114,6 @@ switch _unitClass do { }; if !(isNull _unit) then { - EPOCH_TEMPOBJ_PVS = _unit; - EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; + // send to server + [_unit] remoteExec ["EPOCH_localCleanup",2]; }; diff --git a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf index dbe5b6d2..2a49e070 100644 --- a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf @@ -73,8 +73,8 @@ if (_class != "") then { _pos2 = player modelToWorldVisual[EPOCH_X_OFFSET, EPOCH_Y_OFFSET, EPOCH_Z_OFFSET]; EPOCH_target = createVehicle[_class, _pos2, [], 0, "CAN_COLLIDE"]; - EPOCH_TEMPOBJ_PVS = EPOCH_target; - EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; + // send to server + [EPOCH_target] remoteExec ["EPOCH_localCleanup",2]; if (_pos2 select 2 > _maxHeight) then { _pos2 set[2, _maxHeight]; diff --git a/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf b/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf index 988f8eeb..d111923d 100644 --- a/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf +++ b/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf @@ -50,8 +50,8 @@ if!(isNil "_animalPos") then { // diag_log format["DEBUG: spawned %1", _randomAIClass]; - EPOCH_TEMPOBJ_PVS = _animal; - EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; + // send to server + [_animal] remoteExec ["EPOCH_localCleanup",2]; { _animal disableAI _x; diff --git a/Sources/epoch_code/compile/missions/EPOCH_mission_cage_sapper.sqf b/Sources/epoch_code/compile/missions/EPOCH_mission_cage_sapper.sqf index 4e903762..1a7565ea 100644 --- a/Sources/epoch_code/compile/missions/EPOCH_mission_cage_sapper.sqf +++ b/Sources/epoch_code/compile/missions/EPOCH_mission_cage_sapper.sqf @@ -9,8 +9,8 @@ _cage2 = createVehicle ["Land_Cages_F", _cagePos, [], 2, "CAN_COLLIDE"] ; _cage2 setVectorDirAndUp [[0,0,1],[0,1,0]]; _cage attachTo [_cage2,[0,1.3,0]]; -EPOCH_TEMPOBJ_PVS = [_cage,_cage2]; -EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; +// send to server +[_cage,_cage2] remoteExec ["EPOCH_localCleanup",2]; _startCage = diag_tickTime; @@ -27,8 +27,8 @@ _sapper setVectorDirAndUp [[0,0,1],[0,1,0]]; _sapper forcespeed 0; if !(isNull _sapper) then { - EPOCH_TEMPOBJ_PVS = _sapper; - EPOCH_TEMPOBJ_PVS remoteExec ["EPOCH_localCleanup",2]; + // send to server + [_sapper] remoteExec ["EPOCH_localCleanup",2]; }; [player,Epoch_personalToken,objNull,false,25] remoteExec ["EPOCH_server_fillContainer",2]; diff --git a/Sources/epoch_config/Configs/CfgMagazines.hpp b/Sources/epoch_config/Configs/CfgMagazines.hpp index 957c1bf0..318f3e68 100644 --- a/Sources/epoch_config/Configs/CfgMagazines.hpp +++ b/Sources/epoch_config/Configs/CfgMagazines.hpp @@ -18,6 +18,9 @@ class CfgMagazines class Default; class CA_Magazine; + #include "CfgMagazines\Custom.hpp" + // 037 custom end + class 1Rnd_Soda: CA_Magazine { picture = ""; diff --git a/Sources/epoch_config/Configs/CfgMagazines/Custom.hpp b/Sources/epoch_config/Configs/CfgMagazines/Custom.hpp new file mode 100644 index 00000000..8fc03173 --- /dev/null +++ b/Sources/epoch_config/Configs/CfgMagazines/Custom.hpp @@ -0,0 +1,101 @@ +class ItemHotwire : CA_Magazine { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_hotwire_ca.paa"; + displayName = "$STR_EPOCH_VehicleHotwireK_19"; // Vehicle Hotwire Kit + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\hotwire.p3d"; + descriptionShort = "$STR_EPOCH_Usedtounlockveh_24"; // Used to unlock vehicles. + count = 1; + mass = 2; + interactAction = 2; + interactText = "USE"; +}; +class ItemKeyKit : CA_Magazine { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_keykit_ca.paa"; + displayName = "$STR_EPOCH_KeyMakersKit_14"; // Key Makers Kit + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\keykit.p3d"; + descriptionShort = "$STR_EPOCH_Usedtocraftdupl_29"; // Used to craft duplicate keys. + count = 1; + mass = 2; + interactAction = 2; + interactText = "USE"; +}; +class ItemBarrelF : CA_Magazine { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_oil_drum_model_ca.paa"; + displayName = "$STR_EPOCH_FuelBarrelFull_18"; // Fuel Barrel (Full) + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\oil_drum_model.p3d"; + descriptionShort = "$STR_EPOCH_55gallonfuelbar_22"; // 55 gallon fuel barrel. + count = 1; + mass = 25; + interactAction = 2; + interactText = "USE"; +}; +class ItemBarrelE : CA_Magazine { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_oildrum_e_CA.paa"; + displayName = "$STR_EPOCH_FuelBarrelEmpty_19"; // Fuel Barrel (Empty) + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\oil_drum_model.p3d"; + descriptionShort = "$STR_EPOCH_Empty55gallonfu_28"; // Empty 55 gallon fuel barrel. + count = 1; + mass = 25; + interactAction = 2; + interactText = "USE"; +}; +class ItemPipe : CA_Magazine { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_pipe_CA.paa"; + displayName = "$STR_EPOCH_Pipes_5"; // Pipes + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\pipe.p3d"; + descriptionShort = "$STR_EPOCH_Smallpileofmeta_26"; // Small pile of metal pipes. + count = 1; + mass = 15; +}; +class ItemKey : CA_Magazine { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_key_CA.paa"; + displayName = "$STR_EPOCH_Key_3"; // Key + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\key.p3d"; + descriptionShort = "$STR_EPOCH_Keyusedinalock_19"; // Key used in a lock. + count = 1; + mass = 1; + interactAction = 2; + interactText = "USE"; +}; +class ItemKeyBlue : ItemKey { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_key_CA_blue.paa"; + displayName = "$STR_EPOCH_KeyBlue_10"; // Key (Blue) + model = "\x\addons\a3_epoch_assets_1\models\key_blue.p3d"; +}; +class ItemKeyGreen : ItemKey { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_key_CA_green.paa"; + displayName = "$STR_EPOCH_KeyGreen_11"; // Key (Green) + model = "\x\addons\a3_epoch_assets_1\models\key_green.p3d"; +}; +class ItemKeyRed : ItemKey { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_key_CA_red.paa"; + displayName = "$STR_EPOCH_KeyRed_9"; // Key (Red) + model = "\x\addons\a3_epoch_assets_1\models\key_red.p3d"; +}; +class ItemKeyYellow : ItemKey { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_key_CA_yellow.paa"; + displayName = "$STR_EPOCH_KeyYellow_12"; // Key (Yellow) + model = "\x\addons\a3_epoch_assets_1\models\key_yellow.p3d"; +}; +class ItemDoc1 : CA_Magazine { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_child1_ca.paa"; + displayName = "$STR_EPOCH_Book_4"; // Book + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\doc_child1.p3d"; + descriptionShort = "$STR_EPOCH_Book_4"; // Book + count = 1; + mass = 1; + interactAction = -1; + interactText = "READ"; +}; +class ItemDoc2 : ItemDoc1 { + picture = "\x\addons\a3_epoch_assets_1\pictures\equip_child2_ca.paa"; + displayName = "$STR_EPOCH_Book_4"; // Book + scope = 2; + model = "\x\addons\a3_epoch_assets_1\models\doc_child2.p3d"; +}; diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp index 5f46e69d..fae7c4f4 100644 --- a/Sources/epoch_config/Configs/CfgPricing.hpp +++ b/Sources/epoch_config/Configs/CfgPricing.hpp @@ -15,6 +15,46 @@ class CfgPricing { + + // 037 + class ItemHotwire { + price = 15; + }; + class ItemKeyKit { + price = 15; + }; + class ItemBarrelF { + price = 150; + }; + class ItemBarrelE { + price = 150; + }; + class ItemPipe { + price = 10; + }; + class ItemKey { + price = 10; + }; + class ItemKeyBlue { + price = 10; + }; + class ItemKeyGreen { + price = 10; + }; + class ItemKeyRed { + price = 10; + }; + class ItemKeyYellow { + price = 10; + }; + class ItemDoc1 { + price = 10; + }; + class ItemDoc2 { + price = 10; + }; + // 037 + class ChainSaw {price = 125;}; class CircuitParts {price = 50;}; class ItemCoolerE {price = 50;}; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf index a873f701..b7b35a03 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf @@ -9,7 +9,7 @@ if (isNull _vehicle) exitWith {}; if !([_player,_this select 3] call EPOCH_server_getPToken) exitWith {}; if (_player distance _vehicle > 20) exitWith {}; -// Group access +// Group access _plyrUID = getPlayerUID _player; _plyrGroup = _player getVariable["GROUP", ""]; @@ -28,10 +28,17 @@ if (_vehSlot != "ABORT") then { }; }; +// get locked state _isLocked = locked _vehicle in[2, 3]; +_driver = driver _vehicle; +// check if player is driver +_isDriver = _player isEqualTo _driver; +// check if player is inside vehicle without driver +_isInsideVehicle = _player in (crew _vehicle); + // Lockout mech -if (!_isLocked || _lockedOwner == _lockOwner || _lockedOwner == "-1") then { +if (!_isLocked || _lockedOwner == _lockOwner || _lockedOwner == "-1" || _isDriver || (isNull(_driver) && _isInsideVehicle)) then { _value = _this select 1; @@ -48,4 +55,4 @@ if (!_isLocked || _lockedOwner == _lockOwner || _lockedOwner == "-1") then { [["unlockVehicle", _vehicle], (owner _vehicle)] call EPOCH_sendPublicVariableClient; }; }; -}; \ No newline at end of file +};