0.3.5 b023

This commit is contained in:
vbawol 2015-11-01 01:28:48 -06:00
parent 981170c5f0
commit 2b5f56d2a9
173 changed files with 195 additions and 81 deletions

View File

@ -1,3 +1,4 @@
[Added] Hesco barrier.
[Added] Persistent Spike traps. [Added] Persistent Spike traps.
[Added] New interaction system. [Added] New interaction system.
[Added] Documentation on server core framework functions and hive calls. [Added] Documentation on server core framework functions and hive calls.

View File

@ -0,0 +1,14 @@
@ECHO OFF
SET STEAMUN=admin@youremail.net
SET STEAMPW=chamgeme
SET ARMASVRPATH=C:\Arma3Server
SET ARMAAPPID=107410
SET ARMAWORKSHOPID=421839251
:: remove mod folder
rd /s/q "%ARMASVRPATH%\@Epoch"
:: update workshop mod
START "" /WAIT steamcmd.exe +login %STEAMUN% %STEAMPW% +workshop_download_item %ARMAAPPID% %ARMAWORKSHOPID% validate +quit
:: copy files back to server
xcopy /s/e/y/q/i "steamapps\workshop\content\%ARMAAPPID%\%ARMAWORKSHOPID%" "%ARMASVRPATH%\@Epoch"
:: steamcmd.exe +login %STEAMUN% %STEAMPW% +force_install_dir "%ARMASVRPATH%" "+app_update %ARMAAPPID%" validate +quit

View File

@ -1 +1 @@
5 "" !WeaponHolderSimulated !Shot !"(Safe|LockBox|FirePlace|PlotPole|Jack|SolarGen)_EPOCH" !"Jack_SIM_EPOCH" !"LockBox_Ghost_EPOCH" !"CinderWallHalf_Ghost_EPOCH" !"(Tipi|Workbench|StorageShelf|Wood(Floor|LargeWall|Stairs|Ramp|Ladder|Tower)_Ghost_EPOCH" !"Foundation_Ghost_EPOCH" !"Land_Cages_F" !"Epoch_Sapper_F" 5 "" !WeaponHolderSimulated !Shot !"(Safe|LockBox|FirePlace|PlotPole|Jack|SolarGen)_EPOCH" !"Jack_SIM_EPOCH" !"LockBox_Ghost_EPOCH" !"CinderWallHalf_Ghost_EPOCH" !"(Tipi|Workbench|StorageShelf|Wood(Floor|LargeWall|Stairs|Ramp|Ladder|Tower)_Ghost_EPOCH" !="Hesco3_Ghost_EPOCH" !"Foundation_Ghost_EPOCH" !"Land_Cages_F" !"Epoch_Sapper_F"

View File

@ -1,3 +1,3 @@
5 "" !="I_UAV_01_F" !="(I|B|O)_UAV_AI" !"_EPOCH" !="B_65x39_Minigun_Caseless_Red_splash" !="B_762x51_Minigun_Tracer_Yellow_splash" !="B_(Swing|Stick)" !"^SmokeShell" !"^G_40mm_" !"^F_40mm_" !"Sub_F_" !"^F_Signal_" !="mini_Grenade" !="GrenadeHand" !="LaserTarget(C|W|E)" !"^Chemlight_" !="(ClaymoreDirectionalMine|DemoCharge|SatchelCharge)_Remote_Ammo" !="SLAMDirectionalMine_Wire_Ammo" !="(CMflare_Chaff|Sapper_Charge|SapperB_Charge|ATMine_Range)_Ammo" !="APERS(TripMine_Wire|BoundingMine_Range|Mine_Range)_Ammo" !="Epoch_(Sapper|SapperB|Cloak)_F" !="GreatWhite_F" !="groundWeaponHolder" !="WeaponHolderSimulated" !="Epoch_(Male|Female)_F" !"Supply[0-9]" !"Steerable_Parachute_F" !="Epoch_Female_CamoRed_F" !="Land_Cages_F" !="(O|I|B)_UAV_01_backpack_F" !="I_(helipilot|helicrew)_F" !="#smokesource" !="SmokeLauncherAmmo" 5 "" !="I_UAV_01_F" !="(I|B|O)_UAV_AI" !"_EPOCH" !="B_65x39_Minigun_Caseless_Red_splash" !="B_762x51_Minigun_Tracer_Yellow_splash" !="B_(Swing|Stick)" !"^SmokeShell" !"^G_40mm_" !"^F_40mm_" !"Sub_F_" !"^F_Signal_" !="mini_Grenade" !="GrenadeHand" !="LaserTarget(C|W|E)" !"^Chemlight_" !="(ClaymoreDirectionalMine|DemoCharge|SatchelCharge)_Remote_Ammo" !="SLAMDirectionalMine_Wire_Ammo" !="(CMflare_Chaff|Sapper_Charge|SapperB_Charge|ATMine_Range)_Ammo" !="APERS(TripMine_Wire|BoundingMine_Range|Mine_Range)_Ammo" !="Epoch_(Sapper|SapperB|Cloak)_F" !="GreatWhite_F" !="groundWeaponHolder" !="WeaponHolderSimulated" !="Epoch_(Male|Female)_F" !"Supply[0-9]" !"Steerable_Parachute_F" !="Epoch_Female_CamoRed_F" !="Land_Cages_F" !="(O|I|B)_UAV_01_backpack_F" !="I_(helipilot|helicrew)_F" !="#smokesource" !="SmokeLauncherAmmo"
5 "_EPOCH" !="(SapperHead|Jack|SolarGen)_SIM_EPOCH" !="Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower)_EPOCH" !="(Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH" !="(Tipi|StorageShelf|Safe|LockBox|FirePlace|FirePlaceOn|PlotPole|SolarGen|Jack|Freezer|Tarp|CinderWallHalf|Bobber)_EPOCH" !="I_(Soldier[1-3]|Soldier)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="(Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH" !="(Spike|Metal)_TRAP_SIM_EPOCH" !="(WoodFoundation|Foundation)_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH" 5 "_EPOCH" !="(SapperHead|Jack|SolarGen)_SIM_EPOCH" !="Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower)_EPOCH" !="(Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH" !="(Tipi|StorageShelf|Safe|LockBox|FirePlace|FirePlaceOn|PlotPole|SolarGen|Jack|Freezer|Tarp|CinderWallHalf|Bobber)_EPOCH" !="I_(Soldier[1-3]|Soldier)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="(Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH" !="Hesco3(_Ghost|_SIM|)_EPOCH" !="(Spike|Metal)_TRAP_SIM_EPOCH" !="(WoodFoundation|Foundation)_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH"
5 SeaGull 5 SeaGull

Binary file not shown.

View File

@ -94,7 +94,7 @@ if (!isNull EPOCH_currentTarget && vehicle player == player) then {
}; };
if (!isNull EPOCH_stabilityTarget) then { if (!isNull EPOCH_stabilityTarget) then {
if (cursorTarget != EPOCH_stabilityTarget) then { if (([10] call EPOCH_fnc_cursorTarget) != EPOCH_stabilityTarget) then {
EPOCH_stabilityTarget = objNull; EPOCH_stabilityTarget = objNull;
} }
else { else {

View File

@ -30,7 +30,7 @@ if (EPOCH_playerCrypto > 0) then {
_dt = [format["<t size=""0.8"" shadow=""0"" color=""#99ffffff"">Cost %1 Krypto to maintain base.</t>", _maintainCount], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; _dt = [format["<t size=""0.8"" shadow=""0"" color=""#99ffffff"">Cost %1 Krypto to maintain base.</t>", _maintainCount], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
} else { } else {
_dt = ["<t size=""0.8"" shadow=""0"" color=""#99ffffff"">Nothing needs maintained.</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; _dt = ["<t size=""0.8"" shadow=""0"" color=""#99ffffff"">Nothing needs Maintaining</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
}; };
} else { } else {
_dt = ["<t size=""0.8"" shadow=""0"" color=""#99ffffff"">You need Krypto to maintain a base.</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; _dt = ["<t size=""0.8"" shadow=""0"" color=""#99ffffff"">You need Krypto to maintain a base.</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;

View File

@ -0,0 +1,4 @@
params [["_distance",10], ["_lod1", "VIEW"], ["_lod2","FIRE"], ["_sort",true]];
_ins = lineIntersectsSurfaces [AGLToASL positionCameraToWorld [0,0,0],AGLToASL positionCameraToWorld [0,0,_distance],player,objNull,_sort,1,_lod1,_lod2];
if (_ins isEqualTo []) exitWith { objNull };
(_ins select 0 param [3,objNull])

View File

@ -185,6 +185,8 @@ _fadeUI = {
}; };
}; };
_cursorTarget = objNull;
// Master Loop Start // Master Loop Start
while {alive player} do { while {alive player} do {
@ -198,17 +200,15 @@ while {alive player} do {
// current target // current target
_currentTarget = objNull; _currentTarget = objNull;
if (!isNull cursorTarget && !(EPOCH_target isEqualTo cursorTarget)) then { _cursorTarget = ([10] call EPOCH_fnc_cursorTarget);
_distance = player distance cursorTarget; if (!isNull _cursorTarget && {!(EPOCH_target isEqualTo _cursorTarget)}) then {
if (_distance < 9) then { if (_cursorTarget isKindOf "ThingX" || _cursorTarget isKindOf "Constructions_static_F" || _cursorTarget isKindOf "Constructions_foundation_F" || _cursorTarget isKindOf "WeaponHolder" || _cursorTarget isKindOf "AllVehicles" || _cursorTarget isKindOf "PlotPole_EPOCH") then{
if (cursorTarget isKindOf "ThingX" || cursorTarget isKindOf "Constructions_static_F" || cursorTarget isKindOf "Constructions_foundation_F" || cursorTarget isKindOf "WeaponHolder" || cursorTarget isKindOf "AllVehicles" || cursorTarget isKindOf "PlotPole_EPOCH") then{ if (_cursorTarget isKindOf "Animal_Base_F") then {
if (cursorTarget isKindOf "Animal_Base_F") then { if !(alive _cursorTarget) then {
if !(alive cursorTarget) then { _currentTarget = _cursorTarget;
_currentTarget = cursorTarget;
};
} else {
_currentTarget = cursorTarget;
}; };
} else {
_currentTarget = _cursorTarget;
}; };
}; };
}; };

View File

@ -220,6 +220,8 @@ class CfgClientFunctions
class fnc_stringLeft {}; class fnc_stringLeft {};
class fnc_findSapperStalkLocation {}; class fnc_findSapperStalkLocation {};
class fnc_dirToFuzzy {}; class fnc_dirToFuzzy {};
class fnc_cursorTarget {};
}; };
class environment class environment
@ -276,14 +278,14 @@ class CfgClientFunctions
file = "\x\addons\a3_epoch_code\gui\scripts\config"; file = "\x\addons\a3_epoch_code\gui\scripts\config";
class config_keymap {}; class config_keymap {};
}; };
class dynamenu { class dynamenu {
file = "\x\addons\a3_epoch_code\gui\scripts\dynamenu"; file = "\x\addons\a3_epoch_code\gui\scripts\dynamenu";
class dynamicMenu {}; class dynamicMenu {};
class dynamicMenuPopulate {}; class dynamicMenuPopulate {};
class dynamicMenuCleanup {}; class dynamicMenuCleanup {};
}; };
class gui_craft { class gui_craft {
file = "\x\addons\a3_epoch_code\gui\scripts\craftingv2"; file = "\x\addons\a3_epoch_code\gui\scripts\craftingv2";
class crafting_animate {}; class crafting_animate {};
@ -301,7 +303,7 @@ class CfgClientFunctions
class crafting_LB_defaults {}; class crafting_LB_defaults {};
class crafting_LB_doubleClick {}; class crafting_LB_doubleClick {};
class crafting_colorScheme {}; class crafting_colorScheme {};
}; };
class group { class group {
file = "\x\addons\a3_epoch_code\gui\scripts\group"; file = "\x\addons\a3_epoch_code\gui\scripts\group";
class Group_invitePlayer {}; class Group_invitePlayer {};

View File

@ -42,7 +42,7 @@ class ScrollBar;
#include "Epoch_GUI_ClientConfigs.hpp" #include "Epoch_GUI_ClientConfigs.hpp"
#include "Epoch_GUI_rmx.hpp" #include "Epoch_GUI_rmx.hpp"
class RscTitles class RscTitles
{ {
#include "Epoch_RscTitles.hpp" #include "Epoch_RscTitles.hpp"
}; };
@ -322,35 +322,35 @@ class SelectGender
class SelectGender class SelectGender
{ {
idd = -7; idd = -7;
movingEnable = 0; movingEnable = 0;
enableSimulation = 1; enableSimulation = 1;
onLoad = "['Select your gender',10] call Epoch_dynamicText; setMousePosition [0.5, 0.5]; [findDisplay -7] call BIS_fnc_guiEffectTiles;"; onLoad = "['Select your gender',10] call Epoch_dynamicText; setMousePosition [0.5, 0.5];";
class ControlsBackground class ControlsBackground
{ {
class Background: RscPicture //Replace with custom background class Background: RscPicture //Replace with custom background
{ {
idc = 88800; idc = 88800;
text = "x\addons\a3_epoch_code\data\EpochLogo.paa"; text = "x\addons\a3_epoch_code\Data\gender_selection.paa";
x = 0; x = safezoneX - safezoneW * 0.1;
y = 0.5; y = safezoneY - safezoneH * 0.1;
w = 1; w = safezoneW + safezoneW * 0.3;
h = 0.25; h = safezoneH + safezoneH * 0.3;
}; };
}; };
class Objects class Objects
{ {
class female class female
{ {
idc = 88801; idc = 88801;
type = 82; type = 82;
model = "\x\addons\a3_epoch_assets\models\clone_female.p3d"; model = "\x\addons\a3_epoch_assets\models\clone_female.p3d";
scale = 0.5; scale = 0.5;
direction[] = {0, 1, 0}; direction[] = {0, 1, 0};
up[] = {0, 0, 1}; up[] = {0, 0, 1};
x = -1; x = -1;
z = 1; z = 1;
@ -1375,7 +1375,7 @@ class InteractNPC
h = 0.08; h = 0.08;
action = "call EPOCH_startNPCTraderMenu;"; action = "call EPOCH_startNPCTraderMenu;";
}; };
class RscButtonMenu_2403: RscButtonMenu class RscButtonMenu_2403: RscButtonMenu
{ {
idc = 2403; idc = 2403;
@ -1386,7 +1386,7 @@ class InteractNPC
h = 0.08; h = 0.08;
action = "closeDialog 0; player action [""Gear"", cursorTarget];"; action = "closeDialog 0; player action [""Gear"", cursorTarget];";
}; };
class RscButtonMenu_2404: RscButtonMenu class RscButtonMenu_2404: RscButtonMenu
{ {
idc = 2405; idc = 2405;
@ -1617,7 +1617,7 @@ class InteractBaseBuilding
h = 0.08; h = 0.08;
action = "closeDialog 0; cursorTarget call EPOCH_fnc_SelectTargetBuild;"; action = "closeDialog 0; cursorTarget call EPOCH_fnc_SelectTargetBuild;";
}; };
}; };
}; };
*/ */
@ -2474,7 +2474,7 @@ class RscDisplayInventory_DLCTemplate
}; };
}; };
}; };
class RscDisplayInventory class RscDisplayInventory
{ {
@ -3311,13 +3311,13 @@ class RscDisplayInventory
class EpochBtnBG : IGUIBack class EpochBtnBG : IGUIBack
{ {
idc = -10; idc = -10;
//x = 0.433468 * safezoneW + safezoneX; //x = 0.433468 * safezoneW + safezoneX;
//y = 0.75872 * safezoneH + safezoneY; //y = 0.75872 * safezoneH + safezoneY;
//w = 0.30231 * safezoneW; //w = 0.30231 * safezoneW;
//h = 0.0337482 * safezoneH; //h = 0.0337482 * safezoneH;
x = "14.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; x = "14.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "23.9 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; y = "23.9 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "24.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; w = "24.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
@ -3330,12 +3330,12 @@ class RscDisplayInventory
idc = -11; idc = -11;
text = "Group Menu"; text = "Group Menu";
onMouseButtonDown = "_this call EPOCH_Inventory_Group"; onMouseButtonDown = "_this call EPOCH_Inventory_Group";
//x = 0.437079 * safezoneW + safezoneX; //x = 0.437079 * safezoneW + safezoneX;
//y = 0.764 * safezoneH + safezoneY; //y = 0.764 * safezoneH + safezoneY;
//w = 0.0711741 * safezoneW; //w = 0.0711741 * safezoneW;
//h = 0.022 * safezoneH; //h = 0.022 * safezoneH;
x = "33.2 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; x = "33.2 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
@ -3346,12 +3346,12 @@ class RscDisplayInventory
idc = -12; idc = -12;
text = "Requests"; text = "Requests";
onMouseButtonDown = "_this call EPOCH_Inventory_iGroup"; onMouseButtonDown = "_this call EPOCH_Inventory_iGroup";
//x = 0.511347 * safezoneW + safezoneX; //x = 0.511347 * safezoneW + safezoneX;
//y = 0.764 * safezoneH + safezoneY; //y = 0.764 * safezoneH + safezoneY;
//w = 0.0711741 * safezoneW; //w = 0.0711741 * safezoneW;
//h = 0.022 * safezoneH; //h = 0.022 * safezoneH;
x = "27.0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; x = "27.0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
@ -3362,12 +3362,12 @@ class RscDisplayInventory
idc = -13; idc = -13;
text = "EXAMINE"; text = "EXAMINE";
onMouseButtonDown = "call EPOCH_consumeItem"; onMouseButtonDown = "call EPOCH_consumeItem";
//x = 0.585617 * safezoneW + safezoneX; //x = 0.585617 * safezoneW + safezoneX;
//y = 0.764 * safezoneH + safezoneY; //y = 0.764 * safezoneH + safezoneY;
//w = 0.0711741 * safezoneW; //w = 0.0711741 * safezoneW;
//h = 0.022 * safezoneH; //h = 0.022 * safezoneH;
x = "14.62 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; x = "14.62 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
@ -3378,12 +3378,12 @@ class RscDisplayInventory
idc = -14; idc = -14;
text = "CRAFT"; text = "CRAFT";
onMouseButtonDown = "EPOCH_CraftingItem call EPOCH_crafting_load;"; onMouseButtonDown = "EPOCH_CraftingItem call EPOCH_crafting_load;";
//x = 0.659883 * safezoneW + safezoneX; //x = 0.659883 * safezoneW + safezoneX;
//y = 0.764 * safezoneH + safezoneY; //y = 0.764 * safezoneH + safezoneY;
//w = 0.0711741 * safezoneW; //w = 0.0711741 * safezoneW;
//h = 0.022 * safezoneH; //h = 0.022 * safezoneH;
x = "20.8 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; x = "20.8 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; y = "24 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; w = "6 * ( ((safezoneW / safezoneH) min 1.2) / 40)";

View File

@ -2,6 +2,9 @@ _min = safezoneX + 0.4 * safezoneW;
_max = safezoneX + 0.6 * safezoneW; _max = safezoneX + 0.6 * safezoneW;
_r = linearConversion [_min, _max, _this, 0.2, -1, true]; _r = linearConversion [_min, _max, _this, 0.2, -1, true];
_r2 = linearConversion [_min, _max, _this, 2, 0.8, true]; _r2 = linearConversion [_min, _max, _this, 2, 0.8, true];
_r3 = linearConversion [_min, _max, _this, safezoneX, safezoneX - safezoneW * 0.3, true];
(findDisplay -7 displayCtrl 88801) ctrlSetPosition [_r,1,1.8]; (findDisplay -7 displayCtrl 88801) ctrlSetPosition [_r,1,1.8];
(findDisplay -7 displayCtrl 88802) ctrlSetPosition [_r2,1,1.8]; (findDisplay -7 displayCtrl 88802) ctrlSetPosition [_r2,1,1.8];
(findDisplay -7 displayCtrl 88800) ctrlSetPosition [_r3,safezoneY - safezoneH * 0.1];
(findDisplay -7 displayCtrl 88800) ctrlCommit 0;

View File

@ -21,7 +21,7 @@ if (isNull _display) then {
findDisplay 46 createDisplay "rmx_dynamenu"; findDisplay 46 createDisplay "rmx_dynamenu";
}; };
}; };
_selfOrTarget = if !(_hasTarget) then {"self"} else {"target"}; _selfOrTarget = if !(_hasTarget) then {"self"} else {"target"};
_checkConfigs = { _checkConfigs = {
@ -42,7 +42,7 @@ _checkConfigs = {
{ {
_c = _c + (format [" >> '%1'",_x]); _c = _c + (format [" >> '%1'",_x]);
} forEach _arr; } forEach _arr;
(call compile _c) (call compile _c)
}; };
}; };
@ -51,7 +51,7 @@ _checkConfigs = {
case "build_upgrade": case "build_upgrade":
{ {
if !(isClass _config) exitWith {_in = "";}; if !(isClass _config) exitWith {_in = "";};
{ {
_dName = getText(configfile >> "CfgVehicles" >> (_x select 0) >> "DisplayName"); _dName = getText(configfile >> "CfgVehicles" >> (_x select 0) >> "DisplayName");
_tTip = ""; _tTip = "";
@ -62,30 +62,30 @@ _checkConfigs = {
_tTip = _tTip + format ["[%1 x %2] ", _x select 1, getText(_c >> "DisplayName")]; _tTip = _tTip + format ["[%1 x %2] ", _x select 1, getText(_c >> "DisplayName")];
if (_icon isEqualTo "") then {_icon = getText (_c >> "picture")}; if (_icon isEqualTo "") then {_icon = getText (_c >> "picture")};
} forEach (_x select 1); } forEach (_x select 1);
_tooltip = format ["%1 >> %2 ",_dName,_tTip]; _tooltip = format ["%1 >> %2 ",_dName,_tTip];
_action = format ["[dyna_cursorTarget,%1] call EPOCH_upgradeBUILDv2; true call Epoch_dynamicMenuCleanup;",_forEachIndex]; _action = format ["[dyna_cursorTarget,%1] call EPOCH_upgradeBUILDv2; true call Epoch_dynamicMenuCleanup;",_forEachIndex];
_buttonSettings pushBack [ _buttonSettings pushBack [
_icon, _icon,
_tooltip, _tooltip,
_action _action
]; ];
} forEach (getArray (_config >> "upgradeBuilding")); } forEach (getArray (_config >> "upgradeBuilding"));
}; };
default default
{ {
_configs = "true" configClasses _config; _configs = "true" configClasses _config;
{ {
if (call compile (getText(_x >> "condition"))) then { if (call compile (getText(_x >> "condition"))) then {
if (_selfOrTarget isEqualTo "self" || dyna_distance) then { if (_selfOrTarget isEqualTo "self" || dyna_distance) then {
_subclasses = configProperties [_x, "isClass _x",true]; _subclasses = configProperties [_x, "isClass _x",true];
_action = if (_subclasses isEqualTo []) then { _action = if (_subclasses isEqualTo []) then {
format ["%1; true call Epoch_dynamicMenuCleanup;",getText(_x >> "action")] format ["%1; true call Epoch_dynamicMenuCleanup;",getText(_x >> "action")]
} else { } else {

View File

@ -4,7 +4,8 @@ _close = param [0,false,[false]];
_cleanupVars = { _cleanupVars = {
_cfg = "CfgActionMenu" call EPOCH_returnConfig; _cfg = "CfgActionMenu" call EPOCH_returnConfig;
{ {
call compile (format ["%1 = nil;",configName _x]); // call compile (format ["%1 = nil;",configName _x]);
missionNamespace setVariable [configName _x,nil];
} count (configProperties [(_cfg >> "variableDefines"),"true",false]); } count (configProperties [(_cfg >> "variableDefines"),"true",false]);
}; };
@ -18,7 +19,7 @@ if (uiNamespace getVariable ["rmx_var_dynamicMenuInProgress",false]) then {
call _cleanupVars; call _cleanupVars;
[rmx_var_dynamenuPPHandle, 1, [0]] call epoch_postprocessAdjust; [rmx_var_dynamenuPPHandle, 1, [0]] call epoch_postprocessAdjust;
rmx_var_dynaControls = nil; rmx_var_dynaControls = nil;
rmx_var_dynamenuPPHandle call epoch_postprocessDestroy; rmx_var_dynamenuPPHandle call epoch_postprocessDestroy;

View File

@ -2,27 +2,26 @@ class CfgActionMenu
{ {
class variableDefines //must be global, nil when menu closes class variableDefines //must be global, nil when menu closes
{ {
dyna_cursorTarget = "cursorTarget"; dyna_cursorTarget = "([10] call EPOCH_fnc_cursorTarget)";
dyna_cursorTargetType = "typeOf cursorTarget"; dyna_cursorTargetType = "typeOf ([10] call EPOCH_fnc_cursorTarget)";
dyna_inVehicle = "vehicle player != player"; dyna_inVehicle = "vehicle player != player";
dyna_itemsPlayer = "items player"; dyna_itemsPlayer = "items player";
dyna_distance = "(player distance dyna_cursorTarget) < 5"; dyna_distance = "(player distance dyna_cursorTarget) < 5";
dyna_buildMode = "cursorTarget call EPOCH_checkBuild;"; dyna_buildMode = "([10] call EPOCH_fnc_cursorTarget) call EPOCH_checkBuild;";
dyna_isVehicle = "if !(isNull dyna_cursorTarget && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'LandVehicle') || (dyna_cursorTarget isKindOf 'Air') || (dyna_cursorTarget isKindOf 'Ship') || (dyna_cursorTarget isKindOf 'Tank'))} else {false}"; dyna_isVehicle = "if !(isNull dyna_cursorTarget && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'LandVehicle') || (dyna_cursorTarget isKindOf 'Air') || (dyna_cursorTarget isKindOf 'Ship') || (dyna_cursorTarget isKindOf 'Tank'))} else {false}";
dyna_isTrader = "if !(isNull dyna_cursorTarget && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'Man') && (dyna_cursorTarget != player) && (!isPlayer dyna_cursorTarget) && ((dyna_cursorTarget getVariable['AI_SLOT', -1]) != -1))} else {false}"; dyna_isTrader = "if !(isNull dyna_cursorTarget && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'Man') && (dyna_cursorTarget != player) && (!isPlayer dyna_cursorTarget) && ((dyna_cursorTarget getVariable['AI_SLOT', -1]) != -1))} else {false}";
dyna_locked = "locked dyna_cursorTarget in [2,3]"; dyna_locked = "locked dyna_cursorTarget in [2,3]";
dyna_lockedInVehicle = "locked vehicle player in [2,3]"; dyna_lockedInVehicle = "locked vehicle player in [2,3]";
}; };
class self class self
{ {
#include "CfgActionMenu_self.hpp" #include "CfgActionMenu_self.hpp"
}; };
class target class target
{ {
#include "CfgActionMenu_target.hpp" #include "CfgActionMenu_target.hpp"
}; };
}; };

View File

@ -60,7 +60,7 @@ class CfgAmmo
hit = 10; hit = 10;
indirectHit = 5; indirectHit = 5;
indirectHitRange = 3; indirectHitRange = 3;
model = "\x\addons\a3_epoch_assets\models\stick.p3d"; model = "\x\addons\a3_epoch_assets\models\sticks.p3d";
mineModelDisabled = "\x\addons\a3_epoch_assets\models\sticks.p3d"; mineModelDisabled = "\x\addons\a3_epoch_assets\models\sticks.p3d";
defaultMagazine = "APERSTripMine_Wire_Mag"; defaultMagazine = "APERSTripMine_Wire_Mag";
icon = "iconExplosiveAP"; icon = "iconExplosiveAP";
@ -91,7 +91,7 @@ class CfgAmmo
hit = 15; hit = 15;
indirectHit = 8; indirectHit = 8;
indirectHitRange = 4; indirectHitRange = 4;
model = "\x\addons\a3_epoch_assets\models\stick.p3d"; model = "\x\addons\a3_epoch_assets\models\sticks.p3d";
mineModelDisabled = "\x\addons\a3_epoch_assets\models\sticks.p3d"; mineModelDisabled = "\x\addons\a3_epoch_assets\models\sticks.p3d";
defaultMagazine = "APERSTripMine_Wire_Mag"; defaultMagazine = "APERSTripMine_Wire_Mag";
icon = "iconExplosiveAP"; icon = "iconExplosiveAP";

View File

@ -1158,6 +1158,19 @@ class CfgMagazines
interactText = "BUILD"; interactText = "BUILD";
buildClass = "TankTrap_SIM_EPOCH"; buildClass = "TankTrap_SIM_EPOCH";
}; };
class KitHesco3 : CA_Magazine
{
model = "\x\addons\a3_epoch_assets_1\models\supply_crate.p3d";
picture = "\x\addons\a3_epoch_assets_1\pictures\equip_wooden_crate_ca.paa";
displayName = "Hesco Wide";
scope = 2;
descriptionShort = "Hesco Wide";
count = 1;
mass = 20;
interactAction = 3; // 0 = examine, 1 = eat, 2 = drink, 3 = build
interactText = "BUILD";
buildClass = "Hesco3_EPOCH";
};
class KitWoodLadder : CA_Magazine class KitWoodLadder : CA_Magazine
{ {
model = "\x\addons\a3_epoch_assets_1\models\supply_crate.p3d"; model = "\x\addons\a3_epoch_assets_1\models\supply_crate.p3d";

View File

@ -359,8 +359,8 @@ class CfgPricing
class KitWoodTower {price = 10;}; class KitWoodTower {price = 10;};
class KitWoodRamp {price = 14;}; class KitWoodRamp {price = 14;};
class KitTankTrap {price = 25;}; class KitTankTrap {price = 25;};
class KitHesco3 { price = 25; };
class KitWoodLadder { price = 10; }; class KitWoodLadder { price = 10; };
class KitFirePlace {price = 4;}; class KitFirePlace {price = 4;};
class KitTiPi {price = 10;}; class KitTiPi {price = 10;};
class KitShelf {price = 90;}; class KitShelf {price = 90;};

View File

@ -2412,7 +2412,7 @@ class CfgVehicles
class Spike_TRAP_SIM_EPOCH: Constructions_modular_F class Spike_TRAP_SIM_EPOCH: Constructions_modular_F
{ {
scope = 2; scope = 2;
model = "\x\addons\a3_epoch_assets\models\stick.p3d"; model = "\x\addons\a3_epoch_assets\models\sticks.p3d";
displayName = "Spike Trap (SIM)"; displayName = "Spike Trap (SIM)";
simulClass = "Spike_TRAP_SIM_EPOCH"; simulClass = "Spike_TRAP_SIM_EPOCH";
staticClass = "Spike_TRAP_EPOCH"; staticClass = "Spike_TRAP_EPOCH";
@ -2424,7 +2424,7 @@ class CfgVehicles
class Metal_TRAP_SIM_EPOCH: Constructions_modular_F class Metal_TRAP_SIM_EPOCH: Constructions_modular_F
{ {
scope = 2; scope = 2;
model = "\x\addons\a3_epoch_assets\models\stick.p3d"; model = "\x\addons\a3_epoch_assets\models\sticks.p3d";
displayName = "Metal Trap (SIM)"; displayName = "Metal Trap (SIM)";
simulClass = "Metal_TRAP_SIM_EPOCH"; simulClass = "Metal_TRAP_SIM_EPOCH";
staticClass = "Metal_TRAP_EPOCH"; staticClass = "Metal_TRAP_EPOCH";
@ -2437,7 +2437,7 @@ class CfgVehicles
{ {
scope = 2; scope = 2;
model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Defense\tank_trap.p3d"; model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Defense\tank_trap.p3d";
displayName = "Tank Trap"; displayName = "Tank Trap (SIM)";
simulClass = "TankTrap_SIM_EPOCH"; simulClass = "TankTrap_SIM_EPOCH";
staticClass = "TankTrap_EPOCH"; staticClass = "TankTrap_EPOCH";
GhostPreview = "TankTrap_EPOCH"; GhostPreview = "TankTrap_EPOCH";
@ -2445,6 +2445,30 @@ class CfgVehicles
bypassJammer = 1; bypassJammer = 1;
}; };
class Hesco3_SIM_EPOCH : Constructions_modular_F
{
scope = 2;
model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Defense\hesco.p3d";
displayName = "Hesco Wide (SIM)";
simulClass = "Hesco3_SIM_EPOCH";
staticClass = "Hesco3_EPOCH";
GhostPreview = "Hesco3_Ghost_EPOCH";
snapType = "snapPointsPara";
snapPointsPara[] = { "C", "E", "W" };
allowedSnapPoints[] = { "C", "E", "W" };
allowedSnapObjects[] = { "Hesco3_EPOCH" };
energyCost = 0.4;
slingLoadCargoMemoryPoints[] = {};
limitNearby = 4;
bypassJammer = 1;
/*
hiddenSelections[] = { "Camo" };
hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\hesco\hesco_co.paa" };
hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\hesco\hesco.rvmat" };
*/
};
class SapperHead_SIM_EPOCH: Constructions_modular_F class SapperHead_SIM_EPOCH: Constructions_modular_F
{ {
scope = 2; scope = 2;
@ -3819,10 +3843,28 @@ class CfgVehicles
displayName = "Hesco Wide"; displayName = "Hesco Wide";
simulClass = "Hesco3_SIM_EPOCH"; simulClass = "Hesco3_SIM_EPOCH";
staticClass = "Hesco3_EPOCH"; staticClass = "Hesco3_EPOCH";
GhostPreview = "Hesco3_EPOCH"; GhostPreview = "Hesco3_Ghost_EPOCH";
snapType = "snapPointsPara";
snapPointsPara[] = { "C", "E", "W" };
allowedSnapPoints[] = { "C", "E", "W" };
energyCost = 0.2; energyCost = 0.2;
limitNearby = 4; limitNearby = 4;
bypassJammer = 1; bypassJammer = 1;
/*
hiddenSelections[] = { "Camo" };
hiddenSelectionsTextures[] = { "\x\addons\a3_epoch_assets\textures\hesco\hesco_co.paa" };
hiddenSelectionsMaterials[] = { "\x\addons\a3_epoch_assets\textures\hesco\hesco.rvmat" };
*/
/*
selectionDamage = "zbytek";
class Damage
{
tex[] = {};
mat[] = { "x\addons\a3_epoch_assets\textures\cinder\cinder.rvmat", "x\addons\a3_epoch_assets\textures\cinder\cinder_destruct50.rvmat", "x\addons\a3_epoch_assets\textures\cinder\cinder_destruct50.rvmat" };
};
*/
}; };
class WoodRamp_EPOCH : Constructions_static_F class WoodRamp_EPOCH : Constructions_static_F
@ -3866,7 +3908,7 @@ class CfgVehicles
scope = 2; scope = 2;
model = "\x\addons\a3_epoch_assets\models\cinder.p3d"; model = "\x\addons\a3_epoch_assets\models\cinder.p3d";
displayName = "Cinder Block Wall"; displayName = "Cinder Block Wall";
upgradeBuilding[] = { "CinderWallGarage_EPOCH", { { "ItemCorrugatedLg", 1 }, { "CircuitParts", 1 } } }; // upgradeBuilding[] = { "CinderWallGarage_EPOCH", { { "ItemCorrugatedLg", 1 }, { "CircuitParts", 1 } } };
simulClass = "CinderWall_SIM_EPOCH"; simulClass = "CinderWall_SIM_EPOCH";
staticClass = "CinderWall_EPOCH"; staticClass = "CinderWall_EPOCH";
GhostPreview = "CinderWall_EPOCH"; GhostPreview = "CinderWall_EPOCH";
@ -3875,7 +3917,7 @@ class CfgVehicles
allowedSnapPoints[] = { "N", "S", "E", "W" }; allowedSnapPoints[] = { "N", "S", "E", "W" };
energyCost = 0.4; energyCost = 0.4;
armor = 10000; armor = 10000;
removeParts[] = { { "CinderBlocks", 4 }, { "ItemRock", 2 } };
}; };
class CinderWallGarage_EPOCH : Const_Cinder_static_F class CinderWallGarage_EPOCH : Const_Cinder_static_F
{ {
@ -4155,6 +4197,22 @@ class CfgVehicles
ladders[] = {}; ladders[] = {};
}; };
class Hesco3_Ghost_EPOCH : Const_Ghost_EPOCH
{
scope = 2;
model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Defense\hesco_ghost.p3d";
displayName = "Hesco Wide (Ghost)";
staticClass = "Hesco3_EPOCH";
snapPointsPara[] = {};
snapPointsPerp[] = {};
allowedSnapPoints[] = { "C", "E", "W" };
allowedSnapObjects[] = { "Hesco3_EPOCH" };
ladders[] = {};
};
class CinderWallHalf_Ghost_EPOCH : Const_Ghost_EPOCH class CinderWallHalf_Ghost_EPOCH : Const_Ghost_EPOCH
{ {
scope = 2; scope = 2;

View File

@ -263,7 +263,7 @@ class CfgCrafting
}; };
class MortarBucket : Part class MortarBucket : Part
{ {
usedIn[] = {"KitFoundation","KitCinderWall"}; usedIn[] = {"KitFoundation","KitCinderWall", "KitHesco3"};
previewPosition[] = {0.799442,1,0.426761}; previewPosition[] = {0.799442,1,0.426761};
previewScale = 0.6; previewScale = 0.6;
previewVector = 0; previewVector = 0;
@ -637,7 +637,7 @@ class CfgCrafting
}; };
class ItemCorrugatedLg : Kit class ItemCorrugatedLg : Kit
{ {
usedIn[] = { "VehicleRepairLg", "KitPlotPole", "KitTankTrap" }; usedIn[] = { "VehicleRepairLg", "KitPlotPole", "KitTankTrap", "KitHesco3" };
recipe[] = { { "ItemCorrugated", 3 } }; recipe[] = { { "ItemCorrugated", 3 } };
nearby[] = {{"Workbench", "", "workbench", {1,{"WorkBench_EPOCH"}}, 3, 1, 0, 1}}; nearby[] = {{"Workbench", "", "workbench", {1,{"WorkBench_EPOCH"}}, 3, 1, 0, 1}};
previewPosition[] = {0.797491,1,0.32899}; previewPosition[] = {0.797491,1,0.32899};
@ -731,6 +731,15 @@ class CfgCrafting
previewScale = 0.17; previewScale = 0.17;
previewVector = 0; previewVector = 0;
}; };
class KitHesco3 : Kit
{
recipe[] = { { "MortarBucket", 2 }, { "ItemCorrugatedLg", 2 } };
nearby[] = { { "Workbench", "", "workbench", { 1, { "WorkBench_EPOCH" } }, 3, 1, 0, 1 } };
model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Defense\hesco.p3d";
previewPosition[] = { 0.803749, 1, 0.448515 };
previewScale = 0.02;
previewVector = 0;
};
class KitWoodStairs : Kit class KitWoodStairs : Kit
{ {
recipe[] = {{"PartPlankPack",4}}; recipe[] = {{"PartPlankPack",4}};

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.

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.

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.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More