mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
347 lines
21 KiB
C++
347 lines
21 KiB
C++
/*
|
||
Author: Aaron Clark - EpochMod.com
|
||
Contributors: Andrew Gregory
|
||
|
||
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/release/Sources/epoch_config/Configs/CfgEpochClient.hpp
|
||
*/
|
||
/*[[[cog from arma_config_tools import *; json_to_arma()]]]*/
|
||
class CfgEpochClient
|
||
{
|
||
epochVersion = "1.2.0";
|
||
ArmAVersion = 176;
|
||
debug = "true"; // true = enable extra rpt debug lines, false to disable
|
||
|
||
antagonistRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100
|
||
NuisanceMulti = 0.5; // Multi for Nuisance increase on shooting - higher Nuisance effect at least antagonist spawn change. (0-1, default 0.5)
|
||
|
||
outOfBoundsRadiation = 10; // how much rads per tick (10sec), when outside play area.
|
||
radioactiveLocations[] = {"NameCityCapital", "NameCity", "Airport"}; // used for random radioactive locations and to suppress animal spawns within cities.
|
||
radiatedObjMaxFalloutDist = 125; // max distance radiated object can affect player (number in meters)
|
||
geigerCounterEnergyUsage = 10; // default loss of 10 energy every 10sec of use
|
||
radiationEffectsThreshold = 10; // default level for screen effects to indicate a player's rad dosage (0-100)
|
||
|
||
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
|
||
|
||
baseHungerLoss = 2; // increase number to speed up rate of Hunger loss
|
||
baseThirstLoss = 2; // increase number to speed up rate of Thirst loss
|
||
accelerateHTALoss = "true"; // use server's time acceleration to increase the rate of Hunger, Thirst and Alcohol loss
|
||
|
||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||
buildingNearbyMilitaryClasses[] = {"Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"};
|
||
restrictedLocations[] = {"NameCityCapital"};
|
||
restrictedLocationsRange = 300;
|
||
buildingRequireJammer = 1; //1 = require jammer to build
|
||
buildingJammerRange = 75; // jammer range in meters
|
||
jammerPerGroup = 1; // allowed number of jammers per group.
|
||
jammerGLOnly = 1; // allow only group leader to place Jammer
|
||
minJammerDistance = 650; // min distance to next Jammer
|
||
maxBuildingHeight = 100; // Max Height, building is allowed.
|
||
buildingCountLimit = 200; //overall building limit in range of jammer (overridden if "useGroupCountLimits=1")
|
||
storageCountLimit = 100; //overall storage limit in range of jammer (triggers only if "splitCountLimits=1" & "useGroupCountLimits=0")
|
||
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...)
|
||
useGroupCountLimits = 1; //1 = enable leader and member counts (doesn´t affect "splitCountLimits")
|
||
buildingCountLeader = 250; //ignore if "useGroupCountLimits=0"
|
||
buildingCountPerMember = 5; //ignore if "useGroupCountLimits=0"
|
||
storageCountLeader = 10; //ignore if "splitCountLimits=0" & "useGroupCountLimits=0"
|
||
storageCountPerMember = 5; //ignore if "splitCountLimits=0" & "useGroupCountLimits=0"
|
||
maxdoors = 10; // Max allowed doors per Group
|
||
maxgates = 5; // Max allowed Gates per Group
|
||
maxCams = 2; // Max allowed BaseCams per Group
|
||
|
||
MaxBuildingTilt = 180; // Max degrees players can tilt building elements
|
||
|
||
AtmBlockedAtPlot = "true"; // Block ATM's in Plotpole-Range
|
||
disableRemoteSensors = "true"; // disableRemoteSensors true/false
|
||
|
||
ActionFireOnLighter = "true"; // Lighter is needed to inflame fires
|
||
ActionBurnBarrelOffExtinguisher = "true"; // FireExtinguisher is needed to put off Burn Barrels
|
||
ActionHookRope = "true"; // Rope is needed to hook vehicles (get back on release)
|
||
|
||
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;
|
||
|
||
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.."};
|
||
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
|
||
niteLight[] = {0,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}
|
||
ryanZombiesEnabled = "true";
|
||
|
||
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}},
|
||
{"AliveTime",0,{-2,0}}, // local
|
||
{"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}},
|
||
{"HitPoints",{0,0,0,0},{1,0,0.5,1,-1,-1}}, // limits here only used for HUD.
|
||
{"BloodP",100,{190,0,120,140,70,50}},
|
||
{"SpawnArray",{},{}},
|
||
{"NotUsed",0,{50000,-50000}}, // TODO remove or replace
|
||
{"Alcohol",0,{100,0,35,55,-1,-1}},
|
||
{"Radiation",0,{100,0,35,55,-1,-1}}, // local
|
||
{"Nuisance",0,{100,0}},
|
||
{"MissionArray",{},{}}
|
||
};
|
||
// 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}
|
||
};
|
||
hudConfigs[] = {
|
||
{{"BloodP","","",{"getPlayerDamage",">=",0.7}},"topRight","x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa",{"forceUpdate"}},
|
||
{{"Oxygen","getPlayerOxygenRemaining","",{},{1,0,2,2,1,0.55}},"topRight","x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa"},
|
||
{"Hunger","topRight","x\addons\a3_epoch_code\Data\UI\hunger_ca.paa",{"forceBloodRise"}},
|
||
{"Thirst","topRight","x\addons\a3_epoch_code\Data\UI\thirst_ca.paa",{"forceBloodRise"}},
|
||
{"Temp","topRight",{"x\addons\a3_epoch_code\Data\UI\hot_ca.paa","x\addons\a3_epoch_code\Data\UI\cold_ca.paa"},{{"forceFatigue","forceBloodRise"},{"forceFatigue","forceBloodDrop"}}},
|
||
{"Toxicity","topRight","x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa",{"forceBloodRise"}},
|
||
{"Alcohol","topRight","x\addons\a3_epoch_code\Data\UI\drunk_ca.paa"},
|
||
{"Soiled","topRight","x\addons\a3_epoch_code\Data\UI\soiled_ca.paa"},
|
||
{"Radiation","topRight","x\addons\a3_epoch_code\Data\UI\rads_ca.paa",{"forceBloodRise"}},
|
||
{{"HitPoints","getPlayerHitPointDamage","HitLegs"},"topRight","x\addons\a3_epoch_code\Data\UI\broken_ca.paa"}
|
||
};
|
||
defineCommunityStats[] = {
|
||
// EPOCH_total + varName, starting value, {min,max or custom values}
|
||
{"Karma",1500,{-50000,50000,{-5000,-15000,-30000},{5000,15000,30000}}}, // min, max, {Work In Progress levels}
|
||
{"Murders",0,{}},
|
||
{"Deaths",0,{}},
|
||
{"Suicides",0,{0,99999,500}}, // min, max, "Suicide King" status
|
||
{"Revives",0,{0,99999,500}}, // min, max, "Medic" status
|
||
{"TraderMissions",0,{}},
|
||
{"AIKills",0,{}},
|
||
{"AntagonistKills",0,{}},
|
||
{"ZombieKills",0,{}}
|
||
};
|
||
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
|
||
displayAddEventHandler[] = {"keyDown","keyUp"};
|
||
keyDown = "(_this call EPOCH_KeyDown)";
|
||
keyUp = "(_this call EPOCH_KeyUp)";
|
||
addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","FiredMan","Killed","HandleRating","HandleScore","GetInMan","GetOutMan"};
|
||
Respawn = "(_this select 0) call EPOCH_clientRespawn";
|
||
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";
|
||
InventoryOpened = "_this call EPOCH_InventoryOpened||_this call EPOCH_custom_EH_InventoryOpened"; // the || here allows either function to block opening of inventory by returning true.
|
||
Killed = "_this call EPOCH_fnc_playerDeath;_this call Epoch_custom_EH_Killed";
|
||
HandleRating = "0";
|
||
HandleScore = "";
|
||
HandleDamage = "";
|
||
HandleHeal = "";
|
||
Dammaged = "";
|
||
Hit = "_this call EPOCH_custom_EH_Hit";
|
||
HitPart = "";
|
||
GetInMan = "_this call EPOCH_getInMan;_this call Epoch_custom_EH_GetInMan";
|
||
GetOutMan = "_this call EPOCH_getOutMan;_this call Epoch_custom_EH_GetOutMan";
|
||
SeatSwitchedMan = "_this call EPOCH_custom_EH_SeatSwitchedMan";
|
||
FiredNear = "_this call EPOCH_custom_EH_FiredNear";
|
||
// suppress these units from spawning near Jammer or Traders
|
||
nonJammerAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_F","Epoch_SapperG_F","Epoch_SapperB_F","I_UAV_01_F","EPOCH_RyanZombie_1"};
|
||
nonTraderAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_F","Epoch_SapperG_F","Epoch_SapperB_F","I_UAV_01_F","Epoch_Cloak_F","GreatWhite_F","EPOCH_RyanZombie_1"};
|
||
nonTraderAIRange = 50;
|
||
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
|
||
playerDeathScreen = "TapOut";
|
||
playerKilledScreen = "TapOut2";
|
||
playerDisableRevenge = 0;
|
||
playerRevengeMinAliveTime = 900;
|
||
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
|
||
bankTransferTime[] = {0.0006,1.2,0.06};
|
||
|
||
// 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)
|
||
|
||
// 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
|
||
|
||
EnableTempVehTrade = "false"; // Enable selling of temp Vehicles (not handled by Epoch). Temp Vehicles will not be stored in Traders, but can be sold
|
||
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
|
||
|
||
// Advanced Vehicle Repair
|
||
UseAdvancedVehicleRepair = "true"; // Switch On / Off Advanced Vehicle Repair (Does not effect SuppressedCraftingItems !)
|
||
EnableRemoveParts = "true"; // Enable removing Tires / Engines from Vehicles
|
||
DisallowSellOnDamage = "false"; // Prevent from selling Vehicles with one or more fully damaged wheel or engine
|
||
SuppressedCraftingItems[] = { // These Items can not be crafted (but can be used in recipe)
|
||
"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
|
||
"KitCinderTower" // Item is Upgradeable, but you can remove it here to make it also Craftable
|
||
};
|
||
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,"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"},
|
||
{"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","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,"",""}
|
||
};
|
||
|
||
// include configs
|
||
#include "CfgEpochClient\Altis.hpp"
|
||
#include "CfgEpochClient\australia.hpp"
|
||
#include "CfgEpochClient\Bornholm.hpp"
|
||
#include "CfgEpochClient\Chernarus_Summer.hpp"
|
||
#include "CfgEpochClient\Chernarus.hpp"
|
||
#include "CfgEpochClient\ChernarusRedux.hpp"
|
||
#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"
|
||
#include "CfgEpochClient\utes.hpp"
|
||
#include "CfgEpochClient\vr.hpp"
|
||
#include "CfgEpochClient\Zargabad.hpp"
|
||
#include "CfgEpochClient\Tanoa.hpp"
|
||
#include "CfgEpochClient\Malden.hpp"
|
||
#include "CfgEpochClient\WorldInteractions.hpp"
|
||
};
|
||
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;
|
||
};
|
||
class CfgEpochSapper
|
||
{
|
||
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.
|
||
};
|
||
class CfgEpochUAV
|
||
{
|
||
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 !
|
||
};
|
||
class CfgEpochUAVSupport
|
||
{
|
||
unitTypes[] = {"I_Soldier_EPOCH"}; //Selects from randomly (e.g. {"I_Soldier_EPOCH","Epoch_Sapper_F","Epoch_SapperB_F","Epoch_SapperG_F"};)
|
||
minUnitNum = 2; //Maximum number of units spawned when UAV spots target.
|
||
maxUnitNum = 4; //Maximum number of units spawned when UAV spots target.
|
||
};
|
||
class CfgEpochCloak
|
||
{
|
||
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)
|
||
};
|
||
class CfgEpochRyanZombie
|
||
{
|
||
zeds[] = {"EPOCH_RyanZombie_1","EPOCH_RyanZombie_2","EPOCH_RyanZombie_3","EPOCH_RyanZombie_4","EPOCH_RyanZombie_5"};
|
||
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).
|
||
moans[] = {"ryanzombiesmoan1","ryanzombiesmoan2","ryanzombiesmoan3","ryanzombiesmoan4"};
|
||
screams[] = {"ryanzombiesscream1","ryanzombiesscream2","ryanzombiesscream3","ryanzombiesscream4","ryanzombiesscream5","ryanzombiesscream6","ryanzombiesscream7","ryanzombiesscream8","ryanzombiesscream9"};
|
||
};
|
||
/*[[[end]]]*/
|