From c8cbf8347c2771ab4e5a16dca6f971c36683b768 Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 2 Dec 2015 15:39:48 -0600 Subject: [PATCH 01/16] version bump to 0.3.6 --- Changelogs/0.3.6.0.txt | 9 + .../@epochhive/addons/a3_epoch_server.pbo | Bin 362227 -> 362227 bytes .../addons/a3_epoch_server_settings.pbo | Bin 274451 -> 274451 bytes .../@epochhive/addons/epoch_server_core.pbo | Bin 14116 -> 14116 bytes Server_Install_Pack/keys/epoch0350.bikey | Bin 162 -> 0 bytes Server_Install_Pack/keys/epoch0360.bikey | Bin 0 -> 162 bytes Server_Install_Pack/sc/config.cfg | 4 +- Sources/epoch_code/config.cpp | 30 +- .../epoch_config/Configs/CfgEpochClient.hpp | 2 +- .../epoch_config/Configs/CfgMovesBasic.hpp | 2275 ++++- .../epoch_config/Configs/CfgMovesMaleSdr2.hpp | 8320 +++++++++++------ Sources/epoch_config/config.cpp | 2 +- Sources/epoch_server/config.cpp | 4 +- Sources/epoch_server_core/config.cpp | 2 +- Sources/epoch_server_settings/config.cpp | 4 +- Sources/mpmissions/epoch.VR/description.ext | 2 +- 16 files changed, 7711 insertions(+), 2943 deletions(-) create mode 100644 Changelogs/0.3.6.0.txt delete mode 100644 Server_Install_Pack/keys/epoch0350.bikey create mode 100644 Server_Install_Pack/keys/epoch0360.bikey diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt new file mode 100644 index 00000000..fa428548 --- /dev/null +++ b/Changelogs/0.3.6.0.txt @@ -0,0 +1,9 @@ +**Client** +[Fixed] Reduce run speed of Sappers since 1.54 update. + +**Server** +[Fixed] Typo in server side AH event handler code and repacked a3_server_settings.pbo. +[Fixed] Storage was incorrectly set to set damage to 99% instead of 1% to temp force maintenance option after restart. +[Fixed] Add player objects to remains collector, this should allow for proper corpse cleanup. +[Changed] Disable simulation of locked storage devices. This also prevents removal of items until device is unlocked/re-simulated. +[Info] Removed old .bikey and added new one for 0360. diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 26d47042ace7938c83e1700887f9a026e35bb8c8..89970374bfdadb586bf38ddbfafe79a3e5c369ea 100644 GIT binary patch delta 90 zcmey|EB3ipY{L{0CgJ$zX(H{@L>RYE6JeS>MaWFgfPs-AIX^EgGo8Ue&sfiFy7fvX u6IL@zBV*I{l9fzA%)Gs1B}?{Q5v9eOLMQtj?5!+jc(X!&!pRYE6JeS>MaWdofPs-AIX^EgGo8Ue&sfiNy7fvX u6IN40V{`NNl9fzA%)Gs1B}?{Qk?6~_-Mc>?GX42>qOkq+imdk)%rgOwP$BRD diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index 59919bad284d34fac8fadc881471cc9ed04d9fda..dd36851f3e78e78cbd64ec65d9f7fb8816b56852 100644 GIT binary patch delta 119 zcmbRIKw$C%fe9gseDU#NE({C|$@zI{ndy4T1qDD30`SFeEX`zQHM2A_HkkaFc>|l7 zo`EJW*JME!*U1Vj9Fw21%waTZZf0$7W@Q9oCLm_s-ptBUqb0IwR#t}`+ar~SX+^HL MnSMsC_nw{t0DfU3CIA2c delta 119 zcmbRIKw$C%fe9gsRyy%vE({C|$@zI{ndy4T1qDD30$Ay6EX`zQH8nFbw3z&uc>|lN zo`EJW*JME!*U1Vj9Fw21%waTbZf0$7W@Q9oCLm_s-ptBUqb1T+tZUnMTlh%r@d%r# M%gfWNE2r=Q0C%?{yZ`_I diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo index cd6da19cf49ff0cca44fad213780ff872fb6ef5b..656e67e7d7fde0576b9f6ac2979dcf2a6c941e0f 100644 GIT binary patch delta 54 zcmZ3Iwf-1Ee*^pjf{;L@|YMPpe*i2(rp&Mio@rB>8?+HV)sWk GNdy4i6cUaA delta 54 zcmZ3Iwf-1&5cY<49pA|@|YMP;H&9LfzSCbD(^-5ZN2sT=tiED G!U6yRoD^9A diff --git a/Server_Install_Pack/keys/epoch0350.bikey b/Server_Install_Pack/keys/epoch0350.bikey deleted file mode 100644 index f503ee3e480588f5154551fae60034980181b29b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmV;T0A2rOaBpL1Ff%nU0F(d#00sg8001Na08&#yF#rSr009620At$SsgjFsY>V&a z;3E>6VsXw3h_1lBs6{V-{DOw?QguAZjrYi{L?=v#m6Wbzk+bB_4pl?szonvF0{pIs zb|>7DuJA=krH4mcqOHzVleJ4tk!Lu484H;&M@i7dYz$N=72kyH5vTAB`pt*>YvprYbsu*79`XqI!J;)!9da{p4J8HEtO_&1^#=Lvdr5jOul z2So@n+3Rbsm}m@&qD?qh)Z9ZotB(u4iDgK|9R-dGN&u QR!qo8vmtZ3{&Hf|#`U#C!T Date: Mon, 7 Dec 2015 10:24:52 -0600 Subject: [PATCH 02/16] getting started on 0.3.6 --- Sources/epoch_code/README.TXT | 3 - Sources/epoch_code/System/player_login.fsm | 2 +- .../compile/EPOCH_EnterBuilding.sqf | 16 +- Sources/epoch_code/compile/EPOCH_LootIT.sqf | 28 +- .../epoch_code/compile/EPOCH_PutHandler.sqf | 16 +- .../epoch_code/compile/EPOCH_QuickTakeAll.sqf | 14 + .../compile/EPOCH_QuickTakeLoad.sqf | 14 + .../compile/EPOCH_SpawnTraderMiltia.sqf | 17 +- .../epoch_code/compile/EPOCH_UnisexCheck.sqf | 14 + Sources/epoch_code/compile/EPOCH_antiWall.sqf | 35 +- .../compile/EPOCH_callSapperMigration.sqf | 16 +- Sources/epoch_code/compile/EPOCH_chopWood.sqf | 21 +- .../epoch_code/compile/EPOCH_consumeItem.sqf | 14 + .../epoch_code/compile/EPOCH_debugMonitor.sqf | 15 +- .../epoch_code/compile/EPOCH_effectCrypto.sqf | 14 + Sources/epoch_code/compile/EPOCH_fish.sqf | 15 +- .../compile/EPOCH_handleServerMessage.sqf | 14 + Sources/epoch_code/compile/EPOCH_interact.sqf | 15 +- .../epoch_code/compile/EPOCH_lootTrash.sqf | 14 + .../epoch_code/compile/EPOCH_mineRocks.sqf | 14 + .../epoch_code/compile/EPOCH_niteLight.sqf | 16 +- .../epoch_code/compile/EPOCH_onEachFrame.sqf | 14 + .../epoch_code/compile/EPOCH_replaceWord.sqf | 16 +- .../compile/EPOCH_supportCopter.sqf | 14 + .../epoch_code/compile/EPOCH_unitSpawn.sqf | 16 +- .../compile/EPOCH_unitSpawnDecrease.sqf | 14 + .../compile/EPOCH_unitSpawnIncrease.sqf | 14 + .../compile/EPOCH_updateLoadingScreen.sqf | 14 + .../compile/both/EPOCH_getHitpoints.sqf | 12 - .../epoch_code/compile/both/EPOCH_isAny.sqf | 24 + .../building/EPOCH_changeWallState.sqf | 27 +- .../compile/building/EPOCH_checkBuild.sqf | 25 +- .../compile/building/EPOCH_countdown.sqf | 23 + .../building/EPOCH_fnc_SelectTargetBuild.sqf | 32 +- .../compile/building/EPOCH_isBuildAllowed.sqf | 41 +- .../compile/building/EPOCH_removeBUILD.sqf | 2 +- .../compile/building/EPOCH_upgradeBUILD.sqf | 2 +- .../EPOCH_fn_returnConfigEntryV2.sqf | 25 + .../compile/functions/EPOCH_fnc_Weather.sqf | 23 + .../functions/EPOCH_fnc_addItemOverflow.sqf | 24 +- .../functions/EPOCH_fnc_cursorTarget.sqf | 26 + .../functions/EPOCH_fnc_dirToFuzzy.sqf | 30 +- .../EPOCH_fnc_findRandomPosBehind.sqf | 35 +- .../functions/EPOCH_fnc_findSafePos.sqf | 43 +- .../EPOCH_fnc_findSapperStalkLocation.sqf | 40 +- .../functions/EPOCH_fnc_isInsideBuilding.sqf | 25 +- .../functions/EPOCH_fnc_playerDeath.sqf | 25 + .../functions/EPOCH_fnc_playerFired.sqf | 30 + .../functions/EPOCH_fnc_stringLeft.sqf | 30 +- .../compile/functions/EPOCH_itemData.sqf | 28 +- .../functions/EPOCH_itemDisplayName.sqf | 22 + .../compile/functions/EPOCH_itemPicture.sqf | 23 + .../compile/functions/EPOCH_pushCustomVar.sqf | 23 + .../compile/functions/EPOCH_returnConfig.sqf | 23 + .../functions/Epoch_SortArrayByDistance.sqf | 42 +- .../compile/setup/EPOCH_clientInit.sqf | 23 + .../compile/setup/EPOCH_clientKeyMap.sqf | 38 +- .../compile/setup/EPOCH_clientRespawn.sqf | 2 +- .../compile/setup/EPOCH_clientRevive.sqf | 33 +- .../compile/setup/EPOCH_client_publicEH.sqf | 30 +- .../setup/EPOCH_client_rejectPlayer.sqf | 25 +- .../compile/setup/EPOCH_masterLoop.sqf | 623 +------- .../compile/setup/EPOCH_masterLoop_v2.sqf | 40 - Sources/epoch_code/compile/startFlock.sqf | 15 + .../compile/traders/EPOCH_tradeFilter.sqf | 2 +- .../vehicles/EPOCH_client_fillVehicle.sqf | 16 +- .../vehicles/EPOCH_client_gearVehicle.sqf | 16 +- .../vehicles/EPOCH_client_lockVehicle.sqf | 16 +- .../vehicles/EPOCH_client_repairVehicle.sqf | 16 +- Sources/epoch_code/config.cpp | 18 +- .../epoch_code/gui/scripts/Epoch_getIDC.sqf | 4 +- .../scripts/dynamenu/Epoch_dynamicMenu.sqf | 4 +- .../post_process/EPOCH_postprocessAdjust.sqf | 8 +- Sources/epoch_code/init/both_init.sqf | 15 + Sources/epoch_code/init/client_init.sqf | 14 + Sources/epoch_code/init/fn_init.sqf | 15 + Sources/epoch_code/init/fn_postinit.sqf | 14 + .../CfgActionMenu/CfgActionMenu_core.hpp | 15 + .../CfgActionMenu/CfgActionMenu_self.hpp | 15 + .../CfgActionMenu/CfgActionMenu_target.hpp | 15 + .../Configs/CfgActionMenu/EXAMPLE.hpp | 16 +- Sources/epoch_config/Configs/CfgActions.hpp | 19 +- Sources/epoch_config/Configs/CfgAmmo.hpp | 15 + .../epoch_config/Configs/CfgBaseBuilding.hpp | 15 + .../Configs/CfgBuildingLootPos.hpp | 17 +- Sources/epoch_config/Configs/CfgCloudlets.hpp | 15 + .../epoch_config/Configs/CfgEpochClient.hpp | 15 + .../Configs/CfgEpochClient/Altis.hpp | 17 +- .../Configs/CfgEpochClient/Bornholm.hpp | 20 +- .../Configs/CfgEpochClient/Chernarus.hpp | 16 +- .../CfgEpochClient/Chernarus_Summer.hpp | 16 +- .../Configs/CfgEpochClient/Esseker.hpp | 14 + .../CfgEpochClient/ProvingGrounds_PMC.hpp | 18 +- .../Configs/CfgEpochClient/Sara.hpp | 16 +- .../Configs/CfgEpochClient/Stratis.hpp | 18 +- .../Configs/CfgEpochClient/australia.hpp | 19 +- .../Configs/CfgEpochClient/takistan.hpp | 16 +- .../Configs/CfgEpochClient/utes.hpp | 18 +- .../Configs/CfgEpochClient/vr.hpp | 16 +- .../Configs/CfgEpochConfiguration.hpp | 17 +- .../epoch_config/Configs/CfgGesturesMale.hpp | 21 +- Sources/epoch_config/Configs/CfgInGameUI.hpp | 17 +- Sources/epoch_config/Configs/CfgMagazines.hpp | 15 + .../epoch_config/Configs/CfgMasterLoop.hpp | 15 + Sources/epoch_config/Configs/CfgMissions.hpp | 15 + .../epoch_config/Configs/CfgMovesAnimal.hpp | 15 +- .../epoch_config/Configs/CfgMovesBasic.hpp | 15 + .../epoch_config/Configs/CfgMovesMaleSdr.hpp | 19 +- .../epoch_config/Configs/CfgMovesMaleSdr2.hpp | 15 + Sources/epoch_config/Configs/CfgPricing.hpp | 15 + .../epoch_config/Configs/CfgSnapChecks.hpp | 16 +- Sources/epoch_config/Configs/CfgSounds.hpp | 16 + .../Configs/CfgTraderMissions.hpp | 153 +- Sources/epoch_config/Configs/CfgVehicles.hpp | 1276 +++++------------ .../Configs/CfgVehicles/Antagonists.hpp | 382 +++++ .../Configs/CfgVehicles/Fixes.hpp | 102 ++ .../Configs/CfgVehicles/Players.hpp | 674 +++++++++ Sources/epoch_config/Configs/CfgWeapons.hpp | 757 ++++++++-- Sources/epoch_config/Configs/CfgWorlds.hpp | 19 +- Sources/epoch_config/Configs/cfgCrafting.hpp | 52 +- Sources/epoch_config/Configs/cfgRecoils.hpp | 17 +- Sources/epoch_config/README.TXT | 3 - Sources/epoch_config/config.cpp | 15 + .../scenes/Epoch_Intro.Altis/initIntro.sqf | 16 +- Sources/epoch_config/scripts/Bite.sqf | 2 +- Sources/epoch_config/scripts/fireB.sqf | 19 +- Sources/epoch_config/scripts/fireG.sqf | 19 +- Sources/epoch_config/scripts/fireR.sqf | 19 +- .../EPOCH_server_loadBuildings.sqf | 15 +- .../compile/epoch_hive/fn_server_hiveDEL.sqf | 14 +- .../epoch_hive/fn_server_hiveEXPIRE.sqf | 14 +- .../compile/epoch_hive/fn_server_hiveGET.sqf | 14 +- .../epoch_hive/fn_server_hiveGETBIT.sqf | 14 +- .../epoch_hive/fn_server_hiveGETRANGE.sqf | 15 +- .../epoch_hive/fn_server_hiveGETTTL.sqf | 15 +- .../compile/epoch_hive/fn_server_hiveLog.sqf | 14 +- .../compile/epoch_hive/fn_server_hiveSET.sqf | 15 +- .../epoch_hive/fn_server_hiveSETBIT.sqf | 15 +- .../epoch_hive/fn_server_hiveSETEX.sqf | 12 +- Sources/epoch_server_core/config.cpp | 18 +- Sources/epoch_server_settings/config.cpp | 17 +- Sources/epoch_server_settings/configs/loots.h | 15 +- .../configs/maps/altis.h | 14 + .../configs/maps/australia.h | 14 + .../configs/maps/bornholm.h | 17 +- .../configs/maps/chernarus.h | 14 + .../configs/maps/esseker.h | 243 ++-- .../configs/maps/stratis.h | 14 + .../configs/maps/takistan.h | 14 + .../epoch_server_settings/configs/maps/vr.h | 17 +- .../configs/security/data/custom_vars.h | 17 +- .../configs/security/security_checks.h | 14 +- 152 files changed, 4678 insertions(+), 2125 deletions(-) delete mode 100644 Sources/epoch_code/README.TXT delete mode 100644 Sources/epoch_code/compile/both/EPOCH_getHitpoints.sqf delete mode 100644 Sources/epoch_code/compile/setup/EPOCH_masterLoop_v2.sqf create mode 100644 Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp create mode 100644 Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp create mode 100644 Sources/epoch_config/Configs/CfgVehicles/Players.hpp delete mode 100644 Sources/epoch_config/README.TXT diff --git a/Sources/epoch_code/README.TXT b/Sources/epoch_code/README.TXT deleted file mode 100644 index b155c614..00000000 --- a/Sources/epoch_code/README.TXT +++ /dev/null @@ -1,3 +0,0 @@ -All content in this PBO was made exclusively for A3 Epoch mod. - -To use/edit/distribute any of the content in this mod please contact vbawol@veteranbastards.com or ptomany@gmail.com \ No newline at end of file diff --git a/Sources/epoch_code/System/player_login.fsm b/Sources/epoch_code/System/player_login.fsm index aad55b99..222a0409 100644 --- a/Sources/epoch_code/System/player_login.fsm +++ b/Sources/epoch_code/System/player_login.fsm @@ -931,7 +931,7 @@ class FSM " }forEach EPOCH_playerHitPoints;" \n "};" \n "" \n - "[] spawn EPOCH_masterLoop_v2;" \n + "[] spawn EPOCH_masterLoop;" \n "true call EPOCH_fnc_Weather;" \n "[5,100] spawn EPOCH_niteLight;" \n "" \n diff --git a/Sources/epoch_code/compile/EPOCH_EnterBuilding.sqf b/Sources/epoch_code/compile/EPOCH_EnterBuilding.sqf index d6f9185a..a853cdd2 100644 --- a/Sources/epoch_code/compile/EPOCH_EnterBuilding.sqf +++ b/Sources/epoch_code/compile/EPOCH_EnterBuilding.sqf @@ -1,4 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch request teleport + + 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_code/compile/EPOCH_EnterBuilding.sqf +*/ if !(isNull _this) then{ EPOCH_oneWayTP = [player,_this,Epoch_personalToken]; publicVariableServer "EPOCH_oneWayTP"; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/EPOCH_LootIT.sqf b/Sources/epoch_code/compile/EPOCH_LootIT.sqf index fc89c7d5..7430979c 100644 --- a/Sources/epoch_code/compile/EPOCH_LootIT.sqf +++ b/Sources/epoch_code/compile/EPOCH_LootIT.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Request loot event and setup mirror + + 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_code/compile/EPOCH_LootIT.sqf +*/ if (!isNull _this) then { EPOCH_lootContainer = [_this,player,Epoch_personalToken]; publicVariableServer "EPOCH_lootContainer"; @@ -6,12 +20,12 @@ if (!isNull _this) then { if !(_this getVariable["MIRROR_SETUP", false]) then { _this spawn { _this setVariable ["MIRROR_SETUP", true]; - _cam = "camera" camCreate (_this modelToWorld [0,0.25,1.5]); - _cam camSetTarget (_this modelToWorld [0,-30,1]); - _cam camSetFov 0.3; - _cam camCommit 0; - "rendertargetwardrobe0" setPiPEffect [0]; - _cam cameraEffect ["Internal", "FRONT","rendertargetwardrobe0"]; + _cam = "camera" camCreate (_this modelToWorld [0,0.25,1.5]); + _cam camSetTarget (_this modelToWorld [0,-30,1]); + _cam camSetFov 0.3; + _cam camCommit 0; + "rendertargetwardrobe0" setPiPEffect [0]; + _cam cameraEffect ["Internal", "FRONT","rendertargetwardrobe0"]; _this setObjectTexture [0,"#(argb,512,512,1)r2t(rendertargetwardrobe0,1.0)"]; waitUntil { @@ -26,4 +40,4 @@ if (!isNull _this) then { }; }; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/EPOCH_PutHandler.sqf b/Sources/epoch_code/compile/EPOCH_PutHandler.sqf index f1ea0ded..f265dc1e 100644 --- a/Sources/epoch_code/compile/EPOCH_PutHandler.sqf +++ b/Sources/epoch_code/compile/EPOCH_PutHandler.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Tells server when a radio is equpped for use with custom radio channels + + 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_code/compile/EPOCH_PutHandler.sqf +*/ private ["_femaleVariant","_vest","_class","_config","_woman","_maleVariant"]; _class = _this select 2; //Radio Check @@ -7,4 +21,4 @@ if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _class)) == "ItemRadio EPOCH_equippedItem_PVS = [_class,false,player]; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/EPOCH_QuickTakeAll.sqf b/Sources/epoch_code/compile/EPOCH_QuickTakeAll.sqf index 9c295c76..2b7cc7cb 100644 --- a/Sources/epoch_code/compile/EPOCH_QuickTakeAll.sqf +++ b/Sources/epoch_code/compile/EPOCH_QuickTakeAll.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Quick take concept for underwater looting + + 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_code/compile/EPOCH_QuickTakeAll.sqf +*/ closeDialog 0; { _magazines = magazinesAmmoCargo _x; diff --git a/Sources/epoch_code/compile/EPOCH_QuickTakeLoad.sqf b/Sources/epoch_code/compile/EPOCH_QuickTakeLoad.sqf index a36e980f..9006ac87 100644 --- a/Sources/epoch_code/compile/EPOCH_QuickTakeLoad.sqf +++ b/Sources/epoch_code/compile/EPOCH_QuickTakeLoad.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Quick take load function concept for underwater looting + + 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_code/compile/EPOCH_QuickTakeLoad.sqf +*/ createDialog "QuickTake"; { _magazines = magazinesAmmoCargo _x; diff --git a/Sources/epoch_code/compile/EPOCH_SpawnTraderMiltia.sqf b/Sources/epoch_code/compile/EPOCH_SpawnTraderMiltia.sqf index b397cffb..be2a0c16 100644 --- a/Sources/epoch_code/compile/EPOCH_SpawnTraderMiltia.sqf +++ b/Sources/epoch_code/compile/EPOCH_SpawnTraderMiltia.sqf @@ -1,3 +1,18 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + test code to spawn trader milita (unused) + + 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_code/compile/EPOCH_SpawnTraderMiltia.sqf +*/ + //Make _trgt = trader and join militia to traders group _trgt = player; _nrBuilds = nearestObjects [getPosATL _trgt,["house"],50]; @@ -20,7 +35,7 @@ for "_i" from 1 to 3 step 1 do }; _unit = _grp createUnit["B_G_Soldier_F", _startPos, [], 0, "CAN_COLLIDE"]; - _unit addEventHandler ["FiredNear", "group (_this select 0) setVariable[""shotsFired"",[(_this select 1),(_this select 2)]]"]; + _unit addEventHandler ["FiredNear", "group (_this select 0) setVariable[""shotsFired"",[(_this select 1),(_this select 2)]]"]; _unit addEventHandler ["Killed", "group (_this select 0) setVariable[""killer"",_this select 1]"]; [_unit] execFSM "\x\addons\a3_epoch_code\System\Trader_Militia.fsm"; }; diff --git a/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf b/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf index 9518347b..a5b397a5 100644 --- a/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf +++ b/Sources/epoch_code/compile/EPOCH_UnisexCheck.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Unisex check for vests, gives swing ammo and performs radio changed check + + 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_code/compile/EPOCH_UnisexCheck.sqf +*/ private ["_femaleVariant","_vest","_class","_config","_woman","_maleVariant"]; _woman = getNumber(configFile >> "CfgVehicles" >> (typeOf player) >> "woman"); _class = _this select 2; diff --git a/Sources/epoch_code/compile/EPOCH_antiWall.sqf b/Sources/epoch_code/compile/EPOCH_antiWall.sqf index 9515c712..5e3f86c5 100644 --- a/Sources/epoch_code/compile/EPOCH_antiWall.sqf +++ b/Sources/epoch_code/compile/EPOCH_antiWall.sqf @@ -1,5 +1,16 @@ /* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: A3 Epoch Anti-Vehicle Wall glitch + + 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_code/compile/EPOCH_antiWall.sqf */ _vehicle = _this select 0; _position = _this select 1; @@ -36,7 +47,7 @@ onEachFrame{ drawLine3D[EP_front, EP_front2, [1, 0, 0, 1]]; }; if (vehicle player != player) then { if (isNull EPOCH_currentVehicle) then { EPOCH_currentVehicle = (vehicle player); - EPOCH_currentVehicle addEventHandler ["GetOut", "_this call EPOCH_antiWall"]; + EPOCH_currentVehicle addEventHandler ["GetOut", "_this call EPOCH_antiWall"]; hint format ['selected %1',EPOCH_currentVehicle]; }; }; @@ -45,13 +56,13 @@ onEachFrame{ drawLine3D[EP_front, EP_front2, [1, 0, 0, 1]]; }; }; // older stuff -EP = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInDriver"); -EP_modelPos = cursortarget selectionPosition EP; +EP = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInDriver"); +EP_modelPos = cursortarget selectionPosition EP; EP_worldPos = cursorTarget modelToWorld EP_modelPos; -EP1 = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInDriverDir"); +EP1 = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInDriverDir"); -EP1_modelPos = cursortarget selectionPosition EP1; -EP1_worldPos = cursorTarget modelToWorld EP1_modelPos; +EP1_modelPos = cursortarget selectionPosition EP1; +EP1_worldPos = cursorTarget modelToWorld EP1_modelPos; EP_worldPos set [2, 1]; EP1_worldPos set [2, 1]; @@ -59,13 +70,13 @@ EP1_worldPos set [2, 1]; onEachFrame { drawLine3D [EP_worldPos, EP1_worldPos, [1,0,0,1]]; }; -EP = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInCargo"); -EP_modelPos = cursortarget selectionPosition EP; +EP = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInCargo"); +EP_modelPos = cursortarget selectionPosition EP; EP_worldPos = cursorTarget modelToWorld EP_modelPos; -EP1 = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInCargoDir"); +EP1 = getText (configFile >> "cfgVehicles" >> typeOf cursortarget >> "memoryPointsGetInCargoDir"); -EP1_modelPos = cursortarget selectionPosition EP1; -EP1_worldPos = cursorTarget modelToWorld EP1_modelPos; +EP1_modelPos = cursortarget selectionPosition EP1; +EP1_worldPos = cursorTarget modelToWorld EP1_modelPos; EP_worldPos set [2, 1]; EP1_worldPos set [2, 1]; @@ -73,4 +84,4 @@ EP1_worldPos set [2, 1]; onEachFrame { drawLine3D [EP_worldPos, EP1_worldPos, [1,0,0,1]]; }; -*/ \ No newline at end of file +*/ diff --git a/Sources/epoch_code/compile/EPOCH_callSapperMigration.sqf b/Sources/epoch_code/compile/EPOCH_callSapperMigration.sqf index 043b221f..552ea402 100644 --- a/Sources/epoch_code/compile/EPOCH_callSapperMigration.sqf +++ b/Sources/epoch_code/compile/EPOCH_callSapperMigration.sqf @@ -1,3 +1,17 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + A3 Epoch call sapper migration + + 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_code/compile/EPOCH_callSapperMigration.sqf +*/ private["_notReady","_abortAfter","_start","_finish","_dirTo","_nrPlyrs","_i","_pos","_trgt","_sapperCount"]; _disableAI = { {_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"]; @@ -36,4 +50,4 @@ if(_abortAfter < 42)then{ uiSleep 0.75; }; Epoch_axeMigrationRunning = true; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/EPOCH_chopWood.sqf b/Sources/epoch_code/compile/EPOCH_chopWood.sqf index bf4847b2..93513101 100644 --- a/Sources/epoch_code/compile/EPOCH_chopWood.sqf +++ b/Sources/epoch_code/compile/EPOCH_chopWood.sqf @@ -1,4 +1,19 @@ -private["_currentPos", "_object", "_type", "_objects", "_sel_object"]; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch Chopwood function + + 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_code/compile/EPOCH_chopWood.sqf +*/ + +private["_currentPos", "_object", "_type", "_objects", "_sel_object"]; _currentPos = player modelToWorld[0, 5, 0]; if !(surfaceIsWater _currentPos) then { @@ -15,7 +30,7 @@ _bushesLootList = getArray(_config >> worldname >> "Bushes"); { _strObj = str _x; - _sel_object = _x; + _sel_object = _x; _findStart = _strObj find ": "; if (_findStart != -1) then{ _p3dName = _strObj select[_findStart + 2, 999]; @@ -35,4 +50,4 @@ if (!isNull _object) then { EPOCH_knockDownTree = [_object,_type,player,EPOCH_personalToken]; publicVariableServer "EPOCH_knockDownTree"; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf index 03ad6568..2eb2d719 100644 --- a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf +++ b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch consume item function + + 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_code/compile/EPOCH_consumeItem.sqf +*/ private ["_type","_interactOption","_previewClass","_object","_isStorage","_isOk","_buildClass","_vehicle","_currentFuel","_canCapacity","_fuelCapacity","_newFuel","_vehicles","_highestDMG","_currentHIT","_currentDMG","_newDMG","_paintCanIndex","_paintCanColor","_msg","_color","_text","_item","_pic","_removeItem"]; _text = EPOCH_InteractedItem select 0; diff --git a/Sources/epoch_code/compile/EPOCH_debugMonitor.sqf b/Sources/epoch_code/compile/EPOCH_debugMonitor.sqf index 46d15026..f00c2b8c 100644 --- a/Sources/epoch_code/compile/EPOCH_debugMonitor.sqf +++ b/Sources/epoch_code/compile/EPOCH_debugMonitor.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch debug monitor + + 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_code/compile/EPOCH_debugMonitor.sqf +*/ private["_hours"]; _hours = floor(servertime/60/60); @@ -57,4 +71,3 @@ hintSilent parseText format [" round((serverTime/60)-(_hours*60)), if (typeName EPOCH_diag_fps == "SCALAR") then [{EPOCH_diag_fps},{"MANIPULATED"}] ]; - diff --git a/Sources/epoch_code/compile/EPOCH_effectCrypto.sqf b/Sources/epoch_code/compile/EPOCH_effectCrypto.sqf index 0dba1d8a..42e55915 100644 --- a/Sources/epoch_code/compile/EPOCH_effectCrypto.sqf +++ b/Sources/epoch_code/compile/EPOCH_effectCrypto.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch display kyrpto changes + + 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_code/compile/EPOCH_effectCrypto.sqf +*/ if (typeName _this == "SCALAR") then { EPOCH_playerCrypto = _this; 9992 cutRsc["EpochGameUI2", "PLAIN", 2, false]; diff --git a/Sources/epoch_code/compile/EPOCH_fish.sqf b/Sources/epoch_code/compile/EPOCH_fish.sqf index 5469dffd..8a13d3c1 100644 --- a/Sources/epoch_code/compile/EPOCH_fish.sqf +++ b/Sources/epoch_code/compile/EPOCH_fish.sqf @@ -1,4 +1,17 @@ -// EPOCH fishing +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch fishing function + + 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_code/compile/EPOCH_fish.sqf +*/ private ["_bob","_fishes","_fish","_randomChance","_bobber","_nearByBobbers","_objects","_currentPos"]; _currentPos = player modelToWorld[0, 5 + (random 5), 0]; diff --git a/Sources/epoch_code/compile/EPOCH_handleServerMessage.sqf b/Sources/epoch_code/compile/EPOCH_handleServerMessage.sqf index f8d03297..bc24a610 100644 --- a/Sources/epoch_code/compile/EPOCH_handleServerMessage.sqf +++ b/Sources/epoch_code/compile/EPOCH_handleServerMessage.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch handle localized message function + + 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_code/compile/EPOCH_handleServerMessage.sqf +*/ if (isLocalized (_this select 0)) then{ _dt = [format["%1", format[localize (_this select 0), _this select 1]], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; }; diff --git a/Sources/epoch_code/compile/EPOCH_interact.sqf b/Sources/epoch_code/compile/EPOCH_interact.sqf index 0b731416..8af5caa0 100644 --- a/Sources/epoch_code/compile/EPOCH_interact.sqf +++ b/Sources/epoch_code/compile/EPOCH_interact.sqf @@ -1,4 +1,17 @@ -// store all interacted vehicles for update +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + store all interacted vehicles for update + + 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_code/compile/EPOCH_interact.sqf +*/ private ["_vehSlot"]; 0 call EPOCH_refeshUI; if (!isNull _this) then { diff --git a/Sources/epoch_code/compile/EPOCH_lootTrash.sqf b/Sources/epoch_code/compile/EPOCH_lootTrash.sqf index 0940dff6..25fddda4 100644 --- a/Sources/epoch_code/compile/EPOCH_lootTrash.sqf +++ b/Sources/epoch_code/compile/EPOCH_lootTrash.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Request trash loot event + + 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_code/compile/EPOCH_lootTrash.sqf +*/ private["_found", "_return", "_foundLocalAnimal", "_str", "_blood", "_foundTerminal", "_index"]; _return = false; diff --git a/Sources/epoch_code/compile/EPOCH_mineRocks.sqf b/Sources/epoch_code/compile/EPOCH_mineRocks.sqf index eea1fa49..3e9318ef 100644 --- a/Sources/epoch_code/compile/EPOCH_mineRocks.sqf +++ b/Sources/epoch_code/compile/EPOCH_mineRocks.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Request mine rocks and scrap metal + + 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_code/compile/EPOCH_mineRocks.sqf +*/ private ["_object","_foundIndex","_found","_str","_objects","_lootables","_currentPos","_p3dName","_findStart","_config","_cinderList","_rocksList"]; if ((diag_tickTime - EPOCH_lastMineRocks) >= 2) then { diff --git a/Sources/epoch_code/compile/EPOCH_niteLight.sqf b/Sources/epoch_code/compile/EPOCH_niteLight.sqf index 5d81289e..0659d75a 100644 --- a/Sources/epoch_code/compile/EPOCH_niteLight.sqf +++ b/Sources/epoch_code/compile/EPOCH_niteLight.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + setup nightlight to provide improved night vision + + 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_code/compile/EPOCH_niteLight.sqf +*/ private ["_pos"]; if (!isNull EP_light) then { @@ -15,4 +29,4 @@ EP_light setLightBrightness (_this select 0); EP_light setLightAmbient[0.05, 0.05, 0.05]; EP_light setlightcolor[0.05, 0.05, 0.05]; -true \ No newline at end of file +true diff --git a/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf b/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf index 481e7616..cffeecfd 100644 --- a/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf +++ b/Sources/epoch_code/compile/EPOCH_onEachFrame.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + code that executes onEachFrame is used for 3d movment, ESP, and 3d icons. + + 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_code/compile/EPOCH_onEachFrame.sqf +*/ if (EPOCH_velTransform) then { if (EPOCH_playerEnergy > 0) then { _pos1 = getPosASL EPOCH_target; diff --git a/Sources/epoch_code/compile/EPOCH_replaceWord.sqf b/Sources/epoch_code/compile/EPOCH_replaceWord.sqf index 7b9dceb1..b655fbaa 100644 --- a/Sources/epoch_code/compile/EPOCH_replaceWord.sqf +++ b/Sources/epoch_code/compile/EPOCH_replaceWord.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + test code to replace string in word (old) + + 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_code/compile/EPOCH_replaceWord.sqf +*/ private["_nextChar2", "_nextChar1", "_nextChar", "_replaceArray", "_STRING", "_needle", "_replace"]; _replaceArray = []; @@ -35,4 +49,4 @@ _replace = toArray(_this select 2); } }forEach _replaceArray; -toString(_STRING); \ No newline at end of file +toString(_STRING); diff --git a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf index 4d0b7d26..f9e145bf 100644 --- a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf +++ b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf @@ -1,3 +1,17 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: Aaron Clark + + Description: + Spawn drone function + + 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_code/compile/EPOCH_supportCopter.sqf +*/ private["_pos","_copter","_plyr","_unit","_copterSupportGrp","_arrUnits","_arrSkills","_aiskill"]; _pos = _this select 0; _copter = _this select 1; diff --git a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf index c95b8a0d..19fe886e 100644 --- a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf +++ b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Antagonist spawn function + + 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_code/compile/EPOCH_unitSpawn.sqf +*/ private ["_unit","_group","_bomb","_unitClass","_targetPos","_disableAI","_nonJammer","_nonTrader","_jammerRange","_jammers","_restricted","_sapperNum"]; _unitClass = _this; @@ -49,7 +63,7 @@ switch _unitClass do { _unit = createAgent[_unitClass, _targetPos, [], 120, "FORM"]; _unit call _disableAI; [_unit] execFSM "\x\addons\a3_epoch_code\System\Shark_Brain.fsm"; - }; + }; }; }; case "Epoch_Sapper_F": { diff --git a/Sources/epoch_code/compile/EPOCH_unitSpawnDecrease.sqf b/Sources/epoch_code/compile/EPOCH_unitSpawnDecrease.sqf index 15e4f703..81678e94 100644 --- a/Sources/epoch_code/compile/EPOCH_unitSpawnDecrease.sqf +++ b/Sources/epoch_code/compile/EPOCH_unitSpawnDecrease.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Antagonist spawn chance decrease function + + 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_code/compile/EPOCH_unitSpawnDecrease.sqf +*/ _index = EPOCH_spawnIndex find _this; if (_index != -1) then{ EPOCH_playerSpawnArray set[_index, ((EPOCH_playerSpawnArray select _index) - 1) max 0]; diff --git a/Sources/epoch_code/compile/EPOCH_unitSpawnIncrease.sqf b/Sources/epoch_code/compile/EPOCH_unitSpawnIncrease.sqf index ea84356f..ef89921f 100644 --- a/Sources/epoch_code/compile/EPOCH_unitSpawnIncrease.sqf +++ b/Sources/epoch_code/compile/EPOCH_unitSpawnIncrease.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Antagonist spawn chance increase function + + 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_code/compile/EPOCH_unitSpawnIncrease.sqf +*/ _index = EPOCH_spawnIndex find _this; if (_index != -1) then{ EPOCH_playerSpawnArray set[_index, ((EPOCH_playerSpawnArray select _index) + 1) min (EPOCH_spawnLimits select _index)]; diff --git a/Sources/epoch_code/compile/EPOCH_updateLoadingScreen.sqf b/Sources/epoch_code/compile/EPOCH_updateLoadingScreen.sqf index d77a7e63..77886f32 100644 --- a/Sources/epoch_code/compile/EPOCH_updateLoadingScreen.sqf +++ b/Sources/epoch_code/compile/EPOCH_updateLoadingScreen.sqf @@ -1,3 +1,17 @@ +/* + Author: Niklas Wagner - EpochMod.com + + Contributors: + + Description: + Update loading screen message + + 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_code/compile/EPOCH_updateLoadingScreen.sqf +*/ disableSerialization; _display = uiNameSpace getVariable ["EPOCH_loadingScreen",displayNull]; if (!isNull _display) then { diff --git a/Sources/epoch_code/compile/both/EPOCH_getHitpoints.sqf b/Sources/epoch_code/compile/both/EPOCH_getHitpoints.sqf deleted file mode 100644 index 33c977fb..00000000 --- a/Sources/epoch_code/compile/both/EPOCH_getHitpoints.sqf +++ /dev/null @@ -1,12 +0,0 @@ -private["_hitpoints", "_type", "_cachekey", "_na"]; -_hitpoints = []; -if (!isNull _this) then { - _type = typeOf _this; - _cachekey = format["%1_HP", _type]; - _hitpoints = missionNamespace getVariable[_cachekey, []]; - if (_hitpoints isEqualTo []) then { - _na = configProperties[configFile >> "CfgVehicles" >> _type >> "HitPoints", "_hitpoints pushBack configName _x; true", true]; - missionNamespace setVariable[_cachekey, _hitpoints]; - }; -}; -_hitpoints \ No newline at end of file diff --git a/Sources/epoch_code/compile/both/EPOCH_isAny.sqf b/Sources/epoch_code/compile/both/EPOCH_isAny.sqf index 2a4b7045..415f7a08 100644 --- a/Sources/epoch_code/compile/both/EPOCH_isAny.sqf +++ b/Sources/epoch_code/compile/both/EPOCH_isAny.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Unisex check for vests, gives swing ammo and performs radio changed check + + 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_code/compile/both/EPOCH_isAny.sqf + + Example: + _return = [_item, "CfgVehicles"] call EPOCH_fnc_isAny; + + Parameter(s): + _this select 0: STRING - Parent Class + _this select 0: STRING - Child Class + + Returns: + BOOL +*/ private ["_item","_return"]; _item = _this select 0; _type = _this select 1; diff --git a/Sources/epoch_code/compile/building/EPOCH_changeWallState.sqf b/Sources/epoch_code/compile/building/EPOCH_changeWallState.sqf index 73cc6478..461a23f3 100644 --- a/Sources/epoch_code/compile/building/EPOCH_changeWallState.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_changeWallState.sqf @@ -1,6 +1,29 @@ /* - Epoch Change wall state - By Aaron Clark + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch Change wall state + + 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_code/compile/building/EPOCH_changeWallState.sqf + + Example: + [_this,"NWall",1] call EPOCH_changeWallState; + + Parameter(s): + _this select 0: OBJECT - Base building object + _this select 1: STRING - Name of animation + _this select 1: SCALAR - state + 0: true = add wall + 1: false = remove wall + + Returns: + NOTHING */ _object = param [0,objNull]; _anim = param [1,""]; diff --git a/Sources/epoch_code/compile/building/EPOCH_checkBuild.sqf b/Sources/epoch_code/compile/building/EPOCH_checkBuild.sqf index 27bea990..f9b33bcf 100644 --- a/Sources/epoch_code/compile/building/EPOCH_checkBuild.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_checkBuild.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Raimonds Virtoss + + Description: + Epoch Check build + + 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_code/compile/building/EPOCH_checkBuild.sqf + + Example: + cursorTarget call EPOCH_checkBuild; + + Parameter(s): + _this select 0: OBJECT - Base building object + + Returns: + ARRAY of BOOLs +*/ _out = [false, false, false]; if !(isNil "EPOCH_simulSwap_Lock") exitWith{ _out }; @@ -14,7 +37,7 @@ if (EPOCH_playerEnergy <= 0) exitWith{ _dt = ["> _objType >> "upgradeBuilding") isEqualTo []), !(getArray(_config >> _objType >> "removeParts") isEqualTo []), diff --git a/Sources/epoch_code/compile/building/EPOCH_countdown.sqf b/Sources/epoch_code/compile/building/EPOCH_countdown.sqf index 6d5a8aa0..704a09eb 100644 --- a/Sources/epoch_code/compile/building/EPOCH_countdown.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_countdown.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Raimonds Virtoss + + Description: + Epoch build countdown + + 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_code/compile/building/EPOCH_countdown.sqf + + Example: + _currentTarget spawn EPOCH_countdown; + + Parameter(s): + _this select 0: OBJECT - Base building object + + Returns: + NOTHING +*/ private["_color", "_distance", "_previous"]; if (!isNull _this) then { diff --git a/Sources/epoch_code/compile/building/EPOCH_fnc_SelectTargetBuild.sqf b/Sources/epoch_code/compile/building/EPOCH_fnc_SelectTargetBuild.sqf index 4c2d4821..61d81221 100644 --- a/Sources/epoch_code/compile/building/EPOCH_fnc_SelectTargetBuild.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_fnc_SelectTargetBuild.sqf @@ -1,20 +1,40 @@ -private []; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Raimonds Virtoss + + Description: + Epoch build select target + + 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_code/compile/building/EPOCH_fnc_SelectTargetBuild.sqf + + Example: + cursorTarget call EPOCH_fnc_SelectTargetBuild; + + Parameter(s): + _this select 0: OBJECT - Base building object + + Returns: + BOOL +*/ +private ["_targeter","_stability"]; + if !(isNil "EPOCH_simulSwap_Lock") exitWith{ false }; - if !(isNull EPOCH_Target) exitWith{ false }; - if (EPOCH_playerEnergy <= 0) exitWith{ _dt = ["Need energy", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; false }; -_object = _this; +params ["_object"]; EPOCH_buildOption = 2; if (isNull _object) exitWith{ false }; if ((player distance _object) > 9) exitWith { false }; - if (!(_object isKindOf "ThingX") && !(_object isKindOf "Constructions_static_F") && !(_object isKindOf "Constructions_foundation_F")) exitWith{ false }; - // check if another player has target _targeter = _object getVariable["last_targeter", objNull]; diff --git a/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf b/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf index d9c43ece..10ffdb1d 100644 --- a/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf @@ -1,6 +1,30 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Raimonds Virtoss + + Description: + Epoch build select target + + 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_code/compile/building/EPOCH_isBuildAllowed.sqf + + Example: + _isAllowed = "" call EPOCH_isBuildAllowed; + _isAllowed = _objType call EPOCH_isBuildAllowed; + + Parameter(s): + _this select 0: OBJECT - Base building object + + Returns: + BOOL +*/ private ["_buildingAllowed","_jammer","_restricted","_restrictedLocations","_myPosATL"]; _buildingAllowed = true; -_ownedJammerExists = false; +_ownedJammerExists = false; _nearestJammer = objNull; // defaults @@ -10,14 +34,17 @@ _buildingCountLimit = getNumber(_config >> "buildingCountLimit"); if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; }; if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; }; -_staticClass = getText(configfile >> "CfgVehicles" >> _this >> "staticClass"); -_simulClass = getText(configfile >> "CfgVehicles" >> _this >> "simulClass"); +// input +params ["_objType"]; + +_staticClass = getText(configfile >> "CfgVehicles" >> _objType >> "staticClass"); +_simulClass = getText(configfile >> "CfgVehicles" >> _objType >> "simulClass"); _bypassJammer = getNumber(configfile >> "CfgVehicles" >> _staticClass >> "bypassJammer"); // Jammer _jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange*3]; if !(_jammer isEqualTo []) then { - if (_this in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then { + if (_objType in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then { { if (alive _x) exitWith{ _buildingAllowed = false; @@ -25,7 +52,7 @@ if !(_jammer isEqualTo []) then { }; } foreach _jammer; } else { - + { if (alive _x && (_x distance player) <= _buildingJammerRange) exitWith{ _nearestJammer = _x; @@ -64,7 +91,7 @@ if !(_buildingAllowed)exitWith{ false }; // require jammer check if not found as owner of jammer if (getNumber(_config >> "buildingRequireJammer") == 0 && _bypassJammer == 0) then{ - if !(_this in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then { + if !(_objType in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then { _buildingAllowed = _ownedJammerExists; if !(_buildingAllowed) then { _dt = ["Building Disallowed: Frequency Jammer Needed", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; @@ -103,4 +130,4 @@ _myPosATL = getPosATL player; }; } forEach(getArray(_config >> worldname >> "blockedArea")); -_buildingAllowed \ No newline at end of file +_buildingAllowed diff --git a/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf b/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf index 6285ba9b..11db357e 100644 --- a/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf @@ -12,7 +12,7 @@ if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; }; EPOCH_buildOption = 0; -_object = _this; +params ["_object"]; _objType = typeOf _object; // check if another player has target diff --git a/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf b/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf index 96a2408c..feca2b01 100644 --- a/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf @@ -14,7 +14,7 @@ if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; }; EPOCH_buildOption = 1; -_object = _this; +params ["_object"]; // check if another player has target _targeter = _object getVariable["last_targeter", objNull]; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fn_returnConfigEntryV2.sqf b/Sources/epoch_code/compile/functions/EPOCH_fn_returnConfigEntryV2.sqf index c2bb720d..2b7eafbb 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fn_returnConfigEntryV2.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fn_returnConfigEntryV2.sqf @@ -1,3 +1,28 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Return configFile or missionConfigFile data if exists else return default variable + + 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_code/compile/functions/EPOCH_fn_returnConfigEntryV2.sqf + + Example: + _sapperRndChance = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2; + + Parameter(s): + _this select 0: STRING - Config Class + _this select 1: STRING - Variable Name + _this select 2: STRING - Default Variable + + Returns: + MIXED +*/ private["_defaultData", "_config", "_varData","_missionconfig","_finalconfig"]; _defaultData = _this select 2; _config = (configfile >> (_this select 0)); diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_Weather.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_Weather.sqf index 4a9676ca..fad52ca9 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_Weather.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_Weather.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Calculates weather related player stats + + 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_code/compile/functions/EPOCH_fnc_Weather.sqf + + Example: + call EPOCH_fnc_Weather; + + Parameter(s): + NONE + + Returns: + NOTHING +*/ private ["_warming","_isNearFire","_airTemp","_waterTemp","_playerPosATL"]; if (isNil "EPOCH_CURRENT_WEATHER") then { diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_addItemOverflow.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_addItemOverflow.sqf index b6549404..f44f0601 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_addItemOverflow.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_addItemOverflow.sqf @@ -1,4 +1,26 @@ -// Epoch add item with overflow +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch add item with overflow + + 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_code/compile/functions/EPOCH_fnc_addItemOverflow.sqf + + Example: + _fish call EPOCH_fnc_addItemOverflow; + + Parameter(s): + _this: STRING - Item Class + + Returns: + NOTHING +*/ private ["_wHPos","_wH","_nearByHolder","_item"]; _item = _this; if (player canAdd _item) then { diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_cursorTarget.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_cursorTarget.sqf index 441fa355..1d9b7d9e 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_cursorTarget.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_cursorTarget.sqf @@ -1,3 +1,29 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch cursorTarget anywhere + + 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_code/compile/functions/EPOCH_fnc_addItemOverflow.sqf + + Example: + _target = [10] call EPOCH_fnc_cursorTarget; + + Parameter(s): + _this select 0: SCALAR - Distance in meters + _this select 1: STRING - lod1 + _this select 3: STRING - lod2 + _this select 4: BOOL - sort + + Returns: + (OBJECT or objNull) +*/ params [["_distance",10], ["_lod1", "VIEW"], ["_lod2","FIRE"], ["_sort",true]]; _ins = lineIntersectsSurfaces [AGLToASL positionCameraToWorld [0,0,0],AGLToASL positionCameraToWorld [0,0,_distance],player,objNull,_sort,1,_lod1,_lod2]; if (_ins isEqualTo []) exitWith { objNull }; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf index d398a94b..e0deb301 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf @@ -1,10 +1,36 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Epoch cursorTarget anywhere + + 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_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf + + Example: + _dirToF = [_pos,_destination,44] call EPOCH_fnc_dirToFuzzy; + + Parameter(s): + _this select 0: (ARRAY or OBJECT) - position1 + _this select 1: (ARRAY or OBJECT) - position2 + _this select 2: NUMBER - random spread [optional: default 32] + + Returns: + SCALAR - (direction 0-360) +*/ + private ["_pos1","_pos2","_ret"]; _pos1 = _this select 0; _pos2 = _this select 1; _spread = 32; if(count _this > 2)then{ -_spread = _this select 2; + _spread = _this select 2; }; //if objects, not positions, were passed in, then get their positions @@ -16,4 +42,4 @@ _ret = ((_pos2 select 0) - (_pos1 select 0)) atan2 ((_pos2 select 1) - (_pos1 se _ret = _ret + ((random _spread) - (_spread / 2)); if (_ret < 0) then {_ret = _ret + 360}; //remove negative value _ret = _ret % 360; //ensure return is 0-360 -_ret \ No newline at end of file +_ret diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_findRandomPosBehind.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_findRandomPosBehind.sqf index 75c9e5a0..2d177982 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_findRandomPosBehind.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_findRandomPosBehind.sqf @@ -1,11 +1,30 @@ -//Picks a random spot behind the player -//usage: [200,50,60] call EPOCH_fnc_findRandomPosBehind -//_maxIn - Maximum distance to choose point -//_minIn - Minimum distance to choose point -//_arcIn - Spread of arc in degrees behind player -//_unitIn - Unit, player, vehicle etc. -//_offset - offset initial angle, allows to pick position to the side with -90 or 90 (right or left) +/* + Author: Andrew Gregory - EpochMod.com + Contributors: + + Description: + Picks a random spot behind the player + + 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_code/compile/functions/EPOCH_fnc_findRandomPosBehind.sqf + + Example: + _moveTo = [24,4,142,_trgt] call EPOCH_fnc_findRandomPosBehind; + + Parameter(s): + _this select 0: SCALAR - Maximum distance to choose point + _this select 1: SCALAR - Minimum distance to choose point + _this select 2: SCALAR - Spread of arc in degrees behind player + _this select 3: OBJECT - Unit, player, vehicle etc. + _this select 4: SCALAR - offset initial angle, allows to pick position to the side with -90 or 90 (right or left) [optional: default 0] + + Returns: + ARRAY +*/ _maxIn = _this select 0; _minIn = _this select 1; _arcIn = _this select 2; @@ -16,7 +35,7 @@ if ((count _this) > 4) then { }; _rnd = ((180 +_offset) - (_arcIn / 2)) + (random _arcIn); -_pos = getPosATL _unitIn; +_pos = getPosATL _unitIn; _dist = ((random (_maxIn - _minIn)) + _minIn) max _minIn; _dir = (getDir _unitIn) - _rnd; if (_dir<0) then {_dir = _dir + 360}; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_findSafePos.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_findSafePos.sqf index dfad5d63..8a592e8b 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_findSafePos.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_findSafePos.sqf @@ -1,12 +1,31 @@ -//Currently only used to find random position -//TODO: Expand upon to find spot on road || in field for unit spawn. -//Usage: [centre, min distance, max distance, height, onRoad] call EPOCH_fnc_findSafePos; -//centre - centre position (array) -//min distance - minimum distance away from centre to choose a location -//max distance - maximum distance away from centre to choose a location -//height - is passed through -//onRoad - (boolean) - will select a point on the nearest road (within 250m) from the randomly found position. -// +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Currently only used to find random position (Unused) + //TODO: Expand upon to find spot on road || in field for unit spawn. + + 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_code/compile/functions/EPOCH_fnc_findSafePos.sqf + + Example: + _moveTo = [_centre, _min_distance, _max_distance, _height, _onRoad] call EPOCH_fnc_findSafePos; + + Parameter(s): + _this select 0: SCALAR - center position + _this select 1: SCALAR - minimum distance away from centre to choose a location + _this select 2: SCALAR - minimum distance away from centre to choose a location + _this select 3: SCALAR - height - is passed through. [optional: default 0] + _this select 4: BOOL - will select a point on the nearest road (within 250m) from the randomly found position. [optional: default false] + + Returns: + ARRAY +*/ private["_MinDist","_MaxDist","_outHeight","_inPos","_rDist","_rDir","_outPos","_nrRoad","_nrRoads","_onRoad"]; _inPos = _this select 0; _MinDist = _this select 1; @@ -28,10 +47,10 @@ _rDir = random 360; _outPos = [(_inPos select 0) + (sin _rDir) * _rDist, (_inPos select 1) + (cos _rDir) * _rDist, _outHeight]; if (_onRoad) then { -_nrRoads = _outPos nearRoads 250; + _nrRoads = _outPos nearRoads 250; if (count _nrRoads > 0) then { - _nrRoad = _nrRoads select (floor(random (count _nrRoads))); - _outPos = getPosATL _nrRoad; + _nrRoad = _nrRoads select (floor(random (count _nrRoads))); + _outPos = getPosATL _nrRoad; }; }; _outPos diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_findSapperStalkLocation.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_findSapperStalkLocation.sqf index e4186aae..bb55770d 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_findSapperStalkLocation.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_findSapperStalkLocation.sqf @@ -1,11 +1,31 @@ -//Picks a random spot relative to the target with some randomness. -//usage: [200,50,60] call EPOCH_fnc_findRandomPosBehind -//_maxIn - Maximum distance to choose point -//_minIn - Minimum distance to choose point -//_arcIn - Spread of arc in degrees relative to _unitIn. Is randomised to add fuzziness to final location. -//_unitIn - Unit, player, vehicle etc. -//_offset - Offset initial angle, allows to pick position to the side of _unitIn with -90 or 90. -//_trgtIn = Target to use for relative position from _unitIn. Allows to pick a position left of _trgtin for example. +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Picks a random spot relative to the target with some randomness. (Unused) + + 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_code/compile/functions/EPOCH_fnc_findSapperStalkLocation.sqf + + Example: + _moveTo = [_centre, _min_distance, _max_distance, _height, _onRoad] call EPOCH_fnc_findSafePos; + + Parameter(s): + _this select 0: SCALAR - Maximum distance to choose point + _this select 1: SCALAR - Minimum distance to choose point + _this select 2: SCALAR - Spread of arc in degrees relative to _unitIn. Is randomised to add fuzziness to final location. + _this select 3: OBJECT - Unit, player, vehicle etc. + _this select 4: SCALAR - Offset initial angle, allows to pick position to the side of _unitIn with -90 or 90. + _this select 5: OBJECT - Target to use for relative position from _unitIn. Allows to pick a position left of _trgtin for example. [optional: default false] + + Returns: + ARRAY +*/ _maxIn = _this select 0; _minIn = _this select 1; _arcIn = _this select 2; @@ -14,9 +34,9 @@ _offset = _this select 4; _trgtIn = _this select 5; _dirTo = [position _unitIn, position _trgtIn] call BIS_fnc_dirTo; _rnd = _offset - (random _arcIn); -_pos = getPosATL _trgtIn; +_pos = getPosATL _trgtIn; _dist = ((random (_maxIn - _minIn)) + _minIn) max _minIn; _dir = _dirTo - _rnd; if (_dir<0) then {_dir = _dir + 360}; _outPos = [(_pos select 0) + (_dist*(sin _dir)), (_pos select 1) + (_dist*(cos _dir)), _pos select 2]; -_outPos \ No newline at end of file +_outPos diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_isInsideBuilding.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_isInsideBuilding.sqf index 36bfb4d0..f2f2c842 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_isInsideBuilding.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_isInsideBuilding.sqf @@ -1,5 +1,28 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Function to check if player is in a building. + + 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_code/compile/functions/EPOCH_fnc_isInsideBuilding.sqf + + Example: + _inBuilding = call EPOCH_fnc_isInsideBuilding; + + Parameter(s): + NONE + + Returns: + BOOL +*/ private ["_playerPosASL","_abovePlayerPosASL"]; _playerPosASL = visiblePositionASL player; _abovePlayerPosASL = [_playerPosASL select 0,_playerPosASL select 1,(_playerPosASL select 2) + 10]; //Return: -lineIntersects[_playerPosASL, _abovePlayerPosASL, player] \ No newline at end of file +lineIntersects[_playerPosASL, _abovePlayerPosASL, player] diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf index 213354ff..cc05edfb 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf @@ -1,3 +1,28 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Player death handler + + 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_code/compile/functions/EPOCH_fnc_playerDeath.sqf + + Example: + player addEventHandler ["Killed", {_this call EPOCH_fnc_playerDeath}]; + + Parameter(s): + _this select 0: OBJECT - player + _this select 1: OBJECT - killer + + Returns: + BOOL +*/ + private["_unit", "_killer"]; _unit = _this select 0; _killer = _this select 1; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf index 778bed70..1708ce82 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerFired.sqf @@ -1,3 +1,33 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Weapon fired handler + + 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_code/compile/functions/EPOCH_fnc_playerFired.sqf + + Example: + player addEventHandler ["Fired", {_this call EPOCH_fnc_playerFired}]; + + Parameter(s): + _this select 0: unit: Object - Object the event handler is assigned to + _this select 1: weapon: String - Fired weapon + _this select 2: muzzle: String - Muzzle that was used + _this select 3: mode: String - Current mode of the fired weapon + _this select 4: ammo: String - Ammo used + _this select 5: magazine: String - magazine name which was used + _this select 6: projectile: Object - Object of the projectile that was shot (Arma 2: OA and onwards) + + Returns: + NOTHING +*/ + private ["_highestDMG","_currentHIT","_currentDMG","_attachments","_newDMG","_cursorTarget","_repaired","_unit","_weapon","_ammo","_projectile"]; _unit = _this select 0; _weapon = _this select 1; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_stringLeft.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_stringLeft.sqf index 5855e66e..f2a89cb8 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_stringLeft.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_stringLeft.sqf @@ -1,3 +1,27 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Picks a random spot relative to the target with some randomness. (Unused) + + 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_code/compile/functions/EPOCH_fnc_stringLeft.sqf + + Example: + _trimmedStr = ["String In",3] call EPOCH_fnc_stringLeft; + + Parameter(s): + _this select 0: STRING or anything - String to be trimmed + _this select 1: SCALAR - number of chars to remove + + Returns: + STRING +*/ private["_strIn","_strOut","_count","_return","_arrFull","_arrOut"]; _arrOut = []; _strIn = _this select 0; @@ -6,9 +30,9 @@ _count = _this select 1; if (typename _strIn != "STRING") then {_strIn = str(_this select 0)}; _arrFull = toArray _strIn; { -if (_forEachIndex < _count) then { -_arrOut pushBack _x; -}; + if (_forEachIndex < _count) then { + _arrOut pushBack _x; + }; }forEach _arrFull; _return = toString _arrOut; _return diff --git a/Sources/epoch_code/compile/functions/EPOCH_itemData.sqf b/Sources/epoch_code/compile/functions/EPOCH_itemData.sqf index 422b4049..c91b2b29 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_itemData.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_itemData.sqf @@ -1,11 +1,29 @@ /* -Returns string if only one element in second param, otherwise returns array + Author: Raimonds Virtoss - EpochMod.com - _displayName = _item call epoch_itemData; // string - _pic = [_item,["Picture"]] call epoch_itemData; //string - _data = [_item,["picture","model","displayName"]] call epoch_itemData; //array + Contributors: + + Description: + Sorts an array based on distance to input array. (unused) + + 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_code/compile/functions/Epoch_SortArrayByDistance.sqf + + Example(s): + _displayName = _item call epoch_itemData; // string + _pic = [_item,["Picture"]] call epoch_itemData; //string + _data = [_item,["picture","model","displayName"]] call epoch_itemData; //array + + Parameter(s): + _this select 0: STRING - Vehicle, Weapon, or Magazine config class name + _this select 1: STRING or ARRAY of config variables + + Returns: + Returns STRING if only one element in second param, otherwise returns ARRAY */ - private ["_item","_entries","_single","_arr","_return"]; _item = param [0,""]; _entries = param [1,["DisplayName"],[[]]]; diff --git a/Sources/epoch_code/compile/functions/EPOCH_itemDisplayName.sqf b/Sources/epoch_code/compile/functions/EPOCH_itemDisplayName.sqf index 19ae673b..89dc86cc 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_itemDisplayName.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_itemDisplayName.sqf @@ -1,4 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + Contributors: + + Description: + Returns the DisplayName of a Vehicle, Weapon, or Magazine. + + 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_code/compile/functions/EPOCH_itemDisplayName.sqf + + Example: + _displayName = _part call EPOCH_itemDisplayName; + + Parameter(s): + _this: STRING - Vehicle, Weapon, or Magazine config class name + + Returns: + STRING +*/ private ["_item"]; _item = _this; _return = ""; diff --git a/Sources/epoch_code/compile/functions/EPOCH_itemPicture.sqf b/Sources/epoch_code/compile/functions/EPOCH_itemPicture.sqf index b4f22ea3..c2c7909e 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_itemPicture.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_itemPicture.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Returns the picture variable of a Vehicle, Weapon, or Magazine. + + 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_code/compile/functions/EPOCH_itemPicture.sqf + + Example: + _picture = _part call EPOCH_itemPicture; + + Parameter(s): + _this: STRING - Vehicle, Weapon, or Magazine config class name + + Returns: + STRING +*/ private ["_item"]; _item = _this; _return = ""; diff --git a/Sources/epoch_code/compile/functions/EPOCH_pushCustomVar.sqf b/Sources/epoch_code/compile/functions/EPOCH_pushCustomVar.sqf index 188bc59e..7812790f 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_pushCustomVar.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_pushCustomVar.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Sends message server to save custom variables from player + + 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_code/compile/functions/EPOCH_pushCustomVar.sqf + + Example: + true call EPOCH_pushCustomVar; + + Parameter(s): + _this: BOOL - true = fast save, false = slow save window + + Returns: + NOTHING +*/ private ["_tempVars","_tempVal","_tempIndex","_time"]; _time = if (_this) then [{15},{80}]; diff --git a/Sources/epoch_code/compile/functions/EPOCH_returnConfig.sqf b/Sources/epoch_code/compile/functions/EPOCH_returnConfig.sqf index a1d8d31b..41ebc6b2 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_returnConfig.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_returnConfig.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Returns missionConfigFile if exists otherwise uses configFile + + 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_code/compile/functions/EPOCH_returnConfig.sqf + + Example: + _config = 'CfgCrafting' call EPOCH_returnConfig; + + Parameter(s): + _this: STRING - Config class name + + Returns: + CONFIG +*/ private["_return", "_config"]; _return = (configfile >> _this); _config = (missionConfigFile >> _this); diff --git a/Sources/epoch_code/compile/functions/Epoch_SortArrayByDistance.sqf b/Sources/epoch_code/compile/functions/Epoch_SortArrayByDistance.sqf index 11be6f22..642e2dfc 100644 --- a/Sources/epoch_code/compile/functions/Epoch_SortArrayByDistance.sqf +++ b/Sources/epoch_code/compile/functions/Epoch_SortArrayByDistance.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Sorts an array based on distance to input array. (unused) + + 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_code/compile/functions/Epoch_SortArrayByDistance.sqf + + Example: + _sorted = [_unsorted, _inPosition] call Epoch_SortArrayByDistance; + + Parameter(s): + _this select 0: ARRAY - of unsorted positions + _this select 1: ARRAY - position + + Returns: + ARRAY of ARRAYS +*/ private ["_sorted","_closest","_unsorted","_pos","_testPos","_closestPos"]; _sorted = []; _closest = []; @@ -8,13 +32,13 @@ _sorted = []; _testPos = [0,0,0]; _closestPos = [0,0,0]; { - _closest = _unsorted select count _unsorted -1; - { - if (typename _x == "OBJECT") then {_testPos = position _x}else{_testPos = _x}; - if (typename _closest == "OBJECT") then {_closestPos = position _closest}else{_closestPos = _closest}; - if ((_testPos distance _pos) < (_closestPos distance _pos)) then {_closest = _x}; - } forEach _unsorted; - _sorted pushBack _closest; - _unsorted = _unsorted - [_closest]; + _closest = _unsorted select count _unsorted -1; + { + if (typename _x == "OBJECT") then {_testPos = position _x}else{_testPos = _x}; + if (typename _closest == "OBJECT") then {_closestPos = position _closest}else{_closestPos = _closest}; + if ((_testPos distance _pos) < (_closestPos distance _pos)) then {_closest = _x}; + } forEach _unsorted; + _sorted pushBack _closest; + _unsorted = _unsorted - [_closest]; } forEach _unsorted; -_sorted \ No newline at end of file +_sorted diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf index 32bae9b7..b9855422 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Initalize player variables + + 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_code/compile/setup/EPOCH_clientInit.sqf + + Example: + call EPOCH_clientInit; + + Parameter(s): + NONE + + Returns: + NOTHING +*/ EPOCH_buildMode = 0; EPOCH_buildDirection = 0; EPOCH_debugMode = false; diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf index e28f67d2..d8d6fbba 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientKeyMap.sqf @@ -1,3 +1,27 @@ +/* + Author: Raimonds Virtoss - EpochMod.com + + Contributors: + + Description: + Custom Epoch keymap + + 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_code/compile/setup/EPOCH_clientKeyMap.sqf + + Example: + _arr = 2 call EPOCH_clientKeyMap; + + Parameter(s): + TBA + + Returns: + Mixed +*/ + private ["_keyMap","_args","_input","_return"]; params [["_args",0],["_input",0]]; @@ -8,7 +32,7 @@ _keyMap = ["Holster Weapon", "EPOCH_keysHolster", 35], ["Debug Monitor", "EPOCH_keysDebugMon", 41], ["Trade", "EPOCH_keysAcceptTrade", 0x14], - + ["Volume + (ctrl)","EPOCH_keysVolumeUp",0x0D], ["Volume - (ctrl)","EPOCH_keysVolumeDown",0x0C], ["Build: Mode 1", "EPOCH_keysBuildMode1", 2], @@ -31,27 +55,27 @@ switch (_args) do { { call compile format ["%1 = profileNamespace getVariable ['%1', %2]",_x select 1, _x select 2]; } forEach _keyMap; - + _return = true; }; - + case 1: //delete all profile namespace variables { { profileNamespace setVariable [_x select 1, nil]; } forEach _keyMap; - + _return = true; }; - + case 2: //returns keymap to a caller for processing { _return = _keyMap; }; - + case 3: //search by variable name and return element if exists (not tested) { - _return = + _return = { _s = toLower(_x select 1) find toLower _input; if (_s > -1) exitWith {_x}; diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientRespawn.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientRespawn.sqf index 4969200d..fd4d004b 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientRespawn.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientRespawn.sqf @@ -1,5 +1,5 @@ call EPOCH_clientInit; -[] spawn EPOCH_masterLoop_v2; +[] spawn EPOCH_masterLoop; [5,100] call EPOCH_niteLight; Epoch_canBeRevived = true; diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf index 52010850..d9af566f 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf @@ -1,4 +1,27 @@ -// +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Unisex check for vests, gives swing ammo and performs radio changed check + + 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_code/compile/setup/EPOCH_clientRevive.sqf + + Example: + _data call EPOCH_clientRevive; + + Parameter(s): + _this select 0: OBJECT - player object + _this select 1: STRING - personal token + + Returns: + NOTHING +*/ _playerObject = _this select 0; if !(alive player && alive _playerObject && !isPlayer _playerObject) then { _ply = player; @@ -12,7 +35,7 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then { Epoch_personalToken = _this select 1; // call EPOCH_clientInit; - [] spawn EPOCH_masterLoop_v2; + [] spawn EPOCH_masterLoop; [5, 100] call EPOCH_niteLight; closeDialog 0; @@ -20,11 +43,11 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then { player addEventHandler ["Respawn", {(_this select 0) call EPOCH_clientRespawn}]; player addEventHandler ["Put", {(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler}]; - player addEventHandler ["Take", {(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck}]; + player addEventHandler ["Take", {(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck}]; player addEventHandler ["InventoryClosed", { if !(EPOCH_arr_interactedObjs isEqualTo[]) then{EPOCH_arr_interactedObjs remoteExec["EPOCH_server_save_vehicles", 2]; EPOCH_arr_interactedObjs = []; }; }]; player addEventHandler ["InventoryOpened", {_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (_this select 1) getVariable["EPOCH_Locked", false]) }]; - player addEventHandler ["Fired", {_this call EPOCH_fnc_playerFired}]; - player addEventHandler ["Killed", {_this call EPOCH_fnc_playerDeath}]; + player addEventHandler ["Fired", {_this call EPOCH_fnc_playerFired}]; + player addEventHandler ["Killed", {_this call EPOCH_fnc_playerDeath}]; } else { deleteVehicle _playerObject; }; diff --git a/Sources/epoch_code/compile/setup/EPOCH_client_publicEH.sqf b/Sources/epoch_code/compile/setup/EPOCH_client_publicEH.sqf index 0e88f9e3..7ff33a5e 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_client_publicEH.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_client_publicEH.sqf @@ -1,3 +1,31 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Custom addPublicVariableEventHandler with random variables + + 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_code/compile/setup/EPOCH_client_publicEH.sqf + + Example: + call EPOCH_clientInit; + + Parameter(s): + _this select 0: STRING - main random string to listen for events + _this select 1+: random strings + Returns: + NOTHING +*/ +if (_this) then { + PLAYER_BADHIVE = true; + publicVariableServer "PLAYER_BADHIVE"; +}; + call compile (" '"+(_this select 0)+"' addPublicVariableEventHandler { "+(_this select 0)+" = nil; @@ -25,4 +53,4 @@ call compile (" case "+str(_this select 20)+": { _data call EPOCH_mission_returnObj }; }; }; -"); \ No newline at end of file +"); diff --git a/Sources/epoch_code/compile/setup/EPOCH_client_rejectPlayer.sqf b/Sources/epoch_code/compile/setup/EPOCH_client_rejectPlayer.sqf index fdc68c7e..4c2ede88 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_client_rejectPlayer.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_client_rejectPlayer.sqf @@ -1,4 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Reject players own connection + + 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_code/compile/setup/EPOCH_client_rejectPlayer.sqf + + Example: + call EPOCH_clientInit; + + Parameter(s): + _this: BOOL - true = set bad publicVariable to server forces kick + + Returns: + NOTHING +*/ if (_this) then { PLAYER_BADHIVE = true; publicVariableServer "PLAYER_BADHIVE"; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/setup/EPOCH_masterLoop.sqf b/Sources/epoch_code/compile/setup/EPOCH_masterLoop.sqf index a3961057..bd00dd6d 100644 --- a/Sources/epoch_code/compile/setup/EPOCH_masterLoop.sqf +++ b/Sources/epoch_code/compile/setup/EPOCH_masterLoop.sqf @@ -1,583 +1,62 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Unisex check for vests, gives swing ammo and performs radio changed check + + 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_code/compile/setup/EPOCH_masterLoop.sqf + + Example: + [] spawn EPOCH_masterLoop; + + Parameter(s): + NONE + + Returns: + NOTHING +*/ disableSerialization; - -_EPOCH_1 = diag_tickTime; -_EPOCH_10 = diag_tickTime; -_EPOCH_15 = diag_tickTime; -_EPOCH_30 = diag_tickTime; -_EPOCH_60 = diag_tickTime; -_EPOCH_300 = diag_tickTime; -_EPOCH_600 = diag_tickTime; - -_prevEquippedItem = []; -_damagePlayer = damage player; -_panic = false; -_prevEnergy = EPOCH_playerEnergy; - -// init config data -_sapperRndChance = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2; -EPOCH_droneRndChance = ["CfgEpochClient", "droneRngChance", 100] call EPOCH_fnc_returnConfigEntryV2; -_baseHTLoss = ["CfgEpochClient", "baseHTLoss", 8] call EPOCH_fnc_returnConfigEntryV2; -_energyCostNV = ["CfgEpochClient", "energyCostNV", 3] call EPOCH_fnc_returnConfigEntryV2; -_energyRegenMax = ["CfgEpochClient", "energyRegenMax", 5] call EPOCH_fnc_returnConfigEntryV2; -_energyRange = ["CfgEpochClient", "energyRange", 75] call EPOCH_fnc_returnConfigEntryV2; - -EPOCH_chargeRate = 0; - -// default data if mismatch -if (count EPOCH_playerSpawnArray != count EPOCH_spawnIndex) then{ - { EPOCH_playerSpawnArray pushBack 0 } forEach EPOCH_spawnIndex; -}; - -9990 cutRsc ["EpochGameUI","PLAIN",2,false]; -_display = uiNamespace getVariable "EPOCH_EpochGameUI"; - -_thirst = _display displayCtrl 21201; -_hunger = _display displayCtrl 21202; -_broken = _display displayCtrl 21203; -_oxygen = _display displayCtrl 21204; -_hazzard = _display displayCtrl 21205; -_emergency = _display displayCtrl 21206; - +_config = 'CfgMasterLoop' call EPOCH_returnConfig; +_build_sqf = preprocessFile getText (_config >> "Init" >> "file"); +_configs = "true" configClasses (_config >> "Events"); +_condition = getText (_config >> "Events" >> "condition"); +_file = getText (_config >> "Events" >> "file"); { - _x ctrlShow false; -}forEach[_thirst,_hunger,_broken,_oxygen,_hazzard,_emergency]; - -// find radio -{ - if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) == "ItemRadio") exitWith{ - EPOCH_equippedItem_PVS = [_x, true, player]; - }; -} forEach assignedItems player; - -// lootBubble Init -_loots = ["CfgEpochClient", "lootClasses", EPOCH_lootClasses] call EPOCH_fnc_returnConfigEntryV2; - -_lootClasses = ('CfgBuildingLootPos' call EPOCH_returnConfig) call Bis_fnc_getCfgSubClasses; -_lootClasses = _lootClasses - ["Default"]; - -_lootBubble = { - private["_pos", "_others", "_objects", "_nearObjects", "_building", "_travelDir", "_lootDist", "_xPos", "_yPos", "_lootLoc", "_playerPos", "_distanceTraveled", "_class", "_dir", "_color", "_colors", "_item", "_randomColor", "_positions", "_lootBiasPos", "_lootType", "_config"]; - _playerPos = getPosATL vehicle player; - _distanceTraveled = EPOCH_lastPlayerPos distance _playerPos; - if (_distanceTraveled > 10 && _distanceTraveled < 200) then { - _travelDir = [EPOCH_lastPlayerPos, _playerPos] call BIS_fnc_dirTo; - _lootDist = 30 + _distanceTraveled; - _xPos = (_playerPos select 0) + (_lootDist * sin(_travelDir)); - _yPos = (_playerPos select 1) + (_lootDist * cos(_travelDir)); - _lootLoc = [_xPos, _yPos, 0]; - - _objects = nearestObjects[_lootLoc, _lootClasses, 30]; - _config = 'CfgEpochClient' call EPOCH_returnConfig; - _buildingJammerRange = getNumber(_config >> "buildingJammerRange"); - if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; }; - - _jammer = nearestObjects [_lootLoc, ["PlotPole_EPOCH"], _buildingJammerRange]; - - if (!(_objects isEqualTo[]) && (_jammer isEqualTo[])) then { - - _building = _objects select(floor(random(count _objects))); - - if !(_building in EPOCH_LootedBlds) then { - - _pos = getPosATL _building; - _others = _building nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 15]; - if (_others isEqualTo[]) then { - - _nearObjects = nearestObjects[_pos, ["WH_Loot", "Animated_Loot"], 35]; - if (_nearObjects isEqualTo[]) then { - - _config = ('CfgBuildingLootPos' call EPOCH_returnConfig) >> (typeOf _building); - - if (isClass(_config)) then { - - _lootBiasPos = getNumber(_config >> "lootBiasPos"); - _lootType = getText(_config >> "lootType"); - - EPOCH_LootedBlds pushBack _building; - if (count EPOCH_LootedBlds >= 20) then { - EPOCH_LootedBlds deleteAt 0; - }; - - { - _positions = [] + getArray(_config >> (_x select 0)); - if !(_positions isEqualTo[]) then { - _class = _x select 1; - _randomColor = _x select 2; - { - - if ((random 100) < _lootBiasPos) then { - - _pos = _building modelToWorld(_x select 0); - - if (nearestObjects[_pos, ["WH_Loot", "Animated_Loot"], 2] isEqualTo[]) then { - - if ((typeName _class) == "ARRAY") then { - _class = _class select(floor(random(count _class))); - }; - - _dir = (_x select 1) + (getDir _building); - if (_dir > 360) then { - _dir = _dir - 360; - }; - - // Temp for now till we get more - if (_lootType == "mil" && _class == "Bed_EPOCH") then { - _class = "Bunk_EPOCH"; - }; - - _item = createVehicle[_class, _pos, [], 0.0, "CAN_COLLIDE"]; - _item setDir _dir; - - // force item to ground level is resulting z pos is below ground. - if (_pos select 2 < 0) then { - _pos set[2, 0]; - }; - - if (surfaceIsWater _pos) then { - _item setPosASL _pos; - } else { - _item setPosATL _pos; - }; - - if (typeName _randomColor isEqualTo "STRING") then { - _randomColor = _randomColor isEqualTo "true"; - }; - - if (_randomColor) then { - _colors = [] + getArray(configFile >> "CfgVehicles" >> _class >> "availableTextures"); - if !(_colors isEqualTo[]) then { - _color = _colors select floor(random(count _colors)); - _item setObjectTextureGlobal[0, _color]; - }; - }; - }; - }; - }forEach _positions; - }; - }forEach _loots; - }; - }; - }; - }; - }; - }; - EPOCH_lastPlayerPos = _playerPos; -}; - -// [control,bool] call _fadeUI; -_fadeUI = { - private ["_ctrl"]; - _ctrl = _this select 0; - if (_this select 1) then { - if (ctrlFade _ctrl == 0) then { - _ctrl ctrlSetFade 1; - _ctrl ctrlCommit 0.5; - }; - if (ctrlFade _ctrl == 1) then { - _ctrl ctrlSetFade 0; - _ctrl ctrlCommit 0.5; - }; - } else { - if (ctrlFade _ctrl != 1) then { - _ctrl ctrlSetFade 0; - _ctrl ctrlCommit 0; - }; - }; -}; - -_cursorTarget = objNull; - -// Master Loop Start -while {alive player} do { - + _configName = configName _x; + _varName = format["_EPOCH_%1",_configName]; + _build_sqf = _build_sqf + ' + '+_varName+' = diag_tickTime; + '; +}forEach _configs; +_build_sqf = _build_sqf + ' +while {'+_condition+'} do { _tickTime = diag_tickTime; - - // 1 second - if ((_tickTime - _EPOCH_1) > 1) then { - - _EPOCH_1 = _tickTime; - - // current target - - _currentTarget = objNull; - _cursorTarget = ([10] call EPOCH_fnc_cursorTarget); - if (!isNull _cursorTarget && {!(EPOCH_target isEqualTo _cursorTarget)}) then { - if (_cursorTarget isKindOf "ThingX" || _cursorTarget isKindOf "Constructions_static_F" || _cursorTarget isKindOf "Constructions_foundation_F" || _cursorTarget isKindOf "WeaponHolder" || _cursorTarget isKindOf "AllVehicles" || _cursorTarget isKindOf "PlotPole_EPOCH") then{ - if (_cursorTarget isKindOf "Animal_Base_F") then { - if !(alive _cursorTarget) then { - _currentTarget = _cursorTarget; - }; - } else { - _currentTarget = _cursorTarget; - }; - }; - }; - EPOCH_currentTarget = _currentTarget; - - _increaseStamina = false; - _vehicle = vehicle player; - if (_vehicle == player) then { - _val = log(abs(speed player)); - _staminaThreshold = 0.7; - if (EPOCH_playerIsSwimming) then {_staminaThreshold = 0.3}; - if (_val>_staminaThreshold) then { - EPOCH_playerStamina = (EPOCH_playerStamina - (_val/4)) max 0; - } else { - _increaseStamina = true; - }; - } else { - if (EPOCH_buildMode > 0) then { - EPOCH_buildMode = 0; - EPOCH_snapDirection = 0; - hintsilent "BUILD MODE: DISABLED"; - EPOCH_Target = objNull; - // EPOCH_SURVEY = []; - }; - _increaseStamina = true; - - switch (typeOf _vehicle) do { - case "jetski_epoch": { - _clock_hour10 = floor ((date select 3)/10); - _clock_minute10 = floor ((date select 4)/10); - { - _vehicle setObjectTexture [_forEachIndex,_x]; - }forEach[ - format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_hour10], - format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 3)-(_clock_hour10*10)], - format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_minute10], - format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 4)-(_clock_minute10*10)], - format["\x\addons\a3_epoch_vehicles\data\fuel%1_ca.paa",floor(fuel _vehicle*10)] - ]; - }; - case "ebike_epoch": { - { - _vehicle setObjectTexture [_forEachIndex,_x]; - }forEach[ - format["\x\addons\a3_epoch_vehicles\data\speed%1_ca.paa",floor(speed _vehicle/9) max 0], - format["\x\addons\a3_epoch_vehicles\data\energ%1_ca.paa",floor(fuel _vehicle*14)] - ]; - }; - }; - }; - - _envCold = EPOCH_playerTemp <= 95.0; - _envHot = EPOCH_playerTemp >= 106.7; - _hungry = EPOCH_playerHunger <= 0; - _thirsty = EPOCH_playerThirst <= 0; - _warnbloodPressure = EPOCH_playerBloodP > 120; - - _thirst ctrlShow (EPOCH_playerThirst <= 625); - if (ctrlShown _thirst) then { - [_thirst,_thirsty] call _fadeUI; - _thirstScale = linearConversion [0,EPOCH_playerThirst,2500,0.01,1]; - _thirst ctrlSetTextColor [_thirstScale, _thirstScale, 0.9, 1]; - }; - - _hunger ctrlShow (EPOCH_playerHunger <= 1250); - if (ctrlShown _hunger) then { - [_hunger,_hungry] call _fadeUI; - _hungerScale = linearConversion [0,EPOCH_playerHunger,5000,0.01,1]; - _hunger ctrlSetTextColor [1, _hungerScale, _hungerScale, 1]; - }; - - _playerOxygen = getOxygenRemaining player; - _oxygen ctrlShow (_playerOxygen < 1); - if (ctrlShown _oxygen) then { - [_oxygen,(_playerOxygen <= 0.55)] call _fadeUI; - _oxygen ctrlSetTextColor [1, _playerOxygen, _playerOxygen, 1]; - }; - - _hazzard ctrlShow (EPOCH_playerToxicity > 1); - if (ctrlShown _hazzard) then { - [_hazzard,(EPOCH_playerToxicity >= 55)] call _fadeUI; - _toxicScale = 1-linearConversion [0,EPOCH_playerToxicity,100,0.01,1]; - _hazzard ctrlSetTextColor [_toxicScale, 1, _toxicScale, 1]; - }; - - _broken ctrlShow ((player getHitPointDamage "HitLegs") >= 0.5); - if (ctrlShown _broken) then { - [_broken,true] call _fadeUI; - }; - - if (_envCold || _envHot || _hungry || _thirsty) then { - if (_envHot || _envCold) then { - player setFatigue 1; - }; - EPOCH_playerBloodP = (EPOCH_playerBloodP + 0.05) min 190; - _increaseStamina = false; - } else { - if (EPOCH_playerStamina > 0) then { - if !(_panic) then { - if (!_warnbloodPressure) then { - player setFatigue 0; - }; - EPOCH_playerBloodP = EPOCH_playerBloodP - 1 max 100; - }; - }; - }; - - _critical = (damage player >= 0.7 || _warnbloodPressure); - _emergency ctrlShow _critical; - if (ctrlShown _emergency) then { - [_emergency,(EPOCH_playerBloodP > 140)] call _fadeUI; - _emergencyScale = 1-linearConversion [0,EPOCH_playerBloodP,180,0.01,1]; - _emergency ctrlSetTextColor [1, _emergencyScale, _emergencyScale, 1]; - }; - - if (EPOCH_playerBloodP >= 180) then { - true call EPOCH_pushCustomVar; - }; - if (_increaseStamina && (getFatigue player) == 0) then { - EPOCH_playerStamina = (EPOCH_playerStamina + 0.5) min EPOCH_playerStaminaMax; - }; - if (EPOCH_debugMode) then { - call EPOCH_debugMonitor; - }; - - call EPOCH_TradeLoop; - - //Good bye onEachFrame hacks ;) - onEachFrame EPOCH_onEachFrame; +'; +{ + _delay = getNumber(_x >> "delay"); + _configName = configName _x; + _varName = format["_EPOCH_%1",_configName]; + _code = preprocessFile format ["%1\%2.sqf",_file,_configName]; + _build_sqf = _build_sqf + ' + if ((_tickTime - '+_varName+') > '+str(_delay)+') then { + '+_varName+' = _tickTime; + '+_code+' }; - - // 10 seconds - if ((_tickTime - _EPOCH_10) > 10) then { - - _EPOCH_10 = _tickTime; - - if !(EPOCH_arr_interactedObjs isEqualTo[]) then { - EPOCH_arr_interactedObjs remoteExec["EPOCH_server_save_vehicles", 2]; - EPOCH_arr_interactedObjs = []; - }; - - if (damage player != _damagePlayer) then { - if (alive player) then { - true call EPOCH_pushCustomVar; - _damagePlayer = damage player; - }; - }; - - if ((rating player) < 0) then { - player addRating abs(rating player); - }; - - // calculate total available power - // 1. number of power production devices within range 75m - - // find share of power based on factors - // 1. number of players - // 2. Other sources of drain (Lights) - - _energyValue = EPOCH_chargeRate min _energyRegenMax; - _vehicle = vehicle player; - if (_vehicle != player && isEngineOn _vehicle) then { - _energyValue = _energyValue + 5; - }; - - if (currentVisionMode player == 1) then { //NV enabled - _energyValue = _energyValue - _energyCostNV; - if (EPOCH_playerEnergy == 0) then { - player action["nvGogglesOff", player]; - }; - }; - - EPOCH_playerEnergy = ((EPOCH_playerEnergy + _energyValue) min EPOCH_playerEnergyMax) max 0; - - if !(EPOCH_playerEnergy isEqualTo _prevEnergy) then { - 9993 cutRsc["EpochGameUI3", "PLAIN", 0, false]; - _display3 = uiNamespace getVariable "EPOCH_EpochGameUI3"; - _energyDiff = round(EPOCH_playerEnergy - _prevEnergy); - _diffText = if (_energyDiff > 0) then {format["+%1",_energyDiff]} else {format["%1",_energyDiff]}; - // hint str [_energyValue,_prevEnergy,EPOCH_playerEnergy]; - (_display3 displayCtrl 21210) ctrlSetText format["%1/%2 %3", round(EPOCH_playerEnergy), EPOCH_playerEnergyMax, _diffText]; - _prevEnergy = EPOCH_playerEnergy; - }; - - if (EPOCH_playerEnergy == 0) then { - if (EPOCH_buildMode > 0) then { - EPOCH_buildMode = 0; - EPOCH_snapDirection = 0; - _dt = ["Build Mode Disabled: Need Energy< / t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; - EPOCH_Target = objNull; - EPOCH_Z_OFFSET = 0; - EPOCH_X_OFFSET = 0; - EPOCH_Y_OFFSET = 5; - }; - }; - - _attackers = player nearEntities[["Snake_random_EPOCH", "GreatWhite_F", "Epoch_Cloak_F"], 30]; - if !(_attackers isEqualTo[]) then { - (_attackers select 0) call EPOCH_client_bitePlayer; - _panic = true; - } else { - // custom poision - _toxicObjs = player nearobjects["SmokeShellCustom", 6]; - if!(_toxicObjs IsEqualTo[]) then { - (_toxicObjs select 0) call EPOCH_client_bitePlayer; - _panic = true; - } else { - _panic = false; - }; - }; - - call EPOCH_fnc_Weather; - - // Hunger / Thirst - _HTlossRate = _baseHTLoss; - if (EPOCH_playerStamina < 100) then { - if ((getFatigue player) > 0) then { - _HTlossRate = _HTlossRate + (_HTlossRate*(getFatigue player)); - }; - } else { - _HTlossRate = (_HTlossRate / 2); - }; - - EPOCH_playerHunger = (EPOCH_playerHunger - _HTlossRate) max 0; - EPOCH_playerThirst = (EPOCH_playerThirst - _HTlossRate) max 0; - - call _lootBubble; - - EPOCH_playerStaminaMax = (100 * (round(EPOCH_playerAliveTime/360)/10)) min 2500; - }; - - if ((_tickTime - _EPOCH_15) > 15) then { - _EPOCH_15 = _tickTime-10; - - if !(_prevEquippedItem isEqualTo EPOCH_equippedItem_PVS) then { - _EPOCH_15 = _tickTime; - _prevEquippedItem = EPOCH_equippedItem_PVS; - publicVariableServer "EPOCH_equippedItem_PVS"; - }; - }; - - if ((_tickTime - _EPOCH_30) > 30) then { - _EPOCH_30 = _tickTime; - - _nearByBobbersLocal = []; - _nearByBobbers = player nearEntities[["Bobber_EPOCH"], 12]; - { - if (local _x) then { - _nearByBobbersLocal pushBack _x - } - } forEach _nearByBobbers; - - if !(_nearByBobbersLocal isEqualTo []) then { - if ((random 100) < 50) then { - _bobber = _nearByBobbersLocal select floor(random(count _nearByBobbers)); - _bobber setVelocity [0,-1,-1]; - _bobber setVariable ["EPOCH_fishOnLine" , diag_tickTime]; - }; - - }; - - }; - - - - if ((_tickTime - _EPOCH_60) > 60) then { - - _EPOCH_60 = _tickTime; - _position = getPosATL player; - - EPOCH_nearestLocations = nearestLocations[player, ["NameCityCapital", "NameCity", "Airport"], 300]; - EPOCH_playerIsSwimming = false; - - if !(surfaceIsWater _position) then { - if (EPOCH_nearestLocations isEqualTo []) then{ - if (count(_position nearEntities["Animal_Base_F", 800]) < 2) then { - // diag_log "DEBUG: Attempt to spawn animal"; - call EPOCH_client_loadAnimalBrain; - }; - }; - } else { - // spawn shark if player is deep water and not in vehicle - if (vehicle player == player) then{ - _offsetZ = ((_position vectorDiff getPosASL player) select 2); - if (_offsetZ > 1.7) then { - EPOCH_playerIsSwimming = true; - }; - if (_offsetZ > 50) then { - "GreatWhite_F" call EPOCH_unitSpawn; - }; - }; - }; - - // default power state - EPOCH_nearPower = false; - EPOCH_chargeRate = 0; - - // energy Charge from nearby power plants - _powerSources = nearestObjects[player, ["Land_spp_Tower_F","Land_wpp_Turbine_V2_F","Land_wpp_Turbine_V1_F","SolarGen_EPOCH"], _energyRange]; - if !(_powerSources isEqualTo[]) then { - _totalCapacity = 0; - { - _powerClass = typeOf _x; - _powerCap = getNumber(configFile >> "CfgVehicles" >> _powerClass >> "powerCapacity"); - _powerType = getNumber(configFile >> "CfgVehicles" >> _powerClass >> "powerType"); - if (_powerCap == 0) then { - _powerCap = 100; - }; - if (_powerType == 1) then { - if (sunOrMoon < 1) then { - _powerCap = _powerCap/2; - }; - }; - _totalCapacity = _totalCapacity + _powerCap; - } forEach _powerSources; - if (_totalCapacity > 0) then { - _players = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], _energyRange]; - if (_players isEqualTo []) then { - EPOCH_chargeRate = ceil _totalCapacity; - } else { - EPOCH_chargeRate = ceil (_totalCapacity / (count _players)); - }; - EPOCH_nearPower = true; - }; - }; - - EPOCH_playerAliveTime = round(EPOCH_playerAliveTime + (_tickTime - EPOCH_clientAliveTimer)); - EPOCH_clientAliveTimer = _tickTime; - }; - - if ((_tickTime - _EPOCH_300) > 300) then { - _EPOCH_300 = _tickTime; - false call EPOCH_pushCustomVar; - }; - - if ((_tickTime - _EPOCH_600) > 600) then{ - _EPOCH_600 = _tickTime; - - if ((EPOCH_playerSpawnArray select(EPOCH_spawnIndex find "Epoch_Sapper_F")) <= 0) then{ - _sapperChance = 1 + (EPOCH_playerSoiled / 2); - if !(EPOCH_nearestLocations isEqualTo[]) then{ - _sapperChance = _sapperChance + 2; - }; - // 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper every 10 minutes - if (random _sapperRndChance < _sapperChance) then{ - "Epoch_Sapper_F" call EPOCH_unitSpawnIncrease; - }; - }; - - _spawnUnits = []; - { - if (_x > 0) then{ - _spawnUnits pushBack(EPOCH_spawnIndex select _forEachIndex); - }; - } forEach EPOCH_playerSpawnArray; - - // test spawning one antagonist every 10 minutes select one unit at random to spawn - if !(_spawnUnits isEqualTo[]) then{ - (_spawnUnits select(floor random(count _spawnUnits))) call EPOCH_unitSpawn; - }; - }; - - + '; +}forEach _configs; +_build_sqf = _build_sqf + ' if (vehicle player != player) then { if (isNull EPOCH_currentVehicle) then { EPOCH_currentVehicle = vehicle player; EPOCH_currentVehicle addEventHandler["GetOut", "_this call EPOCH_antiWall"]; }; }; - uiSleep 0.1; -}; +};'; +call compile _build_sqf; diff --git a/Sources/epoch_code/compile/setup/EPOCH_masterLoop_v2.sqf b/Sources/epoch_code/compile/setup/EPOCH_masterLoop_v2.sqf deleted file mode 100644 index 5afeef29..00000000 --- a/Sources/epoch_code/compile/setup/EPOCH_masterLoop_v2.sqf +++ /dev/null @@ -1,40 +0,0 @@ -// EPOCHMOD.com -disableSerialization; -_config = 'CfgMasterLoop' call EPOCH_returnConfig; -_build_sqf = preprocessFile getText (_config >> "Init" >> "file"); -_configs = "true" configClasses (_config >> "Events"); -_condition = getText (_config >> "Events" >> "condition"); -_file = getText (_config >> "Events" >> "file"); -{ - _configName = configName _x; - _varName = format["_EPOCH_%1",_configName]; - _build_sqf = _build_sqf + ' - '+_varName+' = diag_tickTime; - '; -}forEach _configs; -_build_sqf = _build_sqf + ' -while {'+_condition+'} do { - _tickTime = diag_tickTime; -'; -{ - _delay = getNumber(_x >> "delay"); - _configName = configName _x; - _varName = format["_EPOCH_%1",_configName]; - _code = preprocessFile format ["%1\%2.sqf",_file,_configName]; - _build_sqf = _build_sqf + ' - if ((_tickTime - '+_varName+') > '+str(_delay)+') then { - '+_varName+' = _tickTime; - '+_code+' - }; - '; -}forEach _configs; -_build_sqf = _build_sqf + ' - if (vehicle player != player) then { - if (isNull EPOCH_currentVehicle) then { - EPOCH_currentVehicle = vehicle player; - EPOCH_currentVehicle addEventHandler["GetOut", "_this call EPOCH_antiWall"]; - }; - }; - uiSleep 0.1; -};'; -call compile _build_sqf; diff --git a/Sources/epoch_code/compile/startFlock.sqf b/Sources/epoch_code/compile/startFlock.sqf index cfd9fc9c..959e04d3 100644 --- a/Sources/epoch_code/compile/startFlock.sqf +++ b/Sources/epoch_code/compile/startFlock.sqf @@ -1,3 +1,18 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + test code to spawn flocks (unused) + + 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_code/compile/startFlock.sqf +*/ + // //Flocking (Emergent) Behaviour AI Test / Demo // diff --git a/Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf b/Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf index 200a0f7e..2d7d7ab1 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_tradeFilter.sqf @@ -65,4 +65,4 @@ if (_items) then { _array set [_array find _x,nil]; }; } forEach items player; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/vehicles/EPOCH_client_fillVehicle.sqf b/Sources/epoch_code/compile/vehicles/EPOCH_client_fillVehicle.sqf index 79ed92e2..39631fa5 100644 --- a/Sources/epoch_code/compile/vehicles/EPOCH_client_fillVehicle.sqf +++ b/Sources/epoch_code/compile/vehicles/EPOCH_client_fillVehicle.sqf @@ -1,7 +1,21 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + sets Fuel on local vehicle + + 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_code/compile/vehicles/EPOCH_client_fillVehicle.sqf +*/ private["_vehicle","_value"]; _vehicle = _this select 0; _value = _this select 1; if (local _vehicle) then { _vehicle setFuel _value; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/vehicles/EPOCH_client_gearVehicle.sqf b/Sources/epoch_code/compile/vehicles/EPOCH_client_gearVehicle.sqf index db0eec9b..3c40354b 100644 --- a/Sources/epoch_code/compile/vehicles/EPOCH_client_gearVehicle.sqf +++ b/Sources/epoch_code/compile/vehicles/EPOCH_client_gearVehicle.sqf @@ -1,7 +1,21 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Open gear on cursorTarget function + + 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_code/compile/vehicles/EPOCH_client_gearVehicle.sqf +*/ closeDialog 0; if (!isNull cursorTarget) then { _vehicles = player nearEntities[["LandVehicle", "Ship", "Air", "Tank"], 6]; if (cursorTarget in _vehicles) then { player action["Gear", cursorTarget]; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/vehicles/EPOCH_client_lockVehicle.sqf b/Sources/epoch_code/compile/vehicles/EPOCH_client_lockVehicle.sqf index 488b5568..1825fcbc 100644 --- a/Sources/epoch_code/compile/vehicles/EPOCH_client_lockVehicle.sqf +++ b/Sources/epoch_code/compile/vehicles/EPOCH_client_lockVehicle.sqf @@ -1,7 +1,21 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + lock local object + + 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_code/compile/vehicles/EPOCH_client_lockVehicle.sqf +*/ private["_vehicle","_value"]; _vehicle = _this select 0; _value = _this select 1; if (local _vehicle) then { _vehicle lock _value; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/vehicles/EPOCH_client_repairVehicle.sqf b/Sources/epoch_code/compile/vehicles/EPOCH_client_repairVehicle.sqf index 30ceedc6..a0c00ef3 100644 --- a/Sources/epoch_code/compile/vehicles/EPOCH_client_repairVehicle.sqf +++ b/Sources/epoch_code/compile/vehicles/EPOCH_client_repairVehicle.sqf @@ -1,7 +1,21 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + repair object via hit index + + 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_code/compile/vehicles/EPOCH_client_repairVehicle.sqf +*/ private ["_vehicle","_value"]; _vehicle = _this select 0; _value = _this select 1; if (local _vehicle) then { _currentDMG = _vehicle getHitIndex (_value select 0); _vehicle setHitIndex[_value select 0, (_currentDMG - 0.5) max 0]; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/config.cpp b/Sources/epoch_code/config.cpp index c9e36112..7600a908 100644 --- a/Sources/epoch_code/config.cpp +++ b/Sources/epoch_code/config.cpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch Code Config + + 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_code/config.cpp +*/ class CfgPatches { class A3_epoch_code { units[] = {}; @@ -95,9 +109,6 @@ class cfgFunctions class returnConfigEntryV2 { file = "\x\addons\a3_epoch_code\compile\functions\EPOCH_fn_returnConfigEntryV2.sqf"; }; - class getHitpoints { - file = "\x\addons\a3_epoch_code\compile\both\EPOCH_getHitpoints.sqf" - }; class isAny { file = "\x\addons\a3_epoch_code\compile\both\EPOCH_isAny.sqf" }; @@ -185,7 +196,6 @@ class CfgClientFunctions { class client_publicEH {}; class masterLoop {}; - class masterLoop_v2 {}; class clientInit {}; class clientRespawn {}; class clientRevive {}; diff --git a/Sources/epoch_code/gui/scripts/Epoch_getIDC.sqf b/Sources/epoch_code/gui/scripts/Epoch_getIDC.sqf index 12d1932f..1f6f3ba1 100644 --- a/Sources/epoch_code/gui/scripts/Epoch_getIDC.sqf +++ b/Sources/epoch_code/gui/scripts/Epoch_getIDC.sqf @@ -3,7 +3,9 @@ Pass the control to unregister or just call fnc to get a unique IDC */ private ["_in","_list","_out","_find"]; -_in = param [0,controlNull,[controlNull]]; +//_in = _this param [0,controlNull,[controlNull]]; +_in = [_this, 0, controlNull, [controlNull]] call BIS_fnc_param; + _list = missionNamespace getVariable ["rmx_var_uniqueIDC",[]]; if (ctrlIDC _in isEqualTo -1) then { diff --git a/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf b/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf index 79eb2ae1..295499b2 100644 --- a/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf +++ b/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf @@ -1,5 +1,7 @@ disableSerialization; -_in = param [0, "", [""]]; +//_in = _this param [0, "", [""]]; +_in = [_this, 0, "", [""]] call BIS_fnc_param; + _display = findDisplay 66600; _cfg = "CfgActionMenu" call EPOCH_returnConfig; _arr = []; diff --git a/Sources/epoch_code/gui/scripts/post_process/EPOCH_postprocessAdjust.sqf b/Sources/epoch_code/gui/scripts/post_process/EPOCH_postprocessAdjust.sqf index 4a8e9c26..cc56d58d 100644 --- a/Sources/epoch_code/gui/scripts/post_process/EPOCH_postprocessAdjust.sqf +++ b/Sources/epoch_code/gui/scripts/post_process/EPOCH_postprocessAdjust.sqf @@ -1,11 +1,11 @@ /* Adjusts PP created elsewhere (or by epoch_postprocessCreate) - + Params: [Handle, speed integer, Effect array] - + Usage: [_handle, 2, [1]] call epoch_postprocessAdjust; //apply dynamic blur with animation of 2 seconds [_handle, _speed, _effect] call epoch_postprocessAdjust; - + Default Engine values: colorCorrections >> [1,1,0,0,0,0,0,0,0,0,1,0,0,0,0] chromAberration >> [0,0,false] @@ -25,4 +25,4 @@ if ((_handle isEqualTo 666) || (_animSpeed isEqualTo 666) || (_effect isEqualTo _handle ppEffectEnable true; _handle ppEffectAdjust _effect; -_handle ppEffectCommit _animSpeed; \ No newline at end of file +_handle ppEffectCommit _animSpeed; diff --git a/Sources/epoch_code/init/both_init.sqf b/Sources/epoch_code/init/both_init.sqf index 53f618f1..8498e565 100644 --- a/Sources/epoch_code/init/both_init.sqf +++ b/Sources/epoch_code/init/both_init.sqf @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Initalize variables used client side and server side + + 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_code/init/both_init.sqf +*/ + // Init Custom vars EPOCH_customVars = []; EPOCH_defaultVars = []; diff --git a/Sources/epoch_code/init/client_init.sqf b/Sources/epoch_code/init/client_init.sqf index 4ec06a4a..ab6e27e4 100644 --- a/Sources/epoch_code/init/client_init.sqf +++ b/Sources/epoch_code/init/client_init.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Initalize variables used client side and start login FSM + + 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_code/init/client_init.sqf +*/ //Variables EPOCH_CraftingItem = ""; EPOCH_ESP_TARGETS = []; diff --git a/Sources/epoch_code/init/fn_init.sqf b/Sources/epoch_code/init/fn_init.sqf index 3516078a..6f22586a 100644 --- a/Sources/epoch_code/init/fn_init.sqf +++ b/Sources/epoch_code/init/fn_init.sqf @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Initalize both init and run custom client function compiler + + 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_code/init/fn_init.sqf +*/ + if !(isNil "Epoch_CStart") exitWith { false }; Epoch_CStart = true; diff --git a/Sources/epoch_code/init/fn_postinit.sqf b/Sources/epoch_code/init/fn_postinit.sqf index 05d4f6d5..d1d3b7c6 100644 --- a/Sources/epoch_code/init/fn_postinit.sqf +++ b/Sources/epoch_code/init/fn_postinit.sqf @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Initalize Player + + 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_code/init/fn_postinit.sqf +*/ if (!isDedicated && isMultiplayer && hasInterface) then { call compile preprocessFileLineNumbers "\x\addons\a3_epoch_code\init\client_init.sqf"; }; diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp index 38a40f82..22b90038 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp @@ -1,3 +1,18 @@ +/* + Author: Raimonds Virtoss - EpochMod.com + + Contributors: Aaron Clark + + Description: + Action Menu Core Config + + 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_config/Configs/CfgActionMenu/CfgActionMenu_core.hpp +*/ + class CfgActionMenu { class variableDefines //must be global, nil when menu closes diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp index 4a0a83e4..c716f527 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp @@ -1,3 +1,18 @@ +/* + Author: Raimonds Virtoss - EpochMod.com + + Contributors: Aaron Clark + + Description: + Action Menu Self Config + + 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_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp +*/ + class veh_lock { condition = "dyna_inVehicle && !dyna_lockedInVehicle"; diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp index 230575d5..71e02204 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp @@ -1,3 +1,18 @@ +/* + Author: Raimonds Virtoss - EpochMod.com + + Contributors: Aaron Clark + + Description: + Action Menu Target Config + + 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_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp +*/ + //Build mode enabled class build_upgrade { diff --git a/Sources/epoch_config/Configs/CfgActionMenu/EXAMPLE.hpp b/Sources/epoch_config/Configs/CfgActionMenu/EXAMPLE.hpp index 799f7381..a94a3af5 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/EXAMPLE.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/EXAMPLE.hpp @@ -5,7 +5,7 @@ class CfgActionMenu { dyna_cursorTarget = "cursorTarget"; dyna_typeOfCursorTarget = "typeOf cursorTarget"; - + dyna_player = "vehicle player"; dyna_itemsPlayer = "items player"; }; @@ -21,7 +21,7 @@ class CfgActionMenu tooltip = "Crafting V2"; }; }; - + /** Has cursor target **/ class CfgActionMenu_target { @@ -37,34 +37,34 @@ class CfgActionMenu /** Sub-category example **/ /* -class CAT_pad +class CAT_pad { condition = "true"; //must be value action = ""; //can be empty for categories icon = "#(rgb,8,8,3)color(1,0,1,0.5)"; tooltip = "Main cat"; - + class SUB_CAT_test1 { condition = "true"; //must be value action = ""; //can be empty for categories icon = "#(rgb,8,8,3)color(1,1,1,0.5)"; tooltip = "Subcat1"; - + class SUB_CAT_test2 { condition = "true"; //must be value action = ""; //can be empty for categories icon = "#(rgb,8,8,3)color(1,0,0,0.5)"; tooltip = "Subcat2"; - + class SUB_CAT_test3 { condition = "true"; //must be value action = ""; //can be empty for categories icon = "#(rgb,8,8,3)color(0,1,1,0.5)"; tooltip = "Subcat3"; - + class SUB_CAT_test4 { condition = "true"; //must be value @@ -76,4 +76,4 @@ class CAT_pad }; }; }; -*/ \ No newline at end of file +*/ diff --git a/Sources/epoch_config/Configs/CfgActions.hpp b/Sources/epoch_config/Configs/CfgActions.hpp index cc2deb5e..43588f32 100644 --- a/Sources/epoch_config/Configs/CfgActions.hpp +++ b/Sources/epoch_config/Configs/CfgActions.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Disable some default actions on Arma 3. + + 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_config/Configs/CfgActions.hpp +*/ + class CfgActions { class None; @@ -16,7 +31,7 @@ class CfgActions class Rearm : None { show = 0; - }; + }; class TakeMagazine : None { show = 0; @@ -53,7 +68,7 @@ class CfgActions { show = 0; }; - + }; diff --git a/Sources/epoch_config/Configs/CfgAmmo.hpp b/Sources/epoch_config/Configs/CfgAmmo.hpp index 770d10f3..116118a4 100644 --- a/Sources/epoch_config/Configs/CfgAmmo.hpp +++ b/Sources/epoch_config/Configs/CfgAmmo.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Custom ammo and effects + + 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_config/Configs/CfgAmmo.hpp +*/ + class CraterSpike { class CraterSmokeCustom1 { diff --git a/Sources/epoch_config/Configs/CfgBaseBuilding.hpp b/Sources/epoch_config/Configs/CfgBaseBuilding.hpp index 4de1ff66..7cfec555 100644 --- a/Sources/epoch_config/Configs/CfgBaseBuilding.hpp +++ b/Sources/epoch_config/Configs/CfgBaseBuilding.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Configs for base building upgrades and removal + + 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_config/Configs/CfgBaseBuilding.hpp +*/ + class CfgBaseBuilding { class Default { upgradeBuilding[] = {}; diff --git a/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp b/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp index 36186198..24dbaf40 100644 --- a/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp +++ b/Sources/epoch_config/Configs/CfgBuildingLootPos.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Kenneth Bente + + Description: + Loot container offsets for Epoch loot system + + 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_config/Configs/CfgBuildingLootPos.hpp +*/ + class CfgBuildingLootPos { class Default @@ -6095,4 +6110,4 @@ class CfgBuildingLootPos shoeboxPos[] = { { { 0, 1, -10 }, 106.559 } }; palletPos[] = { { { 1, 0, -10 }, 322.16 } }; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgCloudlets.hpp b/Sources/epoch_config/Configs/CfgCloudlets.hpp index b81d2aa2..80c01b10 100644 --- a/Sources/epoch_config/Configs/CfgCloudlets.hpp +++ b/Sources/epoch_config/Configs/CfgCloudlets.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Custom paricle effects + + 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_config/Configs/CfgCloudlets.hpp +*/ + class CfgCloudlets { class Default; diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index 10d07860..d420c6e5 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Main Client side configs for the Epoch gamemode + + 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_config/Configs/CfgEpochClient.hpp +*/ + class CfgEpochClient { epochVersion = "0.3.6.0"; diff --git a/Sources/epoch_config/Configs/CfgEpochClient/Altis.hpp b/Sources/epoch_config/Configs/CfgEpochClient/Altis.hpp index 5d4bd4b3..fae57323 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/Altis.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/Altis.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for Altis + + 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_config/Configs/CfgEpochClient/Altis.hpp +*/ + class Altis { blockedArea[] = { //[POS],radius { { 16085, 16997, 0 }, 250 }, //South Telos @@ -55,7 +70,7 @@ class Altis { "canisterplastic_f.p3d", "watertank_f.p3d" }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { diff --git a/Sources/epoch_config/Configs/CfgEpochClient/Bornholm.hpp b/Sources/epoch_config/Configs/CfgEpochClient/Bornholm.hpp index 064209ca..44f88146 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/Bornholm.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/Bornholm.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: uro1, Robio + + Description: + Epoch gamemode config for Bornholm + + 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_config/Configs/CfgEpochClient/Bornholm.hpp +*/ class Bornholm { blockedArea[] = { { { 1433, 8071, 0 }, 250 }, //Roenne NorthEast @@ -40,9 +54,9 @@ class Bornholm { "misc_well.p3d", "misc_wellpump.p3d", "kasna_new.p3d" - }; + }; - // main config + // main config TrashClasses[] = {"Trash","TrashSmall","TrashVehicle","PumpkinPatch","TrashFood"}; TrashSmall[] = { @@ -153,4 +167,4 @@ class Bornholm { "uaz_wrecked.p3d", "ural_wrecked.p3d" }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgEpochClient/Chernarus.hpp b/Sources/epoch_config/Configs/CfgEpochClient/Chernarus.hpp index 9465a14d..98c6f083 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/Chernarus.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/Chernarus.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for Chernarus + + 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_config/Configs/CfgEpochClient/Chernarus.hpp +*/ class Chernarus { blockedArea[] = { { { 10203, 1886, 0 }, 430 }, //South Electro @@ -31,7 +45,7 @@ class Chernarus { "misc_wellpump.p3d", "kasna_new.p3d" }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { diff --git a/Sources/epoch_config/Configs/CfgEpochClient/Chernarus_Summer.hpp b/Sources/epoch_config/Configs/CfgEpochClient/Chernarus_Summer.hpp index 82d1bed7..7441ee84 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/Chernarus_Summer.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/Chernarus_Summer.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for Chernarus_Summer + + 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_config/Configs/CfgEpochClient/Chernarus_Summer.hpp +*/ class Chernarus_Summer { blockedArea[] = { { { 10203, 1886, 0 }, 430 }, //South Electro @@ -30,7 +44,7 @@ class Chernarus_Summer { "misc_well.p3d", "misc_wellpump.p3d" }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { diff --git a/Sources/epoch_config/Configs/CfgEpochClient/Esseker.hpp b/Sources/epoch_config/Configs/CfgEpochClient/Esseker.hpp index 3814ecbd..c9783ac7 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/Esseker.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/Esseker.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Richie + + Description: + Epoch gamemode config for Esseker + + 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_config/Configs/CfgEpochClient/Esseker.hpp +*/ class Esseker { blockedArea[] = { { { 208.778, 353.779, 0 }, 300 }, //Cave diff --git a/Sources/epoch_config/Configs/CfgEpochClient/ProvingGrounds_PMC.hpp b/Sources/epoch_config/Configs/CfgEpochClient/ProvingGrounds_PMC.hpp index aded97c3..34d777a7 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/ProvingGrounds_PMC.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/ProvingGrounds_PMC.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for ProvingGrounds_PMC + + 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_config/Configs/CfgEpochClient/ProvingGrounds_PMC.hpp +*/ class ProvingGrounds_PMC { blockedArea[] = {}; Rocks[] = { @@ -8,7 +22,7 @@ class ProvingGrounds_PMC { }; Water[] = { }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { @@ -48,4 +62,4 @@ class ProvingGrounds_PMC { "uaz_wrecked.p3d", "ural_wrecked.p3d" }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgEpochClient/Sara.hpp b/Sources/epoch_config/Configs/CfgEpochClient/Sara.hpp index 30799352..3d257885 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/Sara.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/Sara.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for Sahrani + + 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_config/Configs/CfgEpochClient/Sara.hpp +*/ class Sara { Rocks[] = { "stone4.p3d", @@ -16,7 +30,7 @@ class Sara { Water[] = { "pumpa.p3d" }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { diff --git a/Sources/epoch_config/Configs/CfgEpochClient/Stratis.hpp b/Sources/epoch_config/Configs/CfgEpochClient/Stratis.hpp index a13d75f8..c2560492 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/Stratis.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/Stratis.hpp @@ -1,5 +1,19 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for Stratis + + 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_config/Configs/CfgEpochClient/Stratis.hpp +*/ class Stratis { - blockedArea[] = {}; + blockedArea[] = {}; Rocks[] = { "sharpstone_03_lc.p3d", "sharpstone_02_lc.p3d", @@ -47,7 +61,7 @@ class Stratis { "canisterplastic_f.p3d", "watertank_f.p3d" }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { diff --git a/Sources/epoch_config/Configs/CfgEpochClient/australia.hpp b/Sources/epoch_config/Configs/CfgEpochClient/australia.hpp index e5cd816f..b83d8882 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/australia.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/australia.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for australia + + 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_config/Configs/CfgEpochClient/australia.hpp +*/ + class australia { blockedArea[] = { { { 16286.1, 33578.6, 0 }, 650 }, //Darwin @@ -47,7 +62,7 @@ class australia { }; Water[] = { }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { @@ -220,4 +235,4 @@ class australia { "uaz_wrecked.p3d", "ural_wrecked.p3d" }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgEpochClient/takistan.hpp b/Sources/epoch_config/Configs/CfgEpochClient/takistan.hpp index 5704b02c..6fc5a1a0 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/takistan.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/takistan.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for Takistan + + 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_config/Configs/CfgEpochClient/Takistan.hpp +*/ class Takistan { blockedArea[] = {}; Rocks[] = { @@ -18,7 +32,7 @@ class Takistan { "stand_water_ep1.p3d", "misc_concbox_ep1.p3d" }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { diff --git a/Sources/epoch_config/Configs/CfgEpochClient/utes.hpp b/Sources/epoch_config/Configs/CfgEpochClient/utes.hpp index d3b54140..0ba89eae 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/utes.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/utes.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for utes + + 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_config/Configs/CfgEpochClient/utes.hpp +*/ class utes { Rocks[] = { "r2_rock1.p3d", @@ -11,7 +25,7 @@ class utes { Water[] = { "misc_wellpump.p3d" }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { @@ -43,4 +57,4 @@ class utes { Wrecks[] = { "wall_indfnc_9.p3d" }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgEpochClient/vr.hpp b/Sources/epoch_config/Configs/CfgEpochClient/vr.hpp index 8254aed9..ceb83d71 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient/vr.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient/vr.hpp @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode config for VR + + 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_config/Configs/CfgEpochClient/vr.hpp +*/ class vr { Rocks[] = { }; @@ -5,7 +19,7 @@ class vr { }; Water[] = { }; - // main config + // main config TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" }; TrashSmall[] = { diff --git a/Sources/epoch_config/Configs/CfgEpochConfiguration.hpp b/Sources/epoch_config/Configs/CfgEpochConfiguration.hpp index 5eac400e..bb8a6720 100644 --- a/Sources/epoch_config/Configs/CfgEpochConfiguration.hpp +++ b/Sources/epoch_config/Configs/CfgEpochConfiguration.hpp @@ -1,3 +1,18 @@ +/* + Author: Raimonds Virtoss - EpochMod.com + + Contributors: + + Description: + Config for Epoch Configuration system + + 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_config/Configs/CfgEpochConfiguration.hpp +*/ + class CfgEpochConfiguration { /** class order here decides order of buttons on gui **/ @@ -15,4 +30,4 @@ class CfgEpochConfiguration icon = "\x\addons\a3_epoch_code\Data\owner.paa"; controlGroup = "Epoch_main_config_changelog"; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgGesturesMale.hpp b/Sources/epoch_config/Configs/CfgGesturesMale.hpp index 33c6c2ab..35d76dd0 100644 --- a/Sources/epoch_config/Configs/CfgGesturesMale.hpp +++ b/Sources/epoch_config/Configs/CfgGesturesMale.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Paul Tomany (rtm animations) + + Description: + Custom hatchet and sledge swing sesture animations as well as a one finger salute. + + 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_config/Configs/CfgGesturesMale.hpp +*/ + class CfgGesturesMale { skeletonName = "OFP2_ManSkeleton"; @@ -124,7 +139,7 @@ class CfgGesturesMale leftHandIKBeg = 0; leftHandIKEnd = 0; }; - + }; class BlendAnims { @@ -132,7 +147,7 @@ class CfgGesturesMale }; }; -class CfgGesturesSapper : CfgGesturesMale +class CfgGesturesSapper : CfgGesturesMale { skeletonName = "SapperSkeleton"; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgInGameUI.hpp b/Sources/epoch_config/Configs/CfgInGameUI.hpp index 31c1ddde..f3a426ca 100644 --- a/Sources/epoch_config/Configs/CfgInGameUI.hpp +++ b/Sources/epoch_config/Configs/CfgInGameUI.hpp @@ -1,3 +1,18 @@ +/* + Author: Niklas Wagner - EpochMod.com + + Contributors: + + Description: + Removes termal from nightstalker UI + + 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_config/Configs/CfgInGameUI.hpp +*/ + class RscUnitInfo; class RscText; class RscControlsGroup; @@ -85,4 +100,4 @@ class RscInGameUI }; }; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgMagazines.hpp b/Sources/epoch_config/Configs/CfgMagazines.hpp index 40687cbd..957c1bf0 100644 --- a/Sources/epoch_config/Configs/CfgMagazines.hpp +++ b/Sources/epoch_config/Configs/CfgMagazines.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + All CfgMagazines configs + + 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_config/Configs/CfgMagazines.hpp +*/ + class CfgMagazines { class Default; diff --git a/Sources/epoch_config/Configs/CfgMasterLoop.hpp b/Sources/epoch_config/Configs/CfgMasterLoop.hpp index 5b8a54c8..cbe4cf5f 100644 --- a/Sources/epoch_config/Configs/CfgMasterLoop.hpp +++ b/Sources/epoch_config/Configs/CfgMasterLoop.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Master loop is a simple config based event scheduler that handles all time based player related tasks. + + 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_config/Configs/CfgMasterLoop.hpp +*/ + class CfgMasterLoop { class Init diff --git a/Sources/epoch_config/Configs/CfgMissions.hpp b/Sources/epoch_config/Configs/CfgMissions.hpp index 5eecb7ef..a78b1974 100644 --- a/Sources/epoch_config/Configs/CfgMissions.hpp +++ b/Sources/epoch_config/Configs/CfgMissions.hpp @@ -1,3 +1,18 @@ +/* + Author: Niklas Wagner - EpochMod.com + + Contributors: + + Description: + Epoch Inrto config + + 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_config/Configs/CfgMissions.hpp +*/ + class CfgMissions { class Cutscenes diff --git a/Sources/epoch_config/Configs/CfgMovesAnimal.hpp b/Sources/epoch_config/Configs/CfgMovesAnimal.hpp index 9ea7e61f..5965f856 100644 --- a/Sources/epoch_config/Configs/CfgMovesAnimal.hpp +++ b/Sources/epoch_config/Configs/CfgMovesAnimal.hpp @@ -1,4 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + Contributors: Paul Tomany (.rtm Animation) + + Description: + Custom Epoch animal animations configs Sharks,(Bear,Constuct)TBA + + 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_config/Configs/CfgMovesAnimal.hpp +*/ class CfgMovesAnimal_Base_F { access = 1; @@ -635,4 +648,4 @@ class CfgMovesGreatWhite_F : CfgMovesAnimal_Base_F aimingDefault[] = { "fish_head", 1 }; headDefault[] = { "fish_head", 1 }; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgMovesBasic.hpp b/Sources/epoch_config/Configs/CfgMovesBasic.hpp index d7d57e5a..e6ad4aa3 100644 --- a/Sources/epoch_config/Configs/CfgMovesBasic.hpp +++ b/Sources/epoch_config/Configs/CfgMovesBasic.hpp @@ -1,3 +1,18 @@ +/* + Author: BI + + Contributors: + + Description: + Stock CfgMovesBasic from 1.54 + + 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_config/Configs/CfgMovesBasic.hpp +*/ + class CfgMovesBasic { access = 0; diff --git a/Sources/epoch_config/Configs/CfgMovesMaleSdr.hpp b/Sources/epoch_config/Configs/CfgMovesMaleSdr.hpp index a3fc44e8..2eb39105 100644 --- a/Sources/epoch_config/Configs/CfgMovesMaleSdr.hpp +++ b/Sources/epoch_config/Configs/CfgMovesMaleSdr.hpp @@ -1,9 +1,24 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Paul Tomany (.rtm Animation) + + Description: + Adds custom animation "epoch_unarmed_jump" + + 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_config/Configs/CfgMovesMaleSdr.hpp +*/ + class CfgMovesMaleSdr : CfgMovesBasic { skeletonName = "OFP2_ManSkeleton"; gestures = "CfgGesturesMale"; class States { - + class AovrPercMstpSnonWnonDf; class epoch_unarmed_jump : AovrPercMstpSnonWnonDf { @@ -21,4 +36,4 @@ class CfgMovesMaleSdr : CfgMovesBasic InterpolateTo[] = { "AmovPercMsprSnonWnonDf_AmovPpneMstpSnonWnonDnon", 0.02, "AmovPercMrunSnonWnonDf", 0.02, "AmovPercMstpSnonWnonDnon", 0.06, "AmovPercMwlkSnonWnonDfl", 0.025, "AmovPercMrunSnonWnonDl", 0.025, "AmovPercMrunSnonWnonDfr", 0.025, "AmovPknlMrunSnonWnonDfl", 0.03, "AmovPercMevaSnonWnonDfl", 0.02, "Unconscious", 0.1 }; }; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/CfgMovesMaleSdr2.hpp b/Sources/epoch_config/Configs/CfgMovesMaleSdr2.hpp index ecefbcdc..0c0afaaa 100644 --- a/Sources/epoch_config/Configs/CfgMovesMaleSdr2.hpp +++ b/Sources/epoch_config/Configs/CfgMovesMaleSdr2.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Adds Sapper custom animations + + 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_config/Configs/CfgMovesMaleSdr2.hpp +*/ + class CfgMovesMaleSdr2: CfgMovesBasic { skeletonName = "SapperSkeleton"; diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp index 1a746f38..4c548af5 100644 --- a/Sources/epoch_config/Configs/CfgPricing.hpp +++ b/Sources/epoch_config/Configs/CfgPricing.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Snap check offsets + + 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_config/Configs/CfgPricing.hpp +*/ + class CfgPricing { class ChainSaw {price = 125;}; diff --git a/Sources/epoch_config/Configs/CfgSnapChecks.hpp b/Sources/epoch_config/Configs/CfgSnapChecks.hpp index d6d89148..d699191d 100644 --- a/Sources/epoch_config/Configs/CfgSnapChecks.hpp +++ b/Sources/epoch_config/Configs/CfgSnapChecks.hpp @@ -1,4 +1,18 @@ -// Snap Checks - EpochMod.com +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Snap check offsets + + 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_config/Configs/CfgSnapChecks.hpp +*/ + class CfgSnapChecks { class Hesco3_EPOCH { nails[] = { diff --git a/Sources/epoch_config/Configs/CfgSounds.hpp b/Sources/epoch_config/Configs/CfgSounds.hpp index cb52d75f..5897270f 100644 --- a/Sources/epoch_config/Configs/CfgSounds.hpp +++ b/Sources/epoch_config/Configs/CfgSounds.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + CfgSounds config and CfgSay3Dhandler + + 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_config/Configs/CfgSounds.hpp +*/ + class CfgSounds { class dog_bark @@ -52,6 +67,7 @@ class CfgSounds }; }; +// Custom Epoch config for say3d broadcsting class CfgSay3Dhandler { class snake_bite0 { distance = 100; diff --git a/Sources/epoch_config/Configs/CfgTraderMissions.hpp b/Sources/epoch_config/Configs/CfgTraderMissions.hpp index 041ff1be..b227048f 100644 --- a/Sources/epoch_config/Configs/CfgTraderMissions.hpp +++ b/Sources/epoch_config/Configs/CfgTraderMissions.hpp @@ -1,3 +1,18 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Mission configs and dialogs + + 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_config/Configs/CfgTraderMissions.hpp +*/ + class MissionList{ traderMissionNames[] = {"Mission - Pikes Peak Express","Mission - Animal Control","Mission - Track a Raider","Mission - VIP Chauffeur","What's the time ?","Who is near by ?","What's New ?","What is your name ?"}; traderMissionDisabled[] = {}; @@ -84,11 +99,11 @@ class MissionSelect }; }; class traderMissions { - + class MissionDelivery{ author = "axeman"; missionName = "Pikes Peak Express.";//Not used - + class welcome{ condition = "(false)";//no longer used - button triggers mission dialogue[] = {"Hi, Can you take this item to another trader town. You will be paid well.","I have an important message to get out, take it to any other trader camp for a reward ?"}; @@ -96,7 +111,7 @@ class traderMissions { item[] = {"ItemDocumentMission","ItemDocumentMission"}; action = ""; }; - + class accept{ condition = "(false)";//Decided in code - change to true to default accept mission. dialogue[] = {"Great, now get out of here.. I will keep an eye on you through a drone.","Head toward one of the traders further away. I have a UAV to monitor your progress. Don't let me down !"}; @@ -108,7 +123,7 @@ class traderMissions { item[] = {"",""}; action = ""; }; - + class inmission1{ condition = "(count (player nearEntities [[""Epoch_Male_F"",""Epoch_Female_F"",""C_man_hunter_1_F"",""Epoch_Female_Camo_F""], 150]) > 1)"; dialogue[] = {"Look out, you have other survivors in the area.","Find a place to hide, UAV reports other survivors in your area."}; @@ -116,7 +131,7 @@ class traderMissions { action = ""; frequency = 560; }; - + class inmission2{ condition = "(count (player nearEntities [[""Epoch_Sapper_F"",""Alsatian_Random_EPOCH"",""Epoch_cloak_F"",""Fin_random_EPOCH""], 150]) > 0)"; dialogue[] = {"You have something following you, watch your back..","Keep moving, you have something nearby."}; @@ -124,7 +139,7 @@ class traderMissions { action = ""; frequency = 560; }; - + class inmission3{ condition = "(false)"; dialogue[] = {"",""}; @@ -132,7 +147,7 @@ class traderMissions { action = ""; frequency = 1024; }; - + class completed{ condition = "";//handled in code dialogue[] = {"Well Done, you made it. Let me see the document.", "So, you made it then, congratulations. Now for the message ?"}; @@ -143,48 +158,48 @@ class traderMissions { magazine[] = {"100Rnd_65x39_caseless_mag_Tracer","hatchet_swing"}; item[] = {"RabbitCarcass_EPOCH","ChickenCarcass_EPOCH"}; }; - + class missioncheck{ - + class health{ dialogue[] = {"You look hurt, I am going to inject some adrenaline using your implant.","Hang in there buddy.. Your implant is about to give you a boost."}; dialogue2[] = {"",""}; action = ""; frequency = 60; }; - + class characters{ dialogue[] = {"The drone picks up a mild heat signature nearby, could be a body to loot","Have spotted a prone player near your location, might be worth investigating."}; }; - + class itemlost{ dialogue[] = {"Looks like you've lost the message, are you giving up on me ?","Don't leave that message lying around, it's essential that it arrives."}; dialogue2[] = {"If you are thinking about taking the goods and running I would have a re-think.","I wouldn't run out on me now, the last person who tried didn't get very far !"}; action = ""; }; - + class passed{ dialogue[] = {"So you're taking over this mission. Deliver this message to another trader for a reward.","New blood eh. This document needs delivering to a trader as soon as possible."}; dialogue2[] = {"",""}; action = "hint ""Mission Passed Action.."""; }; - + class abandoned{ condition = "(player distance _trader > 150)"; - dialogue[] = {"You running out with my gear..Not good, not good at all.","Take the gear and run eh ? You were supposed to be delivering a message !"}; + dialogue[] = {"You running out with my gear..Not good, not good at all.","Take the gear and run eh ? You were supposed to be delivering a message !"}; dialogue2[] = {"There's a price to pay for letting me down. Here it comes.","That's the last time you will cheat a trader. We don't take kindly to traitors."}; delay = 60; action = ""; }; - + }; - - + + }; class MissionSapper{ author = "axeman"; missionName = "Animal Control.";//Not used - + class welcome{ condition = "(false)";//no longer used - button triggers mission dialogue[] = {"I need a loose animal in the area capturing. He is known to be a bit wild","A brave survivor I see.. You need to find me a Sapper."}; @@ -192,7 +207,7 @@ class traderMissions { item[] = {"",""}; action = ""; }; - + class accept{ condition = "(true)";//Decided in code - change to true to default accept mission. i.e. Doesn't require the player to be holding welcome item above e.g. dialogue[] = {"Get out there and try and attract a sapper.","On your way then."}; @@ -204,7 +219,7 @@ class traderMissions { item[] = {"",""}; action = ""; }; - + class inmission1{ condition = "((player distance _trader) < 60 && (_sapper distance _trader < 150))"; dialogue[] = {"You need to get him close to me. I need to see the stitchings of his eyes.","I need him closer if I am to catch him. Come on you are nearly there !"}; @@ -212,7 +227,7 @@ class traderMissions { action = ""; frequency = 240; }; - + class inmission2{ condition = "(count (player nearEntities [[""Alsatian_Random_EPOCH"",""Epoch_cloak_F"",""Fin_random_EPOCH"",""Epoch_Male_F"",""Epoch_Female_F""], 250]) > 0)"; dialogue[] = {"The UAV picked up a heat signature. Could be a person..","There is some.. thing in your area. Watch your back."}; @@ -220,7 +235,7 @@ class traderMissions { action = ""; frequency = 560; }; - + class inmission3{ condition = "(count (player nearEntities [[""Epoch_Sapper_F""], 250]) > 0)"; dialogue[] = {"I think we have a target. The UAV picked up an unusual profile in your area.","Well done, you've found one. Now just lure him back to my location."}; @@ -228,7 +243,7 @@ class traderMissions { action = ""; frequency = 360; }; - + class completed{ condition = "";//handled in code dialogue[] = {"Well Done, you made it. Get out of the way. I need to cage this animal.", "Great work, let me deal with this guy first."}; @@ -239,49 +254,49 @@ class traderMissions { magazine[] = {"hatchet_swing","16Rnd_9x21_Mag"}; item[] = {"RabbitCarcass_EPOCH","ChickenCarcass_EPOCH"}; }; - + class missioncheck{ - + class health{ dialogue[] = {"You look hurt, I am going to inject some adrenaline using your implant.","Hang in there buddy.. Your implant is about to give you a boost."}; dialogue2[] = {"",""}; action = ""; frequency = 60; }; - + class characters{ dialogue[] = {"The drone picks up a mild heat signature nearby, could be a body to loot","Have spotted a prone player near your location, might be worth investigating."}; }; - + class itemlost{ dialogue[] = {"Looks like you've lost the message, are you giving up on me ?","Don't leave that message lying around, it's essential that it arrives."}; dialogue2[] = {"If you are thinking about taking the goods and running I would have a re-think.","I wouldn't run out on me now, the last person who tried didn't get very far !"}; action = ""; }; - + class passed{ dialogue[] = {"So you're taking over this mission. Deliver this message to another trader for a reward.","New blood eh. This document needs delivering to a trader as soon as possible."}; dialogue2[] = {"",""}; action = ""; }; - + class abandoned{ condition = "(player distance _trader > 150)"; - dialogue[] = {"You running out with my gear..Not good, not good at all.","Take the gear and run eh ? You were supposed to be delivering a message !"}; + dialogue[] = {"You running out with my gear..Not good, not good at all.","Take the gear and run eh ? You were supposed to be delivering a message !"}; dialogue2[] = {"There's a price to pay for letting me down. Here it comes.","That's the last time you will cheat a trader. We don't take kindly to traitors."}; delay = 60; action = ""; }; - + }; - - + + }; - + class MissionUav{ author = "axeman"; missionName = "Bounty Hunter.";//Not used - + class welcome{ condition = "(false)";//no longer used - button triggers mission dialogue[] = {"I need to top up my coffers with some bounty. You are going to take control of a UAV and find a target for me.","How are your flying skills ? I need you to fly over nearby towns looking for a bounty."}; @@ -289,7 +304,7 @@ class traderMissions { item[] = {"B_UavTerminal","B_UavTerminal"}; action = ""; }; - + class accept{ condition = "(false)";//Decided in code - change to true to default accept mission. i.e. Doesn't require the player to be holding welcome item above e.g. dialogue[] = {"Great, you are ready.I am preparing the UAV, it is outside. Once it is ready you can connect to it.","Splendid, you are a natural. Next, you will then need to connect to my UAV. Go look for it, I am preparing it for flight."}; @@ -301,7 +316,7 @@ class traderMissions { item[] = {"",""}; action = ""; }; - + class inmission1{ condition = "(count (getPos Epoch_mission_uav nearObjects[""Man"",250]) > 1)"; dialogue[] = {"I think you have a target in the area. Keep looking !","The UAV is pinging back heat signatures. You are close, keep looking."}; @@ -309,7 +324,7 @@ class traderMissions { action = ""; frequency = 240; }; - + class inmission2{ condition = "(false)"; dialogue[] = {"",""}; @@ -317,7 +332,7 @@ class traderMissions { action = ""; frequency = 560; }; - + class inmission3{ condition = "(false)"; dialogue[] = {"",""}; @@ -325,7 +340,7 @@ class traderMissions { action = ""; frequency = 360; }; - + class completed{ condition = "";//handled in code dialogue[] = {"That was some nice flying kid. Come back soon.", "Great work, was a pleasure working with you."}; @@ -336,50 +351,50 @@ class traderMissions { magazine[] = {"",""}; item[] = {"",""}; }; - + class missioncheck{ - + class health{ dialogue[] = {"You look hurt, I am going to inject some adrenaline using your implant.","Hang in there buddy.. Your implant is about to give you a boost."}; dialogue2[] = {"",""}; action = ""; frequency = 60; }; - + class characters{ dialogue[] = {"The drone picks up a mild heat signature nearby, could be a body to loot","Have spotted a prone player near your location, might be worth investigating."}; }; - + class itemlost{ dialogue[] = {"Looks like you've lost the message, are you giving up on me ?","Don't leave that message lying around, it's essential that it arrives."}; dialogue2[] = {"If you are thinking about taking the goods and running I would have a re-think.","I wouldn't run out on me now, the last person who tried didn't get very far !"}; action = ""; }; - + class passed{ dialogue[] = {"So you're taking over this mission. Deliver this message to another trader for a reward.","New blood eh. This document needs delivering to a trader as soon as possible."}; dialogue2[] = {"",""}; action = ""; }; - + class abandoned{ condition = ""; - dialogue[] = {"Oh dear, smashing up my gear. Not good at all..","Hmm, do you think those UAVs grown on trees ?"}; + dialogue[] = {"Oh dear, smashing up my gear. Not good at all..","Hmm, do you think those UAVs grown on trees ?"}; dialogue2[] = {"That's going to cost you, watch your back !","I am not happy about that ! Be more careful next time."}; delay = 10; action = ""; }; - + }; - - + + }; - - + + class MissionDriver{ author = "axeman"; missionName = "The Generals Daughter."; - + class welcome{ condition = "(false)"; dialogue[] = {"I have an important delivery for you to make. She needs to arrive safely. Let me see if you need a GPS.","Can you drive ? My friend here needs a lift. Drop this person off to the general. I will make sure you have some equipment"}; @@ -387,7 +402,7 @@ class traderMissions { item[] = {"itemGPS","itemGPS"}; action = ""; }; - + class accept{ condition = "(true)";//Decided in code - change to true to default accept mission. i.e. Doesn't require the player to be holding welcome item above e.g. dialogue[] = {"",""}; @@ -399,28 +414,28 @@ class traderMissions { item[] = {"",""}; action = ""; }; - + class inmission1{ condition = "(count (player nearEntities [[""Epoch_Male_F"",""Epoch_Female_F"",""C_man_hunter_1_F"",""Epoch_Female_Camo_F""], 150]) > 1)"; dialogue[] = {"I think I saw someone.. Over there !","Was that a person ? I think there are survivors here."}; dialogue2[] = {"",""}; action = ""; }; - + class inmission2{ condition = "(count (player nearEntities [[""Epoch_Sapper_F"",""Alsatian_Random_EPOCH"",""Epoch_cloak_F"",""Fin_random_EPOCH""], 150]) > 0)"; dialogue[] = {"I just spotted.. something. It could have been a dog ?","We need to keep moving ! I am sure I just saw some.. thing."}; dialogue2[] = {"",""}; action = ""; }; - + class inmission3{ condition = "(diag_tickTime - _missionTimer > 1200)"; dialogue[] = {"Are we there yet ? If we take too long the boat will be gone.","Are you lost ? Daddy is not a patient man, can we hurry it up please."}; dialogue2[] = {"",""}; action = "_missionTimer = diag_tickTime"; }; - + class completed{ condition = ""; dialogue[] = {"The General has sent us to collect his Daughter. Luckily for you she looks in good health.", "Nice work, you delivered her safely. Thankfully, or the General would not be happy."}; @@ -431,43 +446,43 @@ class traderMissions { magazine[] = {"100Rnd_65x39_caseless_mag_Tracer","spear_magazine"}; item[] = {{"KitTiPi","ItemJade","wolf_mask_epoch","lighter_epoch"},{"KitPlotPole","KitShelf","pkin_mask_epoch","ItemGoldBar"}}; }; - + class missioncheck{ - + class health{ dialogue[] = {"You look hurt, I am not driving myself there.","You are bleeding ! Yuk, don't get blood on my seat."}; dialogue2[] = {"Stop and find some medical supplies ?","Do you want to try and find a bandage or something ?"}; action = ""; frequency = 60; }; - + class characters{ dialogue[] = {"",""}; }; - + class gotout{ dialogue[] = {"Where are you going ?","Are you leaving me here ?"}; dialogue2[] = {"Don't be long, I will wait here.","The heating is on, I am staying here and keeping warm !"}; action = ""; }; - + class passed{ dialogue[] = {"",""}; dialogue2[] = {"",""}; action = ""; }; - + class vehlost{ condition = ""; - dialogue[] = {"Oh dear, that didn't go well. Maybe stop before driving into something next time ?","Nice driving, now what are going to do ?"}; + dialogue[] = {"Oh dear, that didn't go well. Maybe stop before driving into something next time ?","Nice driving, now what are going to do ?"}; dialogue2[] = {"You need to find us another vehicle. I am not walking all the way there.","How are we going to get there now? You had best find another vehicle !"}; delay = 10; action = ""; }; - + }; - - + + }; - + }; diff --git a/Sources/epoch_config/Configs/CfgVehicles.hpp b/Sources/epoch_config/Configs/CfgVehicles.hpp index 5204f69e..5409fbb8 100644 --- a/Sources/epoch_config/Configs/CfgVehicles.hpp +++ b/Sources/epoch_config/Configs/CfgVehicles.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Main CfgVehicles config file + + 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_config/Configs/CfgVehicles.hpp +*/ + class UniformSlotInfo; class CfgVehicles { @@ -19,6 +34,145 @@ class CfgVehicles class HitLegs; }; }; + + + class EPOCH_CAManBase: CAManBase + { + class HitPoints: HitPoints + { + class HitFace: HitHead + { + armor = 1; // Keep constant so that the hit point armor remains on the same scale + material = -1; + name = "face_hub"; // Selection name + passThrough = 0.1; // Damage resistance + radius = 0.08; + explosionShielding = 0.1; // Protection against explosive damage + minimalHit = 0.01; // Minimal damage value that can be applied + } + class HitNeck: HitFace + { + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; + } + class HitHead: HitNeck + { + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; // Returns the greater of HitFace and HitNeck. + }; + class HitPelvis: HitBody + { + armor = 1; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + } + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; //not supposed to take damage directly + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.16; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms: HitHands + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs: HitLegs + { + armor = 1; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; + }; + }; + + armor= 2;//keep constant so that the hit point armor remains on the same scale + armorStructural= 0.4;// [*] must be adjusted for each model to achieve consistent total damage results + explosionShielding = 0.04;// [*] for consistent explosive damage after adjusting = ( armorStructural / 10 ) + minTotalDamageThreshold = 0.001;//minimalHit for total damage + impactDamageMultiplier= 0.5;//multiplier for falling damage + // * adjusted for each model + }; + + + class CAManBase2: CAManBase { author = "$STR_A3_Bohemia_Interactive"; @@ -75,37 +229,115 @@ class CfgVehicles ISanimMod[] = {0.03,0.06,0.04}; class HitPoints { - class HitHead + class HitFace + { + armor = 1; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; + }; + class HitNeck: HitFace + { + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; + }; + class HitHead: HitNeck { armor = 1; material = -1; name = "head"; - passThrough = 1; - radius = 0.1; + passThrough = 0.1; + radius = 0.2; explosionShielding = 0.5; - minimalHit = 0; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; }; - class HitBody + class HitPelvis { armor = 1; material = -1; - name = "body"; - passThrough = 1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; radius = 0.15; explosionShielding = 6; visual = "injury_body"; - minimalHit = 0; + minimalHit = 0.01; }; - class HitHands + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.16; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms { armor = 1; material = -1; name = "hands"; passThrough = 1; - radius = 0.08; + radius = 0.1; explosionShielding = 1; visual = "injury_hands"; - minimalHit = 0; + minimalHit = 0.01; + depends = "HitArms"; }; class HitLegs { @@ -113,10 +345,10 @@ class CfgVehicles material = -1; name = "legs"; passThrough = 1; - radius = 0.1; + radius = 0.12; explosionShielding = 1; visual = "injury_legs"; - minimalHit = 0; + minimalHit = 0.01; }; }; armor = 2; @@ -398,6 +630,14 @@ class CfgVehicles { armor = 2; }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + }; accuracy = 1.6; camouflage = 1.2; @@ -418,6 +658,8 @@ class CfgVehicles secondaryAmmoCoef = 0.0; handgunAmmoCoef = 0.0; }; + + class Civilian: CAManBase { class SpeechVariants @@ -436,23 +678,128 @@ class CfgVehicles side = 3; scope = 0; displayName = "$STR_DN_CIVILIAN"; - class HitPoints: HitPoints + class HitPoints { - class HitHead: HitHead + class HitFace { armor = 1; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; }; - class HitBody: HitBody + class HitNeck: HitFace { - armor = 2; + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; }; - class HitHands: HitHands + class HitHead: HitNeck { - armor = 2; + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; }; - class HitLegs: HitLegs + class HitPelvis { - armor = 2; + armor = 1; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.16; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 1; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; }; }; accuracy = 1.6; @@ -587,892 +934,11 @@ class CfgVehicles respawnLinkedItems[] = { "V_24_EPOCH", "H_89_EPOCH", "ItemMap", "ItemCompass", "ItemWatch", "EpochRadio0" }; }; - class B_Soldier_base_F; - class Epoch_Female_base_F : B_Soldier_base_F - { - identityTypes[] = { "Woman", "NoGlasses" }; + #include "CfgVehicles\Players.hpp" + #include "CfgVehicles\Antagonists.hpp" - faceType = "Man_A3"; - woman = 1; - side = 1; - engineer = 1; - vehicleClass = "Women"; - scope = 0; + #include "CfgVehicles\Fixes.hpp" - // fix and normalize base classes - cost = 40000; - headgearProbability = 100; - allowedHeadgear[] = {}; - class HitPoints - { - class HitHead - { - armor = 1; - material = -1; - name = "head"; - passThrough = 1; - radius = 0.1; - explosionShielding = 0.5; - minimalHit = 0; - }; - class HitBody - { - armor = 1; - material = -1; - name = "body"; - passThrough = 1; - radius = 0.15; - explosionShielding = 10; - visual = "injury_body"; - minimalHit = 0; - }; - class HitHands - { - armor = 1; - material = -1; - name = "hands"; - passThrough = 1; - radius = 0.08; - explosionShielding = 1; - visual = "injury_hands"; - minimalHit = 0; - }; - class HitLegs - { - armor = 1; - material = -1; - name = "legs"; - passThrough = 1; - radius = 0.1; - explosionShielding = 1; - visual = "injury_legs"; - minimalHit = 0; - }; - }; - armor = 2; - armorStructural = 5; - - class Wounds - { - tex[] = {}; - mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; - }; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Keesha_character.p3d"; - modelSides[] = {1}; - nakedUniform = "U_BasicBodyFemale"; - uniformClass = "U_Test_uniform"; - weapons[] = {"Throw","Put"}; - respawnWeapons[] = {"Throw","Put"}; - Items[] = {}; - RespawnItems[] = {}; - magazines[] = {}; - respawnMagazines[] = {}; - linkedItems[] = { "V_F41_EPOCH", "ItemMap"}; - respawnLinkedItems[] = { "V_F41_EPOCH", "ItemMap" }; - }; - - - - class Underwear_F; - class FemaleUnderwear_F: Underwear_F - { - author = "Epoch"; - _generalMacro = "FemaleUnderwear_F"; - scope = 1; - scopeCurator = 0; - displayName = "TEST: Underwear"; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Keesha_character.p3d"; - uniformClass = "U_BasicBodyFemale"; - weapons[] = {}; - magazines[] = {}; - respawnWeapons[] = {}; - respawnMagazines[] = {}; - }; - - - class Epoch_Female_wetsuit_F : Epoch_Female_base_F - { - faceType = "Man_A3"; - woman = 1; - side = 1; - engineer = 1; - vehicleClass = "Women"; - displayName = "Female Wetsuit"; - scope = 2; - - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_co.paa" }; - - class Wounds - { - tex[] = {}; - mat[] = { "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat" }; - }; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Female_WetSuit.p3d"; - - hiddenUnderwaterSelections[] = { "hide" }; - shownUnderwaterSelections[] = { "unhide", "unhide2" }; - - hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_co.paa", "\A3\characters_f\data\visors_ca.paa" }; - - modelSides[] = {1}; - nakedUniform = "U_BasicBodyFemale"; - uniformClass = "U_Wetsuit_uniform"; - weapons[] = {"Throw","Put"}; - respawnWeapons[] = {"Throw","Put"}; - Items[] = {}; - RespawnItems[] = {}; - magazines[] = {}; - respawnMagazines[] = {}; - - primaryAmmoCoef = 0.4; - secondaryAmmoCoef = 0.1; - handgunAmmoCoef = 0.2; - - // O_Soldier_diver_base_F - class HitPoints: HitPoints - { - class HitHead: HitHead - { - armor = 2; - }; - class HitBody: HitBody - { - armor = 2; - }; - class HitHands: HitHands - { - armor = 2; - }; - class HitLegs: HitLegs - { - armor = 2; - }; - }; - armor = 2; - armorStructural = 5; - - // O_Soldier_base_F - sensitivity = 3; - threat[] = {1,0.1,0.1}; - camouflage = 1.4; - - }; - class Epoch_Female_wetsuitW_F : Epoch_Female_wetsuit_F - { - displayName = "Female Wetsuit (white)"; - scope = 2; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite_co.paa" }; - hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite.rvmat" }; - - class Wounds - { - tex[] = {}; - mat[] = { "x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat" }; - }; - - modelSides[] = { 1 }; - uniformClass = "U_Wetsuit_White"; - hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite_co.paa", "\A3\characters_f\data\visors_ca.paa" }; - - }; - class Epoch_Female_wetsuitB_F : Epoch_Female_wetsuit_F - { - displayName = "Female Wetsuit (blue)"; - scope = 2; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitBlue_co.paa" }; - modelSides[] = { 1 }; - uniformClass = "U_Wetsuit_Blue"; - hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitBlue_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitBlue_co.paa", "\A3\characters_f\data\visors_ca.paa" }; - }; - class Epoch_Female_wetsuitP_F : Epoch_Female_wetsuit_F - { - displayName = "Female Wetsuit (purple)"; - scope = 2; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitPurp_co.paa" }; - modelSides[] = { 1 }; - uniformClass = "U_Wetsuit_Purp"; - hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitPurp_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitPurp_co.paa", "\A3\characters_f\data\visors_ca.paa" }; - }; - class Epoch_Female_wetsuitC_F : Epoch_Female_wetsuit_F - { - displayName = "Female Wetsuit (camo)"; - scope = 2; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitCamo_co.paa" }; - modelSides[] = { 1 }; - uniformClass = "U_Wetsuit_Camo"; - hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitCamo_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitCamo_co.paa", "\A3\characters_f\data\visors_ca.paa" }; - - camouflage = 1.0; - }; - - class Epoch_Female_Ghillie1_F : Epoch_Female_base_F - { - displayName = "Female Ghillie (tan)"; - scope = 2; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_ghillie.p3d"; - - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\a3\characters_f\common\data\ghillie_3_ca.paa" }; - // hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; - - modelSides[] = { 1 }; - uniformClass = "U_ghillie1_uniform"; - - // O_Soldier_sniper_base_F - primaryAmmoCoef = 0.2; - secondaryAmmoCoef = 0.05; - handgunAmmoCoef = 0.1; - - // O_Soldier_base_F - class HitPoints: HitPoints - { - class HitHead: HitHead - { - armor = 1; - passThrough = 1; - explosionShielding = 0.5; - }; - class HitBody: HitBody - { - armor = 6; - passThrough = 0.5; - explosionShielding = 1.5; - }; - class HitHands: HitHands - { - armor = 8; - passThrough = 0.5; - explosionShielding = 0.8; - }; - class HitLegs: HitLegs - { - armor = 8; - passThrough = 0.5; - explosionShielding = 0.8; - }; - }; - armor = 2; - armorStructural = 5; - - // O_sniper_F - threat[] = {1,0.6,0.6}; - camouflage = 0.4; - sensitivity = 3.3; - }; - class Epoch_Female_Ghillie2_F : Epoch_Female_Ghillie1_F - { - displayName = "Female Ghillie (light green)"; - scope = 2; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_ghillie.p3d"; - - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\a3\characters_f\common\data\ghillie_2_ca.paa" }; - // hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; - - modelSides[] = { 1 }; - uniformClass = "U_ghillie2_uniform"; - }; - class Epoch_Female_Ghillie3_F : Epoch_Female_Ghillie1_F - { - displayName = "Female Ghillie (green)"; - scope = 2; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_ghillie.p3d"; - - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\a3\characters_f\common\data\ghillie_1_ca.paa" }; - // hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; - - modelSides[] = { 1 }; - uniformClass = "U_ghillie3_uniform"; - }; - - class Epoch_Female_Camo_F : Epoch_Female_base_F - { - displayName = "Female Camo"; - scope = 2; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoDark_co.paa" }; - hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; - - class Wounds - { - tex[] = {}; - mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; - }; - - modelSides[] = { 1 }; - uniformClass = "U_Camo_uniform"; - - }; - class Epoch_Female_CamoBlue_F : Epoch_Female_Camo_F - { - displayName = "Female Camo (Blue)"; - scope = 2; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoBlue_co.paa" }; - hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoBlue.rvmat" }; - - class Wounds - { - tex[] = {}; - mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoBlue.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; - }; - - modelSides[] = { 1 }; - uniformClass = "U_CamoBlue_uniform"; - }; - class Epoch_Female_CamoBrn_F : Epoch_Female_Camo_F - { - displayName = "Female Camo (Brown)"; - scope = 2; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoBrown_co.paa" }; - hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoBrown.rvmat" }; - - class Wounds - { - tex[] = {}; - mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoBrown.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; - }; - - modelSides[] = { 1 }; - uniformClass = "U_CamoBrn_uniform"; - }; - class Epoch_Female_CamoRed_F : Epoch_Female_Camo_F - { - displayName = "Female Camo (Red)"; - scope = 2; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; - hiddenSelections[] = { "Camo" }; - hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoRed_co.paa" }; - hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoRed.rvmat" }; - - class Wounds - { - tex[] = {}; - mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoRed.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; - }; - - modelSides[] = { 1 }; - uniformClass = "U_CamoRed_uniform"; - }; - - class O_Soldier_base_F; - class Epoch_Man_base_F : O_Soldier_base_F - { - identityTypes[] = { "Kerry", "NoGlasses" }; - - faceType = "Man_A3"; - side = 0; - vehicleClass = "Men"; - engineer = 1; - scope = 0; - class Wounds - { - tex[] = {}; - mat[] = {"A3\Characters_F\Common\Data\basicbody.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat"}; - }; - model = "\A3\Characters_F\Common\basicbody"; - modelSides[] = {0}; - nakedUniform = "U_BasicBody"; - uniformClass = "U_Test1_uniform"; - weapons[] = {"Throw","Put"}; - respawnWeapons[] = {"Throw","Put"}; - Items[] = {}; - RespawnItems[] = {}; - magazines[] = {}; - respawnMagazines[] = {}; - linkedItems[] = { "V_41_EPOCH", "ItemMap" }; - respawnLinkedItems[] = { "V_41_EPOCH", "ItemMap" }; - - // fix and normalize base classes - cost = 40000; - headgearProbability = 100; - allowedHeadgear[] = {}; - class HitPoints - { - class HitHead - { - armor = 1; - material = -1; - name = "head"; - passThrough = 1; - radius = 0.1; - explosionShielding = 0.5; - minimalHit = 0; - }; - class HitBody - { - armor = 1; - material = -1; - name = "body"; - passThrough = 1; - radius = 0.15; - explosionShielding = 10; - visual = "injury_body"; - minimalHit = 0; - }; - class HitHands - { - armor = 1; - material = -1; - name = "hands"; - passThrough = 1; - radius = 0.08; - explosionShielding = 1; - visual = "injury_hands"; - minimalHit = 0; - }; - class HitLegs - { - armor = 1; - material = -1; - name = "legs"; - passThrough = 1; - radius = 0.1; - explosionShielding = 1; - visual = "injury_legs"; - minimalHit = 0; - }; - }; - armor = 2; - armorStructural = 5; - - - }; - class Epoch_Char_base_F : Civilian - { - faceType = "Man_A3"; - side = 4; - faction = "CIV_F"; - genericNames = "GreekMen"; - vehicleClass = "Men"; - scope = 0; - class Wounds - { - tex[] = {}; - mat[] = { "A3\Characters_F\Common\Data\basicbody.rvmat", "A3\Characters_F\Common\Data\basicbody_injury.rvmat", "A3\Characters_F\Common\Data\basicbody_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_bald_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_black_bald_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_hairy_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_old.rvmat", "A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat", "A3\Characters_F\Heads\Data\hl_asian_bald_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat" }; - }; - model = "\A3\Characters_F\Common\basicbody"; - modelSides[] = {4}; - //nakedUniform = "U_Char_uniform"; - //uniformClass = "U_Char_uniform"; - class UniformInfo - { - class SlotsInfo - { - class NVG : UniformSlotInfo - { - slotType = 602; - }; - class Scuba : UniformSlotInfo - { - slotType = "SCUBA_SLOT"; - }; - class Googles : UniformSlotInfo - { - slotType = 603; - }; - class Headgear : UniformSlotInfo - { - slotType = 605; - }; - }; - }; - class HitPoints : HitPoints - { - class HitHead : HitHead - { - armor = "0.3*2.5"; - }; - class HitBody : HitBody - { - armor = "0.5*10"; - }; - class HitHands : HitHands - { - armor = "0.8*5"; - }; - class HitLegs : HitLegs - { - armor = "0.8*5"; - }; - }; - weapons[] = { "Throw", "Put" }; - respawnWeapons[] = { "Throw", "Put" }; - Items[] = {}; - RespawnItems[] = {}; - magazines[] = {}; - respawnMagazines[] = {}; - linkedItems[] = {}; - respawnLinkedItems[] = {}; - }; - class Epoch_Sapper_base_F: Civilian2 - { - faceType = "Default"; - side = 4; - faction = "CIV_F"; - genericNames = "GreekMen"; - vehicleClass = "Men"; - scope = 0; - class Wounds - { - tex[] = {}; - mat[] = {"A3\Characters_F\Common\Data\basicbody.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat"}; - }; - model = "\A3\Characters_F\Common\basicbody"; - modelSides[] = {4}; - //nakedUniform = "U_Sapper_uniform"; - //uniformClass = "U_Sapper_uniform"; - class UniformInfo - { - class SlotsInfo - { - class NVG: UniformSlotInfo - { - slotType = 602; - }; - class Scuba: UniformSlotInfo - { - slotType = "SCUBA_SLOT"; - }; - class Googles: UniformSlotInfo - { - slotType = 603; - }; - class Headgear: UniformSlotInfo - { - slotType = 605; - }; - }; - }; - class HitPoints: HitPoints - { - class HitHead: HitHead - { - armor = "0.3*2.5"; - }; - class HitBody: HitBody - { - armor = "0.5*10"; - }; - class HitHands: HitHands - { - armor = "0.8*5"; - }; - class HitLegs: HitLegs - { - armor = "0.8*5"; - }; - }; - weapons[] = {"Throw","Put"}; - respawnWeapons[] = {"Throw","Put"}; - Items[] = {}; - RespawnItems[] = {}; - magazines[] = {}; - respawnMagazines[] = {}; - linkedItems[] = {}; - respawnLinkedItems[] = {}; - }; - class Epoch_Female_F: Epoch_Female_base_F - { - woman = 1; - scope = 2; - displayName = "Female"; - interactMode = 2; - }; - class Epoch_Male_F: Epoch_Man_base_F - { - scope = 2; - displayName = "Male"; - interactMode = 2; - }; - class Epoch_Cloak_F : Epoch_Char_base_F - { - scope = 2; - faceType = "Default"; - displayName = "Cloak"; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Cloak_Character.p3d"; - glassesEnabled = 0; - modelSides[] = {6}; - armor = 10; - armorStructural = 20; - class HitPoints : HitPoints - { - class HitHead : HitHead - { - armor = 10; - }; - class HitBody : HitBody - { - armor = 10; - }; - class HitHands : HitHands - { - armor = 10; - }; - class HitLegs : HitLegs - { - armor = 10; - }; - }; - }; - class Epoch_Sapper_F: Epoch_Sapper_base_F - { - scope = 2; - faceType = "Default"; - displayName = "Sapper"; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Sapper_Character.p3d"; - hiddenSelections[] = {"sapper","remains"}; - hiddenSelectionsTextures[] = {"x\addons\a3_epoch_assets\textures\sapper\sapper_eco.paa",""}; - glassesEnabled = 0; - modelSides[] = {6}; - armor = 6; - armorStructural = 13; - - magazines[] = {}; - respawnMagazines[] = {}; - - class HitPoints : HitPoints - { - class HitHead : HitHead - { - armor = 4; - }; - class HitBody : HitBody - { - armor = 7; - }; - class HitHands : HitHands - { - armor = 1000; - }; - class HitLegs : HitLegs - { - armor = 9; - }; - }; - }; - class Epoch_SapperB_F : Epoch_Sapper_base_F - { - scope = 2; - faceType = "Default"; - displayName = "Sapper (Bloated)"; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Sapper_Bloated.p3d"; - //hiddenSelections[] = { "sapper", "remains" }; - //hiddenSelectionsTextures[] = { "x\addons\a3_epoch_assets\textures\sapper\sapper_eco.paa", "" }; - glassesEnabled = 0; - modelSides[] = { 6 }; - armor = 9; - armorStructural = 13; - - magazines[] = {}; - respawnMagazines[] = {}; - - class HitPoints : HitPoints - { - class HitHead : HitHead - { - armor = 4; - }; - class HitBody : HitBody - { - armor = 7; - }; - class HitHands : HitHands - { - armor = 1000; - }; - class HitLegs : HitLegs - { - armor = 9; - }; - }; - }; - - /* - class Epoch_Ent_Small_F : Epoch_Char_base_F - { - scope = 2; - faceType = "Default"; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Elemental_Small.p3d"; - displayName = "Ent (small)"; - glassesEnabled = 0; - modelSides[] = {6}; - class HitPoints: HitPoints - { - class HitHead: HitHead - { - armor = 100; - }; - class HitBody: HitBody - { - armor = 200; - }; - class HitHands: HitHands - { - armor = 200; - }; - class HitLegs: HitLegs - { - armor = 200; - }; - }; - }; - class Epoch_Ent_Med_F : Epoch_Char_base_F - { - scope = 2; - faceType = "Default"; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Elemental_Med.p3d"; - displayName = "Ent (medium)"; - extCameraPosition[] = {0,1.5,-9}; - glassesEnabled = 0; - modelSides[] = {6}; - class HitPoints: HitPoints - { - class HitHead: HitHead - { - armor = 200; - }; - class HitBody: HitBody - { - armor = 300; - }; - class HitHands: HitHands - { - armor = 300; - }; - class HitLegs: HitLegs - { - armor = 300; - }; - }; - }; - class Epoch_Ent_Large_F : Epoch_Char_base_F - { - scope = 2; - faceType = "Default"; - model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Elemental_Large.p3d"; - displayName = "Ent (large)"; - extCameraPosition[] = {0,1.5,-18}; - glassesEnabled = 0; - modelSides[] = {6}; - class HitPoints: HitPoints - { - class HitHead: HitHead - { - armor = 250; - }; - class HitBody: HitBody - { - armor = 500; - }; - class HitHands: HitHands - { - armor = 500; - }; - class HitLegs: HitLegs - { - armor = 500; - }; - }; - }; - */ - class House; - class House_F: House - { - class DestructionEffects; - }; - class House_Small_F; - class Ruins_F; - - class PowerLines_base_F : House_F - { - mapSize = 2.35; - author = "$STR_A3_Bohemia_Interactive"; - _generalMacro = "PowerLines_base_F"; - scope = 0; - scopeCurator = 0; - displayName = ""; - model = "\A3\Weapons_F\empty.p3d"; - vehicleClass = "Structures_Infrastructure"; - cost = 100; - compatibleWires[] = {}; - class EventHandlers - { - killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\PowerLines\Scripts\column_ruins.sqf""};"; - }; - }; - - class PowerLines_Small_base_F : House_Small_F - { - mapSize = 2.79; - author = "$STR_A3_Bohemia_Interactive"; - _generalMacro = "PowerLines_Small_base_F"; - scope = 0; - scopeCurator = 0; - displayName = ""; - model = "\A3\Weapons_F\empty.p3d"; - vehicleClass = "Structures_Infrastructure"; - compatibleWires[] = {}; - cost = 100; - class EventHandlers - { - killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\PowerLines\Scripts\column_ruins.sqf""};"; - }; - }; - - class Land_Communication_anchor_F : House_F - { - mapSize = 9.73; - author = "$STR_A3_Bohemia_Interactive"; - _generalMacro = "Land_Communication_anchor_F"; - scope = 1; - scopeCurator = 2; - displayName = "$STR_A3_CfgVehicles_Land_Communication_anchor_F0"; - model = "\A3\Structures_F\Ind\Transmitter_Tower\Communication_anchor_F.p3d"; - vehicleClass = "Structures_Infrastructure"; - class DestructionEffects - { - class DestroyPhase1 - { - simulation = "destroy"; - type = "DelayedDestruction"; - lifeTime = 1; - position = ""; - intensity = 1; - interval = 1; - }; - }; - class EventHandlers - { - killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\Transmitter_Tower\Scripts\anchor_ruins.sqf""};"; - }; - }; - class Land_Communication_F : House_F - { - mapSize = 4.53; - author = "$STR_A3_Bohemia_Interactive"; - _generalMacro = "Land_Communication_F"; - scope = 1; - scopeCurator = 2; - displayName = "$STR_A3_CfgVehicles_Land_Communication_F0"; - model = "\A3\Structures_F\Ind\Transmitter_Tower\Communication_F.p3d"; - vehicleClass = "Structures_Infrastructure"; - cost = 40000; - class EventHandlers - { - killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\Transmitter_Tower\Scripts\tower_ruins.sqf""};"; - }; - }; class Car; class Car_F: Car diff --git a/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp b/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp new file mode 100644 index 00000000..e7af8825 --- /dev/null +++ b/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp @@ -0,0 +1,382 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Antagonist Configs + + 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_config/Configs/CfgVehicles/Antagonists.hpp +*/ + + +class Epoch_Char_base_F : Civilian +{ + faceType = "Man_A3"; + side = 4; + faction = "CIV_F"; + genericNames = "GreekMen"; + vehicleClass = "Men"; + scope = 0; + class Wounds + { + tex[] = {}; + mat[] = { "A3\Characters_F\Common\Data\basicbody.rvmat", "A3\Characters_F\Common\Data\basicbody_injury.rvmat", "A3\Characters_F\Common\Data\basicbody_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_bald_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_black_bald_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_hairy_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_old.rvmat", "A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat", "A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat", "A3\Characters_F\Heads\Data\hl_asian_bald_muscular.rvmat", "A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat", "A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat" }; + }; + model = "\A3\Characters_F\Common\basicbody"; + modelSides[] = {4}; + //nakedUniform = "U_Char_uniform"; + //uniformClass = "U_Char_uniform"; + class UniformInfo + { + class SlotsInfo + { + class NVG : UniformSlotInfo + { + slotType = 602; + }; + class Scuba : UniformSlotInfo + { + slotType = "SCUBA_SLOT"; + }; + class Googles : UniformSlotInfo + { + slotType = 603; + }; + class Headgear : UniformSlotInfo + { + slotType = 605; + }; + }; + }; + class HitPoints : HitPoints + { + class HitHead : HitHead + { + armor = "0.3*2.5"; + }; + class HitBody : HitBody + { + armor = "0.5*10"; + }; + class HitHands : HitHands + { + armor = "0.8*5"; + }; + class HitLegs : HitLegs + { + armor = "0.8*5"; + }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + + }; + weapons[] = { "Throw", "Put" }; + respawnWeapons[] = { "Throw", "Put" }; + Items[] = {}; + RespawnItems[] = {}; + magazines[] = {}; + respawnMagazines[] = {}; + linkedItems[] = {}; + respawnLinkedItems[] = {}; +}; +class Epoch_Sapper_base_F: Civilian2 +{ + faceType = "Default"; + side = 4; + faction = "CIV_F"; + genericNames = "GreekMen"; + vehicleClass = "Men"; + scope = 0; + class Wounds + { + tex[] = {}; + mat[] = {"A3\Characters_F\Common\Data\basicbody.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat"}; + }; + model = "\A3\Characters_F\Common\basicbody"; + modelSides[] = {4}; + //nakedUniform = "U_Sapper_uniform"; + //uniformClass = "U_Sapper_uniform"; + class UniformInfo + { + class SlotsInfo + { + class NVG: UniformSlotInfo + { + slotType = 602; + }; + class Scuba: UniformSlotInfo + { + slotType = "SCUBA_SLOT"; + }; + class Googles: UniformSlotInfo + { + slotType = 603; + }; + class Headgear: UniformSlotInfo + { + slotType = 605; + }; + }; + }; + class HitPoints: HitPoints + { + class HitHead: HitHead + { + armor = "0.3*2.5"; + }; + class HitBody: HitBody + { + armor = "0.5*10"; + }; + class HitHands: HitHands + { + armor = "0.8*5"; + }; + class HitLegs: HitLegs + { + armor = "0.8*5"; + }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + + }; + weapons[] = {"Throw","Put"}; + respawnWeapons[] = {"Throw","Put"}; + Items[] = {}; + RespawnItems[] = {}; + magazines[] = {}; + respawnMagazines[] = {}; + linkedItems[] = {}; + respawnLinkedItems[] = {}; +}; + +class Epoch_Cloak_F : Epoch_Char_base_F +{ + scope = 2; + faceType = "Default"; + displayName = "Cloak"; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Cloak_Character.p3d"; + glassesEnabled = 0; + modelSides[] = {6}; + armor = 10; + armorStructural = 20; + class HitPoints : HitPoints + { + class HitHead : HitHead + { + armor = 10; + }; + class HitBody : HitBody + { + armor = 10; + }; + class HitHands : HitHands + { + armor = 10; + }; + class HitLegs : HitLegs + { + armor = 10; + }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + + }; +}; +class Epoch_Sapper_F: Epoch_Sapper_base_F +{ + scope = 2; + faceType = "Default"; + displayName = "Sapper"; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Sapper_Character.p3d"; + hiddenSelections[] = {"sapper","remains"}; + hiddenSelectionsTextures[] = {"x\addons\a3_epoch_assets\textures\sapper\sapper_eco.paa",""}; + glassesEnabled = 0; + modelSides[] = {6}; + armor = 6; + armorStructural = 13; + + magazines[] = {}; + respawnMagazines[] = {}; + + class HitPoints : HitPoints + { + class HitHead : HitHead + { + armor = 4; + }; + class HitBody : HitBody + { + armor = 7; + }; + class HitHands : HitHands + { + armor = 1000; + }; + class HitLegs : HitLegs + { + armor = 9; + }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + + }; +}; +class Epoch_SapperB_F : Epoch_Sapper_base_F +{ + scope = 2; + faceType = "Default"; + displayName = "Sapper (Bloated)"; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Sapper_Bloated.p3d"; + //hiddenSelections[] = { "sapper", "remains" }; + //hiddenSelectionsTextures[] = { "x\addons\a3_epoch_assets\textures\sapper\sapper_eco.paa", "" }; + glassesEnabled = 0; + modelSides[] = { 6 }; + armor = 9; + armorStructural = 13; + + magazines[] = {}; + respawnMagazines[] = {}; + + class HitPoints : HitPoints + { + class HitHead : HitHead + { + armor = 4; + }; + class HitBody : HitBody + { + armor = 7; + }; + class HitHands : HitHands + { + armor = 1000; + }; + class HitLegs : HitLegs + { + armor = 9; + }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + + }; +}; + +/* +class Epoch_Ent_Small_F : Epoch_Char_base_F +{ + scope = 2; + faceType = "Default"; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Elemental_Small.p3d"; + displayName = "Ent (small)"; + glassesEnabled = 0; + modelSides[] = {6}; + class HitPoints: HitPoints + { + class HitHead: HitHead + { + armor = 100; + }; + class HitBody: HitBody + { + armor = 200; + }; + class HitHands: HitHands + { + armor = 200; + }; + class HitLegs: HitLegs + { + armor = 200; + }; + }; +}; +class Epoch_Ent_Med_F : Epoch_Char_base_F +{ + scope = 2; + faceType = "Default"; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Elemental_Med.p3d"; + displayName = "Ent (medium)"; + extCameraPosition[] = {0,1.5,-9}; + glassesEnabled = 0; + modelSides[] = {6}; + class HitPoints: HitPoints + { + class HitHead: HitHead + { + armor = 200; + }; + class HitBody: HitBody + { + armor = 300; + }; + class HitHands: HitHands + { + armor = 300; + }; + class HitLegs: HitLegs + { + armor = 300; + }; + }; +}; +class Epoch_Ent_Large_F : Epoch_Char_base_F +{ + scope = 2; + faceType = "Default"; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Elemental_Large.p3d"; + displayName = "Ent (large)"; + extCameraPosition[] = {0,1.5,-18}; + glassesEnabled = 0; + modelSides[] = {6}; + class HitPoints: HitPoints + { + class HitHead: HitHead + { + armor = 250; + }; + class HitBody: HitBody + { + armor = 500; + }; + class HitHands: HitHands + { + armor = 500; + }; + class HitLegs: HitLegs + { + armor = 500; + }; + }; +}; +*/ diff --git a/Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp b/Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp new file mode 100644 index 00000000..eeff60c6 --- /dev/null +++ b/Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp @@ -0,0 +1,102 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Fixes to remove global exec of killed eh payload on map objects. Update: 12/4/2015 still needed as of 1.54 + + 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_config/Configs/CfgVehicles/Fixes.hpp +*/ + +class House; +class House_F: House +{ + class DestructionEffects; +}; +class House_Small_F; +class Ruins_F; + +class PowerLines_base_F : House_F +{ + mapSize = 2.35; + author = "$STR_A3_Bohemia_Interactive"; + _generalMacro = "PowerLines_base_F"; + scope = 0; + scopeCurator = 0; + displayName = ""; + model = "\A3\Weapons_F\empty.p3d"; + vehicleClass = "Structures_Infrastructure"; + cost = 100; + compatibleWires[] = {}; + class EventHandlers + { + killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\PowerLines\Scripts\column_ruins.sqf""};"; + }; +}; + +class PowerLines_Small_base_F : House_Small_F +{ + mapSize = 2.79; + author = "$STR_A3_Bohemia_Interactive"; + _generalMacro = "PowerLines_Small_base_F"; + scope = 0; + scopeCurator = 0; + displayName = ""; + model = "\A3\Weapons_F\empty.p3d"; + vehicleClass = "Structures_Infrastructure"; + compatibleWires[] = {}; + cost = 100; + class EventHandlers + { + killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\PowerLines\Scripts\column_ruins.sqf""};"; + }; +}; + +class Land_Communication_anchor_F : House_F +{ + mapSize = 9.73; + author = "$STR_A3_Bohemia_Interactive"; + _generalMacro = "Land_Communication_anchor_F"; + scope = 1; + scopeCurator = 2; + displayName = "$STR_A3_CfgVehicles_Land_Communication_anchor_F0"; + model = "\A3\Structures_F\Ind\Transmitter_Tower\Communication_anchor_F.p3d"; + vehicleClass = "Structures_Infrastructure"; + class DestructionEffects + { + class DestroyPhase1 + { + simulation = "destroy"; + type = "DelayedDestruction"; + lifeTime = 1; + position = ""; + intensity = 1; + interval = 1; + }; + }; + class EventHandlers + { + killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\Transmitter_Tower\Scripts\anchor_ruins.sqf""};"; + }; +}; +class Land_Communication_F : House_F +{ + mapSize = 4.53; + author = "$STR_A3_Bohemia_Interactive"; + _generalMacro = "Land_Communication_F"; + scope = 1; + scopeCurator = 2; + displayName = "$STR_A3_CfgVehicles_Land_Communication_F0"; + model = "\A3\Structures_F\Ind\Transmitter_Tower\Communication_F.p3d"; + vehicleClass = "Structures_Infrastructure"; + cost = 40000; + class EventHandlers + { + killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\Transmitter_Tower\Scripts\tower_ruins.sqf""};"; + }; +}; diff --git a/Sources/epoch_config/Configs/CfgVehicles/Players.hpp b/Sources/epoch_config/Configs/CfgVehicles/Players.hpp new file mode 100644 index 00000000..b1e66d5f --- /dev/null +++ b/Sources/epoch_config/Configs/CfgVehicles/Players.hpp @@ -0,0 +1,674 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Player Configs + + 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_config/Configs/CfgVehicles/Players.hpp +*/ + +class B_Soldier_base_F; +class Epoch_Female_base_F : B_Soldier_base_F +{ + identityTypes[] = { "Woman", "NoGlasses" }; + + faceType = "Man_A3"; + woman = 1; + side = 1; + engineer = 1; + vehicleClass = "Women"; + scope = 0; + + // fix and normalize base classes + cost = 40000; + headgearProbability = 100; + allowedHeadgear[] = {}; + class HitPoints + { + class HitFace + { + armor = 1; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; + }; + class HitNeck: HitFace + { + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; + }; + class HitHead: HitNeck + { + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; + }; + class HitPelvis + { + armor = 1; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.16; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 1; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; + }; + }; + + armor = 2; + armorStructural = 5; + + class Wounds + { + tex[] = {}; + mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; + }; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Keesha_character.p3d"; + modelSides[] = {1}; + nakedUniform = "U_BasicBodyFemale"; + uniformClass = "U_Test_uniform"; + weapons[] = {"Throw","Put"}; + respawnWeapons[] = {"Throw","Put"}; + Items[] = {}; + RespawnItems[] = {}; + magazines[] = {}; + respawnMagazines[] = {}; + linkedItems[] = { "V_F41_EPOCH", "ItemMap"}; + respawnLinkedItems[] = { "V_F41_EPOCH", "ItemMap" }; +}; + +class Underwear_F; +class FemaleUnderwear_F: Underwear_F +{ + author = "Epoch"; + _generalMacro = "FemaleUnderwear_F"; + scope = 1; + scopeCurator = 0; + displayName = "TEST: Underwear"; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Keesha_character.p3d"; + uniformClass = "U_BasicBodyFemale"; + weapons[] = {}; + magazines[] = {}; + respawnWeapons[] = {}; + respawnMagazines[] = {}; +}; + + +class Epoch_Female_wetsuit_F : Epoch_Female_base_F +{ + faceType = "Man_A3"; + woman = 1; + side = 1; + engineer = 1; + vehicleClass = "Women"; + displayName = "Female Wetsuit"; + scope = 2; + + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_co.paa" }; + + class Wounds + { + tex[] = {}; + mat[] = { "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat" }; + }; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\Female_WetSuit.p3d"; + + hiddenUnderwaterSelections[] = { "hide" }; + shownUnderwaterSelections[] = { "unhide", "unhide2" }; + + hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_co.paa", "\A3\characters_f\data\visors_ca.paa" }; + + modelSides[] = {1}; + nakedUniform = "U_BasicBodyFemale"; + uniformClass = "U_Wetsuit_uniform"; + weapons[] = {"Throw","Put"}; + respawnWeapons[] = {"Throw","Put"}; + Items[] = {}; + RespawnItems[] = {}; + magazines[] = {}; + respawnMagazines[] = {}; + + primaryAmmoCoef = 0.4; + secondaryAmmoCoef = 0.1; + handgunAmmoCoef = 0.2; + + // O_Soldier_diver_base_F + class HitPoints: HitPoints + { + class HitHead: HitHead + { + armor = 2; + }; + class HitBody: HitBody + { + armor = 2; + }; + class HitHands: HitHands + { + armor = 2; + }; + class HitLegs: HitLegs + { + armor = 2; + }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + + }; + armor = 2; + armorStructural = 5; + + // O_Soldier_base_F + sensitivity = 3; + threat[] = {1,0.1,0.1}; + camouflage = 1.4; + +}; +class Epoch_Female_wetsuitW_F : Epoch_Female_wetsuit_F +{ + displayName = "Female Wetsuit (white)"; + scope = 2; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite_co.paa" }; + hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite.rvmat" }; + + class Wounds + { + tex[] = {}; + mat[] = { "x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat", "x\addons\a3_epoch_assets\textures\wetsuit\wetsuit_Injury.rvmat" }; + }; + + modelSides[] = { 1 }; + uniformClass = "U_Wetsuit_White"; + hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitWhite_co.paa", "\A3\characters_f\data\visors_ca.paa" }; + +}; +class Epoch_Female_wetsuitB_F : Epoch_Female_wetsuit_F +{ + displayName = "Female Wetsuit (blue)"; + scope = 2; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitBlue_co.paa" }; + modelSides[] = { 1 }; + uniformClass = "U_Wetsuit_Blue"; + hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitBlue_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitBlue_co.paa", "\A3\characters_f\data\visors_ca.paa" }; +}; +class Epoch_Female_wetsuitP_F : Epoch_Female_wetsuit_F +{ + displayName = "Female Wetsuit (purple)"; + scope = 2; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitPurp_co.paa" }; + modelSides[] = { 1 }; + uniformClass = "U_Wetsuit_Purp"; + hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitPurp_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitPurp_co.paa", "\A3\characters_f\data\visors_ca.paa" }; +}; +class Epoch_Female_wetsuitC_F : Epoch_Female_wetsuit_F +{ + displayName = "Female Wetsuit (camo)"; + scope = 2; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitCamo_co.paa" }; + modelSides[] = { 1 }; + uniformClass = "U_Wetsuit_Camo"; + hiddenUnderwaterSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitCamo_co.paa", "\x\addons\a3_epoch_assets\textures\wetsuit\wetsuitCamo_co.paa", "\A3\characters_f\data\visors_ca.paa" }; + + camouflage = 1.0; +}; + +class Epoch_Female_Ghillie1_F : Epoch_Female_base_F +{ + displayName = "Female Ghillie (tan)"; + scope = 2; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_ghillie.p3d"; + + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\a3\characters_f\common\data\ghillie_3_ca.paa" }; + // hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; + + modelSides[] = { 1 }; + uniformClass = "U_ghillie1_uniform"; + + // O_Soldier_sniper_base_F + primaryAmmoCoef = 0.2; + secondaryAmmoCoef = 0.05; + handgunAmmoCoef = 0.1; + + // O_Soldier_base_F + class HitPoints: HitPoints + { + class HitHead: HitHead + { + armor = 1; + passThrough = 1; + explosionShielding = 0.5; + }; + class HitBody: HitBody + { + armor = 6; + passThrough = 0.5; + explosionShielding = 1.5; + }; + class HitHands: HitHands + { + armor = 8; + passThrough = 0.5; + explosionShielding = 0.8; + }; + class HitLegs: HitLegs + { + armor = 8; + passThrough = 0.5; + explosionShielding = 0.8; + }; + class HitFace : HitFace {}; + class HitNeck : HitNeck {}; + class HitPelvis : HitPelvis {}; + class HitAbdomen : HitAbdomen {}; + class HitDiaphragm : HitDiaphragm {}; + class HitChest : HitChest {}; + class HitArms : HitArms {}; + + }; + armor = 2; + armorStructural = 5; + + // O_sniper_F + threat[] = {1,0.6,0.6}; + camouflage = 0.4; + sensitivity = 3.3; +}; +class Epoch_Female_Ghillie2_F : Epoch_Female_Ghillie1_F +{ + displayName = "Female Ghillie (light green)"; + scope = 2; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_ghillie.p3d"; + + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\a3\characters_f\common\data\ghillie_2_ca.paa" }; + // hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; + + modelSides[] = { 1 }; + uniformClass = "U_ghillie2_uniform"; +}; +class Epoch_Female_Ghillie3_F : Epoch_Female_Ghillie1_F +{ + displayName = "Female Ghillie (green)"; + scope = 2; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_ghillie.p3d"; + + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\a3\characters_f\common\data\ghillie_1_ca.paa" }; + // hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; + + modelSides[] = { 1 }; + uniformClass = "U_ghillie3_uniform"; +}; + +class Epoch_Female_Camo_F : Epoch_Female_base_F +{ + displayName = "Female Camo"; + scope = 2; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoDark_co.paa" }; + hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat" }; + + class Wounds + { + tex[] = {}; + mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoDark.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; + }; + + modelSides[] = { 1 }; + uniformClass = "U_Camo_uniform"; + +}; +class Epoch_Female_CamoBlue_F : Epoch_Female_Camo_F +{ + displayName = "Female Camo (Blue)"; + scope = 2; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoBlue_co.paa" }; + hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoBlue.rvmat" }; + + class Wounds + { + tex[] = {}; + mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoBlue.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; + }; + + modelSides[] = { 1 }; + uniformClass = "U_CamoBlue_uniform"; +}; +class Epoch_Female_CamoBrn_F : Epoch_Female_Camo_F +{ + displayName = "Female Camo (Brown)"; + scope = 2; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoBrown_co.paa" }; + hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoBrown.rvmat" }; + + class Wounds + { + tex[] = {}; + mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoBrown.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; + }; + + modelSides[] = { 1 }; + uniformClass = "U_CamoBrn_uniform"; +}; +class Epoch_Female_CamoRed_F : Epoch_Female_Camo_F +{ + displayName = "Female Camo (Red)"; + scope = 2; + model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_camo.p3d"; + hiddenSelections[] = { "Camo" }; + hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\camo\camoRed_co.paa" }; + hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\camo\female_camoRed.rvmat" }; + + class Wounds + { + tex[] = {}; + mat[] = { "x\addons\a3_epoch_assets\textures\camo\female_camoRed.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat", "x\addons\a3_epoch_assets\textures\camo\female_camoinjury.rvmat" }; + }; + + modelSides[] = { 1 }; + uniformClass = "U_CamoRed_uniform"; +}; + +class Epoch_Female_F: Epoch_Female_base_F +{ + woman = 1; + scope = 2; + displayName = "Female"; + interactMode = 2; +}; + + + + + + + + + + + + + + +class O_Soldier_base_F; +class Epoch_Man_base_F : O_Soldier_base_F +{ + identityTypes[] = { "Kerry", "NoGlasses" }; + + faceType = "Man_A3"; + side = 0; + vehicleClass = "Men"; + engineer = 1; + scope = 0; + class Wounds + { + tex[] = {}; + mat[] = {"A3\Characters_F\Common\Data\basicbody.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat"}; + }; + model = "\A3\Characters_F\Common\basicbody"; + modelSides[] = {0}; + nakedUniform = "U_BasicBody"; + uniformClass = "U_Test1_uniform"; + weapons[] = {"Throw","Put"}; + respawnWeapons[] = {"Throw","Put"}; + Items[] = {}; + RespawnItems[] = {}; + magazines[] = {}; + respawnMagazines[] = {}; + linkedItems[] = { "V_41_EPOCH", "ItemMap" }; + respawnLinkedItems[] = { "V_41_EPOCH", "ItemMap" }; + + // fix and normalize base classes + cost = 40000; + headgearProbability = 100; + allowedHeadgear[] = {}; + class HitPoints + { + class HitFace + { + armor = 1; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; + }; + class HitNeck: HitFace + { + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; + }; + class HitHead: HitNeck + { + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; + }; + class HitPelvis + { + armor = 1; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.16; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 1; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; + }; + }; + armor = 2; + armorStructural = 5; + + +}; +class Epoch_Male_F: Epoch_Man_base_F +{ + scope = 2; + displayName = "Male"; + interactMode = 2; +}; diff --git a/Sources/epoch_config/Configs/CfgWeapons.hpp b/Sources/epoch_config/Configs/CfgWeapons.hpp index ba193972..555fe72b 100644 --- a/Sources/epoch_config/Configs/CfgWeapons.hpp +++ b/Sources/epoch_config/Configs/CfgWeapons.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Main CfgWeapons config file + + 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_config/Configs/CfgWeapons.hpp +*/ + class CfgWeapons { class InventoryItem_Base_F; @@ -284,61 +299,66 @@ class CfgWeapons - class VestItem : InventoryItem_Base_F + + + class VestItem: InventoryItem_Base_F { author = "$STR_A3_Bohemia_Interactive"; _generalMacro = "VestItem"; type = 701; uniformType = "Default"; hiddenSelections[] = {}; - armor = 0; - passThrough = 1; - hitpointName = "HitBody"; - overlaySelectionsInfo[] = { "Ghillie_hide" }; + class HitpointsProtectionInfo + { + class Body + { + hitpointName = "HitBody"; + armor = 0; + passThrough = 1; + }; + }; + overlaySelectionsInfo[] = {"Ghillie_hide"}; showHolsteredPistol = 0; }; - class Vest_Camo_Base : ItemCore + class Vest_Camo_Base: ItemCore { author = "$STR_A3_Bohemia_Interactive"; _generalMacro = "Vest_Camo_Base"; scope = 0; weaponPoolAvailable = 1; - allowedSlots[] = { 901 }; + allowedSlots[] = {901}; picture = "\A3\characters_f\Data\UI\icon_V_BandollierB_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - hiddenSelections[] = { "camo" }; - class ItemInfo : VestItem + hiddenSelections[] = {"camo"}; + descriptionShort = "$STR_A3_SP_NOARMOR"; + class ItemInfo: VestItem { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_bandolier"; - hiddenSelections[] = { "camo" }; + hiddenSelections[] = {"camo"}; containerClass = "Supply0"; mass = 0; - armor = 0; - passThrough = 1; }; }; - class Vest_NoCamo_Base : ItemCore + class Vest_NoCamo_Base: ItemCore { author = "$STR_A3_Bohemia_Interactive"; _generalMacro = "Vest_NoCamo_Base"; scope = 0; weaponPoolAvailable = 1; - allowedSlots[] = { 901 }; + allowedSlots[] = {901}; picture = "\A3\characters_f\Data\UI\icon_V_BandollierB_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; hiddenSelections[] = {}; - class ItemInfo : VestItem + descriptionShort = "$STR_A3_SP_NOARMOR"; + class ItemInfo: VestItem { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_bandolier"; hiddenSelections[] = {}; containerClass = "Supply0"; mass = 0; - armor = 0; - passThrough = 1; }; }; - class V_F0_EPOCH: Vest_Camo_Base { maleVest = "V_16_EPOCH"; @@ -347,13 +367,38 @@ class CfgWeapons picture = "\A3\characters_f\Data\UI\icon_V_TacVest_blk_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; hiddenSelectionsTextures[] = {"\a3\characters_f\common\data\tacticalvest_black_co.paa"}; + descriptionShort = "$STR_A3_SP_AL_I"; class ItemInfo: ItemInfo { uniformModel = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_tactVest.p3d"; containerClass = "Supply100"; mass = 40; - armor = 20; - passThrough = 1; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 8; + passThrough = 0.5; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 8; + passThrough = 0.5; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 8; + passThrough = 0.5; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.5; + }; + }; }; }; class V_F1_EPOCH: V_F0_EPOCH @@ -391,13 +436,38 @@ class CfgWeapons picture = "\A3\Characters_F\data\ui\icon_V_TacVest_camo_CA.paa"; hiddenSelectionsTextures[] = {"\A3\Characters_F\Common\Data\tacticalvest_camo_co.paa"}; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; + descriptionShort = "$STR_A3_SP_AL_I"; class ItemInfo: ItemInfo { - uniformModel = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_tactVest.p3d"; + uniformModel = "A3\Characters_F\Common\equip_tacticalvest"; containerClass = "Supply100"; mass = 40; - armor = 20; - passThrough = 1; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 8; + passThrough = 0.5; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 8; + passThrough = 0.5; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 8; + passThrough = 0.5; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.5; + }; + }; }; }; class V_F5_EPOCH: Vest_Camo_Base @@ -408,13 +478,38 @@ class CfgWeapons picture = "\A3\characters_f\Data\UI\icon_V_TacVest_blk_police_CA.paa"; hiddenSelectionsTextures[] = {"\A3\Characters_F\Common\Data\tacticalvest_police_co.paa"}; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; + descriptionShort = "$STR_A3_SP_AL_II"; class ItemInfo: ItemInfo { - uniformModel = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\female_tactVest.p3d"; + uniformModel = "A3\Characters_F\Common\equip_tacticalvest"; containerClass = "Supply100"; - mass = 60; - armor = 100; - passThrough = 0.7; + mass = 50; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 12; + passThrough = 0.4; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 12; + passThrough = 0.4; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 12; + passThrough = 0.4; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.4; + }; + }; }; }; @@ -431,7 +526,7 @@ class CfgWeapons { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_belt"; containerClass = "Supply40"; - mass = 10; + mass = 5; armor = 0; passThrough = 1; }; @@ -450,7 +545,7 @@ class CfgWeapons { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_bandolier"; containerClass = "Supply80"; - mass = 15; + mass = 10; armor = 0; passThrough = 1; }; @@ -503,8 +598,32 @@ class CfgWeapons uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; containerClass = "Supply140"; mass = 80; - armor = 20; - passThrough = 0.5; + class HitpointsProtectionInfo + { + class Chest + { + HitpointName = "HitChest"; + armor = 16; + PassThrough = 0.3; + }; + class Diaphragm + { + HitpointName = "HitDiaphragm"; + armor = 16; + PassThrough = 0.3; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 16; + passThrough = 0.3; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.3; + }; + }; }; }; class V_7_EPOCH : V_6_EPOCH // V_PlateCarrier2_rgr @@ -520,8 +639,32 @@ class CfgWeapons uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest01"; containerClass = "Supply140"; mass = 100; - armor = 30; - passThrough = 0.5; + class HitpointsProtectionInfo + { + class Chest + { + HitpointName = "HitChest"; + armor = 20; + PassThrough = 0.2; + }; + class Diaphragm + { + HitpointName = "HitDiaphragm"; + armor = 20; + PassThrough = 0.2; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 20; + passThrough = 0.2; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.2; + }; + }; }; }; class V_8_EPOCH : Vest_NoCamo_Base // V_PlateCarrier3_rgr @@ -537,8 +680,32 @@ class CfgWeapons uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest01.p3d"; containerClass = "Supply140"; mass = 100; - armor = 30; - passThrough = 0.5; + class HitpointsProtectionInfo + { + class Chest + { + HitpointName = "HitChest"; + armor = 20; + PassThrough = 0.2; + }; + class Diaphragm + { + HitpointName = "HitDiaphragm"; + armor = 20; + PassThrough = 0.2; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 20; + passThrough = 0.2; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.2; + }; + }; }; }; class V_9_EPOCH : Vest_NoCamo_Base // V_PlateCarrierGL_rgr @@ -556,9 +723,51 @@ class CfgWeapons uniformModel = "\A3\Characters_F\BLUFOR\equip_b_carrier_gl_rig.p3d"; containerClass = "Supply140"; mass = 100; - armor = 100; - passThrough = 0.7; - hiddenSelections[] = { "camo" }; + hiddenSelections[] = {"camo"}; + class HitpointsProtectionInfo + { + class Neck + { + hitpointName = "HitNeck"; + armor = 8; + passThrough = 0.5; + }; + class Arms + { + hitpointName = "HitArms"; + armor = 8; + passThrough = 0.5; + }; + class Chest + { + hitpointName = "HitChest"; + armor = 78; + passThrough = 0.6; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 78; + passThrough = 0.6; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 16; + passThrough = 0.3; + }; + class Pelvis + { + hitpointName = "HitPelvis"; + armor = 16; + passThrough = 0.3; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.6; + }; + }; }; }; class V_10_EPOCH : Vest_Camo_Base // V_Chestrig_khk @@ -571,14 +780,12 @@ class CfgWeapons model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; hiddenSelections[] = { "Camo1", "Camo2" }; hiddenSelectionsTextures[] = { "\A3\Characters_F\Common\Data\equip_chestrig_khk_co.paa", "\A3\Characters_F\BLUFOR\Data\vests_khk_co.paa" }; - class ItemInfo : ItemInfo + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\Common\equip_chestrig.p3d"; containerClass = "Supply140"; mass = 20; - armor = 0; - passThrough = 1; - hiddenSelections[] = { "camo1", "camo2" }; + hiddenSelections[] = {"camo1","camo2"}; }; }; class V_11_EPOCH : V_10_EPOCH // V_Chestrig_rgr @@ -611,13 +818,38 @@ class CfgWeapons picture = "\A3\characters_f\Data\UI\icon_V_TacVest_khk_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; hiddenSelectionsTextures[] = { "\A3\Characters_F\Common\Data\tacticalvest_khaki_co.paa" }; - class ItemInfo : ItemInfo + descriptionShort = "$STR_A3_SP_AL_I"; + class ItemInfo: ItemInfo { uniformModel = "A3\Characters_F\Common\equip_tacticalvest"; containerClass = "Supply100"; mass = 40; - armor = 20; - passThrough = 1; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 8; + passThrough = 0.5; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 8; + passThrough = 0.5; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 8; + passThrough = 0.5; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.5; + }; + }; }; }; class V_14_EPOCH : V_13_EPOCH //V_TacVest_brn @@ -660,8 +892,6 @@ class CfgWeapons uniformModel = "\A3\Characters_F\OPFOR\equip_o_vest01"; containerClass = "Supply160"; mass = 30; - armor = 0; - passThrough = 0.5; }; }; class V_18_EPOCH : Vest_NoCamo_Base // V_HarnessOGL_brn @@ -672,13 +902,11 @@ class CfgWeapons displayName = "$STR_A3_V_HarnessOGL_brn0"; picture = "\A3\characters_f\Data\UI\icon_V_HarnessOGL_brn_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : ItemInfo + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\OPFOR\equip_o_vest_gl"; containerClass = "Supply120"; - mass = 20; - armor = 0; - passThrough = 0.5; + mass = 15; }; }; class V_19_EPOCH : Vest_Camo_Base // V_RebreatherB @@ -693,17 +921,42 @@ class CfgWeapons shownUnderwaterSelections[] = { "unhide", "unhide2" }; hiddenUnderwaterSelectionsTextures[] = { "\A3\characters_f\common\data\diver_equip_nato_co.paa", "\A3\characters_f\common\data\diver_equip_nato_co.paa", "\A3\characters_f\data\visors_ca.paa" }; hiddenSelectionsTextures[] = { "\A3\characters_f\common\data\diver_equip_nato_co.paa" }; + descriptionShort = "$STR_A3_SP_AL_I"; class ItemInfo : ItemInfo { uniformModel = "\A3\Characters_F\Common\equip_rebreather"; containerClass = "Supply80"; mass = 80; vestType = "Rebreather"; - hiddenUnderwaterSelections[] = { "hide" }; - shownUnderwaterSelections[] = { "unhide", "unhide2" }; - hiddenUnderwaterSelectionsTextures[] = { "\A3\characters_f\common\data\diver_equip_nato_co.paa", "\A3\characters_f\common\data\diver_equip_nato_co.paa", "\A3\characters_f\data\visors_ca.paa" }; - armor = 20; - passThrough = 1; + hiddenUnderwaterSelections[] = {"hide"}; + shownUnderwaterSelections[] = {"unhide","unhide2"}; + hiddenUnderwaterSelectionsTextures[] = {"\A3\characters_f\common\data\diver_equip_nato_co.paa","\A3\characters_f\common\data\diver_equip_nato_co.paa","\A3\characters_f\data\visors_ca.paa"}; + class HitpointsProtectionInfo + { + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 8; + passThrough = 0.5; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 8; + passThrough = 0.5; + }; + class Pelvis + { + hitpointName = "HitPelvis"; + armor = 8; + passThrough = 0.5; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.5; + }; + }; }; }; class V_20_EPOCH : V_19_EPOCH // V_RebreatherIR @@ -738,13 +991,38 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrier1_blk0"; hiddenSelectionsTextures[] = { "\A3\Characters_F\BLUFOR\Data\vests_blk_co.paa" }; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : ItemInfo + descriptionShort = "$STR_A3_SP_AL_III"; + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02.p3d"; containerClass = "Supply140"; mass = 80; - armor = 20; - passThrough = 0.5; + class HitpointsProtectionInfo + { + class Chest + { + HitpointName = "HitChest"; + armor = 16; + PassThrough = 0.3; + }; + class Diaphragm + { + HitpointName = "HitDiaphragm"; + armor = 16; + PassThrough = 0.3; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 16; + passThrough = 0.3; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.3; + }; + }; }; }; class V_23_EPOCH : Vest_NoCamo_Base // V_PlateCarrierSpec_rgr @@ -755,16 +1033,54 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrierSpec_rgr0"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; + DLC = "Mark"; + descriptionShort = "$STR_A3_SP_AL_V"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"\A3\Characters_F_Mark\BLUFOR\Data\carrier_gl_rig_grn_co.paa"}; - class ItemInfo : ItemInfo + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_carrier_spec_rig.p3d"; containerClass = "Supply100"; mass = 120; - armor = 40; - passThrough = 0.1; - hiddenSelections[] = { "camo" }; + hiddenSelections[] = {"camo"}; + class HitpointsProtectionInfo + { + class Neck + { + hitpointName = "HitNeck"; + armor = 8; + passThrough = 0.5; + }; + class Arms + { + hitpointName = "HitArms"; + armor = 8; + passThrough = 0.5; + }; + class Chest + { + hitpointName = "HitChest"; + armor = 24; + passThrough = 0.1; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 24; + passThrough = 0.1; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 24; + passThrough = 0.1; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.1; + }; + }; }; }; class V_24_EPOCH : Vest_Camo_Base // V_Chestrig_oli @@ -782,9 +1098,7 @@ class CfgWeapons uniformModel = "\A3\Characters_F\Common\equip_chestrig.p3d"; containerClass = "Supply140"; mass = 20; - armor = 0; - passThrough = 1; - hiddenSelections[] = { "Camo1", "Camo2" }; + hiddenSelections[] = {"Camo1","Camo2"}; }; }; class V_25_EPOCH : Vest_Camo_Base // V_TacVest_camo @@ -797,13 +1111,38 @@ class CfgWeapons model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; picture = "\A3\Characters_F\data\ui\icon_V_TacVest_camo_CA.paa"; hiddenSelectionsTextures[] = { "\A3\Characters_F_Bootcamp\Common\Data\tacticalvest_camo_co.paa" }; - class ItemInfo : ItemInfo + descriptionShort = "$STR_A3_SP_AL_I"; + class ItemInfo: ItemInfo { uniformModel = "A3\Characters_F\Common\equip_tacticalvest"; containerClass = "Supply100"; mass = 40; - armor = 20; - passThrough = 1; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 8; + passThrough = 0.5; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 8; + passThrough = 0.5; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 8; + passThrough = 0.5; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.5; + }; + }; }; }; class V_26_EPOCH : Vest_Camo_Base // V_TacVest_blk_POLICE @@ -816,13 +1155,38 @@ class CfgWeapons picture = "\A3\characters_f\Data\UI\icon_V_TacVest_blk_police_CA.paa"; hiddenSelectionsTextures[] = { "\A3\Characters_F\Common\Data\tacticalvest_police_co.paa" }; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : ItemInfo + descriptionShort = "$STR_A3_SP_AL_II"; + class ItemInfo: ItemInfo { uniformModel = "A3\Characters_F\Common\equip_tacticalvest"; containerClass = "Supply100"; - mass = 60; - armor = 100; - passThrough = 0.7; + mass = 50; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 12; + passThrough = 0.4; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 12; + passThrough = 0.4; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 12; + passThrough = 0.4; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.4; + }; + }; }; }; class V_27_EPOCH : Vest_NoCamo_Base // V_TacVestIR_blk @@ -833,13 +1197,38 @@ class CfgWeapons displayName = "$STR_A3_V_TacVestIR_blk0"; picture = "\A3\characters_f\Data\UI\icon_V_TacVestIR_blk_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : VestItem + descriptionShort = "$STR_A3_SP_AL_I"; + class ItemInfo: VestItem { uniformModel = "\A3\Characters_F_Beta\INDEP\equip_ir_vest01"; - containerClass = "Supply100"; + containerClass = "Supply140"; mass = 50; - armor = 20; - passThrough = 0.5; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 8; + passThrough = 0.5; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 8; + passThrough = 0.5; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 8; + passThrough = 0.5; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.5; + }; + }; }; }; class V_28_EPOCH : Vest_Camo_Base // V_TacVestCamo_khk @@ -852,15 +1241,40 @@ class CfgWeapons picture = "\A3\characters_f\Data\UI\icon_V_TacVest_Camo_CA.paa"; hiddenSelectionsTextures[] = { "\A3\Characters_F_Bootcamp\Common\Data\tacticalvest_camo_co.paa" }; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : VestItem + descriptionShort = "$STR_A3_SP_AL_I"; + class ItemInfo: VestItem { uniformModel = "A3\Characters_F\Common\equip_tacticalvest"; - hiddenSelections[] = { "camo" }; - hiddenSelectionsTextures[] = { "\A3\Characters_F_Bootcamp\Common\Data\tacticalvest_camo_co.paa" }; + hiddenSelections[] = {"camo"}; + hiddenSelectionsTextures[] = {"\A3\Characters_F_Bootcamp\Common\Data\tacticalvest_camo_co.paa"}; containerClass = "Supply100"; mass = 40; - armor = 20; - passThrough = 1; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 8; + passThrough = 0.5; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 8; + passThrough = 0.5; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 8; + passThrough = 0.5; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.5; + }; + }; }; }; class V_29_EPOCH : V_17_EPOCH // V_HarnessO_gry @@ -877,9 +1291,7 @@ class CfgWeapons uniformModel = "\A3\Characters_F\OPFOR\equip_o_vest01"; containerClass = "Supply160"; mass = 30; - armor = 0; - passThrough = 0.5; - hiddenSelections[] = { "Camo1", "Camo2" }; + hiddenSelections[] = {"Camo1","Camo2"}; }; }; class V_30_EPOCH : V_29_EPOCH // V_HarnessOGL_gry @@ -888,15 +1300,13 @@ class CfgWeapons _generalMacro = "V_HarnessOGL_gry"; picture = "\A3\characters_f_beta\Data\UI\icon_V_HarnessOUGL_gry_CA.paa"; displayName = "$STR_A3_V_HarnessOGL_gry0"; - class ItemInfo : ItemInfo + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\OPFOR\equip_o_vest_gl"; containerClass = "Supply120"; - mass = 20; - armor = 0; - passThrough = 0.5; - hiddenSelections[] = { "Camo1", "Camo2" }; - }; + mass = 15; + hiddenSelections[] = {"Camo1","Camo2"}; + };; }; class V_31_EPOCH : V_17_EPOCH // V_HarnessOSpec_brn { @@ -906,13 +1316,11 @@ class CfgWeapons displayName = "$STR_A3_V_HarnessOSpec_brn0"; picture = "\A3\characters_f\Data\UI\icon_V_HarnessO_brn_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : VestItem + class ItemInfo: VestItem { uniformModel = "\A3\Characters_F\OPFOR\equip_o_vest01"; containerClass = "Supply160"; mass = 30; - armor = 0; - passThrough = 0.5; }; }; class V_32_EPOCH : V_29_EPOCH // V_HarnessOSpec_gry @@ -921,14 +1329,12 @@ class CfgWeapons _generalMacro = "V_HarnessOSpec_gry"; picture = "\A3\characters_f_beta\Data\UI\icon_V_HarnessOU_gry_CA.paa"; displayName = "$STR_A3_V_HarnessOSpec_gry0"; - class ItemInfo : ItemInfo + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\OPFOR\equip_o_vest01"; containerClass = "Supply160"; mass = 30; - armor = 0; - passThrough = 0.5; - hiddenSelections[] = { "Camo1", "Camo2" }; + hiddenSelections[] = {"Camo1","Camo2"}; }; }; class V_33_EPOCH : Vest_NoCamo_Base // V_PlateCarrierIA1_dgtl @@ -939,13 +1345,38 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrierIA1_dgtl0"; picture = "\A3\characters_f_Beta\Data\UI\icon_V_I_Vest_01_ca.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : VestItem + descriptionShort = "$STR_A3_SP_AL_III"; + class ItemInfo: VestItem { uniformModel = "A3\Characters_F_Beta\INDEP\equip_ia_vest01"; containerClass = "Supply120"; mass = 60; - armor = 20; - passThrough = 0.5; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 16; + passThrough = 0.3; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 16; + passThrough = 0.3; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 16; + passThrough = 0.3; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.3; + }; + }; }; }; class V_34_EPOCH : V_33_EPOCH // V_PlateCarrierIA2_dgtl @@ -955,13 +1386,44 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrierIA2_dgtl0"; picture = "\A3\characters_f_Beta\Data\UI\icon_V_I_Vest_02_ca.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; - class ItemInfo : VestItem + descriptionShort = "$STR_A3_SP_AL_III"; + class ItemInfo: VestItem { uniformModel = "A3\Characters_F_Beta\INDEP\equip_ia_vest02"; - containerClass = "Supply180"; - mass = 60; - armor = 15; - passThrough = 0.5; + containerClass = "Supply120"; + mass = 80; + class HitpointsProtectionInfo + { + class Chest + { + hitpointName = "HitChest"; + armor = 16; + passThrough = 0.3; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 16; + passThrough = 0.3; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 16; + passThrough = 0.3; + }; + class Pelvis + { + hitpointName = "HitPelvis"; + armor = 16; + passThrough = 0.3; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.3; + }; + }; }; }; class V_35_EPOCH : V_34_EPOCH // V_PlateCarrierIAGL_dgtl @@ -970,19 +1432,62 @@ class CfgWeapons _generalMacro = "V_PlateCarrierIAGL_dgtl"; scope = 2; displayName = "$STR_A3_V_PlateCarrierIAGL_dgtl0"; - picture = "\A3\Characters_F_Beta\Data\UI\icon_V_I_Vest_02_ca.paa"; + picture = "\A3\Characters_F_Mark\Data\UI\icon_ga_carrier_gl_rig_digi.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; DLC = "Mark"; hiddenSelections[] = {"camo1","camo2"}; hiddenSelectionsTextures[] = {"\A3\Characters_F_Beta\INDEP\Data\equip_ia_vest01_co.paa","\A3\Characters_F_Mark\INDEP\Data\ga_carrier_gl_rig_digi_co.paa"}; - class ItemInfo : VestItem + descriptionShort = "$STR_A3_SP_ER"; + class ItemInfo: VestItem { uniformModel = "\A3\Characters_F_beta\INDEP\equip_ia_ga_carrier_gl_rig.p3d"; containerClass = "Supply120"; mass = 80; - armor = 100; - passThrough = 0.7; - hiddenSelections[] = { "camo1", "camo2" }; + hiddenSelections[] = {"camo1","camo2"}; + class HitpointsProtectionInfo + { + class Neck + { + hitpointName = "HitNeck"; + armor = 8; + passThrough = 0.5; + }; + class Arms + { + hitpointName = "HitArms"; + armor = 8; + passThrough = 0.5; + }; + class Chest + { + hitpointName = "HitChest"; + armor = 78; + passThrough = 0.6; + }; + class Diaphragm + { + hitpointName = "HitDiaphragm"; + armor = 78; + passThrough = 0.6; + }; + class Abdomen + { + hitpointName = "HitAbdomen"; + armor = 16; + passThrough = 0.3; + }; + class Pelvis + { + hitpointName = "HitPelvis"; + armor = 16; + passThrough = 0.3; + }; + class Body + { + hitpointName = "HitBody"; + passThrough = 0.6; + }; + }; }; }; class V_36_EPOCH : V_19_EPOCH // V_RebreatherIA @@ -1005,10 +1510,6 @@ class CfgWeapons class ItemInfo : ItemInfo { uniformModel = "\A3\Characters_F_EPA\BLUFOR\equip_b_vest_kerry.p3d"; - containerClass = "Supply140"; - mass = 80; - armor = 30; - passThrough = 0.5; }; }; class V_38_EPOCH : V_6_EPOCH // V_PlateCarrierL_CTRG @@ -1019,14 +1520,10 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrierL_CTRG0"; hiddenSelections[] = { "camo" }; hiddenSelectionsTextures[] = { "\A3\Characters_F_EPA\BLUFOR\Data\vests_snake_co.paa" }; - class ItemInfo : ItemInfo + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02.p3d"; - containerClass = "Supply140"; - mass = 80; - armor = 20; - passThrough = 0.5; - hiddenSelections[] = { "camo" }; + hiddenSelections[] = {"camo"}; }; }; class V_39_EPOCH : V_7_EPOCH // V_PlateCarrierH_CTRG @@ -1037,14 +1534,10 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrierH_CTRG0"; hiddenSelections[] = { "camo" }; hiddenSelectionsTextures[] = { "\A3\Characters_F_EPA\BLUFOR\Data\vests_snake_co.paa" }; - class ItemInfo : ItemInfo + class ItemInfo: ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest01.p3d"; - containerClass = "Supply140"; - mass = 100; - armor = 30; - passThrough = 0.5; - hiddenSelections[] = { "camo" }; + hiddenSelections[] = {"camo"}; }; }; class V_40_EPOCH : V_25_EPOCH // V_I_G_resistanceLeader_F @@ -1105,14 +1598,15 @@ class CfgWeapons class HeadgearItem: InventoryItem_Base_F { + _generalMacro = "HeadgearItem"; allowedSlots[] = {901,605}; type = 605; hiddenSelections[] = {}; - hitpointName = "HitHead"; }; class clown_mask_epoch : ItemCore { + author = "Aaron Clark"; scope = 2; weaponPoolAvailable = 1; displayName = "Clown Mask"; @@ -1133,6 +1627,7 @@ class CfgWeapons { scope = 2; displayName = "Red Beret"; + author = "Paul Tomany"; picture = "\A3\characters_f\Data\UI\icon_H_Cap_blk_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; hiddenSelections[] = {"camo"}; @@ -1712,7 +2207,7 @@ class CfgWeapons class GunParticles; }; class UGL_F; - class Test_weapon_01_Base_F: Rifle_Base_F + class Epoch_weapon_01_Base_F: Rifle_Base_F { magazines[] = {"30Rnd_test_mag_Tracer","30Rnd_test_mag"}; reloadAction = "GestureReloadMX"; @@ -1847,7 +2342,7 @@ class CfgWeapons drySound[] = {"A3\sounds_f\weapons\Other\dry_1","db-5",1,10}; reloadMagazineSound[] = {"A3\sounds_f\weapons\reloads\new_MX","db-8",1,30}; }; - class Rollins_F: Test_weapon_01_Base_F + class Rollins_F: Epoch_weapon_01_Base_F { scope = 2; displayName = "Rollins Rifle"; @@ -1905,7 +2400,7 @@ class CfgWeapons drySound[] = {"A3\sounds_f\weapons\Other\dry_1","db-5",1,10}; reloadMagazineSound[] = {"A3\sounds_f\weapons\reloads\new_MX","db-8",1,30}; }; - class ChainSaw: Test_weapon_01_Base_F + class ChainSaw: Epoch_weapon_01_Base_F { scope = 2; model = "\x\addons\a3_epoch_assets_1\models\chainsaw.p3d"; diff --git a/Sources/epoch_config/Configs/CfgWorlds.hpp b/Sources/epoch_config/Configs/CfgWorlds.hpp index d9dd48ea..a4afe9bf 100644 --- a/Sources/epoch_config/Configs/CfgWorlds.hpp +++ b/Sources/epoch_config/Configs/CfgWorlds.hpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Disable snakes and rabbits on Altis and Stratis + + 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_config/Configs/CfgWorlds.hpp +*/ + class CfgWorlds { class CAWorld; @@ -157,7 +172,7 @@ class CfgWorlds }; }; }; - + }; }; class Stratis : CAWorld @@ -301,4 +316,4 @@ class CfgWorlds initWorld = "Altis"; demoWorld = "Altis"; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/Configs/cfgCrafting.hpp b/Sources/epoch_config/Configs/cfgCrafting.hpp index 35afc435..df1c2604 100644 --- a/Sources/epoch_config/Configs/cfgCrafting.hpp +++ b/Sources/epoch_config/Configs/cfgCrafting.hpp @@ -1,24 +1,38 @@ /* -nearby[] = -{ - { - "Fire", //Name of field, anything - "", //image folder path (ie "\x\addons\a3_epoch_code\Data\UI\crafting\"), empty for Epoch default - "fire", //image prefix, suffix will be added by code. 2 possible suffixes: [_true.paa, _false.paa] - {1,{"ALL"}}, //ARRAY of p3D {0,{"filename.p3d","filename.p3d"}} or ARRAY of logic classes {1,{"AIR","LAND","className"}}. Integer to switch array mode - 3, //distance to check in meters - 1, //count - 1, //BOOL: object has to be on fire - 0 //BOOL: object has to be alive (not destroyed) - }; -}; + Author: Aaron Clark - EpochMod.com -//Can be multiple requirements like this, example requires both fire and water (unlimited, but requires mouse scroll if more than 8 elements): -nearby[] = -{ - {"Fire", "", "fire", {1,{"ALL"}}, 3, 1, 1, 0}, - {"Water source","","water",{0,{"barrelwater_f.p3d", "water_source_f.p3d", "pumpa.p3d", "misc_wellpump.p3d"}},3,1,0,0} -}; + Contributors: Raimonds Virtoss (v2 Crafting) + + Description: + Main Crafting configs + + 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_config/Configs/CfgCrafting.hpp + + USAGE: + nearby[] = + { + { + "Fire", //Name of field, anything + "", //image folder path (ie "\x\addons\a3_epoch_code\Data\UI\crafting\"), empty for Epoch default + "fire", //image prefix, suffix will be added by code. 2 possible suffixes: [_true.paa, _false.paa] + {1,{"ALL"}}, //ARRAY of p3D {0,{"filename.p3d","filename.p3d"}} or ARRAY of logic classes {1,{"AIR","LAND","className"}}. Integer to switch array mode + 3, //distance to check in meters + 1, //count + 1, //BOOL: object has to be on fire + 0 //BOOL: object has to be alive (not destroyed) + }; + }; + + //Can be multiple requirements like this, example requires both fire and water (unlimited, but requires mouse scroll if more than 8 elements): + nearby[] = + { + {"Fire", "", "fire", {1,{"ALL"}}, 3, 1, 1, 0}, + {"Water source","","water",{0,{"barrelwater_f.p3d", "water_source_f.p3d", "pumpa.p3d", "misc_wellpump.p3d"}},3,1,0,0} + }; */ class CfgCrafting diff --git a/Sources/epoch_config/Configs/cfgRecoils.hpp b/Sources/epoch_config/Configs/cfgRecoils.hpp index 9e60e7f0..43a32b83 100644 --- a/Sources/epoch_config/Configs/cfgRecoils.hpp +++ b/Sources/epoch_config/Configs/cfgRecoils.hpp @@ -1,7 +1,22 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Paul Tomany + + Description: + Custom recoils for Rollins rifle + + 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_config/Configs/CfgWorlds.hpp +*/ + class cfgRecoils { recoil_single_Test_rifle_01[] = {0,0,0,0.03,"36.943*((0.001))*(0.3)","3.587*((0.004))*(3)",0.03,"31.817*((0.001))*(0.5)","1.251*((0.004))*(3.4)",0.03,"19.755*((0.001))*(0.7)","0.764*((0.004))*(3.8)",0.06,"7.388*((0.001))*(0.9)","0.285*((0.004))*(4.2)",0.06,"-2.402*((0.001))*(0.3)","-0.096*((0.004))*(7)",0.06,"-3.53*((0.001))*(0.5)","-0.141*((0.004))*(5)",0.06,"-3.677*((0.001))*(0.5)","-0.147*((0.004))*(3)",0.06,"-3.138*((0.001))*(0.3)","-0.125*((0.004))*(1)",0.06,0,0}; recoil_single_prone_Test_rifle_01[] = {0,0,0,0.03,"36.943*((0.001))*(0.3)","3.587*((0.004))*(0.7)",0.03,"31.817*((0.001))*(0.5)","1.251*((0.004))*(1.1)",0.03,"19.755*((0.001))*(0.7)","0.764*((0.004))*(1.5)",0.06,"7.388*((0.001))*(0.9)","0.285*((0.004))*(1.9)",0.06,"-2.402*((0.001))*(0.3)","-0.096*((0.004))*(2)",0.06,"-3.53*((0.001))*(0.5)","-0.141*((0.004))*(1)",0.06,"-3.677*((0.001))*(0.5)","-0.147*((0.004))*(0.5)",0.06,"-3.138*((0.001))*(0.3)","-0.125*((0.004))*(0.3)",0.06,0,0}; recoil_auto_Test_rifle_01[] = {0,0,0,0.06,"36.943*((0.001))*(1.2)","3.587*((0.004))*(1.7)",0.06,"31.817*((0.001))*(1.5)","1.251*((0.004))*(2.1)",0.06,"19.755*((0.001))*(1.7)","0.764*((0.004))*(2.4)",0.06,"7.388*((0.001))*(1.9)","0.285*((0.004))*(2.8)",0.03,"-2.402*((0.001))*(0.3)","-0.096*((0.004))*(7)",0.03,"-3.53*((0.001))*(0.5)","-0.141*((0.004))*(5)",0.03,"-3.677*((0.001))*(0.5)","-0.147*((0.004))*(3)",0.06,0,0}; recoil_auto_prone_Test_rifle_01[] = {0,0,0,0.06,"36.943*((0.001))*(1.2)","3.587*((0.004))*(0.3)",0.06,"31.817*((0.001))*(1.5)","1.251*((0.004))*(0.7)",0.06,"19.755*((0.001))*(1.7)","0.764*((0.004))*(1.1)",0.06,"7.388*((0.001))*(1.9)","0.285*((0.004))*(1.5)",0.03,"-2.402*((0.001))*(0.3)","-0.096*((0.004))*(4)",0.03,"-3.53*((0.001))*(0.5)","-0.141*((0.004))*(2)",0.03,"-3.677*((0.001))*(0.5)","-0.147*((0.004))*(1)",0.06,0,0}; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_config/README.TXT b/Sources/epoch_config/README.TXT deleted file mode 100644 index b155c614..00000000 --- a/Sources/epoch_config/README.TXT +++ /dev/null @@ -1,3 +0,0 @@ -All content in this PBO was made exclusively for A3 Epoch mod. - -To use/edit/distribute any of the content in this mod please contact vbawol@veteranbastards.com or ptomany@gmail.com \ No newline at end of file diff --git a/Sources/epoch_config/config.cpp b/Sources/epoch_config/config.cpp index a5523724..30787236 100644 --- a/Sources/epoch_config/config.cpp +++ b/Sources/epoch_config/config.cpp @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Raimonds Virtoss + + Description: + Epoch Config + + 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_config/config.cpp +*/ + #define _ARMA_ enum { diff --git a/Sources/epoch_config/scenes/Epoch_Intro.Altis/initIntro.sqf b/Sources/epoch_config/scenes/Epoch_Intro.Altis/initIntro.sqf index b129f8b9..9215d1b9 100644 --- a/Sources/epoch_config/scenes/Epoch_Intro.Altis/initIntro.sqf +++ b/Sources/epoch_config/scenes/Epoch_Intro.Altis/initIntro.sqf @@ -1,3 +1,18 @@ +/* + Author: Niklas Wagner - EpochMod.com + + Contributors: Aaron Clark + + Description: + Epoch Intro + + 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_config/scenes/Epoch_Intro.Altis/initIntro.sqf +*/ + titleCut ["", "BLACK FADED", 10e10]; 0 fadeMusic 0.5; @@ -172,4 +187,3 @@ if (true) then { _camera camCommit 10; }; */ - diff --git a/Sources/epoch_config/scripts/Bite.sqf b/Sources/epoch_config/scripts/Bite.sqf index ec4529fd..321e3e90 100644 --- a/Sources/epoch_config/scripts/Bite.sqf +++ b/Sources/epoch_config/scripts/Bite.sqf @@ -1,5 +1,5 @@ /* -_object = _this; +params ["_object"]; _pos01 = getPosATL _object; diff --git a/Sources/epoch_config/scripts/fireB.sqf b/Sources/epoch_config/scripts/fireB.sqf index 3944c1ba..c434296f 100644 --- a/Sources/epoch_config/scripts/fireB.sqf +++ b/Sources/epoch_config/scripts/fireB.sqf @@ -1,4 +1,19 @@ -_object = _this; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Custom Fire Effect emitter (not in use) + + 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_config/scripts/fireB.sqf +*/ + +params ["_object"]; _pos01 = getPos _object; /* @@ -25,4 +40,4 @@ uiSleep 5; deleteVehicle _x; } foreach [_source01,_source03,_li]; -deleteVehicle _object; \ No newline at end of file +deleteVehicle _object; diff --git a/Sources/epoch_config/scripts/fireG.sqf b/Sources/epoch_config/scripts/fireG.sqf index c55ca2b9..c89292b3 100644 --- a/Sources/epoch_config/scripts/fireG.sqf +++ b/Sources/epoch_config/scripts/fireG.sqf @@ -1,4 +1,19 @@ -_object = _this; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Custom Fire Effect emitter (not in use) + + 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_config/scripts/fireG.sqf +*/ + +params ["_object"]; _pos01 = getPos _object; /* @@ -26,4 +41,4 @@ uiSleep 5; deleteVehicle _x; } foreach [_source01,_source03,_li]; -deleteVehicle _object; \ No newline at end of file +deleteVehicle _object; diff --git a/Sources/epoch_config/scripts/fireR.sqf b/Sources/epoch_config/scripts/fireR.sqf index fd669ce0..ccc83636 100644 --- a/Sources/epoch_config/scripts/fireR.sqf +++ b/Sources/epoch_config/scripts/fireR.sqf @@ -1,4 +1,19 @@ -_object = _this; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Custom Fire Effect emitter (not in use) + + 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_config/scripts/fireR.sqf +*/ + +params ["_object"]; _pos01 = getPos _object; /* @@ -26,4 +41,4 @@ uiSleep 5; deleteVehicle _x; } foreach [_source01,_source03,_li]; -deleteVehicle _object; \ No newline at end of file +deleteVehicle _object; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf index 0da78b0c..5bc16e70 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf @@ -1,15 +1,18 @@ /* - Load Buildings - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Load Buildings from Epoch Hive + + 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_bases/EPOCH_server_loadBuildings.sqf */ - _maxTTL = parseNumber EPOCH_expiresBuilding; _config = 'CfgEpochClient' call EPOCH_returnConfig; _buildingJammerRange = getNumber(_config >> "buildingJammerRange"); diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveDEL.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveDEL.sqf index 8209cc70..c47db9ee 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveDEL.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveDEL.sqf @@ -1,11 +1,15 @@ /* - Hive Delete by Key - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive Delete by Key + + 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_core/compile/epoch_hive/fn_server_hiveDEL.sqf */ //_PREFIX = _this select 0; diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveEXPIRE.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveEXPIRE.sqf index d83b7c21..bc84e249 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveEXPIRE.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveEXPIRE.sqf @@ -1,11 +1,15 @@ /* - Hive Expire - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive Expire + + 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_core/compile/epoch_hive/fn_server_hiveEXPIRE.sqf */ private ["_prefix","_key","_expires","_call"]; diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGET.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGET.sqf index 6dcc9ebe..8764374d 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGET.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGET.sqf @@ -1,11 +1,15 @@ /* - Hive Expire - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive Get Data + + 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_core/compile/epoch_hive/fn_server_hiveGET.sqf */ diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETBIT.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETBIT.sqf index 3a16a4bd..38329602 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETBIT.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETBIT.sqf @@ -1,11 +1,15 @@ /* - Hive Getbit - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive Get Getbit + + 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_core/compile/epoch_hive/fn_server_hiveGETBIT.sqf */ diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETRANGE.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETRANGE.sqf index c8cd6edc..15772781 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETRANGE.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETRANGE.sqf @@ -1,14 +1,17 @@ /* - Hive Getrange - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive Get Getrange + + 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_core/compile/epoch_hive/fn_server_hiveGETRANGE.sqf */ - private["_hiveResponse", "_hiveStatus", "_hiveMessage", "_currentIndex", "_hiveMakeCall", "_data"]; // GetRange //_PREFIX = _this select 0; diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETTTL.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETTTL.sqf index e3479eca..711a945a 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETTTL.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETTTL.sqf @@ -1,14 +1,17 @@ /* - Hive Get w/ TTL - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: Florian Kinder - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive Get w/ TTL + + 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_core/compile/epoch_hive/fn_server_hiveGETTTL.sqf */ - private ["_hiveResponse","_hiveStatus","_hiveMessage","_whileCount"]; //_PREFIX = _this select 0; //_KEY = _this select 1; diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf index d055d67b..4bcb173a 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf @@ -1,11 +1,15 @@ /* - Hive Log - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive Log + + 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_core/compile/epoch_hive/fn_server_hiveLog.sqf */ diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSET.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSET.sqf index 40607473..3c25668f 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSET.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSET.sqf @@ -1,14 +1,17 @@ /* - Hive SET - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: Florian Kinder - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive SET + + 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_core/compile/epoch_hive/fn_server_hiveSET.sqf */ - private ["_prefix","_key","_value","_valueLength","_callStack","_call","_setterCall","_index","_charLimit"]; _prefix = _this select 0; diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETBIT.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETBIT.sqf index cbda2d42..8f0743d6 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETBIT.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETBIT.sqf @@ -1,14 +1,17 @@ /* - Hive SETBit - by Aaron Clark - EpochMod.com + Author: Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Contributors: - Improvements and or bugfixes and other contributions are welcome via the github: + Description: + Hive SETBit + + 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_core/compile/epoch_hive/fn_server_hiveSETBIT.sqf */ - private ["_prefix","_key","_value","_bitIndex"]; _prefix = _this select 0; diff --git a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETEX.sqf b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETEX.sqf index 84ff405a..3c8a0421 100644 --- a/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETEX.sqf +++ b/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETEX.sqf @@ -1,11 +1,15 @@ /* + Author: Aaron Clark - EpochMod.com + + Contributors: Florian Kinder + + Description: Hive SETEX - by Aaron Clark - EpochMod.com - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. - http://creativecommons.org/licenses/by-nc-nd/4.0/ + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike - Improvements and or bugfixes and other contributions are welcome via the github: + Github: https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETEX.sqf */ diff --git a/Sources/epoch_server_core/config.cpp b/Sources/epoch_server_core/config.cpp index 11d81de2..d0138a0a 100644 --- a/Sources/epoch_server_core/config.cpp +++ b/Sources/epoch_server_core/config.cpp @@ -1,6 +1,18 @@ -/**************************************************************************** -Copyright (C) 2015 - ARMA 3 EPOCH MOD [EpochMod.com] (v0.3.6.0) -*****************************************************************************/ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch Server Core Config + + 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_core/config.hpp +*/ + #define _ARMA_ class CfgPatches { class A3_epoch_server_core { diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index 0b7b3d43..37c4fa70 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -1,6 +1,17 @@ -/**************************************************************************** -Copyright (C) 2015 - ARMA 3 EPOCH MOD [EpochMod.com] (v0.3.6.0) -*****************************************************************************/ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch Server Settings Config + + 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_settngs/config.cpp +*/ #define _ARMA_ diff --git a/Sources/epoch_server_settings/configs/loots.h b/Sources/epoch_server_settings/configs/loots.h index d839f45b..8c287589 100644 --- a/Sources/epoch_server_settings/configs/loots.h +++ b/Sources/epoch_server_settings/configs/loots.h @@ -1,4 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + Contributors: + + Description: + Epoch Server side loot table configs + + 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_settngs/configs/loots.h +*/ class CfgMainTable { class Default @@ -1276,7 +1289,7 @@ class CfgLootTable { { "muzzle_snds_338_black", "item" }, 1 }, { { "muzzle_snds_338_green", "item" }, 1 }, { { "muzzle_snds_338_sand", "item" }, 1 } - + }; }; class Muzzles_93mmgMarkDLC diff --git a/Sources/epoch_server_settings/configs/maps/altis.h b/Sources/epoch_server_settings/configs/maps/altis.h index 087b5c4d..b6baf9d3 100644 --- a/Sources/epoch_server_settings/configs/maps/altis.h +++ b/Sources/epoch_server_settings/configs/maps/altis.h @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode server Side map specific configs for altis. + + 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_settngs/configs/maps/altis.h +*/ class Altis : Default { worldSize = 20000; diff --git a/Sources/epoch_server_settings/configs/maps/australia.h b/Sources/epoch_server_settings/configs/maps/australia.h index 7eda973f..53bfacc7 100644 --- a/Sources/epoch_server_settings/configs/maps/australia.h +++ b/Sources/epoch_server_settings/configs/maps/australia.h @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode server Side map specific configs for australia. + + 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_settngs/configs/maps/australia.h +*/ class Australia : Default { worldSize = 55000; diff --git a/Sources/epoch_server_settings/configs/maps/bornholm.h b/Sources/epoch_server_settings/configs/maps/bornholm.h index 7312d422..518445aa 100644 --- a/Sources/epoch_server_settings/configs/maps/bornholm.h +++ b/Sources/epoch_server_settings/configs/maps/bornholm.h @@ -1,8 +1,17 @@ -// Bornholm config created by Uro [www.UroGaming.co.uk] for ARMA 3 EPOCH MOD [EpochMod.com] -// -// Updated with some minor tweaks 20/01/2015 -// Updated for new telepos positions 7/22/2015 +/* + Author: Aaron Clark - EpochMod.com + Contributors: Uro1, Robio + + Description: + Epoch gamemode server Side map specific configs for bornholm. + + 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_settngs/configs/maps/bornholm.h +*/ class Bornholm : Default { worldSize = 25000; diff --git a/Sources/epoch_server_settings/configs/maps/chernarus.h b/Sources/epoch_server_settings/configs/maps/chernarus.h index c6cb1015..d1336ad3 100644 --- a/Sources/epoch_server_settings/configs/maps/chernarus.h +++ b/Sources/epoch_server_settings/configs/maps/chernarus.h @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Uro1, Robio + + Description: + Epoch gamemode server Side map specific configs for chernarus. + + 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_settngs/configs/maps/chernarus.h +*/ class Chernarus : Default { worldSize = 12000; diff --git a/Sources/epoch_server_settings/configs/maps/esseker.h b/Sources/epoch_server_settings/configs/maps/esseker.h index 6a447a56..74596837 100644 --- a/Sources/epoch_server_settings/configs/maps/esseker.h +++ b/Sources/epoch_server_settings/configs/maps/esseker.h @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Riche + + Description: + Epoch gamemode server Side map specific configs for esseker. + + 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_settngs/configs/maps/esseker.h +*/ class Esseker : Default { worldSize = 12000; @@ -19,131 +33,128 @@ class Esseker : Default containerPos[] = {}; telePos[] = { - // N [-0.286865,8.17383,-10.3098] // S [-0.415527,-7.05298,-10.3098] // E [13.5127,0.410156,-10.3098] // W [-14.4316,0.112793,-10.3098] - - - { "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", { 5073.31, 8903.09, 0 } }, - { "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", { 4407.77, 6054.78, 0 } }, - { "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", { 8692.93, 3854.72, 0 } } + { "Transport_N_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", { 5073.31, 8903.09, 0 } }, + { "Transport_W_EPOCH", { -14.4316, 0.112793, -10.3098 }, "", { 4407.77, 6054.78, 0 } }, + { "Transport_E_EPOCH", { 13.5127,0.410156,-10.3098 }, "", { 8692.93, 3854.72, 0 } } }; propsPos[] = { - //Banking - {"Land_PhoneBooth_02_F", {2676.67, 4481.42, 0.971237}, 251.364}, - {"Land_PhoneBooth_02_F", {4780.24, 5036.36, 0}, 61.8182}, - {"Land_PhoneBooth_02_F", {8375, 5886.44, 0.874567}, 260}, - {"Land_PhoneBooth_02_F", {9066.22, 5711.39, 1.01706}, 92.2728}, - {"Land_PhoneBooth_02_F", {10274, 5426.17, 0.389097}, 5.90916}, - {"Land_PhoneBooth_02_F", {11867.5, 7928.89, 0}, 0}, - {"Land_PhoneBooth_02_F", {1954.29, 7823.96, 0}, 19.5454}, - {"Land_PhoneBooth_02_F", {7229.75, 9369.1, 0}, 2.72723}, - // Turbines - {"Land_wpp_Turbine_V2_F", {660.226, 10060.1, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {638.57, 10022.9, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {619.792, 9992.28, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {8460.08, 10413.9, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {8454.32, 10389.2, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {9049.06, 7300.92, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {9076.69, 7307.17, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {9106.83, 7312.57, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {10366.2, 4436.95, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {10388.1, 4432.72, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {10409.6, 4431.36, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {10477.8, 1711.21, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {10450.9, 1722.47, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {10427.2, 1732.72, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {6786.74, 1593.55, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {6815.66, 1599.61, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {5271.16, 701.119, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {5299.02, 686.961, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {5333.93, 680.457, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {1004.79, 995.512, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {1013.99, 964.396, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {1781.4, 4202.1, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {1809.62, 4202.09, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {3322.47, 6256.38, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {3354.45, 6249.63, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {3380.16, 6244.95, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {1185.73, 7709.4, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {1223.07, 7716, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {5535.8, 8959.03, 0}, 0}, - {"Land_wpp_Turbine_V2_F", {5507.72, 8966.35, 0}, 0}, - // Esseker South Trader - {"ClutterCutter_EP1", {8694.08, 3853.14, 0}, 0}, - {"ClutterCutter_EP1", {8691.68, 3859.46, 0}, 0}, - {"land_Objects11", {8699.23, 3858.52, 0}, 319.546}, - {"RU_WarfareBVehicleServicePoint", {8693.92, 3864.09, -0.126221}, 149.545}, - {"CDF_WarfareBBarrier10x", {8692.13, 3865.79, -0.315292}, 329.545}, - {"CDF_WarfareBBarrier10x", {8705.19, 3862.98, -0.226089}, 60.4545}, - {"CDF_WarfareBBarrier10x", {8700.07, 3851.64, 0}, 329.545}, - {"CDF_WarfareBBarrier10x", {8687.66, 3853.77, -0.350647}, 59.5454}, - {"Land_Fire_barrel_burning", {8700.64, 3856.44, 0}, 60.9091}, - {"Land_Ind_BoardsPack2", {8689.38, 3853.65, 0}, 327.273}, - {"Paleta2", {8691.03, 3851.63, 0}, 0}, - {"Land_cages_EP1", {8696.63, 3851.24, 0}, 240}, - {"Land_transport_kiosk_EP1", {8689.07, 3861.7, 0}, 60.4545}, - {"Land_stand_waterl_EP1", {8698.58, 3852.75, 0}, 149.545}, - {"Land_tires_EP1", {8690.3, 3854.55, 0}, 0}, - {"Misc_TyreHeapEP1", {8688.46, 3856.11, 0}, 0}, - {"Land_transport_crates_EP1", {8693.05, 3859.05, 0}, 0}, - {"Campfire_burning_F", {8696.22, 3857.09, 0}, 0}, - {"Land_bags_EP1", {8687.38, 3861.25, 0}, 0}, - // West Trader - {"ClutterCutter_EP1", {4403.29, 6054.46, 0}, 0}, - {"CDF_WarfareBBarrier10x", {4399.01, 6060.29, -0.514542}, 307.273}, - {"CDF_WarfareBBarrier10x", {4411.15, 6059.94, 0}, 217.273}, - {"CDF_WarfareBBarrier10x", {4414.62, 6048.48, -0.14389}, 306.818}, - {"CDF_WarfareBBarrier10x", {4402.54, 6048.84, -0.160172}, 37.7273}, - {"USMC_WarfareBVehicleServicePoint", {4405.97, 6049.83, 0}, 127.727}, - {"Misc_cargo_cont_net2", {4400.11, 6053.7, 0}, 304.545}, - {"Land_StallWater_F", {4399.67, 6058.44, 0}, 307.273}, - {"Land_Sacks_heap_F", {4405.97, 6061.98, 0}, 0}, - {"Land_Sacks_goods_F", {4407.62, 6060.97, 0}, 35.4546}, - {"Land_CratesShabby_F", {4401.47, 6061.99, 0}, 40}, - {"Land_CratesPlastic_F", {4412.85, 6049.18, 0}, 0}, - {"Land_WoodenCart_F", {4412.07, 6047.53, 0}, 34.091}, - {"Land_Cages_F", {4401.22, 6060.5, 0}, 0}, - {"Land_fort_bagfence_corner", {4410.22, 6059.21, 0}, 36.3637}, - {"Land_fort_bagfence_corner", {4412.56, 6057.64, 0}, 305.455}, - {"Land_Campfire_burning", {4403.67, 6057.8, 0.0157471}, 0}, - {"Land_stand_small_EP1", {4414.19, 6049.87, 0}, 126.818}, - {"Land_transport_kiosk_EP1", {4414.51, 6051.86, 0}, 215}, - {"Land_Fire_barrel_burning", {4413.8, 6056.01, 0}, 0}, - // North Trader - {"ClutterCutter_EP1", {5068.43, 8897.88, 0}, 0}, - {"CDF_WarfareBBarrier10x", {5065.82, 8891.55, -0.294769}, 29.5455}, - {"CDF_WarfareBBarrier10x", {5064.97, 8903.57, -0.186707}, 302.727}, - {"CDF_WarfareBBarrier10x", {5077, 8896.71, -0.080307}, 299.545}, - {"CDF_WarfareBBarrier10x", {5076.48, 8908.56, -0.235596}, 29.5455}, - {"land_Objects70", {5067.69, 8903.17, 0}, 119.545}, - {"Land_bags_EP1", {5078.3, 8901.94, 0}, 29.5454}, - {"Land_Fire_barrel_burning", {5067.41, 8895.88, 0}, 0}, - {"Land_Ind_BoardsPack2", {5072.56, 8908.35, 0}, 208.182}, - {"Land_Campfire_burning", {5070.59, 8897.51, 0}, 0}, - {"Land_Carpet_rack_EP1", {5077.88, 8906.5, 0}, 30}, - {"Misc_palletsfoiled_heap", {5064.94, 8895.37, 0}, 29.5455}, - {"Land_bags_stack_EP1", {5077.46, 8899.98, 0}, 300}, - {"Land_Misc_IronPipes_EP1", {5075.13, 8898.29, 0}, 275.909}, - {"Land_cages_EP1", {5073.74, 8893.72, 0}, 314.545}, - {"Land_Reservoir_EP1", {5075.23, 8907.88, 0}, 146.364}, - {"Land_Crates_stack_EP1", {5064.93, 8901.7, 0}, 31.3636}, - {"ShedSmall", {5067.43, 8893.46, 0}, 28.6363}, - // Protection Domes - { "ProtectionZone_Invisible_F", { 5073.31, 8903.09, 0 }, 0, true }, - { "ProtectionZone_Invisible_F", { 4407.77, 6054.78, 0 }, 0, true }, - { "ProtectionZone_Invisible_F", { 8692.93, 3854.72, 0 }, 0, true } + //Banking + {"Land_PhoneBooth_02_F", {2676.67, 4481.42, 0.971237}, 251.364}, + {"Land_PhoneBooth_02_F", {4780.24, 5036.36, 0}, 61.8182}, + {"Land_PhoneBooth_02_F", {8375, 5886.44, 0.874567}, 260}, + {"Land_PhoneBooth_02_F", {9066.22, 5711.39, 1.01706}, 92.2728}, + {"Land_PhoneBooth_02_F", {10274, 5426.17, 0.389097}, 5.90916}, + {"Land_PhoneBooth_02_F", {11867.5, 7928.89, 0}, 0}, + {"Land_PhoneBooth_02_F", {1954.29, 7823.96, 0}, 19.5454}, + {"Land_PhoneBooth_02_F", {7229.75, 9369.1, 0}, 2.72723}, + // Turbines + {"Land_wpp_Turbine_V2_F", {660.226, 10060.1, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {638.57, 10022.9, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {619.792, 9992.28, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {8460.08, 10413.9, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {8454.32, 10389.2, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {9049.06, 7300.92, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {9076.69, 7307.17, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {9106.83, 7312.57, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {10366.2, 4436.95, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {10388.1, 4432.72, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {10409.6, 4431.36, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {10477.8, 1711.21, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {10450.9, 1722.47, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {10427.2, 1732.72, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {6786.74, 1593.55, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {6815.66, 1599.61, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {5271.16, 701.119, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {5299.02, 686.961, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {5333.93, 680.457, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {1004.79, 995.512, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {1013.99, 964.396, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {1781.4, 4202.1, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {1809.62, 4202.09, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {3322.47, 6256.38, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {3354.45, 6249.63, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {3380.16, 6244.95, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {1185.73, 7709.4, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {1223.07, 7716, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {5535.8, 8959.03, 0}, 0}, + {"Land_wpp_Turbine_V2_F", {5507.72, 8966.35, 0}, 0}, + // Esseker South Trader + {"ClutterCutter_EP1", {8694.08, 3853.14, 0}, 0}, + {"ClutterCutter_EP1", {8691.68, 3859.46, 0}, 0}, + {"land_Objects11", {8699.23, 3858.52, 0}, 319.546}, + {"RU_WarfareBVehicleServicePoint", {8693.92, 3864.09, -0.126221}, 149.545}, + {"CDF_WarfareBBarrier10x", {8692.13, 3865.79, -0.315292}, 329.545}, + {"CDF_WarfareBBarrier10x", {8705.19, 3862.98, -0.226089}, 60.4545}, + {"CDF_WarfareBBarrier10x", {8700.07, 3851.64, 0}, 329.545}, + {"CDF_WarfareBBarrier10x", {8687.66, 3853.77, -0.350647}, 59.5454}, + {"Land_Fire_barrel_burning", {8700.64, 3856.44, 0}, 60.9091}, + {"Land_Ind_BoardsPack2", {8689.38, 3853.65, 0}, 327.273}, + {"Paleta2", {8691.03, 3851.63, 0}, 0}, + {"Land_cages_EP1", {8696.63, 3851.24, 0}, 240}, + {"Land_transport_kiosk_EP1", {8689.07, 3861.7, 0}, 60.4545}, + {"Land_stand_waterl_EP1", {8698.58, 3852.75, 0}, 149.545}, + {"Land_tires_EP1", {8690.3, 3854.55, 0}, 0}, + {"Misc_TyreHeapEP1", {8688.46, 3856.11, 0}, 0}, + {"Land_transport_crates_EP1", {8693.05, 3859.05, 0}, 0}, + {"Campfire_burning_F", {8696.22, 3857.09, 0}, 0}, + {"Land_bags_EP1", {8687.38, 3861.25, 0}, 0}, + // West Trader + {"ClutterCutter_EP1", {4403.29, 6054.46, 0}, 0}, + {"CDF_WarfareBBarrier10x", {4399.01, 6060.29, -0.514542}, 307.273}, + {"CDF_WarfareBBarrier10x", {4411.15, 6059.94, 0}, 217.273}, + {"CDF_WarfareBBarrier10x", {4414.62, 6048.48, -0.14389}, 306.818}, + {"CDF_WarfareBBarrier10x", {4402.54, 6048.84, -0.160172}, 37.7273}, + {"USMC_WarfareBVehicleServicePoint", {4405.97, 6049.83, 0}, 127.727}, + {"Misc_cargo_cont_net2", {4400.11, 6053.7, 0}, 304.545}, + {"Land_StallWater_F", {4399.67, 6058.44, 0}, 307.273}, + {"Land_Sacks_heap_F", {4405.97, 6061.98, 0}, 0}, + {"Land_Sacks_goods_F", {4407.62, 6060.97, 0}, 35.4546}, + {"Land_CratesShabby_F", {4401.47, 6061.99, 0}, 40}, + {"Land_CratesPlastic_F", {4412.85, 6049.18, 0}, 0}, + {"Land_WoodenCart_F", {4412.07, 6047.53, 0}, 34.091}, + {"Land_Cages_F", {4401.22, 6060.5, 0}, 0}, + {"Land_fort_bagfence_corner", {4410.22, 6059.21, 0}, 36.3637}, + {"Land_fort_bagfence_corner", {4412.56, 6057.64, 0}, 305.455}, + {"Land_Campfire_burning", {4403.67, 6057.8, 0.0157471}, 0}, + {"Land_stand_small_EP1", {4414.19, 6049.87, 0}, 126.818}, + {"Land_transport_kiosk_EP1", {4414.51, 6051.86, 0}, 215}, + {"Land_Fire_barrel_burning", {4413.8, 6056.01, 0}, 0}, + // North Trader + {"ClutterCutter_EP1", {5068.43, 8897.88, 0}, 0}, + {"CDF_WarfareBBarrier10x", {5065.82, 8891.55, -0.294769}, 29.5455}, + {"CDF_WarfareBBarrier10x", {5064.97, 8903.57, -0.186707}, 302.727}, + {"CDF_WarfareBBarrier10x", {5077, 8896.71, -0.080307}, 299.545}, + {"CDF_WarfareBBarrier10x", {5076.48, 8908.56, -0.235596}, 29.5455}, + {"land_Objects70", {5067.69, 8903.17, 0}, 119.545}, + {"Land_bags_EP1", {5078.3, 8901.94, 0}, 29.5454}, + {"Land_Fire_barrel_burning", {5067.41, 8895.88, 0}, 0}, + {"Land_Ind_BoardsPack2", {5072.56, 8908.35, 0}, 208.182}, + {"Land_Campfire_burning", {5070.59, 8897.51, 0}, 0}, + {"Land_Carpet_rack_EP1", {5077.88, 8906.5, 0}, 30}, + {"Misc_palletsfoiled_heap", {5064.94, 8895.37, 0}, 29.5455}, + {"Land_bags_stack_EP1", {5077.46, 8899.98, 0}, 300}, + {"Land_Misc_IronPipes_EP1", {5075.13, 8898.29, 0}, 275.909}, + {"Land_cages_EP1", {5073.74, 8893.72, 0}, 314.545}, + {"Land_Reservoir_EP1", {5075.23, 8907.88, 0}, 146.364}, + {"Land_Crates_stack_EP1", {5064.93, 8901.7, 0}, 31.3636}, + {"ShedSmall", {5067.43, 8893.46, 0}, 28.6363}, + // Protection Domes + { "ProtectionZone_Invisible_F", { 5073.31, 8903.09, 0 }, 0, true }, + { "ProtectionZone_Invisible_F", { 4407.77, 6054.78, 0 }, 0, true }, + { "ProtectionZone_Invisible_F", { 8692.93, 3854.72, 0 }, 0, true } }; staticNpcPos[] = { - //South - { "C_man_hunter_1_F", {8700.09, 3859.75, -0.0334778}, 241}, - //West - { "C_man_w_worker_F", {4411.08, 6058.25, 0}, 24.5455}, - //North - { "C_man_shorts_4_F_asia", {5068.45, 8893.52, 0}, 30} + //South + { "C_man_hunter_1_F", {8700.09, 3859.75, -0.0334778}, 241}, + //West + { "C_man_w_worker_F", {4411.08, 6058.25, 0}, 24.5455}, + //North + { "C_man_shorts_4_F_asia", {5068.45, 8893.52, 0}, 30} }; }; diff --git a/Sources/epoch_server_settings/configs/maps/stratis.h b/Sources/epoch_server_settings/configs/maps/stratis.h index 5a2b5366..f5dd2d16 100644 --- a/Sources/epoch_server_settings/configs/maps/stratis.h +++ b/Sources/epoch_server_settings/configs/maps/stratis.h @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode server Side map specific configs for stratis. + + 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_settngs/configs/maps/stratis.h +*/ class Stratis : Default { worldSize = 6000; diff --git a/Sources/epoch_server_settings/configs/maps/takistan.h b/Sources/epoch_server_settings/configs/maps/takistan.h index 2be8abc3..081757cd 100644 --- a/Sources/epoch_server_settings/configs/maps/takistan.h +++ b/Sources/epoch_server_settings/configs/maps/takistan.h @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode server Side map specific configs for takistan. + + 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_settngs/configs/maps/takistan.h +*/ class Takistan : Default { worldSize = 12000; diff --git a/Sources/epoch_server_settings/configs/maps/vr.h b/Sources/epoch_server_settings/configs/maps/vr.h index 88ab1613..f9bb2a58 100644 --- a/Sources/epoch_server_settings/configs/maps/vr.h +++ b/Sources/epoch_server_settings/configs/maps/vr.h @@ -1,3 +1,17 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch gamemode server Side map specific configs for vr. + + 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_settngs/configs/maps/vr.h +*/ class VR : Default { worldSize = 10000; @@ -17,8 +31,7 @@ class VR : Default // S [-0.415527,-7.05298,-10.3098] // E [13.5127,0.410156,-10.3098] // W [-14.4316,0.112793,-10.3098] - - { "Transport_C_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", { 4089.82, 4597.71, 0.00143433 } } + { "Transport_C_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", { 4089.82, 4597.71, 0.00143433 } } }; propsPos[] = {}; staticNpcPos[] = {}; diff --git a/Sources/epoch_server_settings/configs/security/data/custom_vars.h b/Sources/epoch_server_settings/configs/security/data/custom_vars.h index 27b7b1fd..9c27559c 100644 --- a/Sources/epoch_server_settings/configs/security/data/custom_vars.h +++ b/Sources/epoch_server_settings/configs/security/data/custom_vars.h @@ -1,3 +1,18 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Epoch AH config for whistlisted gvars + + 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_settngs/configs/securty/data/custom_vars.h +*/ + // all var names must be lowercase custom[] = {}; bis[] = { @@ -117,4 +132,4 @@ epoch[] = { "epoch_craftitempreview","epoch_craftitem","epoch_unitspawn","epoch_antiwall","epoch_enterbuilding","epoch_onpause","epoch_interactvehicle","epoch_showstats","epoch_group_btnmod","epoch_group_btninvite","epoch_group_onload","epoch_group_list","epoch_group_combo", "epoch_group_btnleave","epoch_group_btnkick","epoch_cgroup_grouptext","epoch_cgroup_onload","epoch_cgroup_btncreate","epoch_igroup_acceptinvite","epoch_igroup_onload","epoch_igroup_refresh","epoch_group_update","epoch_inventory_group","epoch_inventory_igroup", "epoch_mission_refresh","epoch_mission_description" -}; \ No newline at end of file +}; diff --git a/Sources/epoch_server_settings/configs/security/security_checks.h b/Sources/epoch_server_settings/configs/security/security_checks.h index 0046a5b0..c3b44d88 100644 --- a/Sources/epoch_server_settings/configs/security/security_checks.h +++ b/Sources/epoch_server_settings/configs/security/security_checks.h @@ -1,7 +1,17 @@ /* - EAH 2.0 -*/ + Author: Aaron Clark - EpochMod.com + Contributors: + + Description: + Epoch Server side securty checks config + + 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_settngs/configs/securty/security_checks.h +*/ class CfgSecConf { debug = false; From 2ed8b18d24bd697aca33d9d53966d5b1ac1fbfbb Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 7 Dec 2015 13:57:51 -0600 Subject: [PATCH 03/16] import full hitpoint configs for now --- Changelogs/0.3.6.0.txt | 1 + .../Configs/CfgVehicles/Antagonists.hpp | 521 +++++++++++++++--- .../Configs/CfgVehicles/Players.hpp | 265 +++++++-- 3 files changed, 683 insertions(+), 104 deletions(-) diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index fa428548..44abf36f 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -1,4 +1,5 @@ **Client** +[Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well. [Fixed] Reduce run speed of Sappers since 1.54 update. **Server** diff --git a/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp b/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp index e7af8825..688343a6 100644 --- a/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp +++ b/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp @@ -53,32 +53,129 @@ class Epoch_Char_base_F : Civilian }; }; }; - class HitPoints : HitPoints + class HitPoints { - class HitHead : HitHead + class HitFace { - armor = "0.3*2.5"; + armor = 1; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; }; - class HitBody : HitBody + class HitNeck: HitFace { - armor = "0.5*10"; + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; }; - class HitHands : HitHands + class HitHead: HitNeck { - armor = "0.8*5"; + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; }; - class HitLegs : HitLegs + class HitPelvis { - armor = "0.8*5"; + armor = 1; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 1; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; }; - class HitFace : HitFace {}; - class HitNeck : HitNeck {}; - class HitPelvis : HitPelvis {}; - class HitAbdomen : HitAbdomen {}; - class HitDiaphragm : HitDiaphragm {}; - class HitChest : HitChest {}; - class HitArms : HitArms {}; - }; weapons[] = { "Throw", "Put" }; respawnWeapons[] = { "Throw", "Put" }; @@ -128,32 +225,129 @@ class Epoch_Sapper_base_F: Civilian2 }; }; }; - class HitPoints: HitPoints + class HitPoints { - class HitHead: HitHead + class HitFace { - armor = "0.3*2.5"; + armor = 1; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; }; - class HitBody: HitBody + class HitNeck: HitFace { - armor = "0.5*10"; + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; }; - class HitHands: HitHands + class HitHead: HitNeck { - armor = "0.8*5"; + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; }; - class HitLegs: HitLegs + class HitPelvis { - armor = "0.8*5"; + armor = 1; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 1; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; }; - class HitFace : HitFace {}; - class HitNeck : HitNeck {}; - class HitPelvis : HitPelvis {}; - class HitAbdomen : HitAbdomen {}; - class HitDiaphragm : HitDiaphragm {}; - class HitChest : HitChest {}; - class HitArms : HitArms {}; - }; weapons[] = {"Throw","Put"}; respawnWeapons[] = {"Throw","Put"}; @@ -219,32 +413,129 @@ class Epoch_Sapper_F: Epoch_Sapper_base_F magazines[] = {}; respawnMagazines[] = {}; - class HitPoints : HitPoints + class HitPoints { - class HitHead : HitHead + class HitFace { - armor = 4; + armor = 3; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; }; - class HitBody : HitBody + class HitNeck: HitFace { - armor = 7; + armor = 3; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; }; - class HitHands : HitHands + class HitHead: HitNeck + { + armor = 3; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; + }; + class HitPelvis + { + armor = 3; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 3; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 3; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 3; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest { armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; }; - class HitLegs : HitLegs + class HitArms { - armor = 9; + armor = 1000; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1000; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 8; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; }; - class HitFace : HitFace {}; - class HitNeck : HitNeck {}; - class HitPelvis : HitPelvis {}; - class HitAbdomen : HitAbdomen {}; - class HitDiaphragm : HitDiaphragm {}; - class HitChest : HitChest {}; - class HitArms : HitArms {}; - }; }; class Epoch_SapperB_F : Epoch_Sapper_base_F @@ -263,32 +554,130 @@ class Epoch_SapperB_F : Epoch_Sapper_base_F magazines[] = {}; respawnMagazines[] = {}; - class HitPoints : HitPoints + + class HitPoints { - class HitHead : HitHead + class HitFace { - armor = 4; + armor = 3; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; }; - class HitBody : HitBody + class HitNeck: HitFace { - armor = 7; + armor = 3; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; }; - class HitHands : HitHands + class HitHead: HitNeck + { + armor = 3; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; + }; + class HitPelvis + { + armor = 3; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 3; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 3; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 3; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest { armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; }; - class HitLegs : HitLegs + class HitArms { - armor = 9; + armor = 1000; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1000; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 8; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; }; - class HitFace : HitFace {}; - class HitNeck : HitNeck {}; - class HitPelvis : HitPelvis {}; - class HitAbdomen : HitAbdomen {}; - class HitDiaphragm : HitDiaphragm {}; - class HitChest : HitChest {}; - class HitArms : HitArms {}; - }; }; diff --git a/Sources/epoch_config/Configs/CfgVehicles/Players.hpp b/Sources/epoch_config/Configs/CfgVehicles/Players.hpp index b1e66d5f..c08a5818 100644 --- a/Sources/epoch_config/Configs/CfgVehicles/Players.hpp +++ b/Sources/epoch_config/Configs/CfgVehicles/Players.hpp @@ -233,35 +233,133 @@ class Epoch_Female_wetsuit_F : Epoch_Female_base_F handgunAmmoCoef = 0.2; // O_Soldier_diver_base_F - class HitPoints: HitPoints + class HitPoints { - class HitHead: HitHead + class HitFace { - armor = 2; + armor = 1; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; }; - class HitBody: HitBody + class HitNeck: HitFace { - armor = 2; + armor = 1; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; }; - class HitHands: HitHands + class HitHead: HitNeck { - armor = 2; + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; }; - class HitLegs: HitLegs + class HitPelvis { - armor = 2; + armor = 1; + material = -1; + name = "pelvis"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 1; + material = -1; + name = "spine1"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 1; + material = -1; + name = "spine2"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitChest: HitDiaphragm + { + armor = 1; + material = -1; + name = "spine3"; + passThrough = 0.1; + radius = 0.15; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 6; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms + { + armor = 1; + material = -1; + name = "arms"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + }; + class HitHands: HitArms + { + armor = 1; + material = -1; + name = "hands"; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 1; + material = -1; + name = "legs"; + passThrough = 1; + radius = 0.12; + explosionShielding = 1; + visual = "injury_legs"; + minimalHit = 0.01; }; - class HitFace : HitFace {}; - class HitNeck : HitNeck {}; - class HitPelvis : HitPelvis {}; - class HitAbdomen : HitAbdomen {}; - class HitDiaphragm : HitDiaphragm {}; - class HitChest : HitChest {}; - class HitArms : HitArms {}; - }; armor = 2; - armorStructural = 5; + armorStructural = 0.5; + explosionShielding = 0.05; // O_Soldier_base_F sensitivity = 3; @@ -340,43 +438,133 @@ class Epoch_Female_Ghillie1_F : Epoch_Female_base_F handgunAmmoCoef = 0.1; // O_Soldier_base_F - class HitPoints: HitPoints + class HitPoints { - class HitHead: HitHead + class HitFace { armor = 1; - passThrough = 1; - explosionShielding = 0.5; + material = -1; + name = "face_hub"; + passThrough = 0.1; + radius = 0.08; + explosionShielding = 0.1; + minimalHit = 0.01; }; - class HitBody: HitBody + class HitNeck: HitFace + { + armor = 4; + material = -1; + name = "neck"; + passThrough = 0.1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0.01; + }; + class HitHead: HitNeck + { + armor = 1; + material = -1; + name = "head"; + passThrough = 0.1; + radius = 0.2; + explosionShielding = 0.5; + minimalHit = 0.01; + depends = "HitFace max HitNeck"; + }; + class HitPelvis { armor = 6; - passThrough = 0.5; + material = -1; + name = "pelvis"; + passThrough = 0.04; + radius = 0.2; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitAbdomen: HitPelvis + { + armor = 6; + material = -1; + name = "spine1"; + passThrough = 0.04; + radius = 0.15; + explosionShielding = 1; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitDiaphragm: HitAbdomen + { + armor = 6; + material = -1; + name = "spine2"; + passThrough = 0.04; + radius = 0.15; explosionShielding = 1.5; + visual = "injury_body"; + minimalHit = 0.01; }; - class HitHands: HitHands + class HitChest: HitDiaphragm + { + armor = 6; + material = -1; + name = "spine3"; + passThrough = 0.04; + radius = 0.15; + explosionShielding = 1.5; + visual = "injury_body"; + minimalHit = 0.01; + }; + class HitBody: HitChest + { + armor = 1000; + material = -1; + name = "body"; + passThrough = 0.04; + radius = 0.16; + explosionShielding = 1.5; + visual = "injury_body"; + minimalHit = 0.01; + depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest"; + }; + class HitArms { armor = 8; - passThrough = 0.5; + material = -1; + name = "arms"; + passThrough = 0.6; + radius = 0.1; explosionShielding = 0.8; + visual = "injury_hands"; + minimalHit = 0.01; }; - class HitLegs: HitLegs + class HitHands: HitArms { armor = 8; - passThrough = 0.5; + material = -1; + name = "hands"; + passThrough = 0.6; + radius = 0.1; explosionShielding = 0.8; + visual = "injury_hands"; + minimalHit = 0.01; + depends = "HitArms"; + }; + class HitLegs + { + armor = 8; + material = -1; + name = "legs"; + passThrough = 0.6; + radius = 0.12; + explosionShielding = 0.8; + visual = "injury_legs"; + minimalHit = 0.01; }; - class HitFace : HitFace {}; - class HitNeck : HitNeck {}; - class HitPelvis : HitPelvis {}; - class HitAbdomen : HitAbdomen {}; - class HitDiaphragm : HitDiaphragm {}; - class HitChest : HitChest {}; - class HitArms : HitArms {}; - }; armor = 2; - armorStructural = 5; + armorStructural = 0.5; + explosionShielding = 0.05; // O_sniper_F threat[] = {1,0.6,0.6}; @@ -662,7 +850,8 @@ class Epoch_Man_base_F : O_Soldier_base_F }; }; armor = 2; - armorStructural = 5; + armorStructural = 0.5; + explosionShielding = 0.05; }; From f29efacc2d4e7a594c8d657e0ac750e3e9a71523 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 7 Dec 2015 18:56:57 -0600 Subject: [PATCH 04/16] 0.3.6.005 --- .../@epochhive/addons/a3_epoch_server.pbo | Bin 362227 -> 362169 bytes .../addons/a3_epoch_server_settings.pbo | Bin 274451 -> 278926 bytes .../compile/setup/EPOCH_client_publicEH.sqf | 5 - Sources/epoch_config/Configs/CfgVehicles.hpp | 425 +----------------- .../Configs/CfgVehicles/Antagonists.hpp | 27 -- .../Configs/CfgVehicles/Players.hpp | 4 +- 6 files changed, 3 insertions(+), 458 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 89970374bfdadb586bf38ddbfafe79a3e5c369ea..275923c6c29d8c72ad74d43f39f45c0e5d578b4f 100644 GIT binary patch delta 329 zcmey|E4H&&Y{M5uw&$x8!*&Wze#or6S(d3>h}l&uZS!=IUHlxJj-@3T`9)Tf6U~(C zo%8cbiZYW*OY)0~t$4Y3xj0=?i<65o3raHc^MC@JKKY3$3Qnb&IVqWW>BS0ZMftf3 zt_AtY844bmWvL(?3P9kKnVg!JoC?$c;yD)OCMpD!Cgo%%Lu86m6@oJoi&7OFb2772 z6*L?Jd~|~yH5GJ26*5Xn3W}}t^~=l4^^!7+OG;BR^YxPRbM=8Zw=^%aq*5PfOln?n zYO#JI&|KXDu(`TWLEU1Ixw?rUb778gpIm2NGQD>_6YpeBHJ)a1wRUke#_i&2OySLJ uriLaaW|r+GE17_pd3(u9mh8JCyrpTKQv@&f@45HRWtsb~`?I-DegXimk#WTU delta 130 zcmdnlEB3ipY{M5uHV%pSu+M^%A2KUX&)>|%w^^GhQ;1nOK7R9bkzM>k3P9kKpO~WH zRGOKSl9`uYyjk9CCgb!o>zM@Ec)7IndAXWzsqY9$j8 iGjF$A$&!6nL}~G+(8+!Wdn=0>-mH+HuyaYP!chQ%A};m- diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index dd36851f3e78e78cbd64ec65d9f7fb8816b56852..f301c85e73839e1f011ee052012ec8b202137f22 100644 GIT binary patch delta 5284 zcmc&&YfKbZ6n4(8JXV+bpz;ve0hB6TSf!#BAGiwDL~2k_`uJgHmw}xCJL}A>SS_qX z{}|hlQ)Kt@$G;PvYQ=2|)(l#+_Y|=#AGk12_)m4NFbd$~f z=H7G9J?FdUzK;Lqv=8=9KU6liFspKF;iO5EoT9r@sLFAAJopj%sm=Ef@3chS>f^Sy zes;JuBSuAYP|E*jbmHNgX4;ZcfB0_ZWVPjiKb4tJ>k9VxiXEw3;TPwO1NpN@-QIhk`s!$;>J0-!R2%;M+Vv9VY)5VtZ(hgq2LQw>F zm8^C{&sBL5X2m(SZl+7t=BCm@7Pcc@0NMl#-ZM957nC;tjv~Gz1f_q zS2t#zpt!t_pe>}@YTPglEk=d#|ia~Y8M=PLT755aO5s%i6C^y1&z;jA2Dw_ zM;4ajL8#NkOKwi`KEB9(qdQl|oYDB;As5MLWQc}*&?s%24$TcCq;#`@y~ip#d0FPG zdFk=s492E!WJmOvQ>imKHR6a)jR;QN1C7YML$J_5{+S5@0!{EX$+*B2kk%$h@jv`B zja+Yn*W+Sswl$o)8m}j~z+*{c0FueZBQT$dCG`PFB~3>lO~+q{;TZvVNvpSzHv%wE z!^`xlZvw#T-DVOEuQ;BY zAPg@(PGzt@s5*_DJsukQ*CEUjON%}XOUhelx9u&o8y0EgY76Z~aa60Wf+YoEcxNjl zpheV*b6P#czqLZLC00E_k>DaNe%VqHudHmD#8vQ;O17m9mSATrQi4) z0zFSBMW<+gcT_H z)FnlS2=r1GaZXeV&?q%Vv(8XC=NUQ^D_1jf$fYyXtRJ*0oG(?;TYZ!Q(nmXg+XsuW z(sUM*0~eVL^4eLLOTl|OxZeaXl3QmX%dEvA4L`Gqu>D|pz#`UC5?t$Aj~IF=U*5-nMB3GjQINHW|R7V&TN5weeg9)AG38X z47nQo^A&8>4o>p$SDrF+b8_LuSr3=WrR%5<3oJ^T_dL_)*RB#GsbK+}Ftlg$M zr?G1`T}awzxa^60ZZ3n#D4KZ*j>+QP*;y?IIUYVs@Ps4*CJz2rHpwolam9isaY_Bd nG}t!H!C;`?y=R!ZJpS`ex#H?NL*n1PNrMgFKYafRmy-A|zvhTw delta 1905 zcmb_cZ%k8H6z82H7O*-H{D;7mp%lcnl&LeDD}ronO4yt*0ZCIzvDMO7+hSEV-SmTV zCTM-e6CnZ$Nac_GDWxNZ#4mGOGR@4AEt#2{BO134&N#DVAJCoq-YVIbeex#n<#+Dy zoO6HY+>_gSG)em9rBmCp=bOz{n`2^PtfH&Yu}f!lyUCbcoZcPSpQ&!URaljGH6}(X zP^T=M8uG+UWWQBu5oMGJtW1&HsR%s9Cy||@G zC=uNUJdRy}ld%4)4vx>D%bxga@ zpexj^(;0F#2`^4fUS4SL9Jea8BO!KwY&l>Fs!S7iNq;ggobdR8oY zTz1jf#FPtUR*%i%vo)~#1FX^`vRc32uOsl5rODx<>lJm)d+J!D==uM;n(8zOdOiPG zrMp2+=y&++%quq87-gb(pWkLN?eS8Z^o9aGZ`Oa@`4KLgpZRP~n_KiU`W!xo=<>4l zdZY1Q|48k)P;HIuTncz75;zAs6`BL8v-sl!coWZ@hvnEdCCo?jawx<{=OK-oS(x7e z=fzhxH*{ZtesDxaIoDlEd&7pa&Vr-_x#8{DKYhI705xr0%n zq?-s+cho$@O*yF?Hpxx-w8!0anw(FTyQYWC87s-KbM){mmr*aIVowim2`BDwVm4J; zZ&X2LFS%@N<`LDTG|&r+m6m+f%ahhntm+aW>c$Ezy2Qiwk@K}ia&F;fR7NU>x!HO| zNtKF!T%uG;X09ctFB&ULv-HuqAND~y-s+?K{k#vBaI_B9LD+!BL3j_n?@))vgOIDB zr_WK@Wf}pQ{p>QanIXu+@A+O`h*B-;C-iDREMxVL46@DD@^{!XV_NGFmh{O zhz}Rg?`Q Date: Tue, 8 Dec 2015 11:07:43 -0600 Subject: [PATCH 05/16] 0.3.6.006 --- Changelogs/0.3.6.0.txt | 3 +++ .../@epochhive/addons/a3_epoch_server.pbo | Bin 362169 -> 362412 bytes .../compile/inventory/EPOCH_refeshUI.sqf | 10 +++---- .../compile/setup/masterLoop/Event1.sqf | 8 +++--- .../epoch_server/EPOCH_serverLootObject.sqf | 25 ++++++++++-------- 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index 44abf36f..2fa1bc78 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -1,4 +1,5 @@ **Client** + [Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well. [Fixed] Reduce run speed of Sappers since 1.54 update. @@ -6,5 +7,7 @@ [Fixed] Typo in server side AH event handler code and repacked a3_server_settings.pbo. [Fixed] Storage was incorrectly set to set damage to 99% instead of 1% to temp force maintenance option after restart. [Fixed] Add player objects to remains collector, this should allow for proper corpse cleanup. +[Changed] Weapons will now only spawn with a single magazine and a random ammo count. +[Changed] Magazines now spawn with a random ammo count. [Changed] Disable simulation of locked storage devices. This also prevents removal of items until device is unlocked/re-simulated. [Info] Removed old .bikey and added new one for 0360. diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 275923c6c29d8c72ad74d43f39f45c0e5d578b4f..b2a8ce38feaea8c93b8e4116e2ac345bc11ba7c0 100644 GIT binary patch delta 444 zcmdnlE4HRzY{O|@w$D82VW;^wU*tW^#{8Ejy?MIG_UR&w3-XzGxu(~3Fq+1&s!NY7@73-r~9`v+D%>&#y?$3lSxOtC^0W3Ki9J)HCMsTPC+R- zzcjBzNz#21z(=IJOTr)K78K*TlTa}(1Ot1|Oa zgEOmAH8o>nfyPYdZfDfrzNwv2gmL=m4n`w0eSL+*loW;hyqroPk*bhZl$xpl)2L9M zS(2duF-{>dH#c7a>>!{qi5g52AQx-vfvqW4C{E1*x=X=86T7=PksL0ijZm(mV2Iz* z(*yNc#HNe3GpbIn=wuX{-q*>fG<{1Eu0q?f5sn#J76 p)S%sRB@+-cZ?{~@l5&>MW4FY+E{V|LX_Yo0E$eYyzaf_xTEPF}9*`Q40`+lyKl z#Tl76Ij48FGDZOD?GIZSGZ?2=b}({Jf8Wl?F+HxGQF}UnJEQ9MlnzD_MpjM`m|oGz zXf)lci%}RP&!>=^m|m<ZwsRq$R(NGjHb+!8~2H|Z|h^+ yzO9d`NSeja#Kf#!XB86=GjG>f#gcPZgts)UbBf^Q{yq2Jxh!+vb$>S3$xi@)`BmQl diff --git a/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf b/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf index 862a7a8e..693a9250 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf @@ -21,7 +21,7 @@ if (!isNull findDisplay 602) then { _bar = uiNameSpace getVariable "RscCustomProgressUniform"; _uniformArmor = (uniform player) call EPOCH_uniformArmorCalc; _totalArmor = _totalArmor + _uniformArmor; - _finalArmor = linearConversion [0,EPOCH_MAX_ARMOR select 0,_uniformArmor,0.01,1]; + _finalArmor = linearConversion [0,EPOCH_MAX_ARMOR select 0,_uniformArmor,0.01,1,true]; _bar progressSetPosition _finalArmor; if (_selectedItem == 801) then { @@ -33,7 +33,7 @@ if (!isNull findDisplay 602) then { _bar = uiNameSpace getVariable "RscCustomProgressVest"; _vestArmor = (vest player) call EPOCH_gearArmorCalc; _totalArmor = _totalArmor + _vestArmor; - _finalArmor = linearConversion [0,EPOCH_MAX_ARMOR select 1,_vestArmor,0.01,1]; + _finalArmor = linearConversion [0,EPOCH_MAX_ARMOR select 1,_vestArmor,0.01,1,true]; _bar progressSetPosition _finalArmor; if (_selectedItem == 701) then { @@ -45,7 +45,7 @@ if (!isNull findDisplay 602) then { _bar = uiNameSpace getVariable "RscCustomProgressHeadgear"; _headgearArmor = (headgear player) call EPOCH_gearArmorCalc; _totalArmor = _totalArmor + _headgearArmor; - _finalArmor = linearConversion [0,EPOCH_MAX_ARMOR select 2,_headgearArmor,0.01,1]; + _finalArmor = linearConversion [0,EPOCH_MAX_ARMOR select 2,_headgearArmor,0.01,1,true]; _bar progressSetPosition _finalArmor; if (_selectedItem == 605) then { @@ -56,11 +56,11 @@ if (!isNull findDisplay 602) then { _totalArmorUI = uiNameSpace getVariable "RscCustomProgressTotal"; _bar = _totalArmorUI select 0; - _finalArmor = linearConversion [0,_totalArmorMax,_totalArmor,0.01,1]; + _finalArmor = linearConversion [0,_totalArmorMax,_totalArmor,0.01,1,true]; _bar progressSetPosition _finalArmor; _bar_compare = _totalArmorUI select 1; - _finalArmor = linearConversion [0,_totalArmorMax,_newArmor,0.01,1]; + _finalArmor = linearConversion [0,_totalArmorMax,_newArmor,0.01,1,true]; _bar_compare progressSetPosition _finalArmor; }; diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf index 274445fb..acc8a276 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf @@ -71,14 +71,14 @@ _thirst ctrlShow (EPOCH_playerThirst <= 625); if (ctrlShown _thirst) then { [_thirst,_thirsty] call _fadeUI; - _thirstScale = linearConversion [0,EPOCH_playerThirst,2500,0.01,1]; + _thirstScale = linearConversion [0,EPOCH_playerThirst,2500,0.01,1,true]; _thirst ctrlSetTextColor [_thirstScale, _thirstScale, 0.9, 1]; }; _hunger ctrlShow (EPOCH_playerHunger <= 1250); if (ctrlShown _hunger) then { [_hunger,_hungry] call _fadeUI; - _hungerScale = linearConversion [0,EPOCH_playerHunger,5000,0.01,1]; + _hungerScale = linearConversion [0,EPOCH_playerHunger,5000,0.01,1,true]; _hunger ctrlSetTextColor [1, _hungerScale, _hungerScale, 1]; }; @@ -92,7 +92,7 @@ _hazzard ctrlShow (EPOCH_playerToxicity > 1); if (ctrlShown _hazzard) then { [_hazzard,(EPOCH_playerToxicity >= 55)] call _fadeUI; - _toxicScale = 1-linearConversion [0,EPOCH_playerToxicity,100,0.01,1]; + _toxicScale = 1-linearConversion [0,EPOCH_playerToxicity,100,0.01,1,true]; _hazzard ctrlSetTextColor [_toxicScale, 1, _toxicScale, 1]; }; @@ -122,7 +122,7 @@ _emergency ctrlShow _critical; if (ctrlShown _emergency) then { [_emergency,(EPOCH_playerBloodP > 140)] call _fadeUI; - _emergencyScale = 1-linearConversion [0,EPOCH_playerBloodP,180,0.01,1]; + _emergencyScale = 1-linearConversion [0,EPOCH_playerBloodP,180,0.01,1,true]; _emergency ctrlSetTextColor [1, _emergencyScale, _emergencyScale, 1]; }; diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf index 40667cfd..a4f5c99c 100644 --- a/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf @@ -32,17 +32,17 @@ if !(isNull _object) then{ _lootItemWeightedArray = [_x, "CfgLootTable", "items"] call EPOCH_weightedArray; // diag_log format["%1: lootItemWeightedArray1 %2", __FILE__, _lootItemWeightedArray]; - + _lootItemArray = _lootItemWeightedArray select 0; if !(_lootItemArray isEqualTo[]) then { _weightedItemArray = _lootItemWeightedArray select 1; _weightedItemArrayCount = _lootItemWeightedArray select 2; _randomItemArray = _lootItemArray select (_weightedItemArray select floor(random _weightedItemArrayCount)); - + _randomItem = _randomItemArray select 0; _type = _randomItemArray select 1; - + _quan = 1; /* @@ -62,7 +62,10 @@ if !(isNull _object) then{ _loop = false; }; case "magazine": { - _object addMagazineCargoGlobal [_randomItem, _quan]; + //_object addMagazineCargoGlobal [_randomItem, _quan]; + _magazineSize = getNumber (configFile >> "CfgMagazines" >> _randomItem >> "count"); + _object addMagazineAmmoCargo[_randomItem, _quan, ceil(random(_magazineSize))]]; + _loop = false; }; case "backpack": { @@ -72,19 +75,19 @@ if !(isNull _object) then{ case "weapon": { _object addWeaponCargoGlobal [_randomItem, _quan]; _mags = getArray (configFile >> "CfgWeapons" >> _randomItem >> "magazines"); - + if !(_mags isEqualTo []) then { - _object addMagazineCargoGlobal [_mags select 0, ceil(random 2)]; + // add only one free magazine with random ammo count + _magazineSize = getNumber (configFile >> "CfgMagazines" >> (_mags select 0) >> "count"); + _object addMagazineAmmoCargo[_mags select 0, 1, ceil(random(_magazineSize))]; }; _loop = false; }; case "CfgLootTable": { - - // go down the rabit hole + + // go down the rabit hole _lootItemWeightedArray = [_randomItem, "CfgLootTable", "items"] call EPOCH_weightedArray; - // diag_log format["%1: lootItemWeightedArray2 %2", __FILE__, _lootItemWeightedArray]; - _lootItemArray = _lootItemWeightedArray select 0; if !(_lootItemArray isEqualTo[]) then { @@ -111,4 +114,4 @@ if !(isNull _object) then{ } forEach _loots; }; -}; \ No newline at end of file +}; From 2a3f07e3bb3fa367541fcec85f8596b70c9ca2d9 Mon Sep 17 00:00:00 2001 From: Robio Date: Tue, 8 Dec 2015 17:34:06 -0600 Subject: [PATCH 06/16] Update EPOCH_serverLootObject.sqf Too many brackets Line #67 Causing no loot to spawn :) --- .../compile/epoch_server/EPOCH_serverLootObject.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf index a4f5c99c..14cf0e05 100644 --- a/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_serverLootObject.sqf @@ -64,7 +64,7 @@ if !(isNull _object) then{ case "magazine": { //_object addMagazineCargoGlobal [_randomItem, _quan]; _magazineSize = getNumber (configFile >> "CfgMagazines" >> _randomItem >> "count"); - _object addMagazineAmmoCargo[_randomItem, _quan, ceil(random(_magazineSize))]]; + _object addMagazineAmmoCargo[_randomItem, _quan, ceil(random(_magazineSize))]; _loop = false; }; From 7a6bcc6088aca22fb4dd63018c688e141cb30fd7 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 8 Dec 2015 17:41:12 -0600 Subject: [PATCH 07/16] fixed typo thanks to robio --- .../@epochhive/addons/a3_epoch_server.pbo | Bin 362412 -> 362411 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index b2a8ce38feaea8c93b8e4116e2ac345bc11ba7c0..62d517706d68e41abc6f9c5e5e5d609ff060ca99 100644 GIT binary patch delta 83 zcmV-Z0IdJ4j~1(s7O=|=1x0FSR?4%`4a5clOlpIc6t|WX0h@D&GKc}UGKd29Aq6=$ pGdVVgEvf>CEvf^zEvf`--4t;|U(VZPwf}xrV8gcLNdM96I@51oBpUz# delta 83 zcmZ48FSe#%Y{O|@*3UfYVW&4=;61{|^p~f3n#lHPB8;<(+YLGxw;OaYeOF{PH!?M_ nY}Z-E1jNkSbyl%t-xaxK(-tq|bf0Z@^ASJ4e^u3-C6Dv~e$^p$ From ce2d5b267a7fa25dca9bc1c957cfa08ec359e3da Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 9 Dec 2015 15:58:58 -0600 Subject: [PATCH 08/16] sapper config --- .../Configs/CfgVehicles/Antagonists.hpp | 2 ++ .../epoch_server/EPOCH_localCleanup.sqf | 24 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp b/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp index a12ee70b..edef09f7 100644 --- a/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp +++ b/Sources/epoch_config/Configs/CfgVehicles/Antagonists.hpp @@ -188,6 +188,8 @@ class Epoch_Char_base_F : Civilian }; class Epoch_Sapper_base_F: Civilian2 { + moves = "CfgMovesMaleSdr2"; + gestures = "CfgGesturesSapper"; faceType = "Default"; side = 4; faction = "CIV_F"; diff --git a/Sources/epoch_server/compile/epoch_server/EPOCH_localCleanup.sqf b/Sources/epoch_server/compile/epoch_server/EPOCH_localCleanup.sqf index e13bc562..46701b71 100644 --- a/Sources/epoch_server/compile/epoch_server/EPOCH_localCleanup.sqf +++ b/Sources/epoch_server/compile/epoch_server/EPOCH_localCleanup.sqf @@ -1,7 +1,29 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Cleanup server side temp spawned objects by players + + 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_server/EPOCH_localCleanup.sqf + + Example: + _object(s) call EPOCH_localCleanup; + + Parameter(s): + _this: OBJECT or ARRAY of Objects + + Returns: + NOTHING +*/ if (typename _this != "ARRAY") then { _this = [_this]; }; - { if (!isNull _x) then { _x addEventHandler["local", { From cf2e9f0f9953538b240f9fa99afbffbb616038d2 Mon Sep 17 00:00:00 2001 From: vbawol Date: Fri, 11 Dec 2015 08:57:46 -0600 Subject: [PATCH 09/16] Current test build: 0.3.6.009 --- Changelogs/0.3.6.0.txt | 1 + .../@epochhive/addons/a3_epoch_server.pbo | Bin 362411 -> 363320 bytes Sources/epoch_config/Configs/CfgVehicles.hpp | 16 ++++++++-------- .../EPOCH_server_loadBuildings.sqf | 17 +++++++++++++++-- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index 2fa1bc78..d6957dd6 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -2,6 +2,7 @@ [Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well. [Fixed] Reduce run speed of Sappers since 1.54 update. +[Fixed] Wood tower "add/remove wall" options are now only available when build mode is enabled. **Server** [Fixed] Typo in server side AH event handler code and repacked a3_server_settings.pbo. diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 62d517706d68e41abc6f9c5e5e5d609ff060ca99..a6e501011596d4783c18bb4a7fcdf9e812ddb935 100644 GIT binary patch delta 722 zcmYLG&1(}u6n8f@b)&gxO)nxZG1aQkw2hIHP$f;%R?#Mg7?2XfWHTWj`;p9S5*H~R zJoG4b!TbT&F^bw@XYt-g>Uzl;C_8j z&j(IfhpuzIhkr!R@PepI?wj#yzB*yGP6UVVkAFVq`gl+u_NJmI&ldBEJFo zSqOwUVTi*EaW1koyfXXM-5ZFa^aN=&M$POyBS|XS9h-LvY$p^eST-PPV!FncOLUdwBv%|4$T+pWH3FG64Oo{jZ#p5p7a+=KD zf7IB-7CWCt!lOu7*turi4Q3)q1tYE9WY0@Fm;kMnF&J27jV9`9xD0x!&SFp~nb1^_ zi3zpd27ljh?uS#EbaK6@=rU5qOjl{E;`Mkvz*g!JQkx2nIaSf2nq_u-&nI2ed1l6$ z*gu60OxTQFW(oK=#~{6YJC)3VP9TxZCLVxZfwW_XBc&`h+C-xqv60TL-`ZI7dM<^n z!|$hiUu5C3wP&8$_Lqf`zbqbIbuTVN<`(C-Lw%8L*C^DVXzWkz{}}XtR-!N8?UK@` LJ^7VzWcAx$w0Gs+ delta 177 zcmdlnO>A|)*oH5RY|mFGhV2xb{E%6B`n&B+e4DkIvN_qpj>v_%FikGxQQ3Te`w9oM zPgeTo=^~~=)5SW0O8%-vF>Yqkyw0Xk&CA6J1o4S^nYqOZwhHlyMMVk)iA9OI(WW{I z(Xl`r9UB{K-8{!&`y2ztNhZ@n(i!dAC!{lOpODU^?8atlX=ZF`*1mHs6A&|R-?^40 c`>sf#OZ>UpDO>;7g(V!`_Qd1=#n)Ds0S2~1djJ3c diff --git a/Sources/epoch_config/Configs/CfgVehicles.hpp b/Sources/epoch_config/Configs/CfgVehicles.hpp index d52647e4..0554b359 100644 --- a/Sources/epoch_config/Configs/CfgVehicles.hpp +++ b/Sources/epoch_config/Configs/CfgVehicles.hpp @@ -3799,14 +3799,14 @@ class CfgVehicles onlyforplayer = 1; position = "NWall_trigger"; radius = 2.5; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""NWall"" < 0.5)"; + condition = "!(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""NWall"" < 0.5)"; statement = "[this,""NWall"",1] call EPOCH_changeWallState"; }; class remove_nwall : add_nwall { displayName = "Remove Wall"; position = "NWall_trigger"; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""NWall"" >= 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""NWall"" >= 0.5)"; statement = "[this,""NWall"",0] call EPOCH_changeWallState"; }; @@ -3814,14 +3814,14 @@ class CfgVehicles { displayName = "Add Wall"; position = "EWall_trigger"; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""EWall"" < 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""EWall"" < 0.5)"; statement = "[this,""EWall"",1] call EPOCH_changeWallState"; }; class remove_ewall : add_nwall { displayName = "Remove Wall"; position = "EWall_trigger"; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""EWall"" >= 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""EWall"" >= 0.5)"; statement = "[this,""EWall"",0] call EPOCH_changeWallState"; }; @@ -3829,14 +3829,14 @@ class CfgVehicles { displayName = "Add Wall"; position = "SWall_trigger"; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""SWall"" < 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""SWall"" < 0.5)"; statement = "[this,""SWall"",1] call EPOCH_changeWallState"; }; class remove_swall : add_nwall { displayName = "Remove Wall"; position = "SWall_trigger"; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""SWall"" >= 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""SWall"" >= 0.5)"; statement = "[this,""SWall"",0] call EPOCH_changeWallState"; }; @@ -3844,14 +3844,14 @@ class CfgVehicles { displayName = "Add Wall"; position = "WWall_trigger"; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""WWall"" < 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""WWall"" < 0.5)"; statement = "[this,""WWall"",1] call EPOCH_changeWallState"; }; class remove_wwall : add_nwall { displayName = "Remove Wall"; position = "WWall_trigger"; - condition = "!(call EPOCH_lockCheck) && (this animationPhase ""WWall"" >= 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""WWall"" >= 0.5)"; statement = "[this,""WWall"",0] call EPOCH_changeWallState"; }; }; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf index 5bc16e70..eb44fa65 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf @@ -18,6 +18,8 @@ _config = 'CfgEpochClient' call EPOCH_returnConfig; _buildingJammerRange = getNumber(_config >> "buildingJammerRange"); if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; }; +_VAL = ["", [], "", "", 0, []]; + for "_i" from 0 to _this do { _vehHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID),_i]; _response = ["Building", _vehHiveKey] call EPOCH_fnc_server_hiveGETTTL; @@ -26,6 +28,11 @@ for "_i" from 0 to _this do { _arr = _response select 1; _ttl = _response select 2; + // DEBUG to see if this command works + if !(_arr isEqualTypeParams _VAL) then { + diag_log format["DEBUG: Data does not match schema: %1 vs %2",_arr,_VAL]; + }; + _arrCount = count _arr; _class = _arr select 0; @@ -80,8 +87,14 @@ for "_i" from 0 to _this do { }; // set persistent Animations - if (_arrCount >= 6) then{ - _anims = _arr param[5, [], [[]]]; + if (_arrCount >= 6) then { + _anims = []; + _animsData = _arr select 5; + // check that we have an array to prevent any errors + if (_animsData isEqualType _anims) then { + _anims = _animsData; + }; + { _baseObj animate [_x, _anims param [_forEachIndex,0], true] } foreach(getArray(configFile >> "CfgVehicles" >> _class >> "persistAnimations")); From aa70eedaf9a2f15ccd05df240480fe7927c3be47 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 14 Dec 2015 12:09:09 -0600 Subject: [PATCH 10/16] 0.3.6.011 --- Changelogs/0.3.6.0.txt | 3 +- Server_Install_Pack/sc/battleye/scripts.txt | 2 +- .../compile/setup/masterLoop/Event2.sqf | 3 + .../traders/EPOCH_NPCTraderMenuFilter.sqf | 44 +++++++++++- .../compile/traders/EPOCH_startNpcTrade.sqf | 72 +++++++++++++++++-- 5 files changed, 113 insertions(+), 11 deletions(-) diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index d6957dd6..559b1fe7 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -1,5 +1,6 @@ **Client** - +[Added] Added ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man +[Fixed] Unable to sell after attempting to sell a temporary vehicle. Thanks to @He-Man [Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well. [Fixed] Reduce run speed of Sappers since 1.54 update. [Fixed] Wood tower "add/remove wall" options are now only available when build mode is enabled. diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index fc477658..42041867 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -25,7 +25,7 @@ 7 addMagazine !"addMagazineCargo" !="player addMagazine _craftItem;" !="player addMagazine \"jerrycanE_epoch\";" !="player addMagazine \"emptyjar_epoch\";" !="player addMagazine \"jerrycan_epoch\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine [(_x select 0),(_x select 1)]" !="player addMagazine _x;" !="if !(player canAdd (_x select 0)) exitWith {};\nplayer addMagazine[_x select 0, _x select 1];" 7 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] ;" 7 addItem !="player addItem _item;" !="player addItem _craftItem;" !="player addItem _x;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" -7 addBackPack +7 addBackPack !="if (backpack player == "") then {\nplayer addbackpack _x;\n}\nelse {\n_x createvehicle getpos player;\n};" 7 addMissionEventHandler !="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;" 7 removeMissionEventHandler !="removeMissionEventHandler [\"Draw3D\", _id];" 7 removeAllWeapons !="removeAllWeapons axeGeneral;" diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf index 7afca83a..b0148650 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event2.sqf @@ -92,3 +92,6 @@ call _lootBubble; EPOCH_playerStaminaMax = (100 * (round(EPOCH_playerAliveTime/360)/10)) min 2500; + + //player setAnimSpeedCoef 0.75; + //player setCustomAimCoef 1; diff --git a/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf b/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf index 3283eae5..4b215fa2 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: He-Man + + Description: + NPC trade filter code + + 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_code/traders/EPOCH_NPCTraderMenuFilter.sqf + + Example: + onLBSelChanged = "_this call EPOCH_NPCTraderMenuFilter"; + + Parameter(s): + _this select 0: CONTROL + _this select 1: NUMBER - Index ID + + Returns: + NOTHING +*/ private ["_item","_index","_itemCount","_itemOfferCount","_config","_name","_picture","_type","_vehicles","_sizeOut","_offerArray","_itemName","_itemIcon","_qty","_items","_qtys","_aiItems","_filterArray","_filterWeapons","_filterMagazines","_filterItems","_filterVehicle","_slot","_control","_isPlayerFilter"]; disableSerialization; @@ -54,7 +78,7 @@ if !(isNull EPOCH_lastNPCtradeTarget) then { }; } forEach magazines player; }; - + /* not used currently if (_filterWeapons) then { }; @@ -72,6 +96,20 @@ if !(isNull EPOCH_lastNPCtradeTarget) then { lbSetPicture [41500, _index, _x call EPOCH_itemPicture]; }; } forEach items player; + if (primaryWeapon player != "") then { + _wpn = primaryWeapon player; + _offerArray pushback _wpn; + _index = lbAdd [41500, _wpn call EPOCH_itemDisplayName]; + lbSetData [41500, _index, _wpn]; + lbSetPicture [41500, _index, _wpn call EPOCH_itemPicture]; + }; + if (count backpackItems player == 0 && count backpackmagazines player == 0 && backpack player != "") then { + _bpck = Backpack player; + _offerArray pushback _bpck; + _index = lbAdd [41500, _bpck call EPOCH_itemDisplayName]; + lbSetData [41500, _index, _bpck]; + lbSetPicture [41500, _index, _bpck call EPOCH_itemPicture]; + }; }; if (_filterVehicle) then { @@ -98,7 +136,7 @@ if !(isNull EPOCH_lastNPCtradeTarget) then { }; } else { - + lbClear 41503; _sizeOut = lbSize 41502; @@ -157,4 +195,4 @@ if !(isNull EPOCH_lastNPCtradeTarget) then { }; } else { closeDialog 0; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf index c295825e..e9cf10f4 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: He-Man + + Description: + NPC trade code + + 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_code/traders/EPOCH_startNpcTrade.sqf + + Example: + cursorTarget call EPOCH_startNpcTrade; + + Parameter(s): + _this: OBJECT + + Returns: + NOTHING +*/ private["_item", "_currQty", "_tradeType", "_itemWorth", "_aiItems", "_itemClasses", "_itemQtys", "_qtyIndex", "_tradeTotal", "_tradeQtyTotal", "_errorMsg", "_target", "_sizeOut", "_array", "_makeTrade", "_vehSlot", "_vehicle", "_vehicles", "_display", "_addWeaponToHands", "_type", "_tax"]; if (!isNil "EPOCH_TRADE_COMPLETE") exitWith {}; @@ -5,7 +28,6 @@ if (!isNil "EPOCH_TRADE_STARTED") exitWith{}; if (!isNull _this) then { - EPOCH_TRADE_STARTED = true; _config = 'CfgPricing' call EPOCH_returnConfig; @@ -25,9 +47,21 @@ if (!isNull _this) then { if (_item in items player) then { player removeItem _item; _arrayIn pushBack _item; + } + else { + if (_item == primaryweapon player) then { + player removeweapon _item; + _arrayIn pushBack _item; }; - } else { + }; + } + else { if ([_item, "CfgVehicles"] call EPOCH_fnc_isAny) then { + if (_item == backpack player) then { + removeBackpack player; + _arrayIn pushBack _item; + } + else { _vehicles = _this nearEntities[[_item], 30]; if (!(_vehicles isEqualTo[])) then { _vehicle = _vehicles select 0; @@ -41,7 +75,9 @@ if (!isNull _this) then { }; }; }; - } else { + }; + } + else { if (_item in magazines player) then { player removeMagazine _item; _arrayIn pushBack _item; @@ -78,6 +114,7 @@ if (!isNull _this) then { }; if (!(_arrayIn isEqualTo[]) || !(_arrayOut isEqualTo[])) then { + EPOCH_TRADE_STARTED = true; // make trade EPOCH_MAKENPCTRADE = [_this, _arrayIn, _arrayOut, player, Epoch_personalToken]; @@ -133,17 +170,40 @@ if (!isNull _this) then { }; if (_addWeaponToHands) then { player addWeapon _x; - } else { + } + else { _x call EPOCH_fnc_addItemOverflow; }; - } else { + } + else { + _backpack = ["backpack", _x] call BIS_fnc_inString; + _Assaultpack = ["Assaultpack", _x] call BIS_fnc_inString; + _Assault_Diver = ["Assault_Diver", _x] call BIS_fnc_inString; + _TacticalPack = ["TacticalPack", _x] call BIS_fnc_inString; + _FieldPack = ["FieldPack", _x] call BIS_fnc_inString; + _Carryall = ["Carryall", _x] call BIS_fnc_inString; + _OutdoorPack = ["OutdoorPack", _x] call BIS_fnc_inString; + _Bergen = ["Bergen", _x] call BIS_fnc_inString; + _bag = ["bag", _x] call BIS_fnc_inString; + _parachute = ["Parachute", _x] call BIS_fnc_inString; + if (_backpack || _Assaultpack || _Assault_Diver || _TacticalPack || _FieldPack || _Carryall || _OutdoorPack || _Bergen || _bag || _parachute) then { + if (backpack player == "") then { + player addbackpack _x; + } + else { + _x createvehicle getpos player; + }; + } + else { if ([_x, "CfgMagazines"] call EPOCH_fnc_isAny) then { _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgMagazines" >> (_x) >> "displayName")]; _x call EPOCH_fnc_addItemOverflow; - } else { + } + else { _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgVehicles" >> (_x) >> "displayName")]; }; }; + }; } forEach(_this select 1); From 61b39702116135c9438a9c565d8e7ee5b60d23f2 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 14 Dec 2015 12:22:51 -0600 Subject: [PATCH 11/16] increase max solder load to 2000 --- Changelogs/0.3.6.0.txt | 8 ++++++++ Sources/epoch_config/config.cpp | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index 559b1fe7..c606da58 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -1,5 +1,13 @@ **Client** +[Added-TBA] Previous assets re-added: + Hotwire Kit, + Key Makers Kit, + Keys in colors: (Black,Red,Green,Blue,Yellow), + 55 Gallon Fuel Barrel (Full/Empty), + Metal Pipes + Documents (Trash,Vehicle Upgrades), [Added] Added ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man +[Changed] Increased max player load from 1000 to 2000. [Fixed] Unable to sell after attempting to sell a temporary vehicle. Thanks to @He-Man [Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well. [Fixed] Reduce run speed of Sappers since 1.54 update. diff --git a/Sources/epoch_config/config.cpp b/Sources/epoch_config/config.cpp index 30787236..567b0b71 100644 --- a/Sources/epoch_config/config.cpp +++ b/Sources/epoch_config/config.cpp @@ -99,7 +99,10 @@ class PointerSlot; #include "\x\addons\a3_epoch_config\Configs\CfgWeapons.hpp" - +class CfgInventoryGlobalVariable +{ + maxSoldierLoad = 2000; +}; class CfgAnimationSourceSounds { From 74fe32d566577fec71a68c45dbe4f795909450df Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 15 Dec 2015 12:46:09 -0600 Subject: [PATCH 12/16] 0.3.6.018 --- Changelogs/0.3.6.0.txt | 11 +- Changelogs/0.3.7.0.txt | 7 + .../@epochhive/addons/a3_epoch_server.pbo | Bin 363320 -> 363320 bytes .../addons/a3_epoch_server_settings.pbo | Bin 278926 -> 278928 bytes .../epoch_code/compile/EPOCH_onEachFrame.sqf | 2 +- .../returnVector.sqf} | 0 .../building/EPOCH_changeWallState.sqf | 1 + .../compile/building/EPOCH_checkBuild.sqf | 1 + .../compile/building/EPOCH_countdown.sqf | 2 +- .../building/EPOCH_fnc_SelectTargetBuild.sqf | 2 +- .../compile/building/EPOCH_isBuildAllowed.sqf | 2 +- .../compile/building/EPOCH_lockCheck.sqf | 25 ++- .../compile/building/EPOCH_maintainIT.sqf | 24 +++ .../compile/building/EPOCH_removeBUILD.sqf | 27 ++- .../compile/building/EPOCH_simulSwap.sqf | 34 +++- .../compile/building/EPOCH_staticMove.sqf | 39 +++- .../compile/building/EPOCH_upgradeBUILD.sqf | 53 ++++-- .../compile/building/EPOCH_upgradeBUILDv2.sqf | 113 ----------- Sources/epoch_code/compile/building/test.sqf | 180 ------------------ Sources/epoch_code/config.cpp | 13 +- Sources/epoch_code/gui/Epoch_GUI_Config.hpp | 58 ++++-- .../scripts/dynamenu/Epoch_dynamicMenu.sqf | 2 +- Sources/epoch_config/Configs/CfgPricing.hpp | 54 +++--- .../Configs/CfgVehicles/Fixes.hpp | 48 +++++ Sources/epoch_config/Configs/CfgWeapons.hpp | 16 +- Sources/epoch_config/config.cpp | 2 +- .../configs/security/data/custom_vars.h | 2 +- 27 files changed, 329 insertions(+), 389 deletions(-) create mode 100644 Changelogs/0.3.7.0.txt rename Sources/epoch_code/compile/{building/EPOCH_returnVector.sqf => bis_functions/returnVector.sqf} (100%) delete mode 100644 Sources/epoch_code/compile/building/EPOCH_upgradeBUILDv2.sqf delete mode 100644 Sources/epoch_code/compile/building/test.sqf diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index c606da58..742f3668 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -1,13 +1,8 @@ **Client** -[Added-TBA] Previous assets re-added: - Hotwire Kit, - Key Makers Kit, - Keys in colors: (Black,Red,Green,Blue,Yellow), - 55 Gallon Fuel Barrel (Full/Empty), - Metal Pipes - Documents (Trash,Vehicle Upgrades), [Added] Added ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man -[Changed] Increased max player load from 1000 to 2000. +[Changed] Increased max player load 2x to compensate for the new stamina system in 1.54. +[Changed] Increased backpack storage limits to allow carrying long weapons. +[Fixed] Changes to default Arma weapon configs to allow long (Lynx,etc) weapons to be stored in backpacks. [Fixed] Unable to sell after attempting to sell a temporary vehicle. Thanks to @He-Man [Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well. [Fixed] Reduce run speed of Sappers since 1.54 update. diff --git a/Changelogs/0.3.7.0.txt b/Changelogs/0.3.7.0.txt new file mode 100644 index 00000000..04f1b162 --- /dev/null +++ b/Changelogs/0.3.7.0.txt @@ -0,0 +1,7 @@ +WIP +[Added] Hotwire Kit +[Added] Key Makers Kit +[Added] Keys in colors: (Black,Red,Green,Blue,Yellow) +[Added] 55 Gallon Fuel Barrel (Full/Empty) +[Added] Metal Pipes +[Added] Documents (Trash,Vehicle Upgrades) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index a6e501011596d4783c18bb4a7fcdf9e812ddb935..7732cef7b25cfd16c29c2a21e3d23c2ecee58529 100644 GIT binary patch delta 70 zcmdlnO>D>JksX2n delta 70 zcmV-M0J;CTmKL~{7O<2Q1IgcNgO?PCmlOfFmlOgTnFusFI5IOZI5CI0tpbO+tpm5Y ctpsb`6y55ps_^8v;hD{;tj4J761SM diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index f301c85e73839e1f011ee052012ec8b202137f22..9a82839161354f0fa2c17f8eb9238fc4deb7e023 100644 GIT binary patch delta 126 zcmeBc7MuV?Axa113&LC&7#NcC^U^ZY^^yw;fE)w>N^dONz{t8etRO6Mvo_NPMh;U0 zLknY5Bg5v$%> "buildingJammerRange"); if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; }; diff --git a/Sources/epoch_code/compile/building/EPOCH_maintainIT.sqf b/Sources/epoch_code/compile/building/EPOCH_maintainIT.sqf index 54db8284..8a5c02cb 100644 --- a/Sources/epoch_code/compile/building/EPOCH_maintainIT.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_maintainIT.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Base building maintain base code + + 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_code/compile/building/EPOCH_maintainIT.sqf + + Example: + cursorTarget call EPOCH_maintainIT; + + Parameter(s): + _this: OBJECT - Base building object ("Constructions_static_F","Constructions_foundation_F","Buildable_Storage","Constructions_lockedstatic_F") + + Returns: + NOTHING +*/ +private ["_dt","_buildingJammerRange","_maintainCount","_rnd","_config"]; if !(isNil "EPOCH_maintainLockout") exitWith {_dt = ["Already Maintaining a base.", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;}; if (EPOCH_playerCrypto > 0) then { _config = "CfgEpochClient" call EPOCH_returnConfig; diff --git a/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf b/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf index 11db357e..5679dbb8 100644 --- a/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf @@ -1,4 +1,27 @@ -private["_buildingAllowed", "_jammer", "_restricted", "_restrictedLocations", "_myPosATL"]; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Base building maintain base code + + 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_code/compile/building/EPOCH_removeBUILD.sqf + + Example: + cursorTarget call EPOCH_removeBUILD; + + Parameter(s): + _this: OBJECT - Base building object + + Returns: + BOOL - true if removed +*/ +private ["_buildingAllowed","_jammer","_buildingJammerRange","_buildingCountLimit","_dt","_nearestJammer","_ownedJammerExists","_return","_config","_objType","_object","_targeter","_stability","_removeParts"]; _buildingAllowed = true; _ownedJammerExists = false; _nearestJammer = objNull; @@ -33,7 +56,7 @@ if (_objType == "PlotPole_EPOCH") then { _buildingAllowed = false; _dt = ["Remove Disallowed: Frequency Blocked", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; }; -} +} else { _jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange]; if !(_jammer isEqualTo[]) then{ diff --git a/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf b/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf index ac34a001..299a1fe7 100644 --- a/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf @@ -1,8 +1,30 @@ -private [ - "_cfgClass","_class","_worldspace","_objSlot","_newObj","_playerOffset","_bbr","_p1","_p2","_maxWidth","_maxLength","_maxHeight","_pos2","_vel2","_dir2","_up2","_pos1","_vel1","_dir1","_up1","_interval","_velocityTransformation","_object","_status","_return","_oemType","_config","_currentTarget"]; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Base building base building with physics + + 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_code/compile/building/EPOCH_simulSwap.sqf + + Example: + [_object] spawn EPOCH_simulSwap; + + Parameter(s): + _this select 0: OBJECT - Base building object + + Returns: + NOTHING +*/ +private ["_class","_worldspace","_objSlot","_newObj","_pos2","_vel2","_dir2","_up2","_velocityTransformation","_object","_return","_oemType","_config","_currentTarget","_dt","_energyCost","_allowedSnapObjects","_textureSlot","_lastCheckTime","_rejectMove","_nearestObject","_nearestObjectRaw","_distanceNear","_previousDistanceNear","_pOffset","_snapPos","_isSnap","_snapPosition","_snapType","_snapDistance","_prevSnapDistance","_snapPointsPara","_snapPointsPerp","_snapArrayPara","_snapArrayPerp","_direction","_distance","_plyrdistance","_create","_allowedSnapPoints","_snapObjects","_onContactEH","_offset","_disallowed","_objType","_distanceMod"]; if !(isNil "EPOCH_simulSwap_Lock") exitWith{}; -_object = _this select 0; +_object = param [0,objNull]; if (isNull _object) exitWith{ EPOCH_target = objNull; }; _objType = typeOf _object; @@ -89,7 +111,7 @@ if (isText(_config)) then { if (EPOCH_Y_OFFSET < 3.6) then { EPOCH_Y_OFFSET = EPOCH_Y_OFFSET + 0.1; }; - + _pos2 = player modelToWorld[EPOCH_X_OFFSET, EPOCH_Y_OFFSET, EPOCH_Z_OFFSET]; _distance = _pos2 distance EPOCH_target; if (EPOCH_buildMode == 1) then { @@ -174,7 +196,7 @@ if (isText(_config)) then { if (_direction < 0) then { _direction = 360 + _direction; }; - _dir2 = [vectorDir _nearestObject, _direction] call EPOCH_returnVector; + _dir2 = [vectorDir _nearestObject, _direction] call BIS_fnc_returnVector; _up2 = (vectorUp _nearestObject); EP_velocityTransformation = [_pos2,_vel2,_dir2,_up2]; }; @@ -185,7 +207,7 @@ if (isText(_config)) then { }; if (EPOCH_space) then { _vel2 = (velocity player); - _dir2 = [vectorDir player, EPOCH_buildDirection] call EPOCH_returnVector; + _dir2 = [vectorDir player, EPOCH_buildDirection] call BIS_fnc_returnVector; _up2 = (vectorUp player); EPOCH_space = false; EP_velocityTransformation = [_pos2,_vel2,_dir2,_up2]; diff --git a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf index 71f6bfbc..36eb2b5a 100644 --- a/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_staticMove.sqf @@ -1,9 +1,38 @@ -private["_allowedSnapObjects", "_currentZoffset", "_nearestObject", "_pOffset", "_snapPos", "_snapPosition", "_snapType", "_snapDistance", "_prevSnapDistance", "_pos2", "_dir", "_snapPointsPara", "_snapPointsPerp", "_distance", "_objSlot", "_currentTarget", "_allowedSnapPoints", "_snapObjects", "_class", "_buildingPos"]; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Base building base building with ghost preview. + + 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_code/compile/building/EPOCH_simulSwap.sqf + + Example: + [_object] spawn EPOCH_simulSwap; + + Parameter(s): + _this select 0: OBJECT - Base building object + _this select 1: STRING - Item to consume on build finalization + + Returns: + NOTHING +*/ +private ["_allowedSnapObjects","_nearestObject","_pOffset","_snapPos","_snapPosition","_snapType","_snapDistance","_pos2","_snapPointsPara","_snapPointsPerp","_distance","_objSlot","_currentTarget","_allowedSnapPoints","_class","_dt","_energyCost","_maxHeight","_stabilityCheck","_pos2ATL","_lastCheckTime","_rejectMove","_currentOffSet","_dir2","_up2","_isSnap","_snapPos1","_pos_snapObj","_direction","_pos1_snap","_pos2_snap","_ins","_EPOCH_2","_arr_snapPoints","_pos1","_offSet","_snapConfig","_baselineSnapPos","_nearestObjects","_EPOCH_1","_numberOfContacts","_worldspace","_offsetZPos","_currentPos","_object","_item","_objType","_simulClass","_snapChecks","_maxSnapDistance"]; if !(isNil "EPOCH_simulSwap_Lock") exitWith{}; -_object = _this select 0; -_item = _this select 1; +// inputs +_object = param [0,objNull]; +_item = param [1,""]; + +// exit if object is nulll if (isNull _object) exitWith{ EPOCH_target = objNull; }; +// exit if item is not given +if (_item == "") exitWith{ EPOCH_target = objNull; }; if (EPOCH_playerEnergy <= 0) exitWith{ _dt = ["Need Energy", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; @@ -113,7 +142,7 @@ if (_class != "") then { }; if (EPOCH_space) then { - _dir2 = [vectorDir player, EPOCH_buildDirection] call EPOCH_returnVector; + _dir2 = [vectorDir player, EPOCH_buildDirection] call BIS_fnc_returnVector; _up2 = (vectorUp player); EPOCH_space = false; EPOCH_target setVectorDirAndUp [_dir2,_up2]; @@ -231,7 +260,7 @@ if (_class != "") then { _direction = 360 + _direction; }; - _dir2 = [vectorDir _nearestObject, _direction] call EPOCH_returnVector; + _dir2 = [vectorDir _nearestObject, _direction] call BIS_fnc_returnVector; if (_pos2 select 2 > _maxHeight) then { _pos2 set[2, _maxHeight]; diff --git a/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf b/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf index feca2b01..f16773c7 100644 --- a/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf @@ -1,5 +1,33 @@ -if (isNull _this) exitWith{ false }; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Base building upgrade code + + 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_code/compile/building/EPOCH_upgradeBUILD.sqf + + Example: + [cursorTarget,_index] call EPOCH_upgradeBUILD; + + Parameter(s): + _this select 0: OBJECT - Base building object + _this select 1: NUMBER - index of array from (CfgBaseBuilding >> "upgradeBuilding") + + Returns: + NOTHING +*/ +private ["_buildingJammerRange","_buildingCountLimit","_nearestJammer","_ownedJammerExists","_buildingAllowed","_dt","_missingCount","_canUpgrade","_missingParts","_part","_req","_partCheck","_canUpgradePartCount","_removedPartCount","_return","_upgrade","_upgradeParts","_config","_upgrades","_object","_index","_targeter","_stability","_jammer"]; _return = false; +_object = param [0,objNull,[objNull]]; +_index = param [1,-1,[0]]; //EPOCH_UpgradeIndex +if !(_index isEqualTo -1) then {Epoch_upgradeIndex = _index}; +if (isNull _object) exitWith {false}; _buildingAllowed = true; _ownedJammerExists = false; @@ -14,7 +42,7 @@ if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; }; EPOCH_buildOption = 1; -params ["_object"]; + // check if another player has target _targeter = _object getVariable["last_targeter", objNull]; @@ -29,10 +57,6 @@ if (_stability > 0) exitWith{ }; }; - - - - _jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange]; if !(_jammer isEqualTo[]) then { @@ -54,18 +78,22 @@ if !(_jammer isEqualTo[]) then { }; if !(_buildingAllowed)exitWith{ false }; -if (_this isKindOf "Constructions_static_F") then { +if (_object isKindOf "Constructions_static_F") then { // take upgrade item from player here _config = 'CfgBaseBuilding' call EPOCH_returnConfig; - _upgrade = getArray(_config >> (typeOf _this) >> "upgradeBuilding"); - if !(_upgrade isEqualTo []) then { + + _upgrades = getArray(_config >> (typeOf _object) >> "upgradeBuilding"); + if !(_upgrades isEqualTo []) then { + + // get selected upgrade + _upgrade = _upgrades param [Epoch_upgradeIndex,[]]; _upgradeParts = _upgrade select 1; _canUpgrade = true; _canUpgradePartCount = 0; - _missingParts = []; + _missingParts = ""; { _part = _x select 0; _req = _x select 1; @@ -78,7 +106,7 @@ if (_this isKindOf "Constructions_static_F") then { //diag_log format["DEBUG: _missingCount %1", _missingCount]; _canUpgrade = false; - _missingParts pushBack format["Missing %1 %2", _missingCount, (_part call EPOCH_itemDisplayName)]; + _missingParts = _missingParts + format["Missing %1 %2, ", _missingCount, (_part call EPOCH_itemDisplayName)]; }; _canUpgradePartCount = _canUpgradePartCount + _req; } forEach _upgradeParts; @@ -96,8 +124,9 @@ if (_this isKindOf "Constructions_static_F") then { if (_canUpgradePartCount == _removedPartCount) then { // send to server for upgrade - EPOCH_UPBUILD = [_this,player,Epoch_personalToken]; + EPOCH_UPBUILD = [_object,player,Epoch_upgradeIndex,Epoch_personalToken]; publicVariableServer "EPOCH_UPBUILD"; + Epoch_upgradeIndex = nil; _return = true; _dt = ["Upgraded", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; }; diff --git a/Sources/epoch_code/compile/building/EPOCH_upgradeBUILDv2.sqf b/Sources/epoch_code/compile/building/EPOCH_upgradeBUILDv2.sqf deleted file mode 100644 index 6d25bff6..00000000 --- a/Sources/epoch_code/compile/building/EPOCH_upgradeBUILDv2.sqf +++ /dev/null @@ -1,113 +0,0 @@ -_return = false; -_object = param [0,objNull,[objNull]]; -_index = param [1,-1,[0]]; //EPOCH_UpgradeIndex -if !(_index isEqualTo -1) then {Epoch_upgradeIndex = _index}; -if (isNull _object) exitWith {false}; - -_buildingAllowed = true; -_ownedJammerExists = false; -_nearestJammer = objNull; -_config = 'CfgEpochClient' call EPOCH_returnConfig; -_buildingJammerRange = getNumber(_config >> "buildingJammerRange"); -_buildingCountLimit = getNumber(_config >> "buildingCountLimit"); - -// defaults -if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; }; -if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; }; - -EPOCH_buildOption = 1; - - - -// check if another player has target -_targeter = _object getVariable["last_targeter", objNull]; - -if (!isNull _targeter && _targeter != player && (player distance _object > _targeter distance _object)) exitWith{ EPOCH_stabilityTarget = objNull; false }; - -_stability = _object getVariable["stability", 100]; -if (_stability > 0) exitWith{ - if (isNull EPOCH_stabilityTarget) then { - _object setVariable["last_targeter", player, true]; - EPOCH_stabilityTarget = _object; - }; -}; - -_jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange]; - -if !(_jammer isEqualTo[]) then { - { - if (alive _x) exitWith{ - _nearestJammer = _x; - }; - } foreach _jammer; - - if !(isNull _nearestJammer) then { - if ((_nearestJammer getVariable["BUILD_OWNER", "-1"]) in[getPlayerUID player, Epoch_my_GroupUID]) then { - _ownedJammerExists = true; - } - else { - _buildingAllowed = false; - _dt = ["Upgrade Disallowed: Frequency Blocked", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; - }; - }; -}; -if !(_buildingAllowed)exitWith{ false }; - -if (_object isKindOf "Constructions_static_F") then { - - // take upgrade item from player here - _config = 'CfgBaseBuilding' call EPOCH_returnConfig; - - _upgrades = getArray(_config >> (typeOf _object) >> "upgradeBuilding"); - if !(_upgrades isEqualTo []) then { - - // get selected upgrade - _upgrade = _upgrades param [Epoch_upgradeIndex,[]]; - - _upgradeParts = _upgrade select 1; - - _canUpgrade = true; - _canUpgradePartCount = 0; - _missingParts = ""; - { - _part = _x select 0; - _req = _x select 1; - _partCheck = {_x == _part} count (magazines player); - //diag_log format["DEBUG: _partCheck %1", _partCheck]; - //diag_log format["DEBUG: _x %1", _x]; - if (_partCheck < _req) then { - _missingCount = _req - _partCheck; - - //diag_log format["DEBUG: _missingCount %1", _missingCount]; - - _canUpgrade = false; - _missingParts = _missingParts + format["Missing %1 %2, ", _missingCount, (_part call EPOCH_itemDisplayName)]; - }; - _canUpgradePartCount = _canUpgradePartCount + _req; - } forEach _upgradeParts; - - _removedPartCount = 0; - if (_canUpgrade) then { - { - for "_i" from 1 to (_x select 1) do { - if ((_x select 0) in (magazines player)) then { - player removeMagazine (_x select 0); - _removedPartCount = _removedPartCount + 1; - }; - }; - } forEach _upgradeParts; - - if (_canUpgradePartCount == _removedPartCount) then { - // send to server for upgrade - EPOCH_UPBUILD = [_object,player,Epoch_upgradeIndex,Epoch_personalToken]; - publicVariableServer "EPOCH_UPBUILD"; - Epoch_upgradeIndex = nil; - _return = true; - _dt = ["Upgraded", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; - }; - } else { - _dt = [format["%1", _missingParts], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; - }; - }; -}; -_return diff --git a/Sources/epoch_code/compile/building/test.sqf b/Sources/epoch_code/compile/building/test.sqf deleted file mode 100644 index ed986674..00000000 --- a/Sources/epoch_code/compile/building/test.sqf +++ /dev/null @@ -1,180 +0,0 @@ -EPOCH_buildClasses = ["Land_Obstacle_Bridge_F", - -"Land_Shoot_House_Wall_F", -"Land_Shoot_House_Wall_Stand_F", -"Land_Shoot_House_Wall_Crouch_F", -"Land_Shoot_House_Wall_Prone_F", -"Land_Shoot_House_Wall_Long_F", -"Land_Shoot_House_Wall_Long_Stand_F", -"Land_Shoot_House_Wall_Long_Crouch_F", -"Land_Shoot_House_Wall_Long_Prone_F", -"Land_Shoot_House_Corner_F", -"Land_Shoot_House_Corner_Stand_F", -"Land_Shoot_House_Corner_Crouch_F", -"Land_Shoot_House_Corner_Prone_F", -"Land_Shoot_House_Panels_F", -"Land_Shoot_House_Panels_Crouch_F", -"Land_Shoot_House_Panels_Prone_F", -"Land_Shoot_House_Panels_Vault_F", -"Land_Shoot_House_Panels_Window_F", -"Land_Shoot_House_Panels_Windows_F", -"Land_Shoot_House_Tunnel_F", -"Land_Shoot_House_Tunnel_Stand_F", -"Land_Shoot_House_Tunnel_Crouch_F", -"Land_Shoot_House_Tunnel_Prone_F", - - -"Land_Obstacle_RunAround_F","Land_Obstacle_Saddle_F","Land_RampConcrete_F","Land_RampConcreteHigh_F","Land_GH_Stairs_F","Land_Billboard_F","Land_HBarrier_1_F","Land_HBarrier_3_F","Land_HBarrier_5_F","Land_Razorwire_F","Land_HBarrierWall6_F","WoodFloor_EPOCH","WoodLargeWall_EPOCH","Land_BagFence_Long_F","Land_BagFence_Corner_F","Land_BagFence_End_F","Land_BagFence_Round_F","Land_BagFence_Short_F"]; -EPOCH_buildClassesCount = count EPOCH_buildClasses - 1; -Epoch_selectedBuildClasIndex = 0; -EPOCH_selectedBuildClass = EPOCH_buildClasses select 0; - -EPOCH_snapExtents = []; - -EPOCH_buildWorldspace = [[0,0,0],[0,0,0],[0,0,0]]; -EPOCH_KeyDownFunctionhandler = { - _dikCode = _this select 1; - _shift = _this select 2; - _ctrl = _this select 3; - _alt = _this select 4; - - switch (_dikCode) do { - case 0x39 : { - _worldspace = EPOCH_buildWorldspace; - _newObj = EPOCH_selectedBuildClass createVehicle (_worldspace select 0); - _newObj setVectorDirAndUp [_worldspace select 1,_worldspace select 2]; - _newObj setposASL (_worldspace select 0); - _handled = true; - }; - case 0xC9 : { - Epoch_selectedBuildClasIndex = ((Epoch_selectedBuildClasIndex + 1) min EPOCH_buildClassesCount) max 0; - EPOCH_selectedBuildClass = EPOCH_buildClasses select Epoch_selectedBuildClasIndex; - - if !(isNull EPOCH_currentBuildObj) then { - deleteVehicle EPOCH_currentBuildObj; - EPOCH_currentBuildObj = EPOCH_selectedBuildClass createVehicle [0,0,0]; - EPOCH_currentBuildObj disableCollisionWith player; - EPOCH_currentBuildObj setObjectTextureGlobal [0, "#(rgb,8,8,3)color(0,0,1,1)"]; - }; - - hint EPOCH_selectedBuildClass; - _handled = true; - }; - case 0xD1 : { - Epoch_selectedBuildClasIndex = ((Epoch_selectedBuildClasIndex - 1) min EPOCH_buildClassesCount) max 0; - EPOCH_selectedBuildClass = EPOCH_buildClasses select Epoch_selectedBuildClasIndex; - hint EPOCH_selectedBuildClass; - - if !(isNull EPOCH_currentBuildObj) then { - deleteVehicle EPOCH_currentBuildObj; - EPOCH_currentBuildObj = EPOCH_selectedBuildClass createVehicle [0,0,0]; - EPOCH_currentBuildObj disableCollisionWith player; - EPOCH_currentBuildObj setObjectTextureGlobal [0, "#(rgb,8,8,3)color(0,0,1,1)"]; - }; - - _handled = true; - }; - }; - _handled -}; - - -[] spawn { - (findDisplay 46) displayRemoveAllEventHandlers "KeyDown"; - (findDisplay 46) displayAddEventHandler["KeyDown",{_this call EPOCH_KeyDownFunctionhandler}]; -}; - - - - -EPOCH_snapExtents = []; -_playerPos = player modelToWorld [0,5,5]; -EPOCH_currentBuildObj = EPOCH_selectedBuildClass createVehicle _playerPos; -EPOCH_currentBuildObj setPosATL _playerPos; -EPOCH_currentBuildObj disableCollisionWith player; -_numberOfContacts = 0; -for "_i" from 0 to 10 do { -}; -_pos1 = EPOCH_currentBuildObj modelToWorld [0,0,10]; -_pos2 = EPOCH_currentBuildObj modelToWorld [0,0,0]; -_ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player]; -if (count _ins == 0) then { -} else { - _pos3 = (_ins select 0 select 0); - if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3}; - _offset = EPOCH_currentBuildObj worldToModelVisual _pos3; - EPOCH_snapExtents pushBack _offset; - _numberOfContacts = _numberOfContacts + 1; - - _fullHeight = _offset select 0; - _halfHeight = _fullHeight/2; - - - - _pos1 = EPOCH_currentBuildObj modelToWorld [0,10,_halfHeight]; - _pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight]; - _ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player]; - if (count _ins == 0) then { - } else { - _pos3 = (_ins select 0 select 0); - if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3}; - _offset = EPOCH_currentBuildObj worldToModelVisual _pos3; - EPOCH_snapExtents pushBack _offset; - _numberOfContacts = _numberOfContacts + 1; - }; - - _pos1 = EPOCH_currentBuildObj modelToWorld [0,-10,_halfHeight]; - _pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight]; - _ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player]; - if (count _ins == 0) then { - } else { - _pos3 = (_ins select 0 select 0); - if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3}; - _offset = EPOCH_currentBuildObj worldToModelVisual _pos3; - EPOCH_snapExtents pushBack _offset; - _numberOfContacts = _numberOfContacts + 1; - }; - - _pos1 = EPOCH_currentBuildObj modelToWorld [10,0,_halfHeight]; - _pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight]; - _ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player]; - if (count _ins == 0) then { - } else { - _pos3 = (_ins select 0 select 0); - if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3}; - _offset = EPOCH_currentBuildObj worldToModelVisual _pos3; - EPOCH_snapExtents pushBack _offset; - _numberOfContacts = _numberOfContacts + 1; - }; - - _pos1 = EPOCH_currentBuildObj modelToWorld [-10,0,_halfHeight]; - _pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight]; - _ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player]; - if (count _ins == 0) then { - } else { - _pos3 = (_ins select 0 select 0); - if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3}; - _offset = EPOCH_currentBuildObj worldToModelVisual _pos3; - EPOCH_snapExtents pushBack _offset; - _numberOfContacts = _numberOfContacts + 1; - }; - - - _pos1 = EPOCH_currentBuildObj modelToWorld [0,0,-4.5]; - _pos2 = EPOCH_currentBuildObj modelToWorld [0,0,0]; - _ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player]; - if (count _ins == 0) then { - } else { - _pos3 = (_ins select 0 select 0); - if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3}; - _offset = EPOCH_currentBuildObj worldToModelVisual _pos3; - EPOCH_snapExtents pushBack _offset; - _numberOfContacts = _numberOfContacts + 1; - }; - -}; -onEachFrame { - { - drawIcon3D ["a3\modules_f\data\iconlock_ca.paa", [1,1,1,1], EPOCH_currentBuildObj modelToWorld _x, 1, 1, 45, "Snap", 1, 0.05, "TahomaB"]; - } forEach EPOCH_snapExtents; -}; diff --git a/Sources/epoch_code/config.cpp b/Sources/epoch_code/config.cpp index 7600a908..86e2537c 100644 --- a/Sources/epoch_code/config.cpp +++ b/Sources/epoch_code/config.cpp @@ -100,6 +100,13 @@ class cfgFunctions class initMultiplayer { file = "\x\addons\a3_epoch_code\compile\bis_functions\MP\fn_initMultiplayer.sqf"; }; + + }; + class functions { + // custom Epoch - BIS_fnc_returnVector + class returnVector { + file = "\x\addons\a3_epoch_code\compile\bis_functions\returnVector.sqf"; + }; }; }; class EPOCH @@ -112,6 +119,10 @@ class cfgFunctions class isAny { file = "\x\addons\a3_epoch_code\compile\both\EPOCH_isAny.sqf" }; + class isAny { + file = "\x\addons\a3_epoch_code\compile\both\EPOCH_isAny.sqf" + }; + }; }; }; @@ -161,9 +172,7 @@ class CfgClientFunctions class isBuildAllowed {}; class simulSwap {}; class staticMove {}; - class returnVector {}; class upgradeBUILD {}; - class upgradeBUILDv2 {}; class removeBUILD {}; class changeWallState {}; class checkBuild {}; diff --git a/Sources/epoch_code/gui/Epoch_GUI_Config.hpp b/Sources/epoch_code/gui/Epoch_GUI_Config.hpp index 86662ba6..80721945 100644 --- a/Sources/epoch_code/gui/Epoch_GUI_Config.hpp +++ b/Sources/epoch_code/gui/Epoch_GUI_Config.hpp @@ -164,7 +164,7 @@ class QuickUpgrade y = 0.622266 * safezoneH + safezoneY; w = 0.05875 * safezoneW; h = 0.0282151 * safezoneH; - action = "cursorTarget call EPOCH_upgradeBUILDv2"; + action = "cursorTarget call EPOCH_upgradeBUILD"; }; }; @@ -2582,39 +2582,47 @@ class RscDisplayInventory idc = 1243; x = "26.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; }; class BackgroundSlotPrimaryUnderBarrel : BackgroundSlotPrimary { idc = 1200; - x = "29 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "28.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; }; class BackgroundSlotPrimaryFlashlight : BackgroundSlotPrimary { idc = 1244; - x = "31.4 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "30.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; }; class BackgroundSlotPrimaryOptics : BackgroundSlotPrimary { idc = 1245; - x = "33.8 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "32.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + class BackgroundSlotPrimaryMagazineGL: BackgroundSlotPrimary + { + idc = 1267; + x = "34.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; }; class BackgroundSlotPrimaryMagazine : BackgroundSlotPrimary { idc = 1246; - x = "36.2 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "36.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; }; class BackgroundSlotSecondary : BackgroundSlotPrimary @@ -2896,43 +2904,52 @@ class RscDisplayInventory idc = 620; x = "26.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; colorText[] = { 0, 0, 0, 0.5 }; }; class SlotPrimaryUnderBarrel : SlotPrimary { idc = 641; - x = "29 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "28.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; colorText[] = { 0, 0, 0, 0.5 }; }; class SlotPrimaryFlashlight : SlotPrimary { idc = 622; - x = "31.4 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "30.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; colorText[] = { 0, 0, 0, 0.5 }; }; class SlotPrimaryOptics : SlotPrimary { idc = 621; - x = "33.8 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "32.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; colorText[] = { 0, 0, 0, 0.5 }; }; + class SlotPrimaryMagazineGL: SlotPrimary + { + idc = 644; + x = "34.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorText[] = {0,0,0,0.5}; + }; class SlotPrimaryMagazine : SlotPrimary { idc = 623; - x = "36.2 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + x = "36.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; colorText[] = { 0, 0, 0, 0.5 }; }; @@ -3393,6 +3410,9 @@ class RscDisplayInventory }; }; }; + + + class RscDisplayInterrupt: RscStandardDisplay //convert to preprocessFileNumbers { onLoad = "[""onLoad"",_this,""RscDisplayInterrupt"",'GUI'] call (uinamespace getvariable 'BIS_fnc_initDisplay'); _this call EPOCH_InterruptConfig;"; diff --git a/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf b/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf index 295499b2..7e556030 100644 --- a/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf +++ b/Sources/epoch_code/gui/scripts/dynamenu/Epoch_dynamicMenu.sqf @@ -66,7 +66,7 @@ _checkConfigs = { } forEach (_x select 1); _tooltip = format ["%1 >> %2 ",_dName,_tTip]; - _action = format ["[dyna_cursorTarget,%1] call EPOCH_upgradeBUILDv2; true call Epoch_dynamicMenuCleanup;",_forEachIndex]; + _action = format ["[dyna_cursorTarget,%1] call EPOCH_upgradeBUILD; true call Epoch_dynamicMenuCleanup;",_forEachIndex]; _buttonSettings pushBack [ _icon, diff --git a/Sources/epoch_config/Configs/CfgPricing.hpp b/Sources/epoch_config/Configs/CfgPricing.hpp index 4c548af5..5f46e69d 100644 --- a/Sources/epoch_config/Configs/CfgPricing.hpp +++ b/Sources/epoch_config/Configs/CfgPricing.hpp @@ -421,7 +421,7 @@ class CfgPricing class SLAMDirectionalMine_Wire_Mag {price = 40;}; class APERSTripMine_Wire_Mag {price = 30;}; - + // Backpacks class B_AssaultPack_cbr {price = 10;}; class B_AssaultPack_dgtl {price = 10;}; class B_AssaultPack_khk {price = 10;}; @@ -430,32 +430,32 @@ class CfgPricing class B_AssaultPack_rgr {price = 10;}; class B_AssaultPack_sgg {price = 10;}; class B_AssaultPack_blk { price = 10; }; - class B_Carryall_cbr {price = 1;}; - class B_Carryall_khk {price = 10;}; - class B_Carryall_mcamo {price = 10;}; - class B_Carryall_ocamo {price = 10;}; - class B_Carryall_oli {price = 10;}; - class B_Carryall_oucamo {price = 10;}; - class B_FieldPack_blk {price = 10;}; - class B_FieldPack_cbr {price = 10;}; - class B_FieldPack_khk {price = 10;}; - class B_FieldPack_ocamo {price = 10;}; - class B_FieldPack_oli {price = 10;}; - class B_FieldPack_oucamo {price = 10;}; - class B_Kitbag_cbr {price = 10;}; - class B_Kitbag_mcamo {price = 10;}; - class B_Kitbag_rgr {price = 10;}; - class B_Kitbag_sgg {price = 10;}; - class B_Parachute {price = 15;}; - class B_TacticalPack_blk {price = 10;}; - class B_TacticalPack_mcamo {price = 10;}; - class B_TacticalPack_ocamo {price = 10;}; - class B_TacticalPack_oli {price = 10;}; - class B_TacticalPack_rgr {price = 10;}; - class smallbackpack_red_epoch {price = 10;}; - class smallbackpack_green_epoch {price = 10;}; - class smallbackpack_teal_epoch {price = 10;}; - class smallbackpack_pink_epoch {price = 10;}; + class B_Carryall_cbr {price = 40;}; + class B_Carryall_khk {price = 40;}; + class B_Carryall_mcamo {price = 40;}; + class B_Carryall_ocamo {price = 40;}; + class B_Carryall_oli {price = 40;}; + class B_Carryall_oucamo {price = 40;}; + class B_FieldPack_blk {price = 15;}; + class B_FieldPack_cbr {price = 15;}; + class B_FieldPack_khk {price = 15;}; + class B_FieldPack_ocamo {price = 15;}; + class B_FieldPack_oli {price = 15;}; + class B_FieldPack_oucamo {price = 15;}; + class B_Kitbag_cbr {price = 25;}; + class B_Kitbag_mcamo {price = 25;}; + class B_Kitbag_rgr {price = 25;}; + class B_Kitbag_sgg {price = 25;}; + class B_Parachute {price = 25;}; + class B_TacticalPack_blk {price = 20;}; + class B_TacticalPack_mcamo {price = 20;}; + class B_TacticalPack_ocamo {price = 20;}; + class B_TacticalPack_oli {price = 20;}; + class B_TacticalPack_rgr {price = 20;}; + class smallbackpack_red_epoch {price = 22;}; + class smallbackpack_green_epoch {price = 22;}; + class smallbackpack_teal_epoch {price = 22;}; + class smallbackpack_pink_epoch {price = 22;}; // Marksman DLC class U_O_FullGhillie_lsh { price = 7; }; diff --git a/Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp b/Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp index eeff60c6..9dc9c960 100644 --- a/Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp +++ b/Sources/epoch_config/Configs/CfgVehicles/Fixes.hpp @@ -100,3 +100,51 @@ class Land_Communication_F : House_F killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\Transmitter_Tower\Scripts\tower_ruins.sqf""};"; }; }; + + +/* + Increase Backpack storage limits to balance for changes since 1.54 +*/ +class Bag_Base; +class B_AssaultPack_Base: Bag_Base +{ + model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Compact"; + descriptionShort = "Load: 360, Mass: 20"; + hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_compact_khk_co.paa"}; + maximumLoad = 360; + mass = 20; +}; +class B_FieldPack_Base: Bag_Base +{ + model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Gorod"; + descriptionShort = "Load: 400, Mass: 30"; + hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_gorod_cbr_co.paa"}; + maximumLoad = 400; + mass = 30; +}; +class B_TacticalPack_Base: Bag_Base +{ + model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Small"; + descriptionShort = "Load: 480, Mass: 40"; + hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_small_co.paa"}; + maximumLoad = 480; + mass = 40; +}; +class B_Kitbag_Base: Bag_Base +{ + picture = "\A3\Weapons_F\ammoboxes\bags\data\ui\icon_B_C_Kitbag_rgr"; + descriptionShort = "Load: 520, Mass: 50"; + model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Fast"; + hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_fast_rgr_co.paa"}; + maximumLoad = 520; + mass = 50; +}; +class B_Carryall_Base: Bag_Base +{ + model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Tortila"; + descriptionShort = "Load: 550, Mass: 60"; + picture = "\A3\Weapons_F\Ammoboxes\Bags\data\UI\icon_B_C_Tortila_khk.paa"; + hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_tortila_khk_co.paa"}; + maximumLoad = 550; + mass = 60; +}; diff --git a/Sources/epoch_config/Configs/CfgWeapons.hpp b/Sources/epoch_config/Configs/CfgWeapons.hpp index 555fe72b..fe384dc6 100644 --- a/Sources/epoch_config/Configs/CfgWeapons.hpp +++ b/Sources/epoch_config/Configs/CfgWeapons.hpp @@ -2206,6 +2206,14 @@ class CfgWeapons class WeaponSlotsInfo; class GunParticles; }; + class Rifle_Long_Base_F: Rifle_Base_F + { + class WeaponSlotsInfo: WeaponSlotsInfo + { + allowedSlots[] = {901}; + }; + }; + class UGL_F; class Epoch_weapon_01_Base_F: Rifle_Base_F { @@ -3080,13 +3088,7 @@ class CfgWeapons }; };*/ - class Rifle_Long_Base_F : Rifle_Base_F - { - class WeaponSlotsInfo : WeaponSlotsInfo - { - allowedSlots[] = {901}; - }; - }; + class ItemRadio; class EpochRadio0 : ItemRadio { diff --git a/Sources/epoch_config/config.cpp b/Sources/epoch_config/config.cpp index 567b0b71..6a708e7e 100644 --- a/Sources/epoch_config/config.cpp +++ b/Sources/epoch_config/config.cpp @@ -30,7 +30,7 @@ class CfgPatches units[] = { "Epoch_Female_F", "Epoch_Male_F", "Epoch_Cloak_F", "Epoch_Sapper_F", "Epoch_Ent_Small_F", "Epoch_Ent_Med_F", "Epoch_Ent_Large_F", "Land_Test_House_01_F", "Land_Test_House_01_dam_F", "Land_Test_House_01_ruins_F", "Epoch_Test", "C_Test_Car_01_F", "C_Hatchback_01_EPOCH", "C_Hatchback_02_EPOCH", "C_Offroad_01_EPOCH", "C_Quadbike_01_EPOCH", "C_SUV_01_EPOCH", "C_Rubberboat_EPOCH", "C_Rubberboat_02_EPOCH", "C_Rubberboat_03_EPOCH", "C_Rubberboat_04_EPOCH", "C_Van_01_box_EPOCH", "C_Van_01_transport_EPOCH", "C_Boat_Civil_01_EPOCH", "C_Boat_Civil_01_police_EPOCH", "C_Boat_Civil_01_rescue_EPOCH", "B_Heli_Light_01_EPOCH", "B_Heli_Transport_01_EPOCH", "B_Heli_Transport_01_camo_EPOCH", "B_SDV_01_EPOCH", "B_MRAP_01_EPOCH", "B_Truck_01_transport_EPOCH", "B_Truck_01_covered_EPOCH", "B_Truck_01_mover_EPOCH", "B_Truck_01_box_EPOCH", "O_Truck_02_covered_EPOCH", "O_Truck_02_transport_EPOCH", "O_Truck_03_covered_EPOCH", "O_Truck_02_box_EPOCH", "O_Heli_Light_02_unarmed_EPOCH", "I_Heli_Transport_02_EPOCH", "I_Heli_light_03_unarmed_EPOCH", "O_Test_Tank_01", "Sword_SIM_EPOCH", "SapperHead_SIM_EPOCH", "SapperCorpse_SIM_EPOCH", "MetalFloor_SIM_EPOCH", "WoodRamp_SIM_EPOCH", "CinderWallHalf_SIM_EPOCH", "CinderWall_SIM_EPOCH", "CinderWallDoorway_SIM_EPOCH", "CinderWallSmallDoorway_SIM_EPOCH", "WoodFloor_SIM_EPOCH", "WoodFloorHalf_SIM_EPOCH", "WoodFloorQuarter_SIM_EPOCH", "WoodLargeWall_SIM_EPOCH", "WoodLargeWallCor_SIM_EPOCH", "WoodLargeWallDoorway_SIM_EPOCH", "WoodLargeWallDoor_SIM_EPOCH", "WoodLargeWallWin_SIM_EPOCH", "WoodSmallWallThird_SIM_EPOCH", "WoodStairs_SIM_EPOCH", "WoodLadder_SIM_EPOCH", "WoodStairsSans_SIM_EPOCH", "Shelf_SIM_EPOCH", "Chair_SIM_EPOCH", "ChairRed_SIM_EPOCH", "Filing_SIM_EPOCH", "Fridge_SIM_EPOCH", "Bed_SIM_EPOCH", "Couch_SIM_EPOCH", "Wardrobe_SIM_EPOCH", "Locker_SIM_EPOCH", "Cooker_SIM_EPOCH", "Pelican_SIM_EPOCH", "Land_SIM_EPOCH_WoodDoor_Base", "Land_SIM_EPOCH_WoodDoorLocked_Base", "CinderWallDoor_SIM_EPOCH_Base", "CinderWallDoorLocked_SIM_EPOCH_Base", "Land_SIM_EPOCH_WoodDoor", "Land_SIM_EPOCH_WoodDoorLocked", "Land_SIM_EPOCH_LargeWoodDoor", "Land_SIM_EPOCH_LargeWoodDoorLocked", "Land_SIM_EPOCH_GarageWoodDoor", "Land_SIM_EPOCH_GarageWoodDoorLocked", "CinderWallDoorLocked_SIM_EPOCH", "CinderWallDoor_SIM_EPOCH", "CinderWallDoorSmallLocked_SIM_EPOCH", "CinderWallDoorSmall_SIM_EPOCH", "Foundation_EPOCH", "Foundation_Ghost_EPOCH", "Sword_EPOCH", "MetalFloor_EPOCH", "WoodRamp_EPOCH", "CinderWallHalf_EPOCH", "CinderWall_EPOCH", "CinderWallDoorway_EPOCH", "CinderWallSmallDoorway_EPOCH", "WoodFloor_EPOCH", "WoodFloorHalf_EPOCH", "WoodFloorQuarter_EPOCH", "WoodLargeWall_EPOCH", "WoodLargeWallCor_EPOCH", "WoodLargeWallDoorway_EPOCH", "WoodLargeWallDoor_EPOCH", "WoodLargeWallWin_EPOCH", "WoodSmallWallThird_EPOCH", "WoodStairs_EPOCH", "WoodLadder_EPOCH", "WoodStairsSans_EPOCH", "Shelf_EPOCH", "Fridge_EPOCH", "Pelican_EPOCH", "BedProxy_EPOCH", "Bed_EPOCH", "CouchProxy_EPOCH", "Couch_EPOCH", "ChairProxy_EPOCH", "Chair_EPOCH", "ChairRed_EPOCH", "FilingProxy_EPOCH", "Filing_EPOCH", "Land_EPOCH_WoodDoor_Base", "Land_EPOCH_WoodDoorLocked_Base", "CinderWallDoor_EPOCH_Base", "CinderWallDoorLocked_EPOCH_Base", "Land_EPOCH_WoodDoor", "Land_EPOCH_WoodDoorLocked", "Land_EPOCH_LargeWoodDoor", "Land_EPOCH_LargeWoodDoorLocked", "Land_EPOCH_GarageWoodDoor", "Land_EPOCH_GarageWoodDoorLocked", "CinderWallDoorLocked_EPOCH", "CinderWallDoor_EPOCH", "CinderWallDoorSmallLocked_EPOCH", "CinderWallDoorSmall_EPOCH", "Poppy_EPOCH", "Land_WoodenBox_C_EPOCH", "Land_PaperBox_C_EPOCH", "centerplane_ui" }; weapons[] = { "U_Test_uniform", "U_Test1_uniform", "V_F0_EPOCH", "V_F1_EPOCH", "V_F2_EPOCH", "V_F3_EPOCH", "V_F4_EPOCH", "V_F5_EPOCH", "V_F6_EPOCH", "V_F7_EPOCH", "V_1_EPOCH", "V_2_EPOCH", "V_3_EPOCH", "V_4_EPOCH", "V_5_EPOCH", "V_6_EPOCH", "V_7_EPOCH", "V_8_EPOCH", "V_9_EPOCH", "V_10_EPOCH", "V_11_EPOCH", "V_12_EPOCH", "V_13_EPOCH", "V_14_EPOCH", "V_15_EPOCH", "V_16_EPOCH", "V_17_EPOCH", "V_18_EPOCH", "V_19_EPOCH", "V_20_EPOCH", "V_21_EPOCH", "V_22_EPOCH", "V_23_EPOCH", "V_24_EPOCH", "V_25_EPOCH", "V_26_EPOCH", "V_27_EPOCH", "V_28_EPOCH", "V_29_EPOCH", "V_30_EPOCH", "V_31_EPOCH", "V_32_EPOCH", "V_33_EPOCH", "V_34_EPOCH", "V_35_EPOCH", "V_36_EPOCH", "V_37_EPOCH", "V_38_EPOCH", "V_39_EPOCH", "V_40_EPOCH", "H_F0_EPOCH", "H_F1_EPOCH", "H_F2_EPOCH", "H_F3_EPOCH", "H_F4_EPOCH", "H_F5_EPOCH", "H_11_EPOCH", "H_28_EPOCH", "Rollins_F", "ChainSaw", "ChainSawB", "ChainSawG", "ChainSawP", "ChainSawR", "MultiGun", "Drink", "MeleeSledge", "test_suppressor", "Defib_EPOCH", "Heal_EPOCH", "Repair_EPOCH", , "sr25_epoch", "sr25_ec_epoch", "muzzle_sr25S_epoch", "l85a2_base_epoch", "l85a2_epoch", "l85a2_ris_epoch", "l85a2_ris_ng_epoch", "l85a2_pink_epoch", "l85a2_ugl_epoch" }; requiredVersion = 0.1; - requiredAddons[] = { "a3_map_altis", "a3_map_stratis", "A3_epoch_assets_3", "a3_epoch_weapons", "epoch_objects", "A3_epoch_vehicles", "A3_epoch_assets_1", "A3_epoch_assets", "A3_Soft_F", "A3_Characters_F", "A3_Characters_F_Beta", "A3_Characters_F_EPA", "A3_Characters_F_EPB", "A3_Structures_F", "A3_Armor_F_Beta", "A3_Data_F", "A3_Weapons_F", "A3_Characters_F_Kart", "A3_Soft_F_Kart_Kart_01", "a2_epoch_weapons", "A3_Air_F_Gamma_UAV_01", "A3_Soft_F_Car", "A3_Soft_F_Heli_Car", "A3_Soft_F_Offroad_01", "A3_Soft_F_Quadbike", "A3_Soft_F_Heli_Quadbike", "A3_Soft_F_SUV", "A3_Soft_F_Heli_SUV", "A3_Boat_F_Boat_Transport_01", "A3_Soft_F_Truck", "A3_Soft_F_Heli_Truck", "A3_Soft_F_Bootcamp_Truck", "A3_Boat_F_Civilian_Boat", "A3_Air_F_Heli_Light_01", "A3_Air_F_Heli_Heli_Light_01", "A3_Air_F_Beta_Heli_Transport_01", "A3_Boat_F_SDV_01", "A3_Boat_F_Heli_SDV_01", "A3_Soft_F_MRAP_01", "A3_Soft_F_Heli_MRAP_01", "A3_Soft_F_HEMTT", "A3_Soft_F_Gamma_HEMTT", "A3_Soft_F_TruckHeavy", "A3_Soft_F_Gamma_TruckHeavy", "A3_Soft_F_EPC_Truck_03", "A3_Air_F_Heli_Light_02", "A3_Air_F_Beta_Heli_Transport_02", "A3_Air_F_EPB_Heli_Light_03", "A3_Air_F_Heli_Heli_Transport_04", "A3_Air_F_Heli_Heli_Transport_03", "A3_Animals_F_Dog", "A3_Animals_F_Rabbit", "A3_Animals_F_Chicken", "A3_Characters_F_Common", "A3_Structures_F_Ind_Transmitter_Tower", "a3_epoch_structures" }; + requiredAddons[] = { "a3_map_altis", "a3_map_stratis", "A3_epoch_assets_3", "a3_epoch_weapons", "epoch_objects", "A3_epoch_vehicles", "A3_epoch_assets_1", "A3_epoch_assets", "A3_Soft_F", "A3_Characters_F", "A3_Characters_F_Beta", "A3_Characters_F_EPA", "A3_Characters_F_EPB", "A3_Structures_F", "A3_Armor_F_Beta", "A3_Data_F", "A3_Weapons_F", "A3_Weapons_F_LongRangeRifles_M320", "A3_Weapons_F_LongRangeRifles_GM6","A3_Weapons_F_EBR", "A3_Weapons_F_EPA_LongRangeRifles_DMR_01", "A3_Weapons_F_Machineguns_M200", "A3_Weapons_F_Machineguns_Zafir", "A3_Weapons_F_Mark_LongRangeRifles_DMR_02", "A3_Weapons_F_Mark_LongRangeRifles_DMR_03", "A3_Weapons_F_Mark_LongRangeRifles_DMR_04", "A3_Weapons_F_Mark_LongRangeRifles_DMR_05", "A3_Weapons_F_Mark_LongRangeRifles_DMR_06","A3_Characters_F_Kart", "A3_Soft_F_Kart_Kart_01", "a2_epoch_weapons", "A3_Air_F_Gamma_UAV_01", "A3_Soft_F_Car", "A3_Soft_F_Heli_Car", "A3_Soft_F_Offroad_01", "A3_Soft_F_Quadbike", "A3_Soft_F_Heli_Quadbike", "A3_Soft_F_SUV", "A3_Soft_F_Heli_SUV", "A3_Boat_F_Boat_Transport_01", "A3_Soft_F_Truck", "A3_Soft_F_Heli_Truck", "A3_Soft_F_Bootcamp_Truck", "A3_Boat_F_Civilian_Boat", "A3_Air_F_Heli_Light_01", "A3_Air_F_Heli_Heli_Light_01", "A3_Air_F_Beta_Heli_Transport_01", "A3_Boat_F_SDV_01", "A3_Boat_F_Heli_SDV_01", "A3_Soft_F_MRAP_01", "A3_Soft_F_Heli_MRAP_01", "A3_Soft_F_HEMTT", "A3_Soft_F_Gamma_HEMTT", "A3_Soft_F_TruckHeavy", "A3_Soft_F_Gamma_TruckHeavy", "A3_Soft_F_EPC_Truck_03", "A3_Air_F_Heli_Light_02", "A3_Air_F_Beta_Heli_Transport_02", "A3_Air_F_EPB_Heli_Light_03", "A3_Air_F_Heli_Heli_Transport_04", "A3_Air_F_Heli_Heli_Transport_03", "A3_Animals_F_Dog", "A3_Animals_F_Rabbit", "A3_Animals_F_Chicken", "A3_Characters_F_Common", "A3_Structures_F_Ind_Transmitter_Tower", "a3_epoch_structures", "A3_Weapons_F_Ammoboxes" }; magazines[] = { "30Rnd_test_mag", "5Rnd_rollins_mag", "CSGAS", "sledge_swing", "30Rnd_test_mag_Tracer", "EnergyPack", "1Rnd_Soda", "1Rnd_Food", "WoodLog_EPOCH", "PaintCanBlk", "PaintCanBlu", "PaintCanBrn", "PaintCanGrn", "PaintCanOra", "PaintCanPur", "PaintCanRed", "PaintCanTeal", "PaintCanYel" }; ammo[] = { "B_EnergyPack", "B_Swing", "Sapper_Charge_Ammo", "SapperB_Charge_Ammo", "B_Soda", "B_Food", "B_Test_Caseless", "ChainSaw_Bullet", "SmokeShellCustom" }; epochVersion = "0.3.6.0"; diff --git a/Sources/epoch_server_settings/configs/security/data/custom_vars.h b/Sources/epoch_server_settings/configs/security/data/custom_vars.h index 9c27559c..85d955d2 100644 --- a/Sources/epoch_server_settings/configs/security/data/custom_vars.h +++ b/Sources/epoch_server_settings/configs/security/data/custom_vars.h @@ -124,7 +124,7 @@ bis[] = { }; epoch[] = { "epoch_localcleanup","epoch_client_publiceh","epoch_clientinit","epoch_oneachframe","epoch_masterloop","epoch_client_rejectplayer","epoch_clientrespawn","epoch_clientrevive","epoch_starttradereq","epoch_starttrade","epoch_traderequest","epoch_tradeloop","epoch_countdown", - "epoch_fnc_selecttarget","epoch_fnc_selecttargetbuild","epoch_isbuildallowed","epoch_simulswap","epoch_staticmove","epoch_returnvector","epoch_upgradebuild","epoch_removebuild","epoch_startinteract","epoch_startinteractnpc","epoch_interactnpc","epoch_npctraderadd", + "epoch_fnc_selecttarget","epoch_fnc_selecttargetbuild","epoch_isbuildallowed","epoch_simulswap","epoch_staticmove","BIS_fnc_returnVector","epoch_upgradebuild","epoch_removebuild","epoch_startinteract","epoch_startinteractnpc","epoch_interactnpc","epoch_npctraderadd", "epoch_npctraderadd2","epoch_npctraderadd3","epoch_startnpctradermenu","epoch_npctradermenufilter","epoch_startnpctrade","epoch_makep2ptrade","epoch_tradefilter","epoch_takecrypto","epoch_startbanktransfer","epoch_keydown","epoch_onchar", "epoch_fnc_playerdeath","epoch_fnc_playerfired","epoch_fnc_isinsidebuilding","epoch_fnc_weather","epoch_fnc_findsafepos","epoch_pushcustomvar","epoch_itempicture","epoch_itemdisplayname","epoch_fnc_findrandomposbehind","epoch_fnc_stringleft", "epoch_sortarraybydistance","epoch_client_earthquake","epoch_client_loadanimalbrain","epoch_client_biteplayer","epoch_client_repairvehicle","epoch_client_lockvehicle","epoch_client_fillvehicle","epoch_client_gearvehicle","epoch_mission_accept","epoch_mission_hover_uav", From 3d6f43a36c664f34abff8ee0b8557661c5787f97 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 15 Dec 2015 16:43:26 -0600 Subject: [PATCH 13/16] 0.3.6.019 --- Changelogs/0.3.6.0.txt | 3 +- .../environment/EPOCH_client_bitePlayer.sqf | 33 ++++++-- .../environment/EPOCH_client_earthQuake.sqf | 25 ++++++- .../EPOCH_client_loadAnimalBrain.sqf | 23 ++++++ .../EPOCH_Interface_interact.sqf | 75 ------------------- .../EPOCH_KeyDown.sqf | 29 ++++++- .../interface_event_handlers/EPOCH_KeyUp.sqf | 30 +++++++- .../interface_event_handlers/EPOCH_onChar.sqf | 26 ++++++- .../compile/inventory/EPOCH_factorArmor.sqf | 24 ++++++ .../compile/inventory/EPOCH_gearArmorCalc.sqf | 34 ++++++++- .../compile/inventory/EPOCH_initUI.sqf | 25 +++++++ .../compile/inventory/EPOCH_maxArmorInit.sqf | 32 ++++++-- .../compile/inventory/EPOCH_refeshUI.sqf | 24 +++++- .../inventory/EPOCH_uniformArmorCalc.sqf | 23 ++++++ 14 files changed, 311 insertions(+), 95 deletions(-) delete mode 100644 Sources/epoch_code/compile/interface_event_handlers/EPOCH_Interface_interact.sqf diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index 742f3668..6d0bf63c 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -2,9 +2,10 @@ [Added] Added ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man [Changed] Increased max player load 2x to compensate for the new stamina system in 1.54. [Changed] Increased backpack storage limits to allow carrying long weapons. +[Fixed] Updated Epoch armor stats UI system to support new changes since 1.54. [Fixed] Changes to default Arma weapon configs to allow long (Lynx,etc) weapons to be stored in backpacks. [Fixed] Unable to sell after attempting to sell a temporary vehicle. Thanks to @He-Man -[Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well. +[Fixed] Updated Hitpoints for all custom Epoch characters, fixes the hitpoint .rpt errors since 1.54. [Fixed] Reduce run speed of Sappers since 1.54 update. [Fixed] Wood tower "add/remove wall" options are now only available when build mode is enabled. diff --git a/Sources/epoch_code/compile/environment/EPOCH_client_bitePlayer.sqf b/Sources/epoch_code/compile/environment/EPOCH_client_bitePlayer.sqf index 256b344c..9c7cfd05 100644 --- a/Sources/epoch_code/compile/environment/EPOCH_client_bitePlayer.sqf +++ b/Sources/epoch_code/compile/environment/EPOCH_client_bitePlayer.sqf @@ -1,21 +1,44 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Performs damage related effects + + 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_code/compile/environment/EPOCH_client_bitePlayer.sqf + + Example: + [cursorTarget,_index] call EPOCH_upgradeBUILD; + + Parameter(s): + _this: OBJECT - Player + + Returns: + NOTHING +*/ if !(isNull _this && alive _this) then { - + _distance = 5; _toxicChance = 0.1; _bleedChance = 1; _bloodpChance = 0; _fatigueChance = 0.1; - + _bleedAmount = 30; _bloodpAmount = 2; - + _soundEffect = -1; _soundEffectGlobal = false; _canSee = false; _ppEffect = 0; switch (typeOf _this) do { - case "Snake_random_EPOCH": { + case "Snake_random_EPOCH": { _distance = 3; _toxicChance = 0.2; _bloodpChance = 1; @@ -123,4 +146,4 @@ if !(isNull _this && alive _this) then { player setFatigue 1; }; }; -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/environment/EPOCH_client_earthQuake.sqf b/Sources/epoch_code/compile/environment/EPOCH_client_earthQuake.sqf index 8cf594c8..89414573 100644 --- a/Sources/epoch_code/compile/environment/EPOCH_client_earthQuake.sqf +++ b/Sources/epoch_code/compile/environment/EPOCH_client_earthQuake.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Triggers earthquake with increasing intensity the closer the player + + 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_code/compile/environment/EPOCH_client_earthQuake.sqf + + Example: + _location call EPOCH_client_earthQuake + + Parameter(s): + _this: ARRAY - Locaton of epicenter + + Returns: + Script handle +*/ _epicenter = _this; _distance = player distance _epicenter; _intensity = 1; @@ -12,4 +35,4 @@ if (_distance < 250) then { }; }; }; -_intensity spawn BIS_fnc_earthQuake; \ No newline at end of file +_intensity spawn BIS_fnc_earthQuake; diff --git a/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf b/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf index 6cde01fe..17afd304 100644 --- a/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf +++ b/Sources/epoch_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Creates animals with custom Epoch fsm AI "brain" + + 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_code/compile/environment/EPOCH_client_loadAnimalBrain.sqf + + Example: + call EPOCH_client_loadAnimalBrain; + + Parameter(s): + None + + Returns: + NOTHING +*/ private["_fightOrFlight", "_id", "_animal", "_tryAnimalPos", "_animalPos", "_randomIndex", "_randomAIClass", "_aiTables", "_plyrPos"]; if (count(player nearEntities["Animal_Base_F", 200]) >= 1) exitWith{}; diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_Interface_interact.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_Interface_interact.sqf deleted file mode 100644 index 9811089a..00000000 --- a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_Interface_interact.sqf +++ /dev/null @@ -1,75 +0,0 @@ -disableSerialization; -// diag_log format["DEBUG INTERACT: %1", _this]; - -_control = _this select 0; -_prevIndex = _this select 1; - -_selected = (_control lbValue _prevIndex); -_data = (_control lbData _prevIndex); - -// diag_log format["DEBUG INTERACT SELECTED: %1 DATA: %2", _selected, _data]; - -lbClear 1700; - - -_selectedInteractID = format["%1_%2",_data,_selected]; - -if (_data == "Shop") exitWith { - _shopArray = getArray (configFile >> "CfgInteract" >> _selectedInteractID >> "shop"); - _dt = [format["START SHOP DIALOG: %1", _shopArray], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; - closeDialog 0; -}; - - -if (_data == "Mission") exitWith { - _missionArray = getArray (configFile >> "CfgInteract" >> _selectedInteractID >> "mission"); - _dt = [format["START MISSION DIALOG: %1", _missionArray], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; - closeDialog 0; -}; - -_responseArray = getArray (configFile >> "CfgInteract" >> _selectedInteractID >> "responseNPC"); - -if !(_responseArray isEqualTo []) then { - _response = (_responseArray select floor(random(count _responseArray))); - if (_response != "") then { - _dt = [format["%1", _response], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; - }; -}; - -// diag_log format["DEBUG INTERACT _interactID: %1", _selectedInteractID]; - - -_dataArray = getArray (configFile >> "CfgInteract" >> _selectedInteractID >> "interactMenu"); -{ - _interactSecondID = format["Interact_%1", _x]; - _interactName = getText (configFile >> "CfgInteract" >> _interactSecondID >> "interactName"); - _index = lbAdd[1700,_interactName]; - - - lbSetValue [1700, _index, _x]; - lbSetData [1700, _index,"Interact"]; -}forEach _dataArray; - - - -_dataArray = getArray (configFile >> "CfgInteract" >> _selectedInteractID >> "missionMenu"); -{ - _interactSecondID = format["Mission_%1", _x]; - _interactName = getText (configFile >> "CfgInteract" >> _interactSecondID >> "interactName"); - _index = lbAdd[1700,_interactName]; - - lbSetValue [1700, _index, _x]; - lbSetData [1700, _index,"Mission"]; -}forEach _dataArray; - - - -_dataArray = getArray (configFile >> "CfgInteract" >> _selectedInteractID >> "shopMenu"); -{ - _interactSecondID = format["Shop_%1", _x]; - _interactName = getText (configFile >> "CfgInteract" >> _interactSecondID >> "interactName"); - _index = lbAdd[1700,_interactName]; - - lbSetValue [1700, _index, _x]; - lbSetData [1700, _index,"Shop"]; -}forEach _dataArray; \ No newline at end of file diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf index c0341471..98ccf344 100644 --- a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf +++ b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf @@ -1,4 +1,31 @@ -private["_dikCode", "_handled"]; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Key Down EH functions + + 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_code/compile/interface_event_handlers/EPOCH_KeyDown.sqf + + Example: + _this call EPOCH_KeyDown; + + Parameter(s): + _this select 0: CONTROL - _display + _this select 1: NUMBER - _dikcode + _this select 2: BOOL - Shift State + _this select 3: BOOL - Ctrl State + _this select 4: BOOL - Alt State + + Returns: + BOOL +*/ +private["_handled"]; params ["_display","_dikCode","_shift","_ctrl","_alt"]; _handled = false; diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf index ed0c7304..5843327c 100644 --- a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf +++ b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf @@ -1,4 +1,31 @@ -private["_dikCode", "_handled"]; +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Key Up EH functions + + 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_code/compile/interface_event_handlers/EPOCH_KeyUp.sqf + + Example: + _this call EPOCH_KeyUp; + + Parameter(s): + _this select 0: CONTROL - _display + _this select 1: NUMBER - _dikcode + _this select 2: BOOL - Shift State + _this select 3: BOOL - Ctrl State + _this select 4: BOOL - Alt State + + Returns: + BOOL +*/ +private["_handled"]; params ["_display","_dikCode","_shift","_ctrl","_alt"]; _handled = false; @@ -11,4 +38,3 @@ if (_dikCode == EPOCH_keysAction) then { _handled - diff --git a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_onChar.sqf b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_onChar.sqf index e8ca86f4..807ac895 100644 --- a/Sources/epoch_code/compile/interface_event_handlers/EPOCH_onChar.sqf +++ b/Sources/epoch_code/compile/interface_event_handlers/EPOCH_onChar.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + removes any non numeric chars and inforce number to max limit to a control. + + 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_code/compile/interface_event_handlers/EPOCH_onChar.sqf + + Example: + [_control,_maxLimit] call EPOCH_onChar; + + Parameter(s): + _this select 0: CONTROL - _display + _this select 0: NUMBER - max limit + + Returns: + NOTHING +*/ _control = _this select 0; _textArr = toArray(ctrlText(_control select 0)); { @@ -9,4 +33,4 @@ if (count _textArr > 10) then { _textArr resize 10; }; _num = parseNumber(toString _textArr) min (_this select 1); -(_control select 0) ctrlSetText str(_num); \ No newline at end of file +(_control select 0) ctrlSetText str(_num); diff --git a/Sources/epoch_code/compile/inventory/EPOCH_factorArmor.sqf b/Sources/epoch_code/compile/inventory/EPOCH_factorArmor.sqf index 5e71f4e1..c0b4bb0d 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_factorArmor.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_factorArmor.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Gear Armor factor for passThrough calculation with support for A3 1.54+. + + 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_code/compile/inventory/EPOCH_factorArmor.sqf + + Example: + _gearArmor = ([_passThrough,_armor] call EPOCH_factorArmor); + + Parameter(s): + _this select 0: NUMBER - passThrough + _this select 1: NUMBER - armor + + Returns: + NUMBER +*/ private ["_passThrough","_armor","_factor"]; _passThrough = _this select 0; _armor = _this select 1; diff --git a/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf b/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf index ce074dd5..3320b9be 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf @@ -1,4 +1,32 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Gear armor calculation with support for A3 1.54+. + + 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_code/compile/inventory/EPOCH_gearArmorCalc.sqf + + Example: + _vestArmor = (vest player) call EPOCH_gearArmorCalc; + + Parameter(s): + _this select 0: STRING - Vest or Headhear classname + + Returns: + NUMBER +*/ private ["_passThrough","_armor"]; -_passThrough = getNumber(configFile >> "CfgWeapons" >> _this >> "ItemInfo" >> "passThrough"); -_armor = getNumber(configFile >> "CfgWeapons" >> _this >> "ItemInfo" >> "armor"); -([_passThrough,_armor] call EPOCH_factorArmor) +_gearConfig = (configfile >> "CfgWeapons" >> _this); +_passThrough = getNumber(_gearConfig >> "ItemInfo" >> "passThrough"); +_armor = getNumber(_gearConfig >> "ItemInfo" >> "armor"); +_gearArmor = ([_passThrough,_armor] call EPOCH_factorArmor); +{ + _gearArmor = _gearArmor + ([getNumber(_x >> 'passThrough'),getNumber(_x >> 'armor')] call EPOCH_factorArmor) +} forEach ("isClass _x" configclasses (_gearConfig >> "ItemInfo" >> "HitpointsProtectionInfo")); +_gearArmor diff --git a/Sources/epoch_code/compile/inventory/EPOCH_initUI.sqf b/Sources/epoch_code/compile/inventory/EPOCH_initUI.sqf index 4e444fc3..5f96bcdd 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_initUI.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_initUI.sqf @@ -1,3 +1,28 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Init epoch gear armor stats. + + 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_code/compile/inventory/EPOCH_initUI.sqf + + Example: + player addEventHandler ["InventoryOpened", { + _this spawn EPOCH_initUI; + }]; + + Parameter(s): + None + + Returns: + NOHTING +*/ private ["_bar","_uniformArmor","_totalArmor","_finalArmor","_vestArmor","_headgearArmor","_bar_pos","_bar_compare","_color","_colorCompare","_display","_totalArmorMax"]; disableSerialization; diff --git a/Sources/epoch_code/compile/inventory/EPOCH_maxArmorInit.sqf b/Sources/epoch_code/compile/inventory/EPOCH_maxArmorInit.sqf index 7eebe3eb..5d78e337 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_maxArmorInit.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_maxArmorInit.sqf @@ -1,11 +1,31 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Gear armor max armor calculation with support for A3 1.54+. + + 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_code/compile/inventory/EPOCH_maxArmorInit.sqf + + Example: + call EPOCH_maxArmorInit; + + Parameter(s): + None + + Returns: + NOTHING +*/ private ["_tempArmor","_maxArmorUniform","_curArmor","_maxArmorVest","_maxArmorHeadgear"]; _maxArmorUniform = 0; { - - _tempArmor = 0; - {_tempArmor = _tempArmor + ([getNumber(_x >> 'passThrough'),getNumber(_x >> 'armor')] call EPOCH_factorArmor)} forEach ("isClass _x" configclasses (_x >> "HitPoints")); - _curArmor = ([getNumber(_x >> 'passThrough'),getNumber(_x >> 'armor')] call EPOCH_factorArmor) + getNumber(_x >> 'armorStructural') + _tempArmor; - + _curArmor = ([getNumber(_x >> 'passThrough'),getNumber(_x >> 'armor')] call EPOCH_factorArmor) + getNumber(_x >> 'armorStructural'); + {_curArmor = _curArmor + ([getNumber(_x >> 'passThrough'),getNumber(_x >> 'armor')] call EPOCH_factorArmor)} forEach ("isClass _x" configclasses (_x >> "HitPoints")); if (_curArmor > _maxArmorUniform) then { _maxArmorUniform = _curArmor; }; @@ -14,6 +34,7 @@ _maxArmorUniform = 0; _maxArmorVest = 0; { _curArmor = ([getNumber(_x >> 'itemInfo' >> 'passThrough'),getNumber(_x >> 'itemInfo' >> 'armor')] call EPOCH_factorArmor); + {_curArmor = _curArmor + ([getNumber(_x >> 'passThrough'),getNumber(_x >> 'armor')] call EPOCH_factorArmor)} forEach ("isClass _x" configclasses (_x >> "ItemInfo" >> "HitpointsProtectionInfo")); if (_curArmor > _maxArmorVest) then { _maxArmorVest = _curArmor; }; @@ -22,6 +43,7 @@ _maxArmorVest = 0; _maxArmorHeadgear = 0; { _curArmor = ([getNumber(_x >> 'itemInfo' >> 'passThrough'),getNumber(_x >> 'itemInfo' >> 'armor')] call EPOCH_factorArmor); + {_curArmor = _curArmor + ([getNumber(_x >> 'passThrough'),getNumber(_x >> 'armor')] call EPOCH_factorArmor)} forEach ("isClass _x" configclasses (_x >> "ItemInfo" >> "HitpointsProtectionInfo")); if (_curArmor > _maxArmorHeadgear) then { _maxArmorHeadgear = _curArmor; }; diff --git a/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf b/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf index 693a9250..5f86e837 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_refeshUI.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Gear armor stats UI refresh code + + 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_code/compile/inventory/EPOCH_refeshUI.sqf + + Example: + 0 call EPOCH_refeshUI; + + Parameter(s): + None + + Returns: + NOTHING +*/ private ["_newArmor","_totalArmor","_totalArmorMax","_selectedClass","_selectedItem","_bar","_uniformArmor","_finalArmor","_vestArmor","_headgearArmor","_totalArmorUI","_bar_compare"]; disableSerialization; if (!isNull findDisplay 602) then { @@ -62,5 +85,4 @@ if (!isNull findDisplay 602) then { _bar_compare = _totalArmorUI select 1; _finalArmor = linearConversion [0,_totalArmorMax,_newArmor,0.01,1,true]; _bar_compare progressSetPosition _finalArmor; - }; diff --git a/Sources/epoch_code/compile/inventory/EPOCH_uniformArmorCalc.sqf b/Sources/epoch_code/compile/inventory/EPOCH_uniformArmorCalc.sqf index c73ba0a1..37fb02fd 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_uniformArmorCalc.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_uniformArmorCalc.sqf @@ -1,3 +1,26 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + Uniform Gear armor calculation + + 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_code/compile/inventory/EPOCH_uniformArmorCalc.sqf + + Example: + _newArmor = _selectedClass call EPOCH_uniformArmorCalc; + + Parameter(s): + _this: STRING - CfgWeapons class name of uniform + + Returns: + NUMBER +*/ private ["_uniformClass","_uniformArmor","_uniformConfig","_uniformArmorStructural"]; _uniformClass = _this; From 9f001b8899380f4f74dadf23461640b7cf11c978 Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 16 Dec 2015 11:38:25 -0600 Subject: [PATCH 14/16] 0.3.6.021 --- Changelogs/0.3.6.0.txt | 2 +- .../compile/inventory/EPOCH_gearArmorCalc.sqf | 2 +- .../inventory/EPOCH_itemInteractClick.sqf | 24 +++++++++++++++ .../inventory/EPOCH_itemInteractDblClick.sqf | 26 ++++++++++++++++- .../inventory/EPOCH_selectInventoryItem.sqf | 29 +++++++++++++++++-- Sources/epoch_config/Configs/CfgVehicles.hpp | 2 +- Sources/epoch_config/Configs/CfgWeapons.hpp | 4 +++ 7 files changed, 82 insertions(+), 7 deletions(-) diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index 6d0bf63c..929f6b20 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -1,5 +1,5 @@ **Client** -[Added] Added ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man +[Added] Ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man [Changed] Increased max player load 2x to compensate for the new stamina system in 1.54. [Changed] Increased backpack storage limits to allow carrying long weapons. [Fixed] Updated Epoch armor stats UI system to support new changes since 1.54. diff --git a/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf b/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf index 3320b9be..7d79e096 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_gearArmorCalc.sqf @@ -16,7 +16,7 @@ _vestArmor = (vest player) call EPOCH_gearArmorCalc; Parameter(s): - _this select 0: STRING - Vest or Headhear classname + _this: STRING - Vest or Headhear classname Returns: NUMBER diff --git a/Sources/epoch_code/compile/inventory/EPOCH_itemInteractClick.sqf b/Sources/epoch_code/compile/inventory/EPOCH_itemInteractClick.sqf index 6c8452d4..5e877850 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_itemInteractClick.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_itemInteractClick.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Raimonds Virtoss + + Description: + Epoch Item Interact + + 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_code/compile/inventory/EPOCH_itemInteractClick.sqf + + Example: + onLBSelChanged = "_this call EPOCH_itemInteractClick"; + + Parameter(s): + _this select 0: CONTROL - control + _this select 1: NUMBER - listbox index + + Returns: + BOOL - allways returns true +*/ private ["_data","_confData","_usedIn","_type","_interactOption","_buttonTXT","_control","_index","_text","_pic","_craftingArray","_craftingArrayNames","_config","_craftingConfig","_display","_useBtn"]; EPOCH_InteractedItem = []; diff --git a/Sources/epoch_code/compile/inventory/EPOCH_itemInteractDblClick.sqf b/Sources/epoch_code/compile/inventory/EPOCH_itemInteractDblClick.sqf index 77e03663..6eab7a8e 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_itemInteractDblClick.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_itemInteractDblClick.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: Raimonds Virtoss + + Description: + Epoch Item Interact when double clicked + + 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_code/compile/inventory/EPOCH_itemInteractDblClick.sqf + + Example: + onLBDblClick = "_this call EPOCH_itemInteractDblClick"; + + Parameter(s): + _this select 0: CONTROL - control + _this select 1: NUMBER - listbox index + + Returns: + NOTHING +*/ EPOCH_InteractedItem = []; _control = _this select 0; _index = _this select 1; @@ -22,4 +46,4 @@ if (isClass (_craftingConfig)) then { (EPOCH_InteractedItem select 0) call EPOCH_crafting_load; } else { //TODO: eat, drink, build ... etc -}; \ No newline at end of file +}; diff --git a/Sources/epoch_code/compile/inventory/EPOCH_selectInventoryItem.sqf b/Sources/epoch_code/compile/inventory/EPOCH_selectInventoryItem.sqf index 44324a1d..3a50addb 100644 --- a/Sources/epoch_code/compile/inventory/EPOCH_selectInventoryItem.sqf +++ b/Sources/epoch_code/compile/inventory/EPOCH_selectInventoryItem.sqf @@ -1,3 +1,27 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: + + Description: + workaround for weapons not returning class in the inventory listboxes + + 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_code/compile/inventory/EPOCH_selectInventoryItem.sqf + + Example: + [_control,_index] call EPOCH_selectInventoryItem; + + Parameter(s): + _this select 0: CONTROL - control + _this select 1: NUMBER - listbox index + + Returns: + NOTHING +*/ private ["_index","_data","_control","_text","_pic","_craftingArray","_craftingArrayNames"]; EPOCH_InteractedItem = []; @@ -16,9 +40,8 @@ _pic = _control lbPicture _index; _craftingArray = []; _craftingArrayNames = []; -comment 'Not ideal This is needed as weapons do not return a class in the UI'; -comment 'This test is to over come an issue that causes the wrong class selected'; -comment 'when more than two classes share the same displayName'; +// This test is to over come an issue that causes the wrong class selected +// when more than two classes share the same displayName if (_data == "") then { { _name = configName(_x); diff --git a/Sources/epoch_config/Configs/CfgVehicles.hpp b/Sources/epoch_config/Configs/CfgVehicles.hpp index 0554b359..e9a989b2 100644 --- a/Sources/epoch_config/Configs/CfgVehicles.hpp +++ b/Sources/epoch_config/Configs/CfgVehicles.hpp @@ -3799,7 +3799,7 @@ class CfgVehicles onlyforplayer = 1; position = "NWall_trigger"; radius = 2.5; - condition = "!(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""NWall"" < 0.5)"; + condition = "(EPOCH_buildMode > 0) && !(call EPOCH_lockCheck) && (this animationPhase ""NWall"" < 0.5)"; statement = "[this,""NWall"",1] call EPOCH_changeWallState"; }; class remove_nwall : add_nwall diff --git a/Sources/epoch_config/Configs/CfgWeapons.hpp b/Sources/epoch_config/Configs/CfgWeapons.hpp index fe384dc6..94079740 100644 --- a/Sources/epoch_config/Configs/CfgWeapons.hpp +++ b/Sources/epoch_config/Configs/CfgWeapons.hpp @@ -593,6 +593,7 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrier1_rgr0"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; + descriptionShort = "$STR_A3_SP_AL_III"; class ItemInfo : ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; @@ -634,6 +635,7 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrier2_rgr0"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_2_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; + descriptionShort = "$STR_A3_SP_AL_IV"; class ItemInfo : ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest01"; @@ -675,6 +677,7 @@ class CfgWeapons displayName = "$STR_A3_V_PlateCarrier2_rgr0"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_2_CA.paa"; model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; + descriptionShort = "$STR_A3_SP_AL_IV"; class ItemInfo : ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest01.p3d"; @@ -718,6 +721,7 @@ class CfgWeapons model = "\x\addons\a3_epoch_assets\models\parcel.p3d"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"\A3\Characters_F_Mark\BLUFOR\Data\carrier_gl_rig_grn_co.paa"}; + descriptionShort = "$STR_A3_SP_ER"; class ItemInfo : ItemInfo { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_carrier_gl_rig.p3d"; From 01cdb3272d2fb43bdb8d5e44974cfdb2386ce82e Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 16 Dec 2015 15:19:14 -0600 Subject: [PATCH 15/16] 0.3.6.022 --- Server_Install_Pack/sc/battleye/scripts.txt | 2 +- .../compile/traders/EPOCH_startNpcTrade.sqf | 51 +++++++++---------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/Server_Install_Pack/sc/battleye/scripts.txt b/Server_Install_Pack/sc/battleye/scripts.txt index 42041867..b15ffe78 100644 --- a/Server_Install_Pack/sc/battleye/scripts.txt +++ b/Server_Install_Pack/sc/battleye/scripts.txt @@ -25,7 +25,7 @@ 7 addMagazine !"addMagazineCargo" !="player addMagazine _craftItem;" !="player addMagazine \"jerrycanE_epoch\";" !="player addMagazine \"emptyjar_epoch\";" !="player addMagazine \"jerrycan_epoch\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine [(_x select 0),(_x select 1)]" !="player addMagazine _x;" !="if !(player canAdd (_x select 0)) exitWith {};\nplayer addMagazine[_x select 0, _x select 1];" 7 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] ;" 7 addItem !="player addItem _item;" !="player addItem _craftItem;" !="player addItem _x;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" -7 addBackPack !="if (backpack player == "") then {\nplayer addbackpack _x;\n}\nelse {\n_x createvehicle getpos player;\n};" +7 addBackPack !="if (backpack player == "") then {\nplayer addbackpack _x;\n}\nelse {" 7 addMissionEventHandler !="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;" 7 removeMissionEventHandler !="removeMissionEventHandler [\"Draw3D\", _id];" 7 removeAllWeapons !="removeAllWeapons axeGeneral;" diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf index e9cf10f4..a347dfb4 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf @@ -174,39 +174,38 @@ if (!isNull _this) then { else { _x call EPOCH_fnc_addItemOverflow; }; - } - else { - _backpack = ["backpack", _x] call BIS_fnc_inString; - _Assaultpack = ["Assaultpack", _x] call BIS_fnc_inString; - _Assault_Diver = ["Assault_Diver", _x] call BIS_fnc_inString; - _TacticalPack = ["TacticalPack", _x] call BIS_fnc_inString; - _FieldPack = ["FieldPack", _x] call BIS_fnc_inString; - _Carryall = ["Carryall", _x] call BIS_fnc_inString; - _OutdoorPack = ["OutdoorPack", _x] call BIS_fnc_inString; - _Bergen = ["Bergen", _x] call BIS_fnc_inString; - _bag = ["bag", _x] call BIS_fnc_inString; - _parachute = ["Parachute", _x] call BIS_fnc_inString; - if (_backpack || _Assaultpack || _Assault_Diver || _TacticalPack || _FieldPack || _Carryall || _OutdoorPack || _Bergen || _bag || _parachute) then { + } else { + // + if (_x isKindOf "Bag_Base") then { + // add to players back if (backpack player == "") then { player addbackpack _x; - } - else { - _x createvehicle getpos player; + } else { + // add to the ground + _wH = objNull; + _nearByHolder = nearestObjects [position player,["groundWeaponHolder"],3]; + if (_nearByHolder isEqualTo []) then { + _wHPos = player modelToWorld [0,1,0]; + if (surfaceIsWater _wHPos) then { + _wHPos = ASLToATL _wHPos; + }; + _wH = createVehicle ["groundWeaponHolder",_wHPos, [], 0, "CAN_COLLIDE"]; + } else { + _wH = _nearByHolder select 0; + }; + _wh addBackpackCargoGlobal [_x,1]; + }; + } else { + if ([_x, "CfgMagazines"] call EPOCH_fnc_isAny) then { + _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgMagazines" >> (_x) >> "displayName")]; + _x call EPOCH_fnc_addItemOverflow; + } else { + _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgVehicles" >> (_x) >> "displayName")]; }; - } - else { - if ([_x, "CfgMagazines"] call EPOCH_fnc_isAny) then { - _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgMagazines" >> (_x) >> "displayName")]; - _x call EPOCH_fnc_addItemOverflow; - } - else { - _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgVehicles" >> (_x) >> "displayName")]; }; }; - }; } forEach(_this select 1); - _dt = [format["%1", _errorMsg], 0, 0.4, 5, 2, 0, 2] spawn bis_fnc_dynamictext; } else { From 73346388be358d18fa6a9d48fec59775b77c29f4 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 17 Dec 2015 11:24:11 -0600 Subject: [PATCH 16/16] 0.3.6.024 --- Changelogs/0.3.6.0.txt | 2 + .../@epochhive/addons/a3_epoch_server.pbo | Bin 363320 -> 364245 bytes Server_Install_Pack/sc/battleye/scripts.txt | 2 +- .../compile/building/EPOCH_simulSwap.sqf | 4 +- .../compile/building/EPOCH_staticMove.sqf | 4 +- .../functions/EPOCH_fnc_cursorTarget.sqf | 10 ++- .../EPOCH_KeyDown.sqf | 17 ++--- .../compile/traders/EPOCH_startNpcTrade.sqf | 64 ++++++------------ .../EPOCH_server_makeNPCTrade.sqf | 31 ++++++++- 9 files changed, 69 insertions(+), 65 deletions(-) diff --git a/Changelogs/0.3.6.0.txt b/Changelogs/0.3.6.0.txt index 929f6b20..54eb8d42 100644 --- a/Changelogs/0.3.6.0.txt +++ b/Changelogs/0.3.6.0.txt @@ -2,6 +2,8 @@ [Added] Ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man [Changed] Increased max player load 2x to compensate for the new stamina system in 1.54. [Changed] Increased backpack storage limits to allow carrying long weapons. +[Fixed] cursorTarget function to only use new Epoch method while underwater. Should help with targeting issues on land. +[Fixed] Canceling build mode did not remove the ghost object as it should have. [Fixed] Updated Epoch armor stats UI system to support new changes since 1.54. [Fixed] Changes to default Arma weapon configs to allow long (Lynx,etc) weapons to be stored in backpacks. [Fixed] Unable to sell after attempting to sell a temporary vehicle. Thanks to @He-Man diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 7732cef7b25cfd16c29c2a21e3d23c2ecee58529..499cadad52a61865601b115de033808a4ebde797 100644 GIT binary patch delta 800 zcma))&1(}u7{-}=VTwtWY!j6p-u9$rVG~n~BCTl-+CwoFqk^R@lk7CzcDfUHx0D>j zg9klYR~-;Mc-Dv@xCT-Gf{IWAxx^y$pcg-`g5cz%W`iIO49wT_o9B6FUOk969>t%3 ziiX~QHZPw&<{XGhPImap}0y+3yQe38W{@rnljNJ>q~I7y;~6-)C#Sd zFvWkIL^1xofdZGhD}t8mojFHY5mQigo2;GgW5Sv)EKpX4@jo=7B7eCU7b1S9iH_Wu zP&{%)`5(X%A$A+E7bM(IYA+Kgn{3_CJlpEVEKC6_uAE<|)T>hsB4aaGon=%bA~6^Q zo5Zs7#T8PrEm){9OSg4qbW0*TC_gf`D5n>_kap<=sL$coT$JGR4^e=BYoK5nKp2>3 zmf&~mxW+U>3+xIrsRj#4IVC3thyc#!S1H&L@yAKuNM=tzb8)V~W(spXqSpq%^}(sQ z)WN$k$Dfx1Z3FzmYc$HIn`m^b(vzn$lgDq>Yd+EaZoL**ZAokg-rmK&kN55$ OdYZg5eK@xD=E-lKwC+Iw delta 131 zcmcaQS8T^Lu?-LT*usv;g{@SbEWjr+*@0hhGY@|UEA#&Ng68QW+oy{#^6qC=;N_a0 ze}mC%`<=^-7dR1M`Build Canceled", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; }; - if !(EPOCH_arr_interactedObjs isEqualTo[]) then { - EPOCH_arr_interactedObjs remoteExec["EPOCH_server_save_vehicles", 2]; EPOCH_arr_interactedObjs = []; }; @@ -190,8 +187,8 @@ if (vehicle player == player) then { case EPOCH_keysBuildMovBak: { EPOCH_Y_OFFSET = (EPOCH_Y_OFFSET - 0.1) max 2; _handled = true }; case EPOCH_keysBuildMovL: { EPOCH_X_OFFSET = (EPOCH_X_OFFSET + 0.1) min 5; _handled = true }; case EPOCH_keysBuildMovR: { EPOCH_X_OFFSET = (EPOCH_X_OFFSET - 0.1) max - 5; _handled = true }; - case EPOCH_keysBuildRotL: { EPOCH_buildDirection = (EPOCH_buildDirection + 1) min 360; EPOCH_space = true; _handled = true }; - case EPOCH_keysBuildRotR: { EPOCH_buildDirection = (EPOCH_buildDirection - 1) max 0; EPOCH_space = true; _handled = true }; + case EPOCH_keysBuildRotL: { EPOCH_buildDirection = (EPOCH_buildDirection + 1) min 360; EPOCH_doRotate = true; _handled = true }; + case EPOCH_keysBuildRotR: { EPOCH_buildDirection = (EPOCH_buildDirection - 1) max 0; EPOCH_doRotate = true; _handled = true }; //case EPOCH_keysBuildIt: { cursorTarget call EPOCH_fnc_SelectTarget; _handled = true }; }; }; @@ -273,7 +270,7 @@ if (vehicle player == player) then { if (_dikCode in(actionKeys "Gear")) then { if !(isNull EPOCH_Target) then { - if !(_vehicle isKindOf "ThingX") then { + if !(EPOCH_Target isKindOf "ThingX") then { deleteVehicle EPOCH_Target; } else { EPOCH_Target = objNull; diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf index a347dfb4..171ff36d 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf @@ -47,37 +47,33 @@ if (!isNull _this) then { if (_item in items player) then { player removeItem _item; _arrayIn pushBack _item; - } - else { + } else { if (_item == primaryweapon player) then { player removeweapon _item; _arrayIn pushBack _item; + }; }; - }; - } - else { + } else { if ([_item, "CfgVehicles"] call EPOCH_fnc_isAny) then { if (_item == backpack player) then { removeBackpack player; _arrayIn pushBack _item; - } - else { - _vehicles = _this nearEntities[[_item], 30]; - if (!(_vehicles isEqualTo[])) then { - _vehicle = _vehicles select 0; - if (!isNull _vehicle) then { - if (local _vehicle) then { - _vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"]; - if (_vehSlot != "ABORT") then { - _arrayIn pushBack _item; - // will be removed server side + } else { + _vehicles = _this nearEntities[[_item], 30]; + if (!(_vehicles isEqualTo[])) then { + _vehicle = _vehicles select 0; + if (!isNull _vehicle) then { + if (local _vehicle) then { + _vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"]; + if (_vehSlot != "ABORT") then { + _arrayIn pushBack _item; + // will be removed server side + }; }; }; }; }; - }; - } - else { + } else { if (_item in magazines player) then { player removeMagazine _item; _arrayIn pushBack _item; @@ -175,33 +171,11 @@ if (!isNull _this) then { _x call EPOCH_fnc_addItemOverflow; }; } else { - // - if (_x isKindOf "Bag_Base") then { - // add to players back - if (backpack player == "") then { - player addbackpack _x; - } else { - // add to the ground - _wH = objNull; - _nearByHolder = nearestObjects [position player,["groundWeaponHolder"],3]; - if (_nearByHolder isEqualTo []) then { - _wHPos = player modelToWorld [0,1,0]; - if (surfaceIsWater _wHPos) then { - _wHPos = ASLToATL _wHPos; - }; - _wH = createVehicle ["groundWeaponHolder",_wHPos, [], 0, "CAN_COLLIDE"]; - } else { - _wH = _nearByHolder select 0; - }; - _wh addBackpackCargoGlobal [_x,1]; - }; + if ([_x, "CfgMagazines"] call EPOCH_fnc_isAny) then { + _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgMagazines" >> (_x) >> "displayName")]; + _x call EPOCH_fnc_addItemOverflow; } else { - if ([_x, "CfgMagazines"] call EPOCH_fnc_isAny) then { - _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgMagazines" >> (_x) >> "displayName")]; - _x call EPOCH_fnc_addItemOverflow; - } else { - _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgVehicles" >> (_x) >> "displayName")]; - }; + _errorMsg = _errorMsg + format["%1, ", getText(configfile >> "CfgVehicles" >> (_x) >> "displayName")]; }; }; } forEach(_this select 1); diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf index 703a3ba8..1c41924a 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf @@ -149,7 +149,7 @@ if (_slot != -1) then { _helipad pushBack _smoke; }; - // water check + // water check if (_item isKindOf "Ship") then { { if (surfaceIsWater (getposATL _x)) then { @@ -226,7 +226,7 @@ if (_slot != -1) then { _vehObj = [_item,_position,random 360,true,_vehslot,_lockOwner,"NONE",false] call EPOCH_fnc_spawn_vehicle; _final_location = getPosATL _vehObj; - + _group = group _plyr; _wp = _group addWaypoint [_final_location, 0]; deleteWaypoint [_group, 0]; @@ -242,6 +242,33 @@ if (_slot != -1) then { }; }; } else { + + if (_item isKindOf "Bag_Base") then { + // add to players back + /* + if (backpack _plyr == "") then { + _plyr addBackpackGlobal _item; + diag_log "backpack added to players back"; + } else { + */ + //diag_log "backpack added to players feet"; + // add to the ground + _wH = objNull; + _nearByHolder = nearestObjects [position _plyr,["groundWeaponHolder"],3]; + if (_nearByHolder isEqualTo []) then { + _wHPos = _plyr modelToWorld [0,1,0]; + if (surfaceIsWater _wHPos) then { + _wHPos = ASLToATL _wHPos; + }; + _wH = createVehicle ["groundWeaponHolder",_wHPos, [], 0, "CAN_COLLIDE"]; + } else { + _wH = _nearByHolder select 0; + }; + //diag_log "backpack added to container"; + _wh addBackpackCargoGlobal [_item,1]; + //}; + }; + _returnOut pushBack _item; _itemQtys set[_qtyIndex, (_currQty - _itemQty)];