mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Epoch Survival 0.4 b619
[Changed] Dynamic sub menu for inventory item interaction and crafting options. (Double click item in your inventory) [Changed] Armor stat inventory feature now dynamic and no longer forced via config. [Changed] Group menu and requests are now on the self action menu.
This commit is contained in:
parent
10a6c984c3
commit
4aa8c8152d
@ -1 +1,2 @@
|
||||
TBA
|
||||
[New] Dynamic sub menu for inventory item interaction and crafting options when you double click in item in your inventory.
|
||||
[Changed] Group menu and requests are now on the self action menu.
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -24,7 +24,7 @@
|
||||
NOHTING
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_bar","_bar_compare","_color","_colorCompare","_display"];
|
||||
private ["_bar","_bar_compare","_color","_colorCompare","_container","_display","_existing_bar","_height","_pos","_remoteContainer","_small_height"];
|
||||
//[[[end]]]
|
||||
disableSerialization;
|
||||
|
||||
@ -34,29 +34,81 @@ EPOCH_lastContainer = _this select 1;
|
||||
waitUntil {!isNull findDisplay 602};
|
||||
_display = (findDisplay 602);
|
||||
|
||||
(_display displayCtrl -13) ctrlEnable false;
|
||||
// init custom sub menu handler
|
||||
{
|
||||
_container = _display displayCtrl _x;
|
||||
_container ctrlAddEventHandler ["LBDblClick","_this call EPOCH_itemInteractClick"];
|
||||
} forEach [619,633,638];
|
||||
// armor stats init
|
||||
{
|
||||
_remoteContainer = _display displayCtrl _x;
|
||||
_remoteContainer ctrlAddEventHandler ["LBDrag","_this call EPOCH_selectInventoryItem; _this call EPOCH_refeshUI"];
|
||||
_remoteContainer ctrlAddEventHandler ["LBSelChanged","_this call EPOCH_selectInventoryItem; _this call EPOCH_refeshUI"];
|
||||
} forEach [632,640];
|
||||
|
||||
_color = [0.6,0.6,0.6,1];
|
||||
_colorCompare = [0.4,0.6,1,0.4];
|
||||
|
||||
_bar = _display displayCtrl 7304;
|
||||
// UniformLoad
|
||||
_bar = _display ctrlCreate ["RscCustomProgress", 7304];
|
||||
uiNameSpace setVariable ["RscCustomProgressUniform", _bar];
|
||||
_bar ctrlSetTextColor _color;
|
||||
|
||||
_bar = _display displayCtrl 7305;
|
||||
_existing_bar = _display displayCtrl 6304;
|
||||
_pos = ctrlPosition _existing_bar;
|
||||
_height = (_pos select 3) / 2;
|
||||
_existing_bar ctrlSetPosition [_pos select 0,(_pos select 1)+_height,_pos select 2,_height];
|
||||
_existing_bar ctrlCommit 0;
|
||||
_bar ctrlSetPosition [_pos select 0,_pos select 1,_pos select 2,_height];
|
||||
_bar ctrlCommit 0;
|
||||
|
||||
// VestLoad
|
||||
_bar = _display ctrlCreate ["RscCustomProgress", 7305];
|
||||
uiNameSpace setVariable ["RscCustomProgressVest", _bar];
|
||||
_bar ctrlSetTextColor _color;
|
||||
|
||||
_bar = _display displayCtrl 7240;
|
||||
_existing_bar = _display displayCtrl 6305;
|
||||
_pos = ctrlPosition _existing_bar;
|
||||
_height = (_pos select 3) / 2;
|
||||
_small_height = _height;
|
||||
_existing_bar ctrlSetPosition [_pos select 0,(_pos select 1)+_height,_pos select 2,_height];
|
||||
_existing_bar ctrlCommit 0;
|
||||
_bar ctrlSetPosition [_pos select 0,_pos select 1,_pos select 2,_height];
|
||||
_bar ctrlCommit 0;
|
||||
|
||||
// SlotHeadgear
|
||||
_bar = _display ctrlCreate ["RscCustomProgress", 7240];
|
||||
uiNameSpace setVariable ["RscCustomProgressHeadgear", _bar];
|
||||
_bar ctrlSetTextColor _color;
|
||||
|
||||
_bar = _display displayCtrl 7308;
|
||||
_existing_bar = _display displayCtrl 6240;
|
||||
_pos = ctrlPosition _existing_bar;
|
||||
_height = _pos select 3;
|
||||
|
||||
_bar ctrlSetPosition [_pos select 0,(_pos select 1)+_height,_pos select 2,_small_height];
|
||||
_bar ctrlCommit 0;
|
||||
|
||||
// TotalLoad;
|
||||
_existing_bar = _display displayCtrl 6308;
|
||||
_pos = ctrlPosition _existing_bar;
|
||||
_height = (_pos select 3) / 2;
|
||||
|
||||
_existing_bar ctrlSetPosition [_pos select 0,(_pos select 1)+_height,_pos select 2,_height];
|
||||
_existing_bar ctrlCommit 0;
|
||||
|
||||
// TotalLoad compare;
|
||||
_bar = _display ctrlCreate ["RscTotalArmorProgress", 7308];
|
||||
_bar ctrlSetTextColor _color;
|
||||
|
||||
_bar_compare = _display displayCtrl 7309;
|
||||
_bar ctrlSetPosition [_pos select 0,_pos select 1,_pos select 2,_height];
|
||||
_bar ctrlCommit 0;
|
||||
|
||||
_bar_compare = _display ctrlCreate ["RscCustomProgress", 7309];
|
||||
_bar_compare ctrlSetTextColor _colorCompare;
|
||||
|
||||
_bar_compare ctrlSetPosition [_pos select 0,_pos select 1,_pos select 2,_height];
|
||||
_bar_compare ctrlCommit 0;
|
||||
|
||||
uiNameSpace setVariable ["RscCustomProgressTotal", [_bar,_bar_compare]];
|
||||
|
||||
0 call EPOCH_refeshUI;
|
||||
|
@ -1,20 +1,18 @@
|
||||
/*
|
||||
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/release/Sources/epoch_code/compile/inventory/EPOCH_itemInteractClick.sqf
|
||||
Dynamic inventory sub menu
|
||||
By Aaron Clark - Epoch Mod
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_buttonTXT","_cfgItemInteractions","_config","_data","_display","_interactOption","_magCount","_type","_useBtn"];
|
||||
private ["_activeControl","_bg","_btn_arr","_buffer","_buttonTXT","_button_gen","_button_texts","_cfgItemInteractions","_config","_control","_data","_display","_interactOption","_magCount","_pos","_start_idc","_type","_y2d"];
|
||||
//[[[end]]]
|
||||
_button_texts = [];
|
||||
|
||||
_activeControl = uiNamespace getVariable ["EPOCH_active_button_control", controlNull];
|
||||
if (!isNull _activeControl) then {
|
||||
_activeControl ctrlShow false;
|
||||
ctrlDelete _activeControl;
|
||||
};
|
||||
|
||||
_this call EPOCH_selectInventoryItem;
|
||||
_data = EPOCH_InteractedItem select 1;
|
||||
|
||||
@ -35,32 +33,72 @@ if (isClass (_config)) then {
|
||||
_magCount = getNumber (_config >> "count");
|
||||
};
|
||||
|
||||
_display = (findDisplay 602);
|
||||
_useBtn = _display displayCtrl -13;
|
||||
|
||||
if (_buttonTXT != "") then {
|
||||
_useBtn ctrlSetText _buttonTXT;
|
||||
_useBtn ctrlEnable true;
|
||||
_button_texts pushBack [_buttonTXT];
|
||||
} else {
|
||||
if (_magCount > 1) then {
|
||||
_useBtn ctrlEnable true;
|
||||
_useBtn ctrlSetText "REPACK";
|
||||
_button_texts pushBack ["REPACK"];
|
||||
} else {
|
||||
_useBtn ctrlSetText "EXAMINE";
|
||||
_useBtn ctrlEnable false;
|
||||
_button_texts pushBack ["EXAMINE"];
|
||||
};
|
||||
};
|
||||
|
||||
_useBtn = _display displayCtrl -14;
|
||||
_useBtn ctrlEnable true;
|
||||
|
||||
_config = 'CfgCrafting' call EPOCH_returnConfig;
|
||||
if (isClass (_config >> _data)) then {
|
||||
_useBtn ctrlSetTextColor [0,1,0,1];
|
||||
EPOCH_CraftingItem = EPOCH_InteractedItem select 0;
|
||||
EPOCH_CraftingItem = EPOCH_InteractedItem select 0;
|
||||
_button_texts pushBack ["CRAFT","EPOCH_CraftingItem call EPOCH_crafting_load;"];
|
||||
} else {
|
||||
_useBtn ctrlSetTextColor [1,0,0,1];
|
||||
EPOCH_CraftingItem = "";
|
||||
EPOCH_CraftingItem = "";
|
||||
};
|
||||
|
||||
true
|
||||
if !(_button_texts isEqualTo []) then {
|
||||
_display = ctrlParent (_this select 0);
|
||||
_pos = getMousePosition;
|
||||
|
||||
_control = _display ctrlCreate ["RscControlsGroupNoScrollbars", 5678910];
|
||||
uiNamespace setVariable ["EPOCH_active_button_control", _control];
|
||||
|
||||
_control ctrlSetPosition [(_pos select 0)-0.03,(_pos select 1)-0.03,1,1];
|
||||
_control ctrlCommit 0;
|
||||
|
||||
_bg = _display ctrlCreate ["RscButtonTextOnly", 12349,_control];
|
||||
_bg ctrlSetPosition [0,0,1,1];
|
||||
_bg ctrlCommit 0;
|
||||
_bg ctrlAddEventHandler ["MouseEnter",{
|
||||
_activeControl = uiNamespace getVariable ["EPOCH_active_button_control", controlNull];
|
||||
if !(isNull _activeControl) then {
|
||||
_activeControl ctrlShow false;
|
||||
};
|
||||
}];
|
||||
|
||||
_buffer = _display ctrlCreate ["RscButtonTextOnly", 12345,_control];
|
||||
_buffer ctrlSetPosition [0.02,0.02,0.25,0.0625 + (0.0625 * (count _button_texts))];
|
||||
_buffer ctrlAddEventHandler ["ButtonClick",{
|
||||
_activeControl = uiNamespace getVariable ["EPOCH_active_button_control", controlNull];
|
||||
if !(isNull _activeControl) then {
|
||||
_activeControl ctrlShow false;
|
||||
};
|
||||
}];
|
||||
|
||||
_buffer ctrlCommit 0;
|
||||
|
||||
_y2d = 0.06;
|
||||
_btn_arr = [];
|
||||
_start_idc = 12346;
|
||||
{
|
||||
_x params [["_btn_text","EXAMINE"],["_btn_code","call EPOCH_consumeItem;"]];
|
||||
_button_gen = _display ctrlCreate ["RscButtonMenu", _start_idc,_control];
|
||||
_start_idc = _start_idc + 1;
|
||||
_button_gen ctrlSetPosition [0.06,_y2d,0.20,0.06];
|
||||
_button_gen ctrlSetText _btn_text;
|
||||
_button_gen ctrlCommit 0;
|
||||
_button_gen ctrlSetEventHandler ["ButtonClick",_btn_code + "(uiNamespace getVariable [""EPOCH_active_button_control"", controlNull]) ctrlShow false;"];
|
||||
_y2d = _y2d + 0.0625;
|
||||
_btn_arr pushBack _button_gen;
|
||||
} forEach _button_texts;
|
||||
|
||||
reverse _btn_arr;
|
||||
uiNamespace setVariable ["EPOCH_active_controls", ([_control,_bg,_buffer] + _btn_arr) ];
|
||||
// uiNamespace setVariable ["EPOCH_active_buttons", _btn_arr ];
|
||||
{ctrlSetFocus _x} forEach (uiNamespace getVariable ["EPOCH_active_controls", []]);
|
||||
};
|
||||
|
@ -34,3 +34,17 @@ class player_inspect
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
tooltip = "Examine";
|
||||
};
|
||||
class player_group_menu
|
||||
{
|
||||
condition = "true";
|
||||
action = "call EPOCH_Inventory_Group;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_menu_ca.paa";
|
||||
tooltip = "Group Menu";
|
||||
};
|
||||
class player_group_requests
|
||||
{
|
||||
condition = "!(Epoch_invited_GroupUIDs isEqualTo[])";
|
||||
action = "call EPOCH_Inventory_iGroup;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
|
||||
tooltip = "Group Requests";
|
||||
};
|
||||
|
@ -285,279 +285,3 @@ class CfgClientFunctions
|
||||
};
|
||||
|
||||
/*[[[end]]]*/
|
||||
|
||||
|
||||
class CfgClientFunctions
|
||||
{
|
||||
version = 1;
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
file = "epoch_code\compile";
|
||||
|
||||
class generic {
|
||||
file = "epoch_code\compile";
|
||||
class localCleanup {};
|
||||
class unitSpawnIncrease {};
|
||||
class unitSpawnDecrease {};
|
||||
class QuickTakeAll {};
|
||||
class QuickTakeLoad {};
|
||||
class effectCrypto {};
|
||||
class handleServerMessage {};
|
||||
class updateLoadingScreen {};
|
||||
class EnterBuilding {};
|
||||
class lootTrash {};
|
||||
class debugMonitor {};
|
||||
class interact {};
|
||||
class chopWood {};
|
||||
class fish {};
|
||||
class mineRocks {};
|
||||
class UnisexCheck {};
|
||||
class PutHandler {};
|
||||
class niteLight {};
|
||||
class LootIT {};
|
||||
class supportCopter {};
|
||||
class consumeItem {};
|
||||
class unitSpawn {};
|
||||
class onEachFrame {};
|
||||
class callSapperMigration {};
|
||||
class zombieSpawn {};
|
||||
class makeMarker {};
|
||||
class removeMarker {};
|
||||
};
|
||||
|
||||
class building
|
||||
{
|
||||
class maintainIT {};
|
||||
class lockCheck {};
|
||||
class countdown {};
|
||||
class fnc_SelectTargetBuild {};
|
||||
class isBuildAllowed {};
|
||||
class simulSwap {};
|
||||
class staticMove {};
|
||||
class upgradeBUILD {};
|
||||
class removeBUILD {};
|
||||
class changeWallState {};
|
||||
class checkBuild {};
|
||||
};
|
||||
|
||||
class traders
|
||||
{
|
||||
class startInteract {};
|
||||
class startInteractNPC {};
|
||||
class npcTraderAdd {};
|
||||
class npcTraderAdd2 {};
|
||||
class npcTraderAdd3 {};
|
||||
class startNPCTraderMenu {};
|
||||
class NPCTraderMenuFilter {};
|
||||
class startNpcTrade {};
|
||||
class tradeFilter {};
|
||||
class takeCrypto {};
|
||||
class startBankTransfer {};
|
||||
};
|
||||
|
||||
class interface_event_handlers
|
||||
{
|
||||
class KeyDown {};
|
||||
class KeyUp {};
|
||||
class onChar {};
|
||||
};
|
||||
class event_handlers
|
||||
{
|
||||
class getInMan {};
|
||||
class getOutMan {};
|
||||
};
|
||||
class setup
|
||||
{
|
||||
class masterLoop {};
|
||||
class clientInit {};
|
||||
class clientRespawn {};
|
||||
class clientRevive {};
|
||||
class client_rejectPlayer {};
|
||||
class clientKeyMap {};
|
||||
};
|
||||
|
||||
class p2p_trading
|
||||
{
|
||||
class startTRADEREQ {};
|
||||
class startTrade {};
|
||||
class tradeRequest {};
|
||||
class TradeLoop {};
|
||||
class makep2pTrade {};
|
||||
};
|
||||
class functions
|
||||
{
|
||||
class worldObjectType {};
|
||||
class returnConfig {};
|
||||
class colorRange {};
|
||||
class convertTemp {};
|
||||
class fnc_playerDeath {};
|
||||
class fnc_playerFired {};
|
||||
class fnc_isInsideBuilding {};
|
||||
class fnc_Weather {};
|
||||
class fnc_findSafePos {};
|
||||
class fnc_addItemOverflow {};
|
||||
class pushCustomVar {};
|
||||
class itemData {};
|
||||
class itemPicture {};
|
||||
class itemDisplayName {};
|
||||
class SortArrayByDistance {};
|
||||
class fnc_findRandomPosBehind {};
|
||||
class fnc_stringLeft {};
|
||||
class fnc_findSapperStalkLocation {};
|
||||
class fnc_dirToFuzzy {};
|
||||
class fnc_cursorTarget {};
|
||||
class fnc_triggerAntagonist {};
|
||||
class fnc_playerDeathDetonate {};
|
||||
class fnc_playerDeathMorph {};
|
||||
class fnc_playerSetVariable {};
|
||||
class fnc_playerAttachToAntagonist {};
|
||||
class fnc_dynamicFSM {};
|
||||
class fnc_vectorDivide {};
|
||||
class giveAttributes {};
|
||||
class fnc_spawnEffects {};
|
||||
class fnc_arrayStringToBool {};
|
||||
};
|
||||
class environment
|
||||
{
|
||||
class client_earthQuake {};
|
||||
class client_loadAnimalBrain {};
|
||||
class client_bitePlayer {};
|
||||
};
|
||||
class vehicles
|
||||
{
|
||||
class client_repairVehicle {};
|
||||
class client_lockVehicle {};
|
||||
class client_fillVehicle {};
|
||||
class client_gearVehicle {};
|
||||
};
|
||||
class missions
|
||||
{
|
||||
class mission_accept {};
|
||||
class mission_cage_sapper {};
|
||||
class mission_returnObj {};
|
||||
};
|
||||
class inventory {
|
||||
class selectInventoryItem {};
|
||||
class itemInteractClick {};
|
||||
class itemInteractDblClick {};
|
||||
class uniformArmorCalc {};
|
||||
class gearArmorCalc {};
|
||||
class factorArmor {};
|
||||
class maxArmorInit {};
|
||||
class initUI {};
|
||||
class refeshUI {};
|
||||
};
|
||||
class messaging {
|
||||
file = "epoch_code\gui\scripts\messaging";
|
||||
class message {};
|
||||
class message_old1 {};
|
||||
class message_old2 {};
|
||||
};
|
||||
class looting {
|
||||
class spawnLoot {};
|
||||
};
|
||||
class gui {
|
||||
file = "epoch_code\gui\scripts";
|
||||
class onPause {};
|
||||
class showStats {};
|
||||
class 3DctrlPitchYaw {};
|
||||
class 3DctrlSpin {};
|
||||
class 3DctrlYaw {};
|
||||
class InterruptConfig {};
|
||||
class InterruptConfigActions {};
|
||||
class getIDC {};
|
||||
class guiObjHP {};
|
||||
class secureStorageHandler {};
|
||||
class genderSelection {};
|
||||
class getColorScheme {};
|
||||
class dragControl {};
|
||||
};
|
||||
|
||||
class config {
|
||||
file = "epoch_code\gui\scripts\config";
|
||||
class config_keymap {};
|
||||
};
|
||||
|
||||
class dynamenu {
|
||||
file = "epoch_code\gui\scripts\dynamenu";
|
||||
class dynamicMenu {};
|
||||
class dynamicMenuPopulate {};
|
||||
class dynamicMenuCleanup {};
|
||||
};
|
||||
|
||||
class dynamicHUD {
|
||||
file = "epoch_code\gui\scripts\dynamicHUD";
|
||||
class dynamicHUD_adjust {};
|
||||
class dynamicHUD_loadSave {};
|
||||
class dynamicHUD_start {};
|
||||
class getHUDCtrl {};
|
||||
};
|
||||
|
||||
class gui_craft {
|
||||
file = "epoch_code\gui\scripts\craftingv2";
|
||||
class crafting_animate {};
|
||||
class crafting_ctrl_collector {};
|
||||
class crafting_dev_toggle {};
|
||||
class crafting_getConfig {};
|
||||
class crafting_checkGear {};
|
||||
class crafting_checkNearby {};
|
||||
class crafting_checkResources {};
|
||||
class crafting_craft {};
|
||||
class crafting_progress {};
|
||||
class crafting_load {};
|
||||
class crafting_unload {};
|
||||
class crafting_LB_click {};
|
||||
class crafting_LB_defaults {};
|
||||
class crafting_LB_doubleClick {};
|
||||
class crafting_colorScheme {};
|
||||
};
|
||||
class group {
|
||||
file = "epoch_code\gui\scripts\group";
|
||||
class Group_invitePlayer {};
|
||||
class Group_BtnMod {};
|
||||
class Group_BtnInvite {};
|
||||
class Group_onLoad {};
|
||||
class Group_List {};
|
||||
class Group_Combo {};
|
||||
class Group_BtnLeave {};
|
||||
class Group_BtnKick {};
|
||||
class cGroup_groupText {};
|
||||
class cGroup_onLoad {};
|
||||
class cGroup_BtnCreate {};
|
||||
class iGroup_acceptInvite {};
|
||||
class iGroup_onLoad {};
|
||||
class iGroup_refresh {};
|
||||
class Group_update {};
|
||||
};
|
||||
|
||||
class gui_inventory {
|
||||
file = "epoch_code\gui\scripts\inventory";
|
||||
class Inventory_Group {};
|
||||
class Inventory_iGroup {};
|
||||
};
|
||||
|
||||
class gui_missions {
|
||||
file = "epoch_code\gui\scripts\missions";
|
||||
class mission_refresh {};
|
||||
class mission_description {};
|
||||
};
|
||||
class gui_postProcessing {
|
||||
file = "epoch_code\gui\scripts\post_process";
|
||||
class postprocessCreate {};
|
||||
class postprocessAdjust {};
|
||||
class postprocessDestroy {};
|
||||
class setDrunk {};
|
||||
class setRadiation {};
|
||||
};
|
||||
class worldToScreen {
|
||||
file = "epoch_code\gui\scripts\worldToScreen";
|
||||
class gui3DCooldown {};
|
||||
class gui3DCooldownEH {};
|
||||
class gui3DWorldPos {};
|
||||
class gui3DWorldPosEH {};
|
||||
class gui3DModelPos {};
|
||||
class gui3DModelPosEH {};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -12,217 +12,71 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_config/Configs/CfgEpochClient.hpp
|
||||
*/
|
||||
/*[[[cog from arma_config_tools import *; json_to_arma()]]]*/
|
||||
/*[[[end]]]*/
|
||||
class CfgEpochClient
|
||||
{
|
||||
epochVersion = "0.4.0.0";
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby Military buildings
|
||||
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 = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
JammerPerGroup = 1; // Max Jammer count per Group
|
||||
minJammerDistance = 650; // min distance to next Jammer
|
||||
maxBuildingHeigh = 33; // Max heigh, building is allowed
|
||||
buildingCountLeader = 125; // Building count limit if Player has no group
|
||||
buildingCountPerMember = 5; // Additional building counts per group member
|
||||
storagecountLeader = 10; // Storage count limit if Player has no group
|
||||
storagecountPerMember = 5; // Additional Storage counts per group member
|
||||
maxdoors = 8; // Max allowed doors per Group
|
||||
maxgates = 5; // Max allowed Gates per Group
|
||||
disableRemoteSensors = true; // disableRemoteSensors true
|
||||
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_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[] = {1, 1.88, 22};//Set ambient lighting at night: {1 = enabled/0 = disabled, Brightness of light,Height of light}. Default (Low Ambient): {1.88,22} | Twilight: {7.2,88} | Distant: {12.8,142}
|
||||
ryanZombiesEnabled = true; // enabled by default, false to disable
|
||||
antagonistSpawnIndex[] = {
|
||||
{"Epoch_Cloak_F", 1}, // {"type", limit}
|
||||
{"GreatWhite_F", 2},
|
||||
{"Epoch_Sapper_F",2},
|
||||
{"Epoch_SapperB_F",1},
|
||||
{"I_UAV_01_F",2},
|
||||
{"PHANTOM",1},
|
||||
{"B_Heli_Transport_01_F",1},
|
||||
{"EPOCH_RyanZombie_1",12}
|
||||
};
|
||||
customVarsDefaults[] = {
|
||||
// EPOCH_player + varName, default value, {max,min,warn-high,crit-high,warn-low,crit-low}
|
||||
{"Temp",98.6,{106.7,95,102,105,96,95}},
|
||||
{"Hunger",5000,{5000,0,5001,5001,1250,0}},
|
||||
{"Thirst",2500,{2500,0,2501,2501,625,0}},
|
||||
{"AliveTime",0,{-2,0}},
|
||||
{"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}},
|
||||
{"BloodP",100,{190,0,120,140,70,50}},
|
||||
{"SpawnArray",{},{}},
|
||||
{"Karma",0,{50000,-50000}},
|
||||
{"Alcohol",0,{100,0,35,55,-1,-1}},
|
||||
{"Radiation",0,{100,0,35,55,-1,-1}},
|
||||
{"Nuisance",0,{100,0}},
|
||||
{"MissionArray",{},{}}
|
||||
};
|
||||
|
||||
// HUD configs
|
||||
hudConfigs[] = {
|
||||
/*
|
||||
{
|
||||
{
|
||||
"AnyVarName",
|
||||
"getMissionNamespaceVariable",
|
||||
"defaultValue",
|
||||
{
|
||||
{
|
||||
"VarName1",
|
||||
"getMissionNamespaceVariable",
|
||||
"defaultValue"
|
||||
},
|
||||
">=",
|
||||
0.7
|
||||
},
|
||||
{5000,0,5001,5001,1250,0}
|
||||
},
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa"
|
||||
},
|
||||
{
|
||||
{
|
||||
"Thirst",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
{"Hunger","getPlayerVariable"},">=",1000
|
||||
},
|
||||
{2500,0,2501,2501,625,0}
|
||||
},
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\hunger_ca.paa",
|
||||
|
||||
},
|
||||
*/
|
||||
{
|
||||
{"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"}
|
||||
},
|
||||
{ "Toxicity",
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa"
|
||||
},
|
||||
{
|
||||
"Wet",
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\wet_ca.paa"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
{"HitPoints","getPlayerHitPointDamage","HitLegs"},
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\broken_ca.paa"
|
||||
}
|
||||
};
|
||||
|
||||
// controls max group limit and cost
|
||||
group_upgrade_lvl[] = {4,"1000",6,"1500",8,"2000",10,"2500",12,"3000",14,"3500",16,"4000",32,"8000",64,"16000"};
|
||||
|
||||
// Event handler code
|
||||
displayAddEventHandler[] = {"keyDown","keyUp"};
|
||||
keyDown = "(_this call EPOCH_KeyDown)";
|
||||
keyUp = "(_this call EPOCH_KeyUp)";
|
||||
addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed","HandleRating","GetInMan","GetOutMan"};
|
||||
Respawn = "(_this select 0) call EPOCH_clientRespawn";
|
||||
Put = "(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler";
|
||||
Take = "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck";
|
||||
Fired = "_this call EPOCH_fnc_playerFired;";
|
||||
InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};";
|
||||
InventoryOpened = "_this spawn EPOCH_initUI;_container = _this select 1;_lockedNear = false;if (_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated') then {{if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);};if (locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) then {[] spawn {disableSerialization;waitUntil {!isNull findDisplay 602};_display = findDisplay 602;_ctrl_cargo = _display displayCtrl 6401;_ctrl_ground = _display displayCtrl 6321;_ctrl_cargo ctrlEnable false;ctrlSetFocus _ctrl_ground;ctrlActivate _ctrl_ground;};};";
|
||||
Killed = "_this call EPOCH_fnc_playerDeath;";
|
||||
HandleRating = "EPOCH_playerKarma = EPOCH_playerKarma + (_this select 1);0";
|
||||
HandleDamage = "";
|
||||
HandleHeal = "";
|
||||
Dammaged = "";
|
||||
Hit = "";
|
||||
HitPart = "";
|
||||
GetInMan = "_this call EPOCH_getInMan";
|
||||
GetOutMan = "_this call EPOCH_getOutMan;";
|
||||
|
||||
// suppress these units from spawning near Jammer or Traders
|
||||
nonJammerAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_F","Epoch_SapperB_F","I_UAV_01_F","EPOCH_RyanZombie_1"};
|
||||
nonTraderAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_F","Epoch_SapperB_F","I_UAV_01_F","Epoch_Cloak_F","GreatWhite_F","EPOCH_RyanZombie_1"};
|
||||
nonTraderAIRange = 50;
|
||||
|
||||
// Fishing loots
|
||||
fishLoots[] = {"ItemTuna","ItemSeaBass","ItemSeaBass","ItemSeaBass","ItemTrout","ItemTrout","ItemTrout","ItemTrout","ItemTrout","ItemTrout"};
|
||||
|
||||
// Animal spawn table
|
||||
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"}};
|
||||
|
||||
// Player specific configs
|
||||
playerDeathScreen = "TapOut";
|
||||
playerKilledScreen = "TapOut2";
|
||||
playerDisableRevenge = 0; // 0 = invoke playerKilledScreen when killed by another player, 1 = disable.
|
||||
playerRevengeMinAliveTime = 900; // time in seconds player must be alive before Revenge option is available.
|
||||
|
||||
// banking
|
||||
bankTransferTime[] = {0.0006,1.2,0.06}; // {time per crypto,max wait time,min wait time}
|
||||
|
||||
// include configs
|
||||
epochVersion = "0.4.0.0";
|
||||
sapperRngChance = 100;
|
||||
droneRngChance = 100;
|
||||
buildingNearbyMilitary = 0;
|
||||
buildingNearbyMilitaryRange = 300;
|
||||
buildingNearbyMilitaryClasses[] = {"Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"};
|
||||
restrictedLocations[] = {"NameCityCapital"};
|
||||
restrictedLocationsRange = 300;
|
||||
buildingRequireJammer = 0;
|
||||
buildingCountLimit = 200;
|
||||
buildingJammerRange = 75;
|
||||
JammerPerGroup = 1;
|
||||
minJammerDistance = 650;
|
||||
maxBuildingHeigh = 33;
|
||||
buildingCountLeader = 125;
|
||||
buildingCountPerMember = 5;
|
||||
storagecountLeader = 10;
|
||||
storagecountPerMember = 5;
|
||||
maxdoors = 8;
|
||||
maxgates = 5;
|
||||
disableRemoteSensors = True;
|
||||
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_SapperB_F","I_UAV_01_F","Epoch_Cloak_F"};
|
||||
niteLight[] = {1,1.88,22};
|
||||
ryanZombiesEnabled = True;
|
||||
antagonistSpawnIndex[] = {{"Epoch_Cloak_F",1},{"GreatWhite_F",2},{"Epoch_Sapper_F",2},{"Epoch_SapperB_F",1},{"I_UAV_01_F",2},{"PHANTOM",1},{"B_Heli_Transport_01_F",1},{"EPOCH_RyanZombie_1",12}};
|
||||
customVarsDefaults[] = {{"Temp",98.6,{106.7,95,102,105,96,95}},{"Hunger",5000,{5000,0,5001,5001,1250,0}},{"Thirst",2500,{2500,0,2501,2501,625,0}},{"AliveTime",0,{-2,0}},{"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}},{"BloodP",100,{190,0,120,140,70,50}},{"SpawnArray",{},{}},{"Karma",0,{50000,-50000}},{"Alcohol",0,{100,0,35,55,-1,-1}},{"Radiation",0,{100,0,35,55,-1,-1}},{"Nuisance",0,{100,0}},{"MissionArray",{},{}}};
|
||||
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"}},{"Toxicity","topRight","x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa"},{"Wet","topRight","x\addons\a3_epoch_code\Data\UI\wet_ca.paa"},{"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"},{{"HitPoints","getPlayerHitPointDamage","HitLegs"},"topRight","x\addons\a3_epoch_code\Data\UI\broken_ca.paa"}};
|
||||
group_upgrade_lvl[] = {4,"1000",6,"1500",8,"2000",10,"2500",12,"3000",14,"3500",16,"4000",32,"8000",64,"16000"};
|
||||
displayAddEventHandler[] = {"keyDown","keyUp"};
|
||||
keyDown = "(_this call EPOCH_KeyDown)";
|
||||
keyUp = "(_this call EPOCH_KeyUp)";
|
||||
addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed","HandleRating","GetInMan","GetOutMan"};
|
||||
Respawn = "(_this select 0) call EPOCH_clientRespawn";
|
||||
Put = "(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler";
|
||||
Take = "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck";
|
||||
Fired = "_this call EPOCH_fnc_playerFired;";
|
||||
InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};";
|
||||
InventoryOpened = "setMousePosition[0.5, 0.5]; call EPOCH_showStats;_this spawn EPOCH_initUI;_container = _this select 1;_lockedNear = false;if (_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated') then {{if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);};if (locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) then {[] spawn {disableSerialization;waitUntil {!isNull findDisplay 602};_display = findDisplay 602;_ctrl_cargo = _display displayCtrl 6401;_ctrl_ground = _display displayCtrl 6321;_ctrl_cargo ctrlEnable false;ctrlSetFocus _ctrl_ground;ctrlActivate _ctrl_ground;};};";
|
||||
Killed = "_this call EPOCH_fnc_playerDeath;";
|
||||
HandleRating = "EPOCH_playerKarma = EPOCH_playerKarma + (_this select 1);0";
|
||||
HandleDamage = "";
|
||||
HandleHeal = "";
|
||||
Dammaged = "";
|
||||
Hit = "";
|
||||
HitPart = "";
|
||||
GetInMan = "_this call EPOCH_getInMan";
|
||||
GetOutMan = "_this call EPOCH_getOutMan;";
|
||||
nonJammerAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_F","Epoch_SapperB_F","I_UAV_01_F","EPOCH_RyanZombie_1"};
|
||||
nonTraderAI[] = {"B_Heli_Transport_01_F","PHANTOM","EPOCH_Sapper_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"};
|
||||
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"}};
|
||||
playerDeathScreen = "TapOut";
|
||||
playerKilledScreen = "TapOut2";
|
||||
playerDisableRevenge = 0;
|
||||
playerRevengeMinAliveTime = 900;
|
||||
bankTransferTime[] = {0.0006,1.2,0.06};
|
||||
#include "CfgEpochClient\Altis.hpp"
|
||||
#include "CfgEpochClient\australia.hpp"
|
||||
#include "CfgEpochClient\Bornholm.hpp"
|
||||
#include "CfgEpochClient\Chernarus_Summer.hpp"
|
||||
#include "CfgEpochClient\Chernarus.hpp"
|
||||
#include "CfgEpochClient\Chernarus.hpp"
|
||||
#include "CfgEpochClient\Esseker.hpp"
|
||||
#include "CfgEpochClient\ProvingGrounds_PMC.hpp"
|
||||
#include "CfgEpochClient\Sara_dbe1.hpp"
|
||||
@ -230,72 +84,73 @@ class CfgEpochClient
|
||||
#include "CfgEpochClient\SaraLite.hpp"
|
||||
#include "CfgEpochClient\Stratis.hpp"
|
||||
#include "CfgEpochClient\takistan.hpp"
|
||||
#include "CfgEpochClient\utes.hpp"
|
||||
#include "CfgEpochClient\vr.hpp"
|
||||
#include "CfgEpochClient\utes.hpp"
|
||||
#include "CfgEpochClient\vr.hpp"
|
||||
#include "CfgEpochClient\Zargabad.hpp"
|
||||
#include "CfgEpochClient\Tanoa.hpp"
|
||||
#include "CfgEpochClient\WorldInteractions.hpp"
|
||||
#include "CfgEpochClient\Tanoa.hpp"
|
||||
#include "CfgEpochClient\WorldInteractions.hpp"
|
||||
};
|
||||
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.
|
||||
detonateDistMax = 8;
|
||||
groanTrig = 16;
|
||||
sRange = 300;
|
||||
smellDist = 24;
|
||||
reflexSpeed = 0.25;
|
||||
nestChance = 2;
|
||||
hideLevel = 72;
|
||||
chargeLevel = 52;
|
||||
};
|
||||
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 !
|
||||
UAVMinDist = 48;
|
||||
UAVMaxDist = 180;
|
||||
UAVHeight = 100;
|
||||
};
|
||||
class CfgEpochUAVSupport
|
||||
{
|
||||
unitTypes[] = {"I_Soldier_EPOCH", "I_Soldier2_EPOCH", "I_Soldier3_EPOCH"};//Selects from randomly
|
||||
maxUnitNum = 2; //Maximum number of units spawned when UAV spots target.
|
||||
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;
|
||||
unitTypes[] = {"I_Soldier_EPOCH","I_Soldier2_EPOCH","I_Soldier3_EPOCH"};
|
||||
maxUnitNum = 2;
|
||||
minAISkill = 0.2;
|
||||
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 CfgEpochAirDrop
|
||||
{
|
||||
AirDropFreq = 1200; //AirDropChance, to decide if Air drop occurs, will only be checked once per AirDropFreq time period, for each player. Min value = 120.
|
||||
AirDropChance = 6; //Percentage chance of air drop, for current player. Checked every AirDropFreq and upon antagonists spawn trigger. -1 To disable.
|
||||
AirDropFreq = 1200;
|
||||
AirDropChance = 6;
|
||||
};
|
||||
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)
|
||||
cRange = 300;
|
||||
cAggression = 75;
|
||||
attackFrequency = 120;
|
||||
attackDistance = 38;
|
||||
targetChangeFrequency = 42;
|
||||
teleportChance = 66;
|
||||
hoverFrequency = 1280;
|
||||
};
|
||||
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.
|
||||
// maxNumber = 12; //Maximum number of zombies within range,
|
||||
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"};
|
||||
zeds[] = {"EPOCH_RyanZombie_1","EPOCH_RyanZombie_2","EPOCH_RyanZombie_3","EPOCH_RyanZombie_4","EPOCH_RyanZombie_5"};
|
||||
attackDist = 1.6;
|
||||
range = 45;
|
||||
disposeRange = 800;
|
||||
smell[] = {38,0.42};
|
||||
sight[] = {28,0.72};
|
||||
hearing[] = {108,0.68};
|
||||
memory[] = {480,0.8};
|
||||
reflexSpeed = 0.25;
|
||||
moans[] = {"ryanzombiesmoan1","ryanzombiesmoan2","ryanzombiesmoan3","ryanzombiesmoan4"};
|
||||
screams[] = {"ryanzombiesscream1","ryanzombiesscream2","ryanzombiesscream3","ryanzombiesscream4","ryanzombiesscream5","ryanzombiesscream6","ryanzombiesscream7","ryanzombiesscream8","ryanzombiesscream9"};
|
||||
};
|
||||
|
||||
/*[[[end]]]*/
|
||||
|
@ -413,7 +413,7 @@
|
||||
"Take": "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck",
|
||||
"Fired": "_this call EPOCH_fnc_playerFired;",
|
||||
"InventoryClosed": "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};",
|
||||
"InventoryOpened": "_this spawn EPOCH_initUI;_container = _this select 1;_lockedNear = false;if (_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated') then {{if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);};if (locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) then {[] spawn {disableSerialization;waitUntil {!isNull findDisplay 602};_display = findDisplay 602;_ctrl_cargo = _display displayCtrl 6401;_ctrl_ground = _display displayCtrl 6321;_ctrl_cargo ctrlEnable false;ctrlSetFocus _ctrl_ground;ctrlActivate _ctrl_ground;};};",
|
||||
"InventoryOpened": "setMousePosition[0.5, 0.5]; call EPOCH_showStats;_this spawn EPOCH_initUI;_container = _this select 1;_lockedNear = false;if (_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated') then {{if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);};if (locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) then {[] spawn {disableSerialization;waitUntil {!isNull findDisplay 602};_display = findDisplay 602;_ctrl_cargo = _display displayCtrl 6401;_ctrl_ground = _display displayCtrl 6321;_ctrl_cargo ctrlEnable false;ctrlSetFocus _ctrl_ground;ctrlActivate _ctrl_ground;};};",
|
||||
"Killed": "_this call EPOCH_fnc_playerDeath;",
|
||||
"HandleRating": "EPOCH_playerKarma = EPOCH_playerKarma + (_this select 1);0",
|
||||
"HandleDamage": "",
|
||||
|
@ -1 +1 @@
|
||||
build=606;
|
||||
build=619;
|
||||
|
@ -1 +1 @@
|
||||
build=606;
|
||||
build=619;
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
build=606;
|
||||
build=619;
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
build=606;
|
||||
build=619;
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user