2015-12-07 16:24:52 +00:00
/*
2017-01-09 18:18:49 +00:00
Author : Aaron Clark - EpochMod . com
2016-04-25 12:38:16 +00:00
Contributors : Andrew Gregory
2015-12-07 16:24:52 +00:00
2017-01-09 18:18:49 +00:00
Description :
Main Client side configs for the Epoch gamemode
2015-12-07 16:24:52 +00:00
Licence :
Arma Public License Share Alike ( APL - SA ) - https : //www.bistudio.com/community/licenses/arma-public-license-share-alike
Github :
2016-06-13 16:54:19 +00:00
https : //github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_config/Configs/CfgEpochClient.hpp
2015-12-07 16:24:52 +00:00
*/
2016-10-14 20:31:01 +00:00
/*[[[cog from arma_config_tools import *; json_to_arma()]]]*/
2015-09-14 20:45:27 +00:00
class CfgEpochClient
{
2020-03-05 18:25:38 +00:00
epochVersion = " 1.3.3 " ;
2017-09-07 16:51:01 +00:00
ArmAVersion = 176 ;
2020-03-09 19:50:53 +00:00
debug = " false " ; // true = enable extra rpt debug lines, false to disable
2019-10-12 14:40:59 +00:00
ForceGender = " " ; // Force Players to spawn as "Male" or "Female"
2019-10-24 18:03:12 +00:00
RemoveLaserfromUAV = " true " ; // remove LaserDesignator from assembled UAV's
2020-03-07 22:54:34 +00:00
RemoveTIfromUAV = " true " ; // remove Thermal from assembled UAV's
2017-08-26 14:57:59 +00:00
2019-04-04 19:14:56 +00:00
UseOldRevive = " false " ; // Revive / Heal Player has been changed to use "HandleDamage" Eventhandler. If scripts are breaking it for you, set it to true (not recommended!)
2019-09-13 12:53:47 +00:00
UnconsciousChance = 30 ; // Change in percent to get unconscious by a hit with an Axe / Sledge / Sword
UnconsciousTime [ ] = { 60 , 180 } ; // Min / Max time for unconscious after you got a hit from a non lethal weapon / Axe / Sledge / Sword
2019-04-04 19:14:56 +00:00
2017-08-30 22:15:14 +00:00
antagonistRngChance = 100 ; // increase number to reduce chances and reduce to increase. Default 100
2017-11-15 20:53:14 +00:00
NuisanceMulti = 0.5 ; // Multi for Nuisance increase on shooting - higher Nuisance effect at least antagonist spawn change. (0-1, default 0.5)
2017-09-18 02:17:43 +00:00
outOfBoundsRadiation = 10 ; // how much rads per tick (10sec), when outside play area.
2017-10-01 23:14:18 +00:00
radioactiveLocations [ ] = { " NameCityCapital " , " NameCity " , " Airport " } ; // used for random radioactive locations and to suppress animal spawns within cities.
2017-10-23 06:31:39 +00:00
radiatedObjMaxFalloutDist = 125 ; // max distance radiated object can affect player (number in meters)
2017-10-23 00:18:19 +00:00
geigerCounterEnergyUsage = 10 ; // default loss of 10 energy every 10sec of use
2017-10-28 19:02:55 +00:00
radiationEffectsThreshold = 10 ; // default level for screen effects to indicate a player's rad dosage (0-100)
2017-11-12 15:10:40 +00:00
baseRadiationLoss = - 1 ; //default radiation loss every 1 minute, calculated from total immunity. No immunity no reduction.
baseRadiationLossImmunityPenalty = - 1 ; //immunity is reduced as a penalty for radiation loss effect
2017-06-03 15:55:47 +00:00
baseHungerLoss = 2 ; // increase number to speed up rate of Hunger loss
baseThirstLoss = 2 ; // increase number to speed up rate of Thirst loss
2019-09-30 17:24:37 +00:00
accelerateHTALoss = " false " ; // use server's time acceleration to increase the rate of Hunger, Thirst and Alcohol loss
2017-06-03 15:55:47 +00:00
2020-03-09 19:51:39 +00:00
SupressBaseSpawnOnHomekillTime = 1200 ; // Suppress Base Spawn for xxx seconds, when Player got Killed by an opponent in his own Territory
2017-01-09 18:18:49 +00:00
buildingNearbyMilitary = 0 ; //1 to allow building nearby
buildingNearbyMilitaryRange = 300 ; //Define radius of blocked area
2016-10-24 04:52:25 +00:00
buildingNearbyMilitaryClasses [ ] = { " Cargo_Tower_base_F " , " Cargo_HQ_base_F " , " Cargo_Patrol_base_F " , " Cargo_House_base_F " } ;
restrictedLocations [ ] = { " NameCityCapital " } ;
restrictedLocationsRange = 300 ;
2016-11-14 01:04:08 +00:00
buildingRequireJammer = 1 ; //1 = require jammer to build
2019-02-28 21:25:27 +00:00
buildingJammerRange = 125 ; // Unused by Epoch, but leave it to prevent issues with custom scripts (should be set to the max possible JammerRange from cfgJammers)
2017-01-09 18:18:49 +00:00
jammerPerGroup = 1 ; // allowed number of jammers per group.
2017-03-03 00:37:20 +00:00
jammerGLOnly = 1 ; // allow only group leader to place Jammer
2017-01-09 18:18:49 +00:00
minJammerDistance = 650 ; // min distance to next Jammer
2017-09-28 19:27:10 +00:00
maxBuildingHeight = 100 ; // Max Height, building is allowed.
2017-01-09 18:18:49 +00:00
splitCountLimits = 0 ; //1 = distinguish buildingCountLimit from storageCountLimit (ex.: buildingCountLimit=100, storageCountLimit=100 >> you can build 100 baseparts AND additional 100 storage objects like safes, lockboxes...)
2018-04-07 21:52:22 +00:00
MaxBuildingTilt = 180 ; // Max degrees players can tilt building elements
2019-08-21 21:22:02 +00:00
EnablePhysicsOnBuild = " true " ; // Building parts need Snap (hold) points to not fall on the ground while building
2019-02-18 21:29:02 +00:00
class CfgJammers {
class PlotPole_EPOCH // Jammer Classname
{
buildingJammerRange = 75 ; // jammer range in meters
buildingCountLimit = 200 ; // Max Building Elements per Base
storageCountLimit = 100 ; // Max Storage Elements per Base
buildingCountPerMember = 5 ; // Additional Building elements per Member
storageCountPerMember = 5 ; // Additional Storage elements per Member
maxdoors = 10 ; // Max Doors per Base
maxgates = 5 ; // Max Gates per Base
maxCams = 2 ; // Max Cams per Base
} ;
2019-03-01 18:10:10 +00:00
class PlotPole_M_EPOCH : PlotPole_EPOCH // inherits from "PlotPole_EPOCH" (not defined values will be taken from PlotPole_EPOCH)
2019-02-18 21:29:02 +00:00
{
buildingJammerRange = 100 ; // jammer range in meters
2019-03-01 18:10:10 +00:00
buildingCountLimit = 215 ; // Max Building Elements per Base
storageCountLimit = 115 ; // Max Storage Elements per Base
2019-02-18 21:29:02 +00:00
} ;
2019-03-01 18:10:10 +00:00
class PlotPole_L_EPOCH : PlotPole_M_EPOCH
2019-02-18 21:29:02 +00:00
{
2019-02-20 21:31:09 +00:00
buildingJammerRange = 125 ; // jammer range in meters
2019-03-01 18:10:10 +00:00
buildingCountLimit = 230 ; // Max Building Elements per Base
storageCountLimit = 130 ; // Max Storage Elements per Base
} ;
class PlotPole_XL_EPOCH : PlotPole_L_EPOCH
{
buildingJammerRange = 150 ; // jammer range in meters
buildingCountLimit = 245 ; // Max Building Elements per Base
storageCountLimit = 145 ; // Max Storage Elements per Base
} ;
class PlotPole_XXL_EPOCH : PlotPole_XL_EPOCH
{
buildingJammerRange = 175 ; // jammer range in meters
buildingCountLimit = 260 ; // Max Building Elements per Base
storageCountLimit = 160 ; // Max Storage Elements per Base
2019-02-18 21:29:02 +00:00
} ;
} ;
StorageClasses [ ] = { " Buildable_Storage " , " Buildable_Storage_SIM " , " Buildable_Storage_Ghost " , " Constructions_lockedstatic_F " , " Secure_Storage_Temp " } ;
BuildingClasses [ ] = { " Constructions_static_F " , " Constructions_foundation_F " , " Const_Ghost_EPOCH " } ;
DoorClasses [ ] = { " WoodLargeWallDoorL_EPOCH " , " WoodWall4_EPOCH " , " CinderWallDoorwHatch_EPOCH " , " WoodStairs3_EPOCH " , " JailWallDoor_EPOCH " } ;
GateClasses [ ] = { " CinderWallGarage_EPOCH " , " WoodWallGarage_EPOCH " , " MetalWallGarage_EPOCH " } ;
2018-04-07 21:46:37 +00:00
2018-03-09 21:37:51 +00:00
AtmBlockedAtPlot = " true " ; // Block ATM's in Plotpole-Range
2017-01-09 18:18:49 +00:00
disableRemoteSensors = " true " ; // disableRemoteSensors true/false
2018-03-16 21:11:52 +00:00
ActionFireOnLighter = " true " ; // Lighter is needed to inflame fires
2018-03-16 21:19:52 +00:00
ActionBurnBarrelOffExtinguisher = " true " ; // FireExtinguisher is needed to put off Burn Barrels
2018-03-16 21:11:52 +00:00
ActionHookRope = " true " ; // Rope is needed to hook vehicles (get back on release)
2019-01-09 20:57:35 +00:00
2019-01-20 12:20:01 +00:00
DefuseBombChance = 0.6 ; // Chance for successfully defuse a bomb -> If fail, the bomb will explode
2019-01-11 15:51:58 +00:00
DisableDoorInteractForACE = " true " ; // If true, Door-Interactions from ACE-Mod will be blocked (no effect, if ACE is not running)
2017-03-30 16:19:46 +00:00
epochMessageBackgroundCol [ ] = { 0 , 0 , 0 , 0.2 } ; //Epoch_message background color (format: {R,G,B,A})
epochMessageTextCol [ ] = { 1 , 1 , 1 , 0.95 } ; //Epoch_message text color (format: {R,G,B,A})
//to use different colored messages in scripts, just call it this way: ["the message", 6, [[0,0,0,0.2],[1,1,1,0.95]]] call Epoch_message;
2016-10-24 04:52:25 +00:00
EPOCH_news [ ] = { " Word is that Sappers have a new boss. " , " Dogs will often lure them monsters away. " , " My dog was blown up. I miss him.. " } ;
2017-03-06 17:19:20 +00:00
deathMorphClass [ ] = { " Epoch_Sapper_F " , " Epoch_SapperG_F " , " Epoch_SapperB_F " , " I_UAV_01_F " , " Epoch_Cloak_F " } ; //Random selection of these classes when player morphs after death. Currently available: Epoch_Cloak_F, Epoch_SapperB_F, Epoch_Sapper_F, I_UAV_01_F
2019-01-20 12:20:01 +00:00
niteLight [ ] = { 1 , 1.88 , 22 } ; // 0 = disabled or 1 = enabled, Set ambient lighting at night: {Brightness of light,Height of light}. Default (Low Ambient): {1.88,22} | Twilight: {7.2,88} | Distant: {12.8,142}
2016-12-25 16:52:05 +00:00
ryanZombiesEnabled = " true " ;
2017-08-30 22:15:14 +00:00
antagonistChances [ ] = {
// {"type", chance}
" Epoch_Cloak_F " , 0.06 ,
" GreatWhite_F " , 0 ,
" Epoch_Sapper_F " , 0.12 ,
" Epoch_SapperG_F " , 0.06 ,
" Epoch_SapperB_F " , 0.03 ,
" I_UAV_01_F " , 0.12 ,
" PHANTOM " , 0.03 ,
" B_Heli_Transport_01_F " , 0 ,
" EPOCH_RyanZombie_1 " , 0.12 ,
" I_Soldier_EPOCH " , 0
} ;
antagonistSpawnIndex [ ] = {
// {"type", limit}
{ " Epoch_Cloak_F " , 1 } ,
{ " GreatWhite_F " , 2 } ,
{ " Epoch_Sapper_F " , 2 } ,
{ " Epoch_SapperG_F " , 1 } ,
{ " Epoch_SapperB_F " , 1 } ,
{ " I_UAV_01_F " , 2 } ,
{ " PHANTOM " , 1 } ,
{ " B_Heli_Transport_01_F " , 1 } ,
{ " EPOCH_RyanZombie_1 " , 12 } ,
{ " I_Soldier_EPOCH " , 1 }
} ;
customVarsDefaults [ ] = {
// EPOCH_player + varName, default value, {max,min,high-warn,high-critical,low-warn,low-critical}
{ " Temp " , 98.6 , { 106.7 , 95 , 102 , 105 , 96 , 95 } } ,
{ " Hunger " , 1500 , { 5000 , 0 , 5001 , 5001 , 1250 , 0 } } ,
{ " Thirst " , 750 , { 2500 , 0 , 2501 , 2501 , 625 , 0 } } ,
2017-09-12 18:50:25 +00:00
{ " AliveTime " , 0 , { - 2 , 0 } } , // local
2017-08-30 22:15:14 +00:00
{ " Energy " , 0 , { 2500 , 0 } } ,
{ " Wet " , 0 , { 100 , 0 , 35 , 55 , - 1 , - 1 } } ,
{ " Soiled " , 0 , { 100 , 0 , 35 , 55 , - 1 , - 1 } } ,
{ " Immunity " , 0 , { 100 , 0 } } ,
{ " Toxicity " , 0 , { 100 , 0 , 35 , 55 , - 1 , - 1 } } ,
{ " Stamina " , 100 , { " EPOCH_playerStaminaMax " , 0 } } ,
{ " Crypto " , 0 , { 250000 , 0 } } ,
2017-09-25 05:52:20 +00:00
{ " HitPoints " , { 0 , 0 , 0 , 0 } , { 1 , 0 , 0.5 , 1 , - 1 , - 1 } } , // limits here only used for HUD.
2017-08-30 22:15:14 +00:00
{ " BloodP " , 100 , { 190 , 0 , 120 , 140 , 70 , 50 } } ,
{ " SpawnArray " , { } , { } } ,
2017-09-24 22:47:08 +00:00
{ " NotUsed " , 0 , { 50000 , - 50000 } } , // TODO remove or replace
2017-08-30 22:15:14 +00:00
{ " Alcohol " , 0 , { 100 , 0 , 35 , 55 , - 1 , - 1 } } ,
2017-09-12 18:50:25 +00:00
{ " Radiation " , 0 , { 100 , 0 , 35 , 55 , - 1 , - 1 } } , // local
2017-08-30 22:15:14 +00:00
{ " Nuisance " , 0 , { 100 , 0 } } ,
{ " MissionArray " , { } , { } }
} ;
2017-10-07 12:14:59 +00:00
// Vars and the value that gets set if godmode is enabled
gmVars [ ] = {
{ " Temp " , 98.6 } ,
{ " Hunger " , 2500 } ,
{ " Thirst " , 1500 } ,
{ " Energy " , 2500 } ,
{ " Toxicity " , 0 } ,
{ " Stamina " , 100 } ,
{ " BloodP " , 100 } ,
{ " Alcohol " , 0 } ,
{ " Radiation " , 0 }
} ;
2017-08-30 22:15:14 +00:00
hudConfigs [ ] = {
{ { " BloodP " , " " , " " , { " getPlayerDamage " , " >= " , 0.7 } } , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \b leeding_ca.paa " , { " forceUpdate " } } ,
{ { " Oxygen " , " getPlayerOxygenRemaining " , " " , { } , { 1 , 0 , 2 , 2 , 1 , 0.55 } } , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \ oxygen_ca.paa " } ,
{ " Hunger " , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \ hunger_ca.paa " , { " forceBloodRise " } } ,
{ " Thirst " , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \t hirst_ca.paa " , { " forceBloodRise " } } ,
2017-10-20 00:44:05 +00:00
{ " Temp " , " topRight " , { " x \a ddons \a 3_epoch_code \ Data \ UI \ hot_ca.paa " , " x \a ddons \a 3_epoch_code \ Data \ UI \ cold_ca.paa " } , { { " forceFatigue " , " forceBloodRise " } , { " forceFatigue " , " forceBloodDrop " } } } ,
{ " Toxicity " , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \ hazzard_ca.paa " , { " forceBloodRise " } } ,
2017-08-30 22:15:14 +00:00
{ " Alcohol " , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \ drunk_ca.paa " } ,
{ " Soiled " , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \ soiled_ca.paa " } ,
2017-10-20 00:44:05 +00:00
{ " Radiation " , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \r ads_ca.paa " , { " forceBloodRise " } } ,
2017-08-30 22:15:14 +00:00
{ { " HitPoints " , " getPlayerHitPointDamage " , " HitLegs " } , " topRight " , " x \a ddons \a 3_epoch_code \ Data \ UI \b roken_ca.paa " }
} ;
2017-09-24 17:26:11 +00:00
defineCommunityStats [ ] = {
2017-09-24 20:16:35 +00:00
// EPOCH_total + varName, starting value, {min,max or custom values}
2017-09-24 20:21:20 +00:00
{ " Karma " , 1500 , { - 50000 , 50000 , { - 5000 , - 15000 , - 30000 } , { 5000 , 15000 , 30000 } } } , // min, max, {Work In Progress levels}
2017-09-24 17:26:11 +00:00
{ " Murders " , 0 , { } } ,
{ " Deaths " , 0 , { } } ,
2017-09-24 20:21:20 +00:00
{ " Suicides " , 0 , { 0 , 99999 , 500 } } , // min, max, "Suicide King" status
{ " Revives " , 0 , { 0 , 99999 , 500 } } , // min, max, "Medic" status
2017-09-24 17:26:11 +00:00
{ " TraderMissions " , 0 , { } } ,
{ " AIKills " , 0 , { } } ,
{ " AntagonistKills " , 0 , { } } ,
2019-05-11 22:58:33 +00:00
{ " ZombieKills " , 0 , { } } ,
{ " WalkDist " , 0 , { } } ,
{ " MaxAliveTime " , 0 , { } } ,
{ " NPCTrades " , 0 , { } } ,
{ " PlayTime " , 0 , { } } ,
{ " LootedObjs " , 0 , { } } ,
{ " CraftedItems " , 0 , { } } ,
{ " ConnectCount " , 0 , { } } ,
{ " BuildingsSet " , 0 , { } } ,
{ " AIDeaths " , 0 , { } } ,
2019-05-15 19:35:24 +00:00
{ " PublicStats " , 1 , { } } // DO not change this! Players can disable it within the E-Pad by themself!
2017-09-24 17:26:11 +00:00
} ;
2019-05-11 22:58:33 +00:00
PlayerStatsDialogEntries [ ] = {
2019-09-27 20:28:59 +00:00
/*
{
{ " CommunityVariable " , " DisplayName " , " ExtraCalculation " }
} ,
*/
2019-05-11 22:58:33 +00:00
{
{ " ConnectCount " , " Times connected " } ,
{ " PlayTime " , " Playtime (hours) " , " %1/3600 toFixed 2 " } ,
{ " MaxAliveTime " , " Max Alivetime (hours) " , " %1/3600 toFixed 2 " } ,
2019-05-15 19:35:24 +00:00
{ " WalkDist " , " Distance Walked (Km) " , " %1/1000 toFixed 2 " }
2019-05-11 22:58:33 +00:00
} ,
{
{ " LootedObjs " , " Objects Looted " } ,
{ " NPCTrades " , " Trades at Trader " } ,
{ " BuildingsSet " , " Placed Buildings " } ,
{ " CraftedItems " , " Crafted Items " }
} ,
{
2019-09-27 20:28:59 +00:00
{ " Karma " , " Karma " , " round %1 " } ,
2019-05-11 22:58:33 +00:00
{ " Revives " , " Player Revived " } ,
{ " TraderMissions " , " Tradermissions " }
} ,
{
{ " Murders " , " Player Kills " } ,
{ " AIKills " , " AI Kills " } ,
{ " AntagonistKills " , " Antagonist Kills " } ,
{ " ZombieKills " , " Zombie Kills " }
} ,
{
{ " Deaths " , " Deaths by Player " } ,
{ " AIDeaths " , " Deaths by AI " } ,
{ " Suicides " , " Suicides " }
} ,
{
{ " " , " K/D PvP " , " (Epoch_totalMurders/(Epoch_totalDeaths max 1)) toFixed 1 " } ,
{ " " , " K/D PvE " , " (Epoch_totalAIKills/(Epoch_totalAIDeaths max 1)) toFixed 1 " }
}
2019-05-15 19:35:24 +00:00
} ;
TopStatsDialogEntries [ ] = {
2019-09-27 20:28:59 +00:00
/*
{ " CommunityVariable " , " DisplayName " , " ExtraCalculation " } ,
*/
2019-05-15 19:35:24 +00:00
{ " PlayTime " , " Playtime (hours) " , " %1/3600 toFixed 2 " } ,
{ " MaxAliveTime " , " Max Alivetime (hours) " , " %1/3600 toFixed 2 " } ,
{ " WalkDist " , " Distance Walked (Km) " , " %1/1000 toFixed 2 " } ,
{ " LootedObjs " , " Objects Looted " } ,
{ " NPCTrades " , " Trades at Trader " } ,
{ " BuildingsSet " , " Placed Buildings " } ,
{ " CraftedItems " , " Crafted Items " } ,
2020-03-04 16:28:57 +00:00
{ " AntagonistKills " , " Killed Antagonists " } ,
2019-05-15 19:35:24 +00:00
{ " Murders " , " Player Kills " } ,
{ " AIKills " , " AI Kills " } ,
{ " Deaths " , " Deaths by Player " } ,
{ " AIDeaths " , " Deaths by AI " }
2019-05-11 22:58:33 +00:00
} ;
2017-01-09 18:18:49 +00:00
group_upgrade_lvl [ ] = { 4 , " 1000 " , 6 , " 1500 " , 8 , " 2000 " , 10 , " 2500 " , 12 , " 3000 " , 14 , " 3500 " , 16 , " 4000 " , 32 , " 8000 " , 64 , " 16000 " } ; // controls max group limit and cost
// Event handler code
2016-10-24 04:52:25 +00:00
displayAddEventHandler [ ] = { " keyDown " , " keyUp " } ;
keyDown = " (_this call EPOCH_KeyDown) " ;
keyUp = " (_this call EPOCH_KeyUp) " ;
2019-09-13 12:50:55 +00:00
addEventHandler [ ] = { " Respawn " , " Put " , " Take " , " InventoryClosed " , " InventoryOpened " , " FiredMan " , " Killed " , " HandleRating " , " HandleScore " , " HandleDamage " , " GetInMan " , " GetOutMan " , " Hit " , " SeatSwitchedMan " , " FiredNear " , " WeaponAssembled " } ;
2016-10-24 04:52:25 +00:00
Respawn = " (_this select 0) call EPOCH_clientRespawn " ;
2017-02-05 18:00:38 +00:00
Put = " (_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler;_this call Epoch_custom_EH_Put " ;
Take = " (_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck;_this call Epoch_custom_EH_Take " ;
FiredMan = " _this call EPOCH_fnc_playerFired;_this call Epoch_custom_EH_FiredMan " ;
InventoryClosed = " _this call EPOCH_InventoryClosed;_this call EPOCH_custom_EH_InventoryClosed " ;
2017-02-27 13:33:34 +00:00
InventoryOpened = " _this call EPOCH_InventoryOpened||_this call EPOCH_custom_EH_InventoryOpened " ; // the || here allows either function to block opening of inventory by returning true.
2017-02-05 18:00:38 +00:00
Killed = " _this call EPOCH_fnc_playerDeath;_this call Epoch_custom_EH_Killed " ;
2017-09-18 02:17:43 +00:00
HandleRating = " 0 " ;
2017-09-11 16:40:40 +00:00
HandleScore = " " ;
2019-04-04 19:14:56 +00:00
HandleDamage = " _this call EPOCH_HandleDamage;_this call EPOCH_custom_EH_HandleDamage " ;
2016-10-24 04:52:25 +00:00
HandleHeal = " " ;
Dammaged = " " ;
2018-06-06 17:57:22 +00:00
Hit = " _this call EPOCH_custom_EH_Hit " ;
2016-10-24 04:52:25 +00:00
HitPart = " " ;
2017-02-05 18:00:38 +00:00
GetInMan = " _this call EPOCH_getInMan;_this call Epoch_custom_EH_GetInMan " ;
GetOutMan = " _this call EPOCH_getOutMan;_this call Epoch_custom_EH_GetOutMan " ;
2018-06-06 17:57:22 +00:00
SeatSwitchedMan = " _this call EPOCH_custom_EH_SeatSwitchedMan " ;
FiredNear = " _this call EPOCH_custom_EH_FiredNear " ;
2020-03-07 22:54:34 +00:00
WeaponAssembled = " clearItemCargoGlobal (_this select 1);if (['CfgEpochClient','RemoveTIfromUAV',true] call EPOCH_fnc_returnConfigEntryV2) then {(_this select 1) disableTIEquipment true}; if (['CfgEpochClient','RemoveLaserfromUAV',true] call EPOCH_fnc_returnConfigEntryV2) then {(_this select 1) removeWeaponTurret ['Laserdesignator_mounted',[0]]}; if ((_this select 1) isKindOf 'UAV_01_base_F' || (_this select 1) isKindOf 'UAV_06_base_F') then {['UAV assembled - Connect it with DynaMenu (Space)',5] call Epoch_Message} " ;
2017-01-09 18:18:49 +00:00
// suppress these units from spawning near Jammer or Traders
2017-03-06 17:19:20 +00:00
nonJammerAI [ ] = { " B_Heli_Transport_01_F " , " PHANTOM " , " EPOCH_Sapper_F " , " Epoch_SapperG_F " , " Epoch_SapperB_F " , " I_UAV_01_F " , " EPOCH_RyanZombie_1 " } ;
nonTraderAI [ ] = { " B_Heli_Transport_01_F " , " PHANTOM " , " EPOCH_Sapper_F " , " Epoch_SapperG_F " , " Epoch_SapperB_F " , " I_UAV_01_F " , " Epoch_Cloak_F " , " GreatWhite_F " , " EPOCH_RyanZombie_1 " } ;
2016-10-24 04:52:25 +00:00
nonTraderAIRange = 50 ;
2017-01-09 18:18:49 +00:00
fishLoots [ ] = { " ItemTuna " , " ItemSeaBass " , " ItemSeaBass " , " ItemSeaBass " , " ItemTrout " , " ItemTrout " , " ItemTrout " , " ItemTrout " , " ItemTrout " , " ItemTrout " } ; // Fishing loots
animalAiTables [ ] = { " Sheep_random_EPOCH " , " Sheep_random_EPOCH " , " Goat_random_EPOCH " , " Goat_random_EPOCH " , " Goat_random_EPOCH " , { " Cock_random_EPOCH " , " Hen_random_EPOCH " } , { " Cock_random_EPOCH " , " Hen_random_EPOCH " } , " Rabbit_EPOCH " , " Rabbit_EPOCH " , " Rabbit_EPOCH " , " Snake_random_EPOCH " , " Snake2_random_EPOCH " , { " Fin_random_EPOCH " , " Alsatian_Random_EPOCH " } } ; // Animal spawn table
2016-10-24 04:52:25 +00:00
playerDeathScreen = " TapOut " ;
playerKilledScreen = " TapOut2 " ;
playerDisableRevenge = 0 ;
playerRevengeMinAliveTime = 900 ;
2017-10-19 16:30:42 +00:00
playerLocationMarkerGPSOnly = 1 ; // Map marker toggle in map dyna menu with assigned GPS only
playerDeathMarkerGPSOnly = 1 ; // Map marker toggle in map dyna menu on death with assigned GPS only
mapOnZoomSetMarkerSize = 1 ; // When in map markers will change to larger size as player zooms in
2016-10-24 04:52:25 +00:00
bankTransferTime [ ] = { 0.0006 , 1.2 , 0.06 } ;
2018-04-18 17:41:16 +00:00
// Player (Building) Energy
energyPowerSources [ ] = { // Add PowerCapacity and PowerType in CfgBaseBuilding, if you add something here!
" Land_spp_Tower_F " ,
" Land_wpp_Turbine_V2_F " ,
" Land_wpp_Turbine_V1_F " ,
" SolarGen_EPOCH " ,
" Land_Wreck_Satellite_EPOCH "
} ;
energyRange = 75 ; // Range to check for energy sources
energyRegenMax = 5 ; // Max energy increase value (every 10 seconds)
energyCostNV = 3 ; // Energy loss value by using nightvision (every 10 seconds)
energyRegenInVeh = 5 ; // Energy increase value in Vehicles with Engine On (every 10 seconds)
2017-08-15 19:19:03 +00:00
2017-08-03 16:18:18 +00:00
// Favorite Bar
Fav_enableFavoriteBar = " true " ; // If disabled, players will not be able to use favorite bar
Fav_DropIfOverflow = " false " ; // If enabled and inventory full, equipped weapon will be dropped on ground in favor for the new selected weapon, otherwise action will fail with message and weapon will not be equipped
Fav_FastWeaponSwitching = " false " ; // If enabled, same slot weapons from favorites bar are equipped instantly, otherwise reload action is played (recommended for immersion)
Fav_BannedItems [ ] = { " FAK " } ; // Items that users are not allowed to pin
2017-08-15 19:19:03 +00:00
2018-04-06 15:57:42 +00:00
EnableTempVehTrade = " false " ; // Enable selling of temp Vehicles (not handled by Epoch). Temp Vehicles will not be stored in Traders, but can be sold
2018-04-20 16:31:23 +00:00
BulletCalculateOnCraft = " true " ; // Enable Bullet Calculation on Crafting - Example: If you craft a large EnergyPack with 3 half full EnergyPacks, you will only get a half filled large EnergyPack back
2019-01-16 18:24:55 +00:00
// Vehicle Settings
DisallowSellOnDamage = " false " ; // Prevent from selling Vehicles with one or more fully damaged wheel or engine
MaxVehTradeDist = 30 ; // Max distance where Players can sell Vehicles to Traders
2017-08-03 16:18:18 +00:00
UseAdvancedVehicleRepair = " true " ; // Switch On / Off Advanced Vehicle Repair (Does not effect SuppressedCraftingItems !)
2017-09-08 16:34:56 +00:00
EnableRemoveParts = " true " ; // Enable removing Tires / Engines from Vehicles
2017-10-14 19:31:42 +00:00
SuppressedCraftingItems [ ] = { // These Items can not be crafted (but can be used in recipe)
2017-10-25 19:12:55 +00:00
" VehicleRepairLg " , // Supressed for Advanced Vehicle Repair (no longer needed)
" KitMetalQuarterFloor " , // Item is Upgradeable, but you can remove it here to make it also Craftable
" KitMetalHalfFloor " , // Item is Upgradeable, but you can remove it here to make it also Craftable
" KitMetalFloor " , // Item is Upgradeable, but you can remove it here to make it also Craftable
" KitMetalTower " , // Item is Upgradeable, but you can remove it here to make it also Craftable
" KitCinderQuarterFloor " , // Item is Upgradeable, but you can remove it here to make it also Craftable
" KitCinderHalfFloor " , // Item is Upgradeable, but you can remove it here to make it also Craftable
" KitCinderFloor " , // Item is Upgradeable, but you can remove it here to make it also Craftable
2018-05-07 21:28:37 +00:00
" KitCinderTower " // Item is Upgradeable, but you can remove it here to make it also Craftable
2017-10-14 19:31:42 +00:00
} ;
2017-08-03 16:18:18 +00:00
VehicleRepairs [ ] = { // {Hitpoint, dmg to repair, dmg to replace, mat to repair, mat to replace}
2017-07-31 16:28:18 +00:00
{ " HitHull " , 0.33 , 0.66 , " ItemScraps " , " ItemCorrugated " } ,
{ " HitBody " , 0.33 , 1 , " ItemScraps " , " ItemCorrugated " } ,
2017-08-01 12:44:50 +00:00
{ " HitEngine " , 0.33 , 0.91 , " EngineParts " , " EngineBlock " } ,
{ " glass " , 0.33 , 1 , " ItemGlass " , " ItemGlass " } ,
{ " HitFuel " , 0.1 , 0.66 , " ItemDuctTape " , " FuelTank " } ,
{ " HitHRotor " , 0.33 , 1 , " ItemCorrugated " , " ItemRotor " } ,
{ " HitVRotor " , 0.33 , 1 , " ItemCorrugated " , " ItemRotor " } ,
2017-07-31 16:28:18 +00:00
{ " HitWinch " , 0.33 , 0.91 , " ItemCables " , " ItemCables " } ,
2018-05-14 18:00:29 +00:00
{ " HitAvionics " , 0.33 , 0.91 , " CircuitParts " , " CircuitParts " } ,
// Wheels - Do not change the order (front to back wheels) here!
{ " HitLFWheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
{ " HitRFWheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
{ " HitLF2Wheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
{ " HitRF2Wheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
{ " HitLMWheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
{ " HitRMWheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
{ " HitLBWheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
{ " HitRBWheel " , 0.33 , 1 , " VehicleRepair " , " SpareTire " } ,
// Mountainbike wheels
{ " HitFWheel " , 0.33 , 0.91 , " " , " " } ,
{ " HitBWheel " , 0.33 , 0.91 , " " , " " }
2017-07-31 16:28:18 +00:00
} ;
2017-08-15 19:19:03 +00:00
2019-08-01 15:56:39 +00:00
/* // Lower difficult VehicleRepairs example
VehicleRepairs [ ] = { // {Hitpoint, dmg to repair, dmg to replace, mat to repair, mat to replace}
{ " HitHull " , 0.33 , 0.66 , " ItemScraps " , " ItemCorrugated " } ,
{ " HitBody " , 0.33 , 1 , " ItemScraps " , " ItemCorrugated " } ,
{ " HitEngine " , 0.33 , 0.91 , " VehicleRepair " , " VehicleRepair " } ,
{ " glass " , 0.33 , 1 , " ItemGlass " , " ItemGlass " } ,
{ " HitFuel " , 0.1 , 0.66 , " ItemDuctTape " , " ItemDuctTape " } ,
{ " HitHRotor " , 0.33 , 1 , " ItemCorrugated " , " ItemCorrugated " } ,
{ " HitVRotor " , 0.33 , 1 , " ItemCorrugated " , " ItemCorrugated " } ,
{ " HitWinch " , 0.33 , 0.91 , " ItemCables " , " ItemCables " } ,
{ " HitAvionics " , 0.33 , 0.91 , " CircuitParts " , " CircuitParts " } ,
// Wheels - Do not change the order (front to back wheels) here!
{ " HitLFWheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
{ " HitRFWheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
{ " HitLF2Wheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
{ " HitRF2Wheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
{ " HitLMWheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
{ " HitRMWheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
{ " HitLBWheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
{ " HitRBWheel " , 0.33 , 1 , " VehicleRepair " , " VehicleRepair " } ,
// Mountainbike wheels
{ " HitFWheel " , 0.33 , 0.91 , " " , " " } ,
{ " HitBWheel " , 0.33 , 0.91 , " " , " " }
} ;
*/
2017-01-09 18:18:49 +00:00
// include configs
2016-04-08 20:21:46 +00:00
# include "CfgEpochClient\Altis.hpp"
# include "CfgEpochClient\australia.hpp"
# include "CfgEpochClient\Bornholm.hpp"
# include "CfgEpochClient\Chernarus_Summer.hpp"
2016-10-24 04:52:25 +00:00
# include "CfgEpochClient\Chernarus.hpp"
2017-09-21 19:43:42 +00:00
# include "CfgEpochClient\ChernarusRedux.hpp"
2019-06-08 20:57:43 +00:00
# include "CfgEpochClient\Enoch.hpp"
2016-04-08 20:21:46 +00:00
# include "CfgEpochClient\Esseker.hpp"
# include "CfgEpochClient\ProvingGrounds_PMC.hpp"
# include "CfgEpochClient\Sara_dbe1.hpp"
# include "CfgEpochClient\Sara.hpp"
# include "CfgEpochClient\SaraLite.hpp"
# include "CfgEpochClient\Stratis.hpp"
# include "CfgEpochClient\takistan.hpp"
2016-10-24 04:52:25 +00:00
# include "CfgEpochClient\utes.hpp"
# include "CfgEpochClient\vr.hpp"
2016-04-08 20:21:46 +00:00
# include "CfgEpochClient\Zargabad.hpp"
2016-10-24 04:52:25 +00:00
# include "CfgEpochClient\Tanoa.hpp"
2017-06-08 19:15:27 +00:00
# include "CfgEpochClient\Malden.hpp"
2016-10-24 04:52:25 +00:00
# include "CfgEpochClient\WorldInteractions.hpp"
2015-09-14 20:45:27 +00:00
} ;
2017-03-02 16:58:48 +00:00
class CfgEpochSoldier
{
unitTypes [ ] = { " I_Soldier_EPOCH " , " I_Soldier2_EPOCH " , " I_Soldier3_EPOCH " } ; //Selects from randomly
minAISkill = 0.2 ; //Minumum AI Skill. Skills are chosen randomly between this minimum overall AI skill value and the following max AI skill values, for each of the next skills:
maxAimingAccuracy = 0.7 ;
maxAimingShake = 0.9 ;
maxAimingSpeed = 0.6 ;
maxEndurance = 0.4 ;
maxSpotDistance = 0.4 ;
maxSpotTime = 0.3 ;
maxCourage = 0.3 ;
maxReloadSpeed = 0.5 ;
maxCommanding = 0.4 ;
maxGeneral = 0.4 ;
2019-09-20 14:51:02 +00:00
minspawndist = 120 ;
maxspawndist = 200 ;
2017-03-02 16:58:48 +00:00
} ;
2015-09-14 20:45:27 +00:00
class CfgEpochSapper
{
2017-01-09 18:18:49 +00:00
detonateDistMax = 8 ; //Random distance between 3m and this number at which sapper detonates. Min value = 4
groanTrig = 16 ; //Percentage chance of a groan. Min value = 4
sRange = 300 ; //Distance from target over which sapper will dispose. Range within which sapper code will be aware of targets. Distance up to which sapper will attempt to find a spot to hide in. Min Value = 150.
smellDist = 24 ; //Distance up to which sapper can smell. Used to decide if sapper can see target when deciding to charge and influences target selection. Is influenced by wind direction. Min Value = 8.
reflexSpeed = 0.25 ; //Sapper brain will pause for this time when checking for new stimulus during each thought process. Lower number equals a more reactive sapper. (Guide Min 0.25 - Max 2.5).
nestChance = 2 ; //Every time a sapper spawns apply this percentage chance that sapper will create a nest.
hideLevel = 72 ; //(Emotion) Sapper fear increases by several factors, higher number of armed player(s) in area / being shot at. Set fear level (out of 100) at which he will go into a 'hide / evade mode'.. temporarily.
chargeLevel = 52 ; //(Emotion) Sapper anger increases by smelling / sensing players, being shot at / hit, too many players on his turf. Set level (Out of 100) at which he is triggered to charge on the current target.
2015-09-14 20:45:27 +00:00
} ;
class CfgEpochUAV
{
2017-01-09 18:18:49 +00:00
UAVMinDist = 48 ; //Minimum distance to choose next position when roaming. Min Value = 8.
UAVMaxDist = 180 ; //Maximum distance to choose next position when roaming. Min Value = 42 / Max Value = 400.
UAVHeight = 100 ; //Set height when roaming, slight randomness is applied to this value. UAV will choose own height when locked onto target. Min Value = 42 / Max Value = 280. UAV can still spot targets from height !
2015-09-14 20:45:27 +00:00
} ;
2016-04-25 12:38:16 +00:00
class CfgEpochUAVSupport
{
2017-03-02 17:23:38 +00:00
unitTypes [ ] = { " I_Soldier_EPOCH " } ; //Selects from randomly (e.g. {"I_Soldier_EPOCH","Epoch_Sapper_F","Epoch_SapperB_F","Epoch_SapperG_F"};)
2017-03-02 16:58:48 +00:00
minUnitNum = 2 ; //Maximum number of units spawned when UAV spots target.
maxUnitNum = 4 ; //Maximum number of units spawned when UAV spots target.
2016-04-25 12:38:16 +00:00
} ;
2015-09-14 20:45:27 +00:00
class CfgEpochCloak
{
2017-01-09 18:18:49 +00:00
cRange = 300 ; //Distance, from target, at which Cloak will dispose. Cloak is also aware of players within this range. (Min: 60 / Max: 600)
cAggression = 75 ; //Percentage chance of attack, currently a psychological attack (Cultist spooky voice). (Min: 1 / Max: 100)
attackFrequency = 120 ; //One attack only per this period. (Min: 120)
attackDistance = 38 ; // Distance, from target, up to which Cloak will attack. Lower for less vocals. (Min: 16)
targetChangeFrequency = 42 ; //Cloak will only attempt to change target once per this period. Make Higher to stick to first target player. (Min: 42)
teleportChance = 66 ; //Chance for cloak to teleport. (Min: 1)
hoverFrequency = 1280 ; //Cloak has new hover attack. When player is above cloak, and at a distance, cloak will float to player and teleport attack. Only perform one of these moves per this period. (Min: 240)
2015-09-14 20:45:27 +00:00
} ;
2016-06-14 11:50:53 +00:00
class CfgEpochRyanZombie
{
2016-10-24 04:52:25 +00:00
zeds [ ] = { " EPOCH_RyanZombie_1 " , " EPOCH_RyanZombie_2 " , " EPOCH_RyanZombie_3 " , " EPOCH_RyanZombie_4 " , " EPOCH_RyanZombie_5 " } ;
2017-01-09 18:18:49 +00:00
attackDist = 1.6 ; //Attack Distance.
range = 45 ; //Range at which to dispose old zombies and spawn new ones within.
disposeRange = 800 ; // distance before zombie is disposed
smell [ ] = { 38 , 0.42 } ; //Distance in metres up to which the zombie can smell a target. | Skill (0 - 1). 0 - Disable
sight [ ] = { 28 , 0.72 } ; //Zombie sight distance | Skill (0 - 1).
hearing [ ] = { 108 , 0.68 } ; //Zombie hearing distance / Skill. Max FiredNear EH Limit ?
memory [ ] = { 480 , 0.8 } ; //Memory time. / Weighting. WIP - Not Used
reflexSpeed = 0.25 ; //Zombie brain will pause for this time when checking for new stimulus during each thought process. Lower number equals a more reactive zombie. (Guide Min 0.25 - Max 2.5).
2016-10-24 04:52:25 +00:00
moans [ ] = { " ryanzombiesmoan1 " , " ryanzombiesmoan2 " , " ryanzombiesmoan3 " , " ryanzombiesmoan4 " } ;
screams [ ] = { " ryanzombiesscream1 " , " ryanzombiesscream2 " , " ryanzombiesscream3 " , " ryanzombiesscream4 " , " ryanzombiesscream5 " , " ryanzombiesscream6 " , " ryanzombiesscream7 " , " ryanzombiesscream8 " , " ryanzombiesscream9 " } ;
2016-06-14 11:50:53 +00:00
} ;
2016-10-24 04:52:25 +00:00
/*[[[end]]]*/