0.3.6.018

This commit is contained in:
vbawol 2015-12-15 12:46:09 -06:00
parent 61b3970211
commit 74fe32d566
27 changed files with 329 additions and 389 deletions

View File

@ -1,13 +1,8 @@
**Client**
[Added-TBA] Previous assets re-added:
Hotwire Kit,
Key Makers Kit,
Keys in colors: (Black,Red,Green,Blue,Yellow),
55 Gallon Fuel Barrel (Full/Empty),
Metal Pipes
Documents (Trash,Vehicle Upgrades),
[Added] Added ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man
[Changed] Increased max player load from 1000 to 2000.
[Changed] Increased max player load 2x to compensate for the new stamina system in 1.54.
[Changed] Increased backpack storage limits to allow carrying long weapons.
[Fixed] Changes to default Arma weapon configs to allow long (Lynx,etc) weapons to be stored in backpacks.
[Fixed] Unable to sell after attempting to sell a temporary vehicle. Thanks to @He-Man
[Fixed] Updated Hitpoints to 1.54 for all custom Epoch characters, this fixes the hitpoint .rpt errors since 1.54 as well.
[Fixed] Reduce run speed of Sappers since 1.54 update.

7
Changelogs/0.3.7.0.txt Normal file
View File

@ -0,0 +1,7 @@
WIP
[Added] Hotwire Kit
[Added] Key Makers Kit
[Added] Keys in colors: (Black,Red,Green,Blue,Yellow)
[Added] 55 Gallon Fuel Barrel (Full/Empty)
[Added] Metal Pipes
[Added] Documents (Trash,Vehicle Upgrades)

View File

@ -127,7 +127,7 @@ if (!isNull EPOCH_currentTarget && vehicle player == player) then {
if (_stability == 0) then {
switch EPOCH_buildOption do {
case 0: {EPOCH_stabilityTarget call EPOCH_removeBUILD};
case 1: {EPOCH_stabilityTarget call EPOCH_upgradeBUILDv2};
case 1: {EPOCH_stabilityTarget call EPOCH_upgradeBUILD};
case 2: {EPOCH_stabilityTarget call EPOCH_fnc_SelectTargetBuild};
};

View File

@ -25,6 +25,7 @@
Returns:
NOTHING
*/
private ["_recipeItem","_recipeQty","_hasRecipeItems","_msg","_recipeCount","_currentCount","_numRemoved","_items","_mags","_dt","_recipe","_craftItem","_craftQty","_config","_objClass","_object","_anim","_state"];
_object = param [0,objNull];
_anim = param [1,""];
_state = param [2,0];

View File

@ -21,6 +21,7 @@
Returns:
ARRAY of BOOLs
*/
private ["_dt","_out","_object","_objType","_config"];
_out = [false, false, false];
if !(isNil "EPOCH_simulSwap_Lock") exitWith{ _out };

View File

@ -21,7 +21,7 @@
Returns:
NOTHING
*/
private["_color", "_distance", "_previous"];
private ["_posObj","_savedBuildPos","_previousBuildPos","_saveCheck","_endTime","_worldspace","_class","_newObj","_startTime","_objClass"];
if (!isNull _this) then {

View File

@ -21,7 +21,7 @@
Returns:
BOOL
*/
private ["_targeter","_stability"];
private ["_targeter","_stability","_dt","_object"];
if !(isNil "EPOCH_simulSwap_Lock") exitWith{ false };
if !(isNull EPOCH_Target) exitWith{ false };

View File

@ -4,7 +4,7 @@
Contributors: Raimonds Virtoss
Description:
Epoch build select target
check if building is allowed
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike

View File

@ -1,4 +1,27 @@
private["_jammed", "_jammer"];
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Base building object lock check code
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/building/EPOCH_lockCheck.sqf
Example:
call EPOCH_lockCheck
Parameter(s):
NONE
Returns:
BOOL
*/
private ["_jammed","_jammer","_buildingJammerRange","_config"];
_config = "CfgEpochClient" call EPOCH_returnConfig;
_buildingJammerRange = getNumber(_config >> "buildingJammerRange");
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };

View File

@ -1,3 +1,27 @@
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Base building maintain base code
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/building/EPOCH_maintainIT.sqf
Example:
cursorTarget call EPOCH_maintainIT;
Parameter(s):
_this: OBJECT - Base building object ("Constructions_static_F","Constructions_foundation_F","Buildable_Storage","Constructions_lockedstatic_F")
Returns:
NOTHING
*/
private ["_dt","_buildingJammerRange","_maintainCount","_rnd","_config"];
if !(isNil "EPOCH_maintainLockout") exitWith {_dt = ["<t size=""0.8"" shadow=""0"" color=""#99ffffff"">Already Maintaining a base.</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;};
if (EPOCH_playerCrypto > 0) then {
_config = "CfgEpochClient" call EPOCH_returnConfig;

View File

@ -1,4 +1,27 @@
private["_buildingAllowed", "_jammer", "_restricted", "_restrictedLocations", "_myPosATL"];
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Base building maintain base code
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/building/EPOCH_removeBUILD.sqf
Example:
cursorTarget call EPOCH_removeBUILD;
Parameter(s):
_this: OBJECT - Base building object
Returns:
BOOL - true if removed
*/
private ["_buildingAllowed","_jammer","_buildingJammerRange","_buildingCountLimit","_dt","_nearestJammer","_ownedJammerExists","_return","_config","_objType","_object","_targeter","_stability","_removeParts"];
_buildingAllowed = true;
_ownedJammerExists = false;
_nearestJammer = objNull;
@ -33,7 +56,7 @@ if (_objType == "PlotPole_EPOCH") then {
_buildingAllowed = false;
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Remove Disallowed: Frequency Blocked</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
};
}
}
else {
_jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange];
if !(_jammer isEqualTo[]) then{

View File

@ -1,8 +1,30 @@
private [
"_cfgClass","_class","_worldspace","_objSlot","_newObj","_playerOffset","_bbr","_p1","_p2","_maxWidth","_maxLength","_maxHeight","_pos2","_vel2","_dir2","_up2","_pos1","_vel1","_dir1","_up1","_interval","_velocityTransformation","_object","_status","_return","_oemType","_config","_currentTarget"];
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Base building base building with physics
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf
Example:
[_object] spawn EPOCH_simulSwap;
Parameter(s):
_this select 0: OBJECT - Base building object
Returns:
NOTHING
*/
private ["_class","_worldspace","_objSlot","_newObj","_pos2","_vel2","_dir2","_up2","_velocityTransformation","_object","_return","_oemType","_config","_currentTarget","_dt","_energyCost","_allowedSnapObjects","_textureSlot","_lastCheckTime","_rejectMove","_nearestObject","_nearestObjectRaw","_distanceNear","_previousDistanceNear","_pOffset","_snapPos","_isSnap","_snapPosition","_snapType","_snapDistance","_prevSnapDistance","_snapPointsPara","_snapPointsPerp","_snapArrayPara","_snapArrayPerp","_direction","_distance","_plyrdistance","_create","_allowedSnapPoints","_snapObjects","_onContactEH","_offset","_disallowed","_objType","_distanceMod"];
if !(isNil "EPOCH_simulSwap_Lock") exitWith{};
_object = _this select 0;
_object = param [0,objNull];
if (isNull _object) exitWith{ EPOCH_target = objNull; };
_objType = typeOf _object;
@ -89,7 +111,7 @@ if (isText(_config)) then {
if (EPOCH_Y_OFFSET < 3.6) then {
EPOCH_Y_OFFSET = EPOCH_Y_OFFSET + 0.1;
};
_pos2 = player modelToWorld[EPOCH_X_OFFSET, EPOCH_Y_OFFSET, EPOCH_Z_OFFSET];
_distance = _pos2 distance EPOCH_target;
if (EPOCH_buildMode == 1) then {
@ -174,7 +196,7 @@ if (isText(_config)) then {
if (_direction < 0) then {
_direction = 360 + _direction;
};
_dir2 = [vectorDir _nearestObject, _direction] call EPOCH_returnVector;
_dir2 = [vectorDir _nearestObject, _direction] call BIS_fnc_returnVector;
_up2 = (vectorUp _nearestObject);
EP_velocityTransformation = [_pos2,_vel2,_dir2,_up2];
};
@ -185,7 +207,7 @@ if (isText(_config)) then {
};
if (EPOCH_space) then {
_vel2 = (velocity player);
_dir2 = [vectorDir player, EPOCH_buildDirection] call EPOCH_returnVector;
_dir2 = [vectorDir player, EPOCH_buildDirection] call BIS_fnc_returnVector;
_up2 = (vectorUp player);
EPOCH_space = false;
EP_velocityTransformation = [_pos2,_vel2,_dir2,_up2];

View File

@ -1,9 +1,38 @@
private["_allowedSnapObjects", "_currentZoffset", "_nearestObject", "_pOffset", "_snapPos", "_snapPosition", "_snapType", "_snapDistance", "_prevSnapDistance", "_pos2", "_dir", "_snapPointsPara", "_snapPointsPerp", "_distance", "_objSlot", "_currentTarget", "_allowedSnapPoints", "_snapObjects", "_class", "_buildingPos"];
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Base building base building with ghost preview.
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/building/EPOCH_simulSwap.sqf
Example:
[_object] spawn EPOCH_simulSwap;
Parameter(s):
_this select 0: OBJECT - Base building object
_this select 1: STRING - Item to consume on build finalization
Returns:
NOTHING
*/
private ["_allowedSnapObjects","_nearestObject","_pOffset","_snapPos","_snapPosition","_snapType","_snapDistance","_pos2","_snapPointsPara","_snapPointsPerp","_distance","_objSlot","_currentTarget","_allowedSnapPoints","_class","_dt","_energyCost","_maxHeight","_stabilityCheck","_pos2ATL","_lastCheckTime","_rejectMove","_currentOffSet","_dir2","_up2","_isSnap","_snapPos1","_pos_snapObj","_direction","_pos1_snap","_pos2_snap","_ins","_EPOCH_2","_arr_snapPoints","_pos1","_offSet","_snapConfig","_baselineSnapPos","_nearestObjects","_EPOCH_1","_numberOfContacts","_worldspace","_offsetZPos","_currentPos","_object","_item","_objType","_simulClass","_snapChecks","_maxSnapDistance"];
if !(isNil "EPOCH_simulSwap_Lock") exitWith{};
_object = _this select 0;
_item = _this select 1;
// inputs
_object = param [0,objNull];
_item = param [1,""];
// exit if object is nulll
if (isNull _object) exitWith{ EPOCH_target = objNull; };
// exit if item is not given
if (_item == "") exitWith{ EPOCH_target = objNull; };
if (EPOCH_playerEnergy <= 0) exitWith{
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Need Energy</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
@ -113,7 +142,7 @@ if (_class != "") then {
};
if (EPOCH_space) then {
_dir2 = [vectorDir player, EPOCH_buildDirection] call EPOCH_returnVector;
_dir2 = [vectorDir player, EPOCH_buildDirection] call BIS_fnc_returnVector;
_up2 = (vectorUp player);
EPOCH_space = false;
EPOCH_target setVectorDirAndUp [_dir2,_up2];
@ -231,7 +260,7 @@ if (_class != "") then {
_direction = 360 + _direction;
};
_dir2 = [vectorDir _nearestObject, _direction] call EPOCH_returnVector;
_dir2 = [vectorDir _nearestObject, _direction] call BIS_fnc_returnVector;
if (_pos2 select 2 > _maxHeight) then {
_pos2 set[2, _maxHeight];

View File

@ -1,5 +1,33 @@
if (isNull _this) exitWith{ false };
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Base building upgrade code
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/building/EPOCH_upgradeBUILD.sqf
Example:
[cursorTarget,_index] call EPOCH_upgradeBUILD;
Parameter(s):
_this select 0: OBJECT - Base building object
_this select 1: NUMBER - index of array from (CfgBaseBuilding >> "upgradeBuilding")
Returns:
NOTHING
*/
private ["_buildingJammerRange","_buildingCountLimit","_nearestJammer","_ownedJammerExists","_buildingAllowed","_dt","_missingCount","_canUpgrade","_missingParts","_part","_req","_partCheck","_canUpgradePartCount","_removedPartCount","_return","_upgrade","_upgradeParts","_config","_upgrades","_object","_index","_targeter","_stability","_jammer"];
_return = false;
_object = param [0,objNull,[objNull]];
_index = param [1,-1,[0]]; //EPOCH_UpgradeIndex
if !(_index isEqualTo -1) then {Epoch_upgradeIndex = _index};
if (isNull _object) exitWith {false};
_buildingAllowed = true;
_ownedJammerExists = false;
@ -14,7 +42,7 @@ if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; };
EPOCH_buildOption = 1;
params ["_object"];
// check if another player has target
_targeter = _object getVariable["last_targeter", objNull];
@ -29,10 +57,6 @@ if (_stability > 0) exitWith{
};
};
_jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange];
if !(_jammer isEqualTo[]) then {
@ -54,18 +78,22 @@ if !(_jammer isEqualTo[]) then {
};
if !(_buildingAllowed)exitWith{ false };
if (_this isKindOf "Constructions_static_F") then {
if (_object isKindOf "Constructions_static_F") then {
// take upgrade item from player here
_config = 'CfgBaseBuilding' call EPOCH_returnConfig;
_upgrade = getArray(_config >> (typeOf _this) >> "upgradeBuilding");
if !(_upgrade isEqualTo []) then {
_upgrades = getArray(_config >> (typeOf _object) >> "upgradeBuilding");
if !(_upgrades isEqualTo []) then {
// get selected upgrade
_upgrade = _upgrades param [Epoch_upgradeIndex,[]];
_upgradeParts = _upgrade select 1;
_canUpgrade = true;
_canUpgradePartCount = 0;
_missingParts = [];
_missingParts = "";
{
_part = _x select 0;
_req = _x select 1;
@ -78,7 +106,7 @@ if (_this isKindOf "Constructions_static_F") then {
//diag_log format["DEBUG: _missingCount %1", _missingCount];
_canUpgrade = false;
_missingParts pushBack format["Missing %1 %2", _missingCount, (_part call EPOCH_itemDisplayName)];
_missingParts = _missingParts + format["Missing %1 %2, ", _missingCount, (_part call EPOCH_itemDisplayName)];
};
_canUpgradePartCount = _canUpgradePartCount + _req;
} forEach _upgradeParts;
@ -96,8 +124,9 @@ if (_this isKindOf "Constructions_static_F") then {
if (_canUpgradePartCount == _removedPartCount) then {
// send to server for upgrade
EPOCH_UPBUILD = [_this,player,Epoch_personalToken];
EPOCH_UPBUILD = [_object,player,Epoch_upgradeIndex,Epoch_personalToken];
publicVariableServer "EPOCH_UPBUILD";
Epoch_upgradeIndex = nil;
_return = true;
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Upgraded</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
};

View File

@ -1,113 +0,0 @@
_return = false;
_object = param [0,objNull,[objNull]];
_index = param [1,-1,[0]]; //EPOCH_UpgradeIndex
if !(_index isEqualTo -1) then {Epoch_upgradeIndex = _index};
if (isNull _object) exitWith {false};
_buildingAllowed = true;
_ownedJammerExists = false;
_nearestJammer = objNull;
_config = 'CfgEpochClient' call EPOCH_returnConfig;
_buildingJammerRange = getNumber(_config >> "buildingJammerRange");
_buildingCountLimit = getNumber(_config >> "buildingCountLimit");
// defaults
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; };
EPOCH_buildOption = 1;
// check if another player has target
_targeter = _object getVariable["last_targeter", objNull];
if (!isNull _targeter && _targeter != player && (player distance _object > _targeter distance _object)) exitWith{ EPOCH_stabilityTarget = objNull; false };
_stability = _object getVariable["stability", 100];
if (_stability > 0) exitWith{
if (isNull EPOCH_stabilityTarget) then {
_object setVariable["last_targeter", player, true];
EPOCH_stabilityTarget = _object;
};
};
_jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange];
if !(_jammer isEqualTo[]) then {
{
if (alive _x) exitWith{
_nearestJammer = _x;
};
} foreach _jammer;
if !(isNull _nearestJammer) then {
if ((_nearestJammer getVariable["BUILD_OWNER", "-1"]) in[getPlayerUID player, Epoch_my_GroupUID]) then {
_ownedJammerExists = true;
}
else {
_buildingAllowed = false;
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Upgrade Disallowed: Frequency Blocked</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
};
};
};
if !(_buildingAllowed)exitWith{ false };
if (_object isKindOf "Constructions_static_F") then {
// take upgrade item from player here
_config = 'CfgBaseBuilding' call EPOCH_returnConfig;
_upgrades = getArray(_config >> (typeOf _object) >> "upgradeBuilding");
if !(_upgrades isEqualTo []) then {
// get selected upgrade
_upgrade = _upgrades param [Epoch_upgradeIndex,[]];
_upgradeParts = _upgrade select 1;
_canUpgrade = true;
_canUpgradePartCount = 0;
_missingParts = "";
{
_part = _x select 0;
_req = _x select 1;
_partCheck = {_x == _part} count (magazines player);
//diag_log format["DEBUG: _partCheck %1", _partCheck];
//diag_log format["DEBUG: _x %1", _x];
if (_partCheck < _req) then {
_missingCount = _req - _partCheck;
//diag_log format["DEBUG: _missingCount %1", _missingCount];
_canUpgrade = false;
_missingParts = _missingParts + format["Missing %1 %2, ", _missingCount, (_part call EPOCH_itemDisplayName)];
};
_canUpgradePartCount = _canUpgradePartCount + _req;
} forEach _upgradeParts;
_removedPartCount = 0;
if (_canUpgrade) then {
{
for "_i" from 1 to (_x select 1) do {
if ((_x select 0) in (magazines player)) then {
player removeMagazine (_x select 0);
_removedPartCount = _removedPartCount + 1;
};
};
} forEach _upgradeParts;
if (_canUpgradePartCount == _removedPartCount) then {
// send to server for upgrade
EPOCH_UPBUILD = [_object,player,Epoch_upgradeIndex,Epoch_personalToken];
publicVariableServer "EPOCH_UPBUILD";
Epoch_upgradeIndex = nil;
_return = true;
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Upgraded</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
};
} else {
_dt = [format["<t size='0.8' shadow='0' color='#99ffffff'>%1</t>", _missingParts], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
};
};
};
_return

View File

@ -1,180 +0,0 @@
EPOCH_buildClasses = ["Land_Obstacle_Bridge_F",
"Land_Shoot_House_Wall_F",
"Land_Shoot_House_Wall_Stand_F",
"Land_Shoot_House_Wall_Crouch_F",
"Land_Shoot_House_Wall_Prone_F",
"Land_Shoot_House_Wall_Long_F",
"Land_Shoot_House_Wall_Long_Stand_F",
"Land_Shoot_House_Wall_Long_Crouch_F",
"Land_Shoot_House_Wall_Long_Prone_F",
"Land_Shoot_House_Corner_F",
"Land_Shoot_House_Corner_Stand_F",
"Land_Shoot_House_Corner_Crouch_F",
"Land_Shoot_House_Corner_Prone_F",
"Land_Shoot_House_Panels_F",
"Land_Shoot_House_Panels_Crouch_F",
"Land_Shoot_House_Panels_Prone_F",
"Land_Shoot_House_Panels_Vault_F",
"Land_Shoot_House_Panels_Window_F",
"Land_Shoot_House_Panels_Windows_F",
"Land_Shoot_House_Tunnel_F",
"Land_Shoot_House_Tunnel_Stand_F",
"Land_Shoot_House_Tunnel_Crouch_F",
"Land_Shoot_House_Tunnel_Prone_F",
"Land_Obstacle_RunAround_F","Land_Obstacle_Saddle_F","Land_RampConcrete_F","Land_RampConcreteHigh_F","Land_GH_Stairs_F","Land_Billboard_F","Land_HBarrier_1_F","Land_HBarrier_3_F","Land_HBarrier_5_F","Land_Razorwire_F","Land_HBarrierWall6_F","WoodFloor_EPOCH","WoodLargeWall_EPOCH","Land_BagFence_Long_F","Land_BagFence_Corner_F","Land_BagFence_End_F","Land_BagFence_Round_F","Land_BagFence_Short_F"];
EPOCH_buildClassesCount = count EPOCH_buildClasses - 1;
Epoch_selectedBuildClasIndex = 0;
EPOCH_selectedBuildClass = EPOCH_buildClasses select 0;
EPOCH_snapExtents = [];
EPOCH_buildWorldspace = [[0,0,0],[0,0,0],[0,0,0]];
EPOCH_KeyDownFunctionhandler = {
_dikCode = _this select 1;
_shift = _this select 2;
_ctrl = _this select 3;
_alt = _this select 4;
switch (_dikCode) do {
case 0x39 : {
_worldspace = EPOCH_buildWorldspace;
_newObj = EPOCH_selectedBuildClass createVehicle (_worldspace select 0);
_newObj setVectorDirAndUp [_worldspace select 1,_worldspace select 2];
_newObj setposASL (_worldspace select 0);
_handled = true;
};
case 0xC9 : {
Epoch_selectedBuildClasIndex = ((Epoch_selectedBuildClasIndex + 1) min EPOCH_buildClassesCount) max 0;
EPOCH_selectedBuildClass = EPOCH_buildClasses select Epoch_selectedBuildClasIndex;
if !(isNull EPOCH_currentBuildObj) then {
deleteVehicle EPOCH_currentBuildObj;
EPOCH_currentBuildObj = EPOCH_selectedBuildClass createVehicle [0,0,0];
EPOCH_currentBuildObj disableCollisionWith player;
EPOCH_currentBuildObj setObjectTextureGlobal [0, "#(rgb,8,8,3)color(0,0,1,1)"];
};
hint EPOCH_selectedBuildClass;
_handled = true;
};
case 0xD1 : {
Epoch_selectedBuildClasIndex = ((Epoch_selectedBuildClasIndex - 1) min EPOCH_buildClassesCount) max 0;
EPOCH_selectedBuildClass = EPOCH_buildClasses select Epoch_selectedBuildClasIndex;
hint EPOCH_selectedBuildClass;
if !(isNull EPOCH_currentBuildObj) then {
deleteVehicle EPOCH_currentBuildObj;
EPOCH_currentBuildObj = EPOCH_selectedBuildClass createVehicle [0,0,0];
EPOCH_currentBuildObj disableCollisionWith player;
EPOCH_currentBuildObj setObjectTextureGlobal [0, "#(rgb,8,8,3)color(0,0,1,1)"];
};
_handled = true;
};
};
_handled
};
[] spawn {
(findDisplay 46) displayRemoveAllEventHandlers "KeyDown";
(findDisplay 46) displayAddEventHandler["KeyDown",{_this call EPOCH_KeyDownFunctionhandler}];
};
EPOCH_snapExtents = [];
_playerPos = player modelToWorld [0,5,5];
EPOCH_currentBuildObj = EPOCH_selectedBuildClass createVehicle _playerPos;
EPOCH_currentBuildObj setPosATL _playerPos;
EPOCH_currentBuildObj disableCollisionWith player;
_numberOfContacts = 0;
for "_i" from 0 to 10 do {
};
_pos1 = EPOCH_currentBuildObj modelToWorld [0,0,10];
_pos2 = EPOCH_currentBuildObj modelToWorld [0,0,0];
_ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player];
if (count _ins == 0) then {
} else {
_pos3 = (_ins select 0 select 0);
if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3};
_offset = EPOCH_currentBuildObj worldToModelVisual _pos3;
EPOCH_snapExtents pushBack _offset;
_numberOfContacts = _numberOfContacts + 1;
_fullHeight = _offset select 0;
_halfHeight = _fullHeight/2;
_pos1 = EPOCH_currentBuildObj modelToWorld [0,10,_halfHeight];
_pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight];
_ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player];
if (count _ins == 0) then {
} else {
_pos3 = (_ins select 0 select 0);
if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3};
_offset = EPOCH_currentBuildObj worldToModelVisual _pos3;
EPOCH_snapExtents pushBack _offset;
_numberOfContacts = _numberOfContacts + 1;
};
_pos1 = EPOCH_currentBuildObj modelToWorld [0,-10,_halfHeight];
_pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight];
_ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player];
if (count _ins == 0) then {
} else {
_pos3 = (_ins select 0 select 0);
if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3};
_offset = EPOCH_currentBuildObj worldToModelVisual _pos3;
EPOCH_snapExtents pushBack _offset;
_numberOfContacts = _numberOfContacts + 1;
};
_pos1 = EPOCH_currentBuildObj modelToWorld [10,0,_halfHeight];
_pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight];
_ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player];
if (count _ins == 0) then {
} else {
_pos3 = (_ins select 0 select 0);
if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3};
_offset = EPOCH_currentBuildObj worldToModelVisual _pos3;
EPOCH_snapExtents pushBack _offset;
_numberOfContacts = _numberOfContacts + 1;
};
_pos1 = EPOCH_currentBuildObj modelToWorld [-10,0,_halfHeight];
_pos2 = EPOCH_currentBuildObj modelToWorld [0,0,_halfHeight];
_ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player];
if (count _ins == 0) then {
} else {
_pos3 = (_ins select 0 select 0);
if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3};
_offset = EPOCH_currentBuildObj worldToModelVisual _pos3;
EPOCH_snapExtents pushBack _offset;
_numberOfContacts = _numberOfContacts + 1;
};
_pos1 = EPOCH_currentBuildObj modelToWorld [0,0,-4.5];
_pos2 = EPOCH_currentBuildObj modelToWorld [0,0,0];
_ins = lineIntersectsSurfaces [AGLToASL _pos1,AGLToASL _pos2,player];
if (count _ins == 0) then {
} else {
_pos3 = (_ins select 0 select 0);
if !(surfaceIsWater _pos3) then {_pos3 = ASLtoATL _pos3};
_offset = EPOCH_currentBuildObj worldToModelVisual _pos3;
EPOCH_snapExtents pushBack _offset;
_numberOfContacts = _numberOfContacts + 1;
};
};
onEachFrame {
{
drawIcon3D ["a3\modules_f\data\iconlock_ca.paa", [1,1,1,1], EPOCH_currentBuildObj modelToWorld _x, 1, 1, 45, "Snap", 1, 0.05, "TahomaB"];
} forEach EPOCH_snapExtents;
};

View File

@ -100,6 +100,13 @@ class cfgFunctions
class initMultiplayer {
file = "\x\addons\a3_epoch_code\compile\bis_functions\MP\fn_initMultiplayer.sqf";
};
};
class functions {
// custom Epoch - BIS_fnc_returnVector
class returnVector {
file = "\x\addons\a3_epoch_code\compile\bis_functions\returnVector.sqf";
};
};
};
class EPOCH
@ -112,6 +119,10 @@ class cfgFunctions
class isAny {
file = "\x\addons\a3_epoch_code\compile\both\EPOCH_isAny.sqf"
};
class isAny {
file = "\x\addons\a3_epoch_code\compile\both\EPOCH_isAny.sqf"
};
};
};
};
@ -161,9 +172,7 @@ class CfgClientFunctions
class isBuildAllowed {};
class simulSwap {};
class staticMove {};
class returnVector {};
class upgradeBUILD {};
class upgradeBUILDv2 {};
class removeBUILD {};
class changeWallState {};
class checkBuild {};

View File

@ -164,7 +164,7 @@ class QuickUpgrade
y = 0.622266 * safezoneH + safezoneY;
w = 0.05875 * safezoneW;
h = 0.0282151 * safezoneH;
action = "cursorTarget call EPOCH_upgradeBUILDv2";
action = "cursorTarget call EPOCH_upgradeBUILD";
};
};
@ -2582,39 +2582,47 @@ class RscDisplayInventory
idc = 1243;
x = "26.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class BackgroundSlotPrimaryUnderBarrel : BackgroundSlotPrimary
{
idc = 1200;
x = "29 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "28.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class BackgroundSlotPrimaryFlashlight : BackgroundSlotPrimary
{
idc = 1244;
x = "31.4 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "30.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class BackgroundSlotPrimaryOptics : BackgroundSlotPrimary
{
idc = 1245;
x = "33.8 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "32.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class BackgroundSlotPrimaryMagazineGL: BackgroundSlotPrimary
{
idc = 1267;
x = "34.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class BackgroundSlotPrimaryMagazine : BackgroundSlotPrimary
{
idc = 1246;
x = "36.2 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "36.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class BackgroundSlotSecondary : BackgroundSlotPrimary
@ -2896,43 +2904,52 @@ class RscDisplayInventory
idc = 620;
x = "26.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorText[] = { 0, 0, 0, 0.5 };
};
class SlotPrimaryUnderBarrel : SlotPrimary
{
idc = 641;
x = "29 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "28.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorText[] = { 0, 0, 0, 0.5 };
};
class SlotPrimaryFlashlight : SlotPrimary
{
idc = 622;
x = "31.4 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "30.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorText[] = { 0, 0, 0, 0.5 };
};
class SlotPrimaryOptics : SlotPrimary
{
idc = 621;
x = "33.8 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "32.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorText[] = { 0, 0, 0, 0.5 };
};
class SlotPrimaryMagazineGL: SlotPrimary
{
idc = 644;
x = "34.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorText[] = {0,0,0,0.5};
};
class SlotPrimaryMagazine : SlotPrimary
{
idc = 623;
x = "36.2 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
x = "36.6 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
w = "1.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorText[] = { 0, 0, 0, 0.5 };
};
@ -3393,6 +3410,9 @@ class RscDisplayInventory
};
};
};
class RscDisplayInterrupt: RscStandardDisplay //convert to preprocessFileNumbers
{
onLoad = "[""onLoad"",_this,""RscDisplayInterrupt"",'GUI'] call (uinamespace getvariable 'BIS_fnc_initDisplay'); _this call EPOCH_InterruptConfig;";

View File

@ -66,7 +66,7 @@ _checkConfigs = {
} forEach (_x select 1);
_tooltip = format ["%1 >> %2 ",_dName,_tTip];
_action = format ["[dyna_cursorTarget,%1] call EPOCH_upgradeBUILDv2; true call Epoch_dynamicMenuCleanup;",_forEachIndex];
_action = format ["[dyna_cursorTarget,%1] call EPOCH_upgradeBUILD; true call Epoch_dynamicMenuCleanup;",_forEachIndex];
_buttonSettings pushBack [
_icon,

View File

@ -421,7 +421,7 @@ class CfgPricing
class SLAMDirectionalMine_Wire_Mag {price = 40;};
class APERSTripMine_Wire_Mag {price = 30;};
// Backpacks
class B_AssaultPack_cbr {price = 10;};
class B_AssaultPack_dgtl {price = 10;};
class B_AssaultPack_khk {price = 10;};
@ -430,32 +430,32 @@ class CfgPricing
class B_AssaultPack_rgr {price = 10;};
class B_AssaultPack_sgg {price = 10;};
class B_AssaultPack_blk { price = 10; };
class B_Carryall_cbr {price = 1;};
class B_Carryall_khk {price = 10;};
class B_Carryall_mcamo {price = 10;};
class B_Carryall_ocamo {price = 10;};
class B_Carryall_oli {price = 10;};
class B_Carryall_oucamo {price = 10;};
class B_FieldPack_blk {price = 10;};
class B_FieldPack_cbr {price = 10;};
class B_FieldPack_khk {price = 10;};
class B_FieldPack_ocamo {price = 10;};
class B_FieldPack_oli {price = 10;};
class B_FieldPack_oucamo {price = 10;};
class B_Kitbag_cbr {price = 10;};
class B_Kitbag_mcamo {price = 10;};
class B_Kitbag_rgr {price = 10;};
class B_Kitbag_sgg {price = 10;};
class B_Parachute {price = 15;};
class B_TacticalPack_blk {price = 10;};
class B_TacticalPack_mcamo {price = 10;};
class B_TacticalPack_ocamo {price = 10;};
class B_TacticalPack_oli {price = 10;};
class B_TacticalPack_rgr {price = 10;};
class smallbackpack_red_epoch {price = 10;};
class smallbackpack_green_epoch {price = 10;};
class smallbackpack_teal_epoch {price = 10;};
class smallbackpack_pink_epoch {price = 10;};
class B_Carryall_cbr {price = 40;};
class B_Carryall_khk {price = 40;};
class B_Carryall_mcamo {price = 40;};
class B_Carryall_ocamo {price = 40;};
class B_Carryall_oli {price = 40;};
class B_Carryall_oucamo {price = 40;};
class B_FieldPack_blk {price = 15;};
class B_FieldPack_cbr {price = 15;};
class B_FieldPack_khk {price = 15;};
class B_FieldPack_ocamo {price = 15;};
class B_FieldPack_oli {price = 15;};
class B_FieldPack_oucamo {price = 15;};
class B_Kitbag_cbr {price = 25;};
class B_Kitbag_mcamo {price = 25;};
class B_Kitbag_rgr {price = 25;};
class B_Kitbag_sgg {price = 25;};
class B_Parachute {price = 25;};
class B_TacticalPack_blk {price = 20;};
class B_TacticalPack_mcamo {price = 20;};
class B_TacticalPack_ocamo {price = 20;};
class B_TacticalPack_oli {price = 20;};
class B_TacticalPack_rgr {price = 20;};
class smallbackpack_red_epoch {price = 22;};
class smallbackpack_green_epoch {price = 22;};
class smallbackpack_teal_epoch {price = 22;};
class smallbackpack_pink_epoch {price = 22;};
// Marksman DLC
class U_O_FullGhillie_lsh { price = 7; };

View File

@ -100,3 +100,51 @@ class Land_Communication_F : House_F
killed = "if (isServer) then {this call compile preprocessFileLineNumbers ""\A3\Structures_F\Ind\Transmitter_Tower\Scripts\tower_ruins.sqf""};";
};
};
/*
Increase Backpack storage limits to balance for changes since 1.54
*/
class Bag_Base;
class B_AssaultPack_Base: Bag_Base
{
model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Compact";
descriptionShort = "Load: 360, Mass: 20";
hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_compact_khk_co.paa"};
maximumLoad = 360;
mass = 20;
};
class B_FieldPack_Base: Bag_Base
{
model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Gorod";
descriptionShort = "Load: 400, Mass: 30";
hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_gorod_cbr_co.paa"};
maximumLoad = 400;
mass = 30;
};
class B_TacticalPack_Base: Bag_Base
{
model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Small";
descriptionShort = "Load: 480, Mass: 40";
hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_small_co.paa"};
maximumLoad = 480;
mass = 40;
};
class B_Kitbag_Base: Bag_Base
{
picture = "\A3\Weapons_F\ammoboxes\bags\data\ui\icon_B_C_Kitbag_rgr";
descriptionShort = "Load: 520, Mass: 50";
model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Fast";
hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_fast_rgr_co.paa"};
maximumLoad = 520;
mass = 50;
};
class B_Carryall_Base: Bag_Base
{
model = "\A3\weapons_f\Ammoboxes\bags\Backpack_Tortila";
descriptionShort = "Load: 550, Mass: 60";
picture = "\A3\Weapons_F\Ammoboxes\Bags\data\UI\icon_B_C_Tortila_khk.paa";
hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_tortila_khk_co.paa"};
maximumLoad = 550;
mass = 60;
};

View File

@ -2206,6 +2206,14 @@ class CfgWeapons
class WeaponSlotsInfo;
class GunParticles;
};
class Rifle_Long_Base_F: Rifle_Base_F
{
class WeaponSlotsInfo: WeaponSlotsInfo
{
allowedSlots[] = {901};
};
};
class UGL_F;
class Epoch_weapon_01_Base_F: Rifle_Base_F
{
@ -3080,13 +3088,7 @@ class CfgWeapons
};
};*/
class Rifle_Long_Base_F : Rifle_Base_F
{
class WeaponSlotsInfo : WeaponSlotsInfo
{
allowedSlots[] = {901};
};
};
class ItemRadio;
class EpochRadio0 : ItemRadio {

View File

@ -30,7 +30,7 @@ class CfgPatches
units[] = { "Epoch_Female_F", "Epoch_Male_F", "Epoch_Cloak_F", "Epoch_Sapper_F", "Epoch_Ent_Small_F", "Epoch_Ent_Med_F", "Epoch_Ent_Large_F", "Land_Test_House_01_F", "Land_Test_House_01_dam_F", "Land_Test_House_01_ruins_F", "Epoch_Test", "C_Test_Car_01_F", "C_Hatchback_01_EPOCH", "C_Hatchback_02_EPOCH", "C_Offroad_01_EPOCH", "C_Quadbike_01_EPOCH", "C_SUV_01_EPOCH", "C_Rubberboat_EPOCH", "C_Rubberboat_02_EPOCH", "C_Rubberboat_03_EPOCH", "C_Rubberboat_04_EPOCH", "C_Van_01_box_EPOCH", "C_Van_01_transport_EPOCH", "C_Boat_Civil_01_EPOCH", "C_Boat_Civil_01_police_EPOCH", "C_Boat_Civil_01_rescue_EPOCH", "B_Heli_Light_01_EPOCH", "B_Heli_Transport_01_EPOCH", "B_Heli_Transport_01_camo_EPOCH", "B_SDV_01_EPOCH", "B_MRAP_01_EPOCH", "B_Truck_01_transport_EPOCH", "B_Truck_01_covered_EPOCH", "B_Truck_01_mover_EPOCH", "B_Truck_01_box_EPOCH", "O_Truck_02_covered_EPOCH", "O_Truck_02_transport_EPOCH", "O_Truck_03_covered_EPOCH", "O_Truck_02_box_EPOCH", "O_Heli_Light_02_unarmed_EPOCH", "I_Heli_Transport_02_EPOCH", "I_Heli_light_03_unarmed_EPOCH", "O_Test_Tank_01", "Sword_SIM_EPOCH", "SapperHead_SIM_EPOCH", "SapperCorpse_SIM_EPOCH", "MetalFloor_SIM_EPOCH", "WoodRamp_SIM_EPOCH", "CinderWallHalf_SIM_EPOCH", "CinderWall_SIM_EPOCH", "CinderWallDoorway_SIM_EPOCH", "CinderWallSmallDoorway_SIM_EPOCH", "WoodFloor_SIM_EPOCH", "WoodFloorHalf_SIM_EPOCH", "WoodFloorQuarter_SIM_EPOCH", "WoodLargeWall_SIM_EPOCH", "WoodLargeWallCor_SIM_EPOCH", "WoodLargeWallDoorway_SIM_EPOCH", "WoodLargeWallDoor_SIM_EPOCH", "WoodLargeWallWin_SIM_EPOCH", "WoodSmallWallThird_SIM_EPOCH", "WoodStairs_SIM_EPOCH", "WoodLadder_SIM_EPOCH", "WoodStairsSans_SIM_EPOCH", "Shelf_SIM_EPOCH", "Chair_SIM_EPOCH", "ChairRed_SIM_EPOCH", "Filing_SIM_EPOCH", "Fridge_SIM_EPOCH", "Bed_SIM_EPOCH", "Couch_SIM_EPOCH", "Wardrobe_SIM_EPOCH", "Locker_SIM_EPOCH", "Cooker_SIM_EPOCH", "Pelican_SIM_EPOCH", "Land_SIM_EPOCH_WoodDoor_Base", "Land_SIM_EPOCH_WoodDoorLocked_Base", "CinderWallDoor_SIM_EPOCH_Base", "CinderWallDoorLocked_SIM_EPOCH_Base", "Land_SIM_EPOCH_WoodDoor", "Land_SIM_EPOCH_WoodDoorLocked", "Land_SIM_EPOCH_LargeWoodDoor", "Land_SIM_EPOCH_LargeWoodDoorLocked", "Land_SIM_EPOCH_GarageWoodDoor", "Land_SIM_EPOCH_GarageWoodDoorLocked", "CinderWallDoorLocked_SIM_EPOCH", "CinderWallDoor_SIM_EPOCH", "CinderWallDoorSmallLocked_SIM_EPOCH", "CinderWallDoorSmall_SIM_EPOCH", "Foundation_EPOCH", "Foundation_Ghost_EPOCH", "Sword_EPOCH", "MetalFloor_EPOCH", "WoodRamp_EPOCH", "CinderWallHalf_EPOCH", "CinderWall_EPOCH", "CinderWallDoorway_EPOCH", "CinderWallSmallDoorway_EPOCH", "WoodFloor_EPOCH", "WoodFloorHalf_EPOCH", "WoodFloorQuarter_EPOCH", "WoodLargeWall_EPOCH", "WoodLargeWallCor_EPOCH", "WoodLargeWallDoorway_EPOCH", "WoodLargeWallDoor_EPOCH", "WoodLargeWallWin_EPOCH", "WoodSmallWallThird_EPOCH", "WoodStairs_EPOCH", "WoodLadder_EPOCH", "WoodStairsSans_EPOCH", "Shelf_EPOCH", "Fridge_EPOCH", "Pelican_EPOCH", "BedProxy_EPOCH", "Bed_EPOCH", "CouchProxy_EPOCH", "Couch_EPOCH", "ChairProxy_EPOCH", "Chair_EPOCH", "ChairRed_EPOCH", "FilingProxy_EPOCH", "Filing_EPOCH", "Land_EPOCH_WoodDoor_Base", "Land_EPOCH_WoodDoorLocked_Base", "CinderWallDoor_EPOCH_Base", "CinderWallDoorLocked_EPOCH_Base", "Land_EPOCH_WoodDoor", "Land_EPOCH_WoodDoorLocked", "Land_EPOCH_LargeWoodDoor", "Land_EPOCH_LargeWoodDoorLocked", "Land_EPOCH_GarageWoodDoor", "Land_EPOCH_GarageWoodDoorLocked", "CinderWallDoorLocked_EPOCH", "CinderWallDoor_EPOCH", "CinderWallDoorSmallLocked_EPOCH", "CinderWallDoorSmall_EPOCH", "Poppy_EPOCH", "Land_WoodenBox_C_EPOCH", "Land_PaperBox_C_EPOCH", "centerplane_ui" };
weapons[] = { "U_Test_uniform", "U_Test1_uniform", "V_F0_EPOCH", "V_F1_EPOCH", "V_F2_EPOCH", "V_F3_EPOCH", "V_F4_EPOCH", "V_F5_EPOCH", "V_F6_EPOCH", "V_F7_EPOCH", "V_1_EPOCH", "V_2_EPOCH", "V_3_EPOCH", "V_4_EPOCH", "V_5_EPOCH", "V_6_EPOCH", "V_7_EPOCH", "V_8_EPOCH", "V_9_EPOCH", "V_10_EPOCH", "V_11_EPOCH", "V_12_EPOCH", "V_13_EPOCH", "V_14_EPOCH", "V_15_EPOCH", "V_16_EPOCH", "V_17_EPOCH", "V_18_EPOCH", "V_19_EPOCH", "V_20_EPOCH", "V_21_EPOCH", "V_22_EPOCH", "V_23_EPOCH", "V_24_EPOCH", "V_25_EPOCH", "V_26_EPOCH", "V_27_EPOCH", "V_28_EPOCH", "V_29_EPOCH", "V_30_EPOCH", "V_31_EPOCH", "V_32_EPOCH", "V_33_EPOCH", "V_34_EPOCH", "V_35_EPOCH", "V_36_EPOCH", "V_37_EPOCH", "V_38_EPOCH", "V_39_EPOCH", "V_40_EPOCH", "H_F0_EPOCH", "H_F1_EPOCH", "H_F2_EPOCH", "H_F3_EPOCH", "H_F4_EPOCH", "H_F5_EPOCH", "H_11_EPOCH", "H_28_EPOCH", "Rollins_F", "ChainSaw", "ChainSawB", "ChainSawG", "ChainSawP", "ChainSawR", "MultiGun", "Drink", "MeleeSledge", "test_suppressor", "Defib_EPOCH", "Heal_EPOCH", "Repair_EPOCH", , "sr25_epoch", "sr25_ec_epoch", "muzzle_sr25S_epoch", "l85a2_base_epoch", "l85a2_epoch", "l85a2_ris_epoch", "l85a2_ris_ng_epoch", "l85a2_pink_epoch", "l85a2_ugl_epoch" };
requiredVersion = 0.1;
requiredAddons[] = { "a3_map_altis", "a3_map_stratis", "A3_epoch_assets_3", "a3_epoch_weapons", "epoch_objects", "A3_epoch_vehicles", "A3_epoch_assets_1", "A3_epoch_assets", "A3_Soft_F", "A3_Characters_F", "A3_Characters_F_Beta", "A3_Characters_F_EPA", "A3_Characters_F_EPB", "A3_Structures_F", "A3_Armor_F_Beta", "A3_Data_F", "A3_Weapons_F", "A3_Characters_F_Kart", "A3_Soft_F_Kart_Kart_01", "a2_epoch_weapons", "A3_Air_F_Gamma_UAV_01", "A3_Soft_F_Car", "A3_Soft_F_Heli_Car", "A3_Soft_F_Offroad_01", "A3_Soft_F_Quadbike", "A3_Soft_F_Heli_Quadbike", "A3_Soft_F_SUV", "A3_Soft_F_Heli_SUV", "A3_Boat_F_Boat_Transport_01", "A3_Soft_F_Truck", "A3_Soft_F_Heli_Truck", "A3_Soft_F_Bootcamp_Truck", "A3_Boat_F_Civilian_Boat", "A3_Air_F_Heli_Light_01", "A3_Air_F_Heli_Heli_Light_01", "A3_Air_F_Beta_Heli_Transport_01", "A3_Boat_F_SDV_01", "A3_Boat_F_Heli_SDV_01", "A3_Soft_F_MRAP_01", "A3_Soft_F_Heli_MRAP_01", "A3_Soft_F_HEMTT", "A3_Soft_F_Gamma_HEMTT", "A3_Soft_F_TruckHeavy", "A3_Soft_F_Gamma_TruckHeavy", "A3_Soft_F_EPC_Truck_03", "A3_Air_F_Heli_Light_02", "A3_Air_F_Beta_Heli_Transport_02", "A3_Air_F_EPB_Heli_Light_03", "A3_Air_F_Heli_Heli_Transport_04", "A3_Air_F_Heli_Heli_Transport_03", "A3_Animals_F_Dog", "A3_Animals_F_Rabbit", "A3_Animals_F_Chicken", "A3_Characters_F_Common", "A3_Structures_F_Ind_Transmitter_Tower", "a3_epoch_structures" };
requiredAddons[] = { "a3_map_altis", "a3_map_stratis", "A3_epoch_assets_3", "a3_epoch_weapons", "epoch_objects", "A3_epoch_vehicles", "A3_epoch_assets_1", "A3_epoch_assets", "A3_Soft_F", "A3_Characters_F", "A3_Characters_F_Beta", "A3_Characters_F_EPA", "A3_Characters_F_EPB", "A3_Structures_F", "A3_Armor_F_Beta", "A3_Data_F", "A3_Weapons_F", "A3_Weapons_F_LongRangeRifles_M320", "A3_Weapons_F_LongRangeRifles_GM6","A3_Weapons_F_EBR", "A3_Weapons_F_EPA_LongRangeRifles_DMR_01", "A3_Weapons_F_Machineguns_M200", "A3_Weapons_F_Machineguns_Zafir", "A3_Weapons_F_Mark_LongRangeRifles_DMR_02", "A3_Weapons_F_Mark_LongRangeRifles_DMR_03", "A3_Weapons_F_Mark_LongRangeRifles_DMR_04", "A3_Weapons_F_Mark_LongRangeRifles_DMR_05", "A3_Weapons_F_Mark_LongRangeRifles_DMR_06","A3_Characters_F_Kart", "A3_Soft_F_Kart_Kart_01", "a2_epoch_weapons", "A3_Air_F_Gamma_UAV_01", "A3_Soft_F_Car", "A3_Soft_F_Heli_Car", "A3_Soft_F_Offroad_01", "A3_Soft_F_Quadbike", "A3_Soft_F_Heli_Quadbike", "A3_Soft_F_SUV", "A3_Soft_F_Heli_SUV", "A3_Boat_F_Boat_Transport_01", "A3_Soft_F_Truck", "A3_Soft_F_Heli_Truck", "A3_Soft_F_Bootcamp_Truck", "A3_Boat_F_Civilian_Boat", "A3_Air_F_Heli_Light_01", "A3_Air_F_Heli_Heli_Light_01", "A3_Air_F_Beta_Heli_Transport_01", "A3_Boat_F_SDV_01", "A3_Boat_F_Heli_SDV_01", "A3_Soft_F_MRAP_01", "A3_Soft_F_Heli_MRAP_01", "A3_Soft_F_HEMTT", "A3_Soft_F_Gamma_HEMTT", "A3_Soft_F_TruckHeavy", "A3_Soft_F_Gamma_TruckHeavy", "A3_Soft_F_EPC_Truck_03", "A3_Air_F_Heli_Light_02", "A3_Air_F_Beta_Heli_Transport_02", "A3_Air_F_EPB_Heli_Light_03", "A3_Air_F_Heli_Heli_Transport_04", "A3_Air_F_Heli_Heli_Transport_03", "A3_Animals_F_Dog", "A3_Animals_F_Rabbit", "A3_Animals_F_Chicken", "A3_Characters_F_Common", "A3_Structures_F_Ind_Transmitter_Tower", "a3_epoch_structures", "A3_Weapons_F_Ammoboxes" };
magazines[] = { "30Rnd_test_mag", "5Rnd_rollins_mag", "CSGAS", "sledge_swing", "30Rnd_test_mag_Tracer", "EnergyPack", "1Rnd_Soda", "1Rnd_Food", "WoodLog_EPOCH", "PaintCanBlk", "PaintCanBlu", "PaintCanBrn", "PaintCanGrn", "PaintCanOra", "PaintCanPur", "PaintCanRed", "PaintCanTeal", "PaintCanYel" };
ammo[] = { "B_EnergyPack", "B_Swing", "Sapper_Charge_Ammo", "SapperB_Charge_Ammo", "B_Soda", "B_Food", "B_Test_Caseless", "ChainSaw_Bullet", "SmokeShellCustom" };
epochVersion = "0.3.6.0";

View File

@ -124,7 +124,7 @@ bis[] = {
};
epoch[] = {
"epoch_localcleanup","epoch_client_publiceh","epoch_clientinit","epoch_oneachframe","epoch_masterloop","epoch_client_rejectplayer","epoch_clientrespawn","epoch_clientrevive","epoch_starttradereq","epoch_starttrade","epoch_traderequest","epoch_tradeloop","epoch_countdown",
"epoch_fnc_selecttarget","epoch_fnc_selecttargetbuild","epoch_isbuildallowed","epoch_simulswap","epoch_staticmove","epoch_returnvector","epoch_upgradebuild","epoch_removebuild","epoch_startinteract","epoch_startinteractnpc","epoch_interactnpc","epoch_npctraderadd",
"epoch_fnc_selecttarget","epoch_fnc_selecttargetbuild","epoch_isbuildallowed","epoch_simulswap","epoch_staticmove","BIS_fnc_returnVector","epoch_upgradebuild","epoch_removebuild","epoch_startinteract","epoch_startinteractnpc","epoch_interactnpc","epoch_npctraderadd",
"epoch_npctraderadd2","epoch_npctraderadd3","epoch_startnpctradermenu","epoch_npctradermenufilter","epoch_startnpctrade","epoch_makep2ptrade","epoch_tradefilter","epoch_takecrypto","epoch_startbanktransfer","epoch_keydown","epoch_onchar",
"epoch_fnc_playerdeath","epoch_fnc_playerfired","epoch_fnc_isinsidebuilding","epoch_fnc_weather","epoch_fnc_findsafepos","epoch_pushcustomvar","epoch_itempicture","epoch_itemdisplayname","epoch_fnc_findrandomposbehind","epoch_fnc_stringleft",
"epoch_sortarraybydistance","epoch_client_earthquake","epoch_client_loadanimalbrain","epoch_client_biteplayer","epoch_client_repairvehicle","epoch_client_lockvehicle","epoch_client_fillvehicle","epoch_client_gearvehicle","epoch_mission_accept","epoch_mission_hover_uav",