mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
0.3.9.0447
Pt 1 move base building configs to gamemode
This commit is contained in:
parent
28cfe61d37
commit
be348bca8f
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Altis.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Altis.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Australia.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Australia.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Bornholm.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Bornholm.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Chernarus.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Chernarus.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Desert_E.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Desert_E.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Esseker.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Esseker.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Napf.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Napf.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Porto.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Porto.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Sara.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Sara.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.SaraLite.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.SaraLite.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Stratis.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Stratis.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Takistan.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Takistan.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.VR.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.VR.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Zargabad.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.Zargabad.pbo
(Stored with Git LFS)
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.utes.pbo
(Stored with Git LFS)
BIN
Server_Install_Pack/mpmissions/epoch.utes.pbo
(Stored with Git LFS)
Binary file not shown.
@ -12,12 +12,14 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/EPOCH_consumeItem.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/EPOCH_consumeItem.sqf
|
||||||
*/
|
*/
|
||||||
private ["_type","_magazineSize","_text","_item","_pic","_magazinesAmmoFull","_magazineSizeMax","_config","_pos","_object","_isStorage","_isOk","_buildClass","_interactReturnOnUse","_vehicle","_currentFuel","_canCapacity","_interactAttributes","_fuelCapacity","_newFuel","_removeItem","_vehicles","_transportFuel","_highestDMG","_currentHIT","_currentDMG","_newDMG","_paintCanIndex","_paintCanColor","_msg","_color","_unifiedInteract","_interactOption"];
|
private ["_cfgBaseBuilding","_type","_magazineSize","_text","_item","_pic","_magazinesAmmoFull","_magazineSizeMax","_config","_pos","_object","_isStorage","_isOk","_buildClass","_interactReturnOnUse","_vehicle","_currentFuel","_canCapacity","_interactAttributes","_fuelCapacity","_newFuel","_removeItem","_vehicles","_transportFuel","_highestDMG","_currentHIT","_currentDMG","_newDMG","_paintCanIndex","_paintCanColor","_msg","_color","_unifiedInteract","_interactOption"];
|
||||||
|
|
||||||
_text = EPOCH_InteractedItem select 0;
|
_text = EPOCH_InteractedItem select 0;
|
||||||
_item = EPOCH_InteractedItem select 1;
|
_item = EPOCH_InteractedItem select 1;
|
||||||
_pic = EPOCH_InteractedItem select 2;
|
_pic = EPOCH_InteractedItem select 2;
|
||||||
|
|
||||||
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
|
||||||
_type = "CfgMagazines";
|
_type = "CfgMagazines";
|
||||||
if (isClass (configfile >> "CfgWeapons" >> _item)) then {_type = "CfgWeapons"};
|
if (isClass (configfile >> "CfgWeapons" >> _item)) then {_type = "CfgWeapons"};
|
||||||
|
|
||||||
@ -283,7 +285,7 @@ switch _interactOption do {
|
|||||||
_vehicle = cursorTarget;
|
_vehicle = cursorTarget;
|
||||||
if (_vehicle in _vehicles) then {
|
if (_vehicle in _vehicles) then {
|
||||||
if ("" call EPOCH_isBuildAllowed) then {
|
if ("" call EPOCH_isBuildAllowed) then {
|
||||||
_color = getArray(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "availableTextures");
|
_color = getArray(_cfgBaseBuilding >> (typeOf _vehicle) >> "availableTextures");
|
||||||
if !(_color isEqualTo[]) then {
|
if !(_color isEqualTo[]) then {
|
||||||
|
|
||||||
if (_item call _removeItem) then {
|
if (_item call _removeItem) then {
|
||||||
|
@ -43,55 +43,55 @@ if (!isNull EPOCH_currentTarget && vehicle player == player) then {
|
|||||||
if (_distance < 9) then {
|
if (_distance < 9) then {
|
||||||
|
|
||||||
_stability = 0;
|
_stability = 0;
|
||||||
_color = [1, 1, 1, 0.7];
|
_color = [1, 1, 1, 1];
|
||||||
_text = format ["Hold (%1)",EPOCH_keysAction call BIS_fnc_keyCode];
|
_text = format ["Hold (%1)",EPOCH_keysAction call BIS_fnc_keyCode];
|
||||||
_icon = "\x\addons\a3_epoch_code\Data\UI\ui_question_ca.paa";
|
_icon = "\x\addons\a3_epoch_code\Data\UI\ui_question_ca.paa";
|
||||||
|
|
||||||
_interactOption = getNumber(configFile >> "cfgVehicles" >> typeOf _currentTarget >> "interactMode");
|
switch EPOCH_currentTargetMode do {
|
||||||
switch _interactOption do {
|
|
||||||
case 0: {
|
case 0: {
|
||||||
_stability = 100 - round(damage _currentTarget * 100);
|
_stability = 100 - round(damage _currentTarget * 100);
|
||||||
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
||||||
_text = "";
|
_color = [100,0,_stability,1] call EPOCH_colorRange;
|
||||||
_color = [100,0,_stability,0.7] call EPOCH_colorRange;
|
|
||||||
};
|
};
|
||||||
case 1: {
|
case 1: {
|
||||||
_text = if (EPOCH_buildMode > 0) then[{_text}, { format ["Press (%1)",EPOCH_keysBuildMode1 call BIS_fnc_keyCode] }];
|
_text = if (EPOCH_buildMode > 0) then[{_text}, { format ["Press (%1) or %2",EPOCH_keysBuildMode1 call BIS_fnc_keyCode,_text] }];
|
||||||
_stability = if (EPOCH_buildMode > 0) then[{_currentTarget getVariable["stability", 100]}, {100 - round(damage _currentTarget * 100)}];
|
_stability = if (EPOCH_buildMode > 0) then[{_currentTarget getVariable["stability", 100]}, {100 - round(damage _currentTarget * 100)}];
|
||||||
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
||||||
_color = [100,0,_stability,0.7] call EPOCH_colorRange;
|
_color = [100,0,_stability,1] call EPOCH_colorRange;
|
||||||
};
|
};
|
||||||
case 2: {
|
case 2: {
|
||||||
if (alive _currentTarget) then{
|
if (alive _currentTarget) then{
|
||||||
_text = format["%1 - Press (Ctrl+%2)", if (isStreamFriendlyUIEnabled) then[{"Player"}, { name _currentTarget }],EPOCH_keysAcceptTrade call BIS_fnc_keyCode];
|
// TODO move accept trade into dynamic menu
|
||||||
|
_text = format["%1 - %2", if (isStreamFriendlyUIEnabled && isPlayer _currentTarget) then[{"Player"}, { name _currentTarget }],_text];
|
||||||
_stability = 100 - round(damage _currentTarget * 100);
|
_stability = 100 - round(damage _currentTarget * 100);
|
||||||
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
||||||
_color = [100,0,_stability,0.7] call EPOCH_colorRange;
|
_color = [100,0,_stability,1] call EPOCH_colorRange;
|
||||||
} else {
|
} else {
|
||||||
//_text = "Press (Inventory)";
|
//_text = "Press (Inventory)";
|
||||||
_icon = "\x\addons\a3_epoch_code\Data\UI\ui_crossbones_ca.paa";
|
_icon = "\x\addons\a3_epoch_code\Data\UI\ui_crossbones_ca.paa";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
case 3: {
|
case 3: {
|
||||||
|
// Animals
|
||||||
if (!alive _currentTarget && _distance < 2) then{
|
if (!alive _currentTarget && _distance < 2) then{
|
||||||
_text = format ["Gut Animal - %1",_text];
|
_text = format ["Gut Animal - %1",_text];
|
||||||
_icon = "\x\addons\a3_epoch_code\Data\UI\ui_crossbones_ca.paa";
|
_icon = "\x\addons\a3_epoch_code\Data\UI\ui_crossbones_ca.paa";
|
||||||
_color = [1,0,0,0.7];
|
_color = [1,1,1,1];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
case 4: {
|
case 4: {
|
||||||
_text = if (EPOCH_buildMode > 0) then[{_text}, { format ["Press (%1) or (Inventory)",EPOCH_keysBuildMode1 call BIS_fnc_keyCode] }];
|
// Base Objects With Storage
|
||||||
|
_text = if (EPOCH_buildMode > 0) then[{_text}, { format ["Press (%1) or (%2) or %3",EPOCH_keysBuildMode1 call BIS_fnc_keyCode, (actionKeys "Gear" select 0) call BIS_fnc_keyCode),_text] }];
|
||||||
_stability = if (EPOCH_buildMode > 0) then[{_currentTarget getVariable["stability", 100]}, {100 - round(damage _currentTarget * 100)}];
|
_stability = if (EPOCH_buildMode > 0) then[{_currentTarget getVariable["stability", 100]}, {100 - round(damage _currentTarget * 100)}];
|
||||||
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
||||||
_color = [100,0,_stability,0.7] call EPOCH_colorRange;
|
_color = [100,0,_stability,1] call EPOCH_colorRange;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!isNull EPOCH_stabilityTarget) then {
|
if (!isNull EPOCH_stabilityTarget) then {
|
||||||
if (([10] call EPOCH_fnc_cursorTarget) != EPOCH_stabilityTarget) then {
|
if (([10] call EPOCH_fnc_cursorTarget) != EPOCH_stabilityTarget) then {
|
||||||
EPOCH_stabilityTarget = objNull;
|
EPOCH_stabilityTarget = objNull;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
_text = "";
|
_text = "";
|
||||||
if ((diag_tickTime - EPOCH_lastTargetTime) >= 0.05) then {
|
if ((diag_tickTime - EPOCH_lastTargetTime) >= 0.05) then {
|
||||||
_stability = (_stability - 1) max 0;
|
_stability = (_stability - 1) max 0;
|
||||||
@ -104,25 +104,20 @@ if (!isNull EPOCH_currentTarget && vehicle player == player) then {
|
|||||||
case 1: {EPOCH_stabilityTarget call EPOCH_upgradeBUILD};
|
case 1: {EPOCH_stabilityTarget call EPOCH_upgradeBUILD};
|
||||||
case 2: {EPOCH_stabilityTarget call EPOCH_fnc_SelectTargetBuild};
|
case 2: {EPOCH_stabilityTarget call EPOCH_fnc_SelectTargetBuild};
|
||||||
};
|
};
|
||||||
|
|
||||||
EPOCH_stabilityTarget = objNull;
|
EPOCH_stabilityTarget = objNull;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_pos = visiblePositionASL _currentTarget;
|
_pos = visiblePositionASL _currentTarget;
|
||||||
_pos set[2, (_currentTarget modelToWorld[0, 0, 0]) select 2];
|
_pos set[2, (_currentTarget modelToWorld[0, 0, 0]) select 2];
|
||||||
|
|
||||||
_size = 2.5;
|
_size = 2.5;
|
||||||
drawIcon3D[format[_icon, _stability], _color, _pos, _size, _size, 0, _text, 0, _size / 60, "PuristaMedium"];
|
drawIcon3D[format[_icon, _stability], _color, _pos, _size, _size, 0, _text, 0, _size / 60, "PuristaMedium"];
|
||||||
};
|
};
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
EPOCH_stabilityTarget = objNull;
|
EPOCH_stabilityTarget = objNull;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
if (EPOCH_drawIcon3d) then {
|
if (EPOCH_drawIcon3d) then {
|
||||||
{
|
{
|
||||||
if (!isPlayer _x) then {
|
if (!isPlayer _x) then {
|
||||||
@ -130,7 +125,7 @@ if (EPOCH_drawIcon3d) then {
|
|||||||
_pos set[2, (_x modelToWorld[0, 0, 0]) select 2];
|
_pos set[2, (_x modelToWorld[0, 0, 0]) select 2];
|
||||||
_endTime = _x getVariable["EPOCH_endTime", 0];
|
_endTime = _x getVariable["EPOCH_endTime", 0];
|
||||||
_num = (round(_endTime - diag_tickTime)) max 0;
|
_num = (round(_endTime - diag_tickTime)) max 0;
|
||||||
_color = [10,0,_num,0.7] call EPOCH_colorRange;
|
_color = [10,0,_num,1] call EPOCH_colorRange;
|
||||||
drawIcon3D[format["\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa", _num], _color, _pos, 4, 4, 0, "", 1, 0.05, "PuristaMedium"];
|
drawIcon3D[format["\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa", _num], _color, _pos, 4, 4, 0, "", 1, 0.05, "PuristaMedium"];
|
||||||
};
|
};
|
||||||
}forEach EPOCH_arr_countdown;
|
}forEach EPOCH_arr_countdown;
|
||||||
@ -151,7 +146,7 @@ if (EPOCH_drawIcon3d) then {
|
|||||||
_pos = visiblePositionASL _x;
|
_pos = visiblePositionASL _x;
|
||||||
_pos set[2, (_x modelToWorld[0, 0, 0]) select 2];
|
_pos set[2, (_x modelToWorld[0, 0, 0]) select 2];
|
||||||
_dmg = damage _x;
|
_dmg = damage _x;
|
||||||
_color = [0,1,_dmg,0.7] call EPOCH_colorRange;
|
_color = [0,1,_dmg,1] call EPOCH_colorRange;
|
||||||
_text = '';
|
_text = '';
|
||||||
_text = format['%1 : %2m', [typeOf _x,name _x] select (isPlayer _x), round(player distance _x)];
|
_text = format['%1 : %2m', [typeOf _x,name _x] select (isPlayer _x), round(player distance _x)];
|
||||||
drawIcon3D["\x\addons\a3_epoch_code\Data\Member.paa", _color, _pos, 1, 1, 0, _text, 1, 0.025, "PuristaMedium"];
|
drawIcon3D["\x\addons\a3_epoch_code\Data\Member.paa", _color, _pos, 1, 1, 0, _text, 1, 0.025, "PuristaMedium"];
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
Returns:
|
Returns:
|
||||||
NOTHING
|
NOTHING
|
||||||
*/
|
*/
|
||||||
private ["_config","_posObj","_savedBuildPos","_previousBuildPos","_saveCheck","_endTime","_worldspace","_class","_newObj","_startTime","_objClass"];
|
private ["_cfgBaseBuilding","_posObj","_savedBuildPos","_previousBuildPos","_saveCheck","_endTime","_worldspace","_class","_newObj","_startTime","_objClass"];
|
||||||
|
|
||||||
if (!isNull _this) then {
|
if (!isNull _this) then {
|
||||||
|
|
||||||
@ -63,16 +63,16 @@ if (!isNull _this) then {
|
|||||||
|
|
||||||
_objClass = typeOf _this;
|
_objClass = typeOf _this;
|
||||||
// Spawn temporary static item insead of saving.
|
// Spawn temporary static item insead of saving.
|
||||||
_config = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
if (getNumber(_config >> _objClass >> "isTemporary") == 1) then {
|
if (getNumber(_cfgBaseBuilding >> _objClass >> "isTemporary") == 1) then {
|
||||||
_worldspace = [getposATL _this, vectordir _this, vectorup _this];
|
_worldspace = [getposATL _this, vectordir _this, vectorup _this];
|
||||||
deleteVehicle _this;
|
deleteVehicle _this;
|
||||||
_class = getText(configfile >> "CfgVehicles" >> _objClass >> "staticClass");
|
_class = getText(_cfgBaseBuilding >> _objClass >> "staticClass");
|
||||||
_newObj = createVehicle["Fireplace_EPOCH", (_worldspace select 0), [], 0, "CAN_COLLIDE"];
|
if (_class != "") then {
|
||||||
|
_newObj = createVehicle[_class, (_worldspace select 0), [], 0, "CAN_COLLIDE"];
|
||||||
_newObj setposATL(_worldspace select 0);
|
_newObj setposATL(_worldspace select 0);
|
||||||
_newObj setVectorDirAndUp[_worldspace select 1, _worldspace select 2];
|
_newObj setVectorDirAndUp[_worldspace select 1, _worldspace select 2];
|
||||||
// proceed to send save to server
|
};
|
||||||
} else {
|
} else {
|
||||||
if (_saveCheck) then {
|
if (_saveCheck) then {
|
||||||
[_this, player, Epoch_personalToken] remoteExec["EPOCH_server_saveBuilding", 2];
|
[_this, player, Epoch_personalToken] remoteExec["EPOCH_server_saveBuilding", 2];
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
Returns:
|
Returns:
|
||||||
BOOL
|
BOOL
|
||||||
*/
|
*/
|
||||||
private ["_buildingJammerRange","_buildingCountLimit","_buildingAllowed","_nearestJammer","_ownedJammerExists","_objectCount","_limitNearby","_restricted","_range","_config","_staticClass","_objType","_simulClass","_bypassJammer","_jammer","_restrictedLocations","_myPosATL"];
|
private ["_cfgBaseBuilding","_buildingJammerRange","_buildingCountLimit","_buildingAllowed","_nearestJammer","_ownedJammerExists","_objectCount","_limitNearby","_restricted","_range","_config","_staticClass","_objType","_simulClass","_bypassJammer","_jammer","_restrictedLocations","_myPosATL"];
|
||||||
|
|
||||||
_buildingAllowed = true;
|
_buildingAllowed = true;
|
||||||
_ownedJammerExists = false;
|
_ownedJammerExists = false;
|
||||||
@ -33,6 +33,7 @@ if (vehicle player != player)exitWith{["<t size = '1.6' color = '#99ffffff'>Buil
|
|||||||
|
|
||||||
// defaults
|
// defaults
|
||||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||||
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_buildingJammerRange = getNumber(_config >> "buildingJammerRange");
|
_buildingJammerRange = getNumber(_config >> "buildingJammerRange");
|
||||||
_buildingCountLimit = getNumber(_config >> "buildingCountLimit");
|
_buildingCountLimit = getNumber(_config >> "buildingCountLimit");
|
||||||
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
|
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
|
||||||
@ -46,9 +47,9 @@ if (_objType isEqualType objNull) then {
|
|||||||
_objType = typeOf _objType;
|
_objType = typeOf _objType;
|
||||||
};
|
};
|
||||||
|
|
||||||
_staticClass = getText(configfile >> "CfgVehicles" >> _objType >> "staticClass");
|
_staticClass = getText(_cfgBaseBuilding >> _objType >> "staticClass");
|
||||||
_simulClass = getText(configfile >> "CfgVehicles" >> _objType >> "simulClass");
|
_simulClass = getText(_cfgBaseBuilding >> _objType >> "simulClass");
|
||||||
_bypassJammer = getNumber(configfile >> "CfgVehicles" >> _staticClass >> "bypassJammer");
|
_bypassJammer = getNumber(_cfgBaseBuilding >> _staticClass >> "bypassJammer");
|
||||||
|
|
||||||
// Jammer
|
// Jammer
|
||||||
_jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange*3];
|
_jammer = nearestObjects[player, ["PlotPole_EPOCH"], _buildingJammerRange*3];
|
||||||
@ -87,7 +88,7 @@ if !(_buildingAllowed)exitWith{ false };
|
|||||||
|
|
||||||
// Max object
|
// Max object
|
||||||
if (!_ownedJammerExists) then{
|
if (!_ownedJammerExists) then{
|
||||||
_limitNearby = getNumber(configfile >> "CfgVehicles" >> _staticClass >> "limitNearby");
|
_limitNearby = getNumber(_cfgBaseBuilding >> _staticClass >> "limitNearby");
|
||||||
|
|
||||||
if (_limitNearby > 0) then{
|
if (_limitNearby > 0) then{
|
||||||
// remove current target from objects
|
// remove current target from objects
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
Returns:
|
Returns:
|
||||||
NOTHING
|
NOTHING
|
||||||
*/
|
*/
|
||||||
private ["_energyCost","_allowedSnapObjects","_worldspace","_objSlot","_textureSlot","_newObj","_lastCheckTime","_rejectMove","_nearestObject","_nearestObjectRaw","_distanceNear","_previousDistanceNear","_pOffset","_snapPos","_isSnap","_snapPosition","_snapType","_snapDistance","_prevSnapDistance","_snapPointsPara","_snapPointsPerp","_snapArrayPara","_snapArrayPerp","_pos2","_direction","_vel2","_dir2","_up2","_distance","_playerdistance","_class","_create","_allowedSnapPoints","_snapObjects","_currentTarget","_onContactEH","_offset","_disallowed","_object","_objType","_return","_velocityTransformation","_distanceMod","_oemType","_config"];
|
private ["_simulClassConfig","_energyCost","_allowedSnapObjects","_worldspace","_objSlot","_textureSlot","_newObj","_lastCheckTime","_rejectMove","_nearestObject","_nearestObjectRaw","_distanceNear","_previousDistanceNear","_pOffset","_snapPos","_isSnap","_snapPosition","_snapType","_snapDistance","_prevSnapDistance","_snapPointsPara","_snapPointsPerp","_snapArrayPara","_snapArrayPerp","_pos2","_direction","_vel2","_dir2","_up2","_distance","_playerdistance","_class","_create","_allowedSnapPoints","_snapObjects","_currentTarget","_onContactEH","_offset","_disallowed","_object","_objType","_return","_velocityTransformation","_distanceMod","_oemType","_cfgBaseBuilding"];
|
||||||
if !(isNil "EPOCH_simulSwap_Lock") exitWith{};
|
if !(isNil "EPOCH_simulSwap_Lock") exitWith{};
|
||||||
|
|
||||||
_object = param [0,objNull];
|
_object = param [0,objNull];
|
||||||
@ -42,14 +42,17 @@ _velocityTransformation = [];
|
|||||||
_prevSnapDistance = 0;
|
_prevSnapDistance = 0;
|
||||||
_distanceMod = 0;
|
_distanceMod = 0;
|
||||||
_oemType = (typeOf _object);
|
_oemType = (typeOf _object);
|
||||||
_config = (configFile >> "CfgVehicles" >> _oemType >> "simulClass");
|
|
||||||
if (isText(_config)) then {
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_class = getText(_config);
|
|
||||||
|
_simulClassConfig = (_cfgBaseBuilding >> _oemType >> "simulClass");
|
||||||
|
if (isText(_simulClassConfig)) then {
|
||||||
|
_class = getText(_simulClassConfig);
|
||||||
_create = true;
|
_create = true;
|
||||||
_allowedSnapPoints = getArray(configfile >> "cfgVehicles" >> _class >> "allowedSnapPoints");
|
_allowedSnapPoints = getArray(_cfgBaseBuilding >> _class >> "allowedSnapPoints");
|
||||||
_allowedSnapObjects = ["Constructions_static_F"];
|
_allowedSnapObjects = ["Constructions_static_F"];
|
||||||
_snapObjects = configfile >> "cfgVehicles" >> _class >> "allowedSnapObjects";
|
_snapObjects = _cfgBaseBuilding >> _class >> "allowedSnapObjects";
|
||||||
_energyCost = getNumber(configfile >> "cfgVehicles" >> _class >> "energyCost");
|
_energyCost = getNumber(_cfgBaseBuilding >> _class >> "energyCost");
|
||||||
if (_energyCost == 0) then {
|
if (_energyCost == 0) then {
|
||||||
_energyCost = 0.1;
|
_energyCost = 0.1;
|
||||||
};
|
};
|
||||||
@ -129,8 +132,8 @@ if (isText(_config)) then {
|
|||||||
} forEach _allowedSnapObjects;
|
} forEach _allowedSnapObjects;
|
||||||
};
|
};
|
||||||
if (!isNull _nearestObject) then {
|
if (!isNull _nearestObject) then {
|
||||||
_snapPointsPara = getArray(configfile >> "cfgVehicles" >> (typeOf _nearestObject) >> "snapPointsPara");
|
_snapPointsPara = getArray(_cfgBaseBuilding >> (typeOf _nearestObject) >> "snapPointsPara");
|
||||||
_snapPointsPerp = getArray(configfile >> "cfgVehicles" >> (typeOf _nearestObject) >> "snapPointsPerp");
|
_snapPointsPerp = getArray(_cfgBaseBuilding >> (typeOf _nearestObject) >> "snapPointsPerp");
|
||||||
_snapArrayPara = [];
|
_snapArrayPara = [];
|
||||||
{
|
{
|
||||||
if (_x in _allowedSnapPoints) then {
|
if (_x in _allowedSnapPoints) then {
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
NOTHING
|
NOTHING
|
||||||
*/
|
*/
|
||||||
if !(isNil "EPOCH_simulSwap_Lock") exitWith{};
|
if !(isNil "EPOCH_simulSwap_Lock") exitWith{};
|
||||||
private ["_energyCost","_maxHeight","_stabilityCheck","_pos2ATL","_lastCheckTime","_rejectMove","_currentOffSet","_dir2","_up2","_nearestObject","_isSnap","_snapPosition","_snapType","_pOffset","_snapPos","_snapDistance","_snapPos1","_pos_snapObj","_direction","_pos1_snap","_pos2_snap","_ins","_EPOCH_2","_arr_snapPoints","_pos1","_offSet","_snapConfig","_snapPointsPara","_snapPointsPerp","_baselineSnapPos","_distance","_nearestObjects","_EPOCH_1","_pos2","_numberOfContacts","_worldspace","_currentTarget","_offsetZPos","_currentPos","_objSlot","_allowedSnapPoints","_allowedSnapObjects","_objType","_class","_simulClass","_snapChecks","_maxSnapDistance"];
|
private ["_cfgBaseBuilding","_energyCost","_maxHeight","_stabilityCheck","_pos2ATL","_lastCheckTime","_rejectMove","_currentOffSet","_dir2","_up2","_nearestObject","_isSnap","_snapPosition","_snapType","_pOffset","_snapPos","_snapDistance","_snapPos1","_pos_snapObj","_direction","_pos1_snap","_pos2_snap","_ins","_EPOCH_2","_arr_snapPoints","_pos1","_offSet","_snapConfig","_snapPointsPara","_snapPointsPerp","_baselineSnapPos","_distance","_nearestObjects","_EPOCH_1","_pos2","_numberOfContacts","_worldspace","_currentTarget","_offsetZPos","_currentPos","_objSlot","_allowedSnapPoints","_allowedSnapObjects","_objType","_class","_simulClass","_snapChecks","_maxSnapDistance"];
|
||||||
params [
|
params [
|
||||||
["_object",objNull],
|
["_object",objNull],
|
||||||
["_item",""]
|
["_item",""]
|
||||||
@ -44,14 +44,16 @@ EPOCH_simulSwap_Lock = true;
|
|||||||
|
|
||||||
_objType = typeOf _object;
|
_objType = typeOf _object;
|
||||||
|
|
||||||
_energyCost = getNumber(configfile >> "cfgVehicles" >> _objType >> "energyCost");
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
|
||||||
|
_energyCost = getNumber(_cfgBaseBuilding >> _objType >> "energyCost");
|
||||||
if (_energyCost == 0) then {
|
if (_energyCost == 0) then {
|
||||||
_energyCost = 0.1;
|
_energyCost = 0.1;
|
||||||
};
|
};
|
||||||
|
|
||||||
_class = getText(configfile >> "cfgVehicles" >> _objType >> "GhostPreview");
|
_class = getText(_cfgBaseBuilding >> _objType >> "GhostPreview");
|
||||||
_maxHeight = getNumber(configfile >> "cfgVehicles" >> _objType >> "maxHeight");
|
_maxHeight = getNumber(_cfgBaseBuilding >> _objType >> "maxHeight");
|
||||||
_simulClass = getText(configFile >> "CfgVehicles" >> _objType >> "simulClass");
|
_simulClass = getText(_cfgBaseBuilding >> _objType >> "simulClass");
|
||||||
_snapChecks = getArray(("CfgSnapChecks" call EPOCH_returnConfig) >> _objType >> "nails");
|
_snapChecks = getArray(("CfgSnapChecks" call EPOCH_returnConfig) >> _objType >> "nails");
|
||||||
|
|
||||||
_maxSnapDistance = 1;
|
_maxSnapDistance = 1;
|
||||||
@ -95,8 +97,8 @@ if (_class != "") then {
|
|||||||
_currentTarget setVariable["BUILD_SLOT", _objSlot, true];
|
_currentTarget setVariable["BUILD_SLOT", _objSlot, true];
|
||||||
};
|
};
|
||||||
|
|
||||||
_allowedSnapPoints = getArray(configfile >> "cfgVehicles" >> _class >> "allowedSnapPoints");
|
_allowedSnapPoints = getArray(_cfgBaseBuilding >> _class >> "allowedSnapPoints");
|
||||||
_allowedSnapObjects = getArray(configfile >> "cfgVehicles" >> _class >> "allowedSnapObjects");
|
_allowedSnapObjects = getArray(_cfgBaseBuilding >> _class >> "allowedSnapObjects");
|
||||||
|
|
||||||
_currentOffSet = [];
|
_currentOffSet = [];
|
||||||
EP_snap = objNull;
|
EP_snap = objNull;
|
||||||
@ -162,7 +164,7 @@ if (_class != "") then {
|
|||||||
|
|
||||||
_isSnap = false;
|
_isSnap = false;
|
||||||
_snapPosition = [0, 0, 0];
|
_snapPosition = [0, 0, 0];
|
||||||
_snapConfig = configfile >> "cfgVehicles" >> (typeOf _nearestObject);
|
_snapConfig = _cfgBaseBuilding >> (typeOf _nearestObject);
|
||||||
_snapPointsPara = getArray(_snapConfig >> "snapPointsPara");
|
_snapPointsPara = getArray(_snapConfig >> "snapPointsPara");
|
||||||
_snapPointsPerp = getArray(_snapConfig >> "snapPointsPerp");
|
_snapPointsPerp = getArray(_snapConfig >> "snapPointsPerp");
|
||||||
|
|
||||||
|
@ -181,26 +181,6 @@ if (vehicle player == player) then {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_dikCode == EPOCH_keysAcceptTrade) then {
|
|
||||||
if (_ctrl) then {
|
|
||||||
if (!isNull cursorTarget) then {
|
|
||||||
if ((player distance cursorTarget) < 6) then {
|
|
||||||
if (cursorTarget != player && isPlayer cursorTarget && vehicle cursorTarget == cursorTarget) then {
|
|
||||||
[cursorTarget, player, Epoch_personalToken] call EPOCH_startTRADEREQ;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
if !(isNull EPOCH_pendingP2ptradeTarget && isPlayer EPOCH_pendingP2ptradeTarget) then {
|
|
||||||
if ((player distance EPOCH_pendingP2ptradeTarget) < 6) then {
|
|
||||||
EPOCH_p2ptradeTarget = EPOCH_pendingP2ptradeTarget;
|
|
||||||
call EPOCH_startTrade;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
_handled = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (_dikCode in(actionKeys "moveFastForward") || _dikCode in(actionKeys "moveForward")) then {
|
if (_dikCode in(actionKeys "moveFastForward") || _dikCode in(actionKeys "moveForward")) then {
|
||||||
if ((diag_tickTime - EPOCH_lastAGTime) > 1) then {
|
if ((diag_tickTime - EPOCH_lastAGTime) > 1) then {
|
||||||
EPOCH_lastAGTime = diag_tickTime;
|
EPOCH_lastAGTime = diag_tickTime;
|
||||||
|
@ -23,10 +23,12 @@
|
|||||||
Returns:
|
Returns:
|
||||||
BOOL
|
BOOL
|
||||||
*/
|
*/
|
||||||
|
private ["_class","_randomColor","_positions","_posName","_color","_colors","_randomIndex","_selectedLoot","_position","_pos","_m2WPos","_dir","_relDir","_item","_return","_possibleCount","_possibleLoots","_masterConfig","_config","_cfgBaseBuilding","_lootBias","_lootType","_loots","_lootLimit"];
|
||||||
params [["_building",objNull,[objNull]], ["_lootCheckBufferLimit",333], ["_lootObjectLimit",33]];
|
params [["_building",objNull,[objNull]], ["_lootCheckBufferLimit",333], ["_lootObjectLimit",33]];
|
||||||
|
|
||||||
_masterConfig = 'CfgBuildingLootPos' call EPOCH_returnConfig;
|
_masterConfig = 'CfgBuildingLootPos' call EPOCH_returnConfig;
|
||||||
_config = _masterConfig >> (typeOf _building);
|
_config = _masterConfig >> (typeOf _building);
|
||||||
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
|
||||||
// exit with false if building is not lootable
|
// exit with false if building is not lootable
|
||||||
_return = false;
|
_return = false;
|
||||||
@ -88,7 +90,7 @@ if ((random 100) < _lootBias) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (_randomColor isEqualTo "true") then {
|
if (_randomColor isEqualTo "true") then {
|
||||||
_colors = getArray(configFile >> "CfgVehicles" >> _class >> "availableTextures");
|
_colors = getArray(_cfgBaseBuilding >> _class >> "availableTextures");
|
||||||
if !(_colors isEqualTo[]) then {
|
if !(_colors isEqualTo[]) then {
|
||||||
_color = selectRandom _colors;
|
_color = selectRandom _colors;
|
||||||
_item setObjectTextureGlobal[0, _color];
|
_item setObjectTextureGlobal[0, _color];
|
||||||
|
@ -31,7 +31,6 @@ _keyMap =
|
|||||||
["Action","EPOCH_keysAction",0x39],
|
["Action","EPOCH_keysAction",0x39],
|
||||||
["Holster Weapon", "EPOCH_keysHolster", 35],
|
["Holster Weapon", "EPOCH_keysHolster", 35],
|
||||||
["Debug Monitor", "EPOCH_keysDebugMon", 41],
|
["Debug Monitor", "EPOCH_keysDebugMon", 41],
|
||||||
["Trade", "EPOCH_keysAcceptTrade", 0x14],
|
|
||||||
|
|
||||||
["Volume + (ctrl)","EPOCH_keysVolumeUp",0x0D],
|
["Volume + (ctrl)","EPOCH_keysVolumeUp",0x0D],
|
||||||
["Volume - (ctrl)","EPOCH_keysVolumeDown",0x0C],
|
["Volume - (ctrl)","EPOCH_keysVolumeDown",0x0C],
|
||||||
|
@ -1,17 +1,51 @@
|
|||||||
_currentTarget = objNull;
|
_currentTarget = objNull;
|
||||||
|
_currentTargetMode = 0;
|
||||||
_cursorTarget = ([10] call EPOCH_fnc_cursorTarget);
|
_cursorTarget = ([10] call EPOCH_fnc_cursorTarget);
|
||||||
if (!isNull _cursorTarget && {!(EPOCH_target isEqualTo _cursorTarget)}) then {
|
if (!isNull _cursorTarget && {!(EPOCH_target isEqualTo _cursorTarget)}) 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{
|
// Land_MPS_EPOCH = ThingX 0
|
||||||
if (_cursorTarget isKindOf "Animal_Base_F") then {
|
// container_epoch = ThingX 0
|
||||||
if !(alive _cursorTarget) then {
|
// Parent - Constructions_modular_F = ThingX
|
||||||
|
// Epoch_Female_F , Epoch_Male_F = 2
|
||||||
|
// Animal_Base_F = 3
|
||||||
|
// Buildable_Storage = 4
|
||||||
|
_interactType = typeOf _cursorTarget;
|
||||||
|
_interaction = (_cfgObjectInteractions >> _interactType);
|
||||||
|
if (isClass(_interaction)) then {
|
||||||
|
_currentTargetMode = getNumber (_interaction >> "interactMode");
|
||||||
|
_currentTarget = _cursorTarget;
|
||||||
|
} else {
|
||||||
|
// AllVehicles = vehicles=0 players=2 animals=3
|
||||||
|
if (_cursorTarget isKindOf "AllVehicles") then {
|
||||||
|
if (_cursorTarget isKindOf "Animal_Base_F") then { // 3
|
||||||
|
if !(alive _cursorTarget) then {
|
||||||
|
_currentTargetMode = 3;
|
||||||
|
_currentTarget = _cursorTarget;
|
||||||
|
};
|
||||||
|
} else {
|
||||||
_currentTarget = _cursorTarget;
|
_currentTarget = _cursorTarget;
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
_currentTarget = _cursorTarget;
|
if (_cursorTarget isKindOf "Constructions_modular_F" || _cursorTarget isKindOf "Constructions_static_F" || _cursorTarget isKindOf "Constructions_foundation_F") then {
|
||||||
|
_currentTargetMode = 1;
|
||||||
|
_currentTarget = _cursorTarget;
|
||||||
|
} else {
|
||||||
|
if (_cursorTarget isKindOf "Buildable_Storage") then {
|
||||||
|
_currentTargetMode = 4;
|
||||||
|
_currentTarget = _cursorTarget;
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
if (_cursorTarget isKindOf "WeaponHolder") then {
|
||||||
|
_currentTargetMode = 0;
|
||||||
|
_currentTarget = _cursorTarget;
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
EPOCH_currentTarget = _currentTarget;
|
EPOCH_currentTarget = _currentTarget;
|
||||||
|
EPOCH_currentTargetMode = _currentTargetMode;
|
||||||
|
|
||||||
_increaseStamina = false;
|
_increaseStamina = false;
|
||||||
_vehicle = vehicle player;
|
_vehicle = vehicle player;
|
||||||
@ -32,6 +66,7 @@ if (_vehicle == player) then {
|
|||||||
EPOCH_Target = objNull;
|
EPOCH_Target = objNull;
|
||||||
};
|
};
|
||||||
_increaseStamina = true;
|
_increaseStamina = true;
|
||||||
|
|
||||||
// TODO: move back to vehicle configs
|
// TODO: move back to vehicle configs
|
||||||
switch (typeOf _vehicle) do {
|
switch (typeOf _vehicle) do {
|
||||||
case "jetski_epoch": {
|
case "jetski_epoch": {
|
||||||
|
@ -31,8 +31,8 @@ if !(_powerSources isEqualTo[]) then {
|
|||||||
_totalCapacity = 0;
|
_totalCapacity = 0;
|
||||||
{
|
{
|
||||||
_powerClass = typeOf _x;
|
_powerClass = typeOf _x;
|
||||||
_powerCap = getNumber(configFile >> "CfgVehicles" >> _powerClass >> "powerCapacity");
|
_powerCap = getNumber(_cfgBaseBuilding >> _powerClass >> "powerCapacity");
|
||||||
_powerType = getNumber(configFile >> "CfgVehicles" >> _powerClass >> "powerType");
|
_powerType = getNumber(_cfgBaseBuilding >> _powerClass >> "powerType");
|
||||||
if (_powerCap == 0) then {
|
if (_powerCap == 0) then {
|
||||||
_powerCap = 100;
|
_powerCap = 100;
|
||||||
};
|
};
|
||||||
|
@ -97,3 +97,7 @@ _fadeUI = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
_cursorTarget = objNull;
|
_cursorTarget = objNull;
|
||||||
|
|
||||||
|
// init cfgBaseBuilding config var
|
||||||
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
_cfgObjectInteractions = 'CfgObjectInteractions' call EPOCH_returnConfig;
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
// TODO remove unused file
|
||||||
private ["_target","_forceGear","_targets","_handled","_dialog","_vehicle"];
|
private ["_target","_forceGear","_targets","_handled","_dialog","_vehicle"];
|
||||||
closeDialog 0;
|
closeDialog 0;
|
||||||
_dialog = "";
|
_dialog = "";
|
||||||
|
@ -47,6 +47,7 @@ EPOCH_drawIcon3d = false;
|
|||||||
EPOCH_velTransform = false;
|
EPOCH_velTransform = false;
|
||||||
EPOCH_stabilityTarget = objNull;
|
EPOCH_stabilityTarget = objNull;
|
||||||
EPOCH_currentTarget = objNull;
|
EPOCH_currentTarget = objNull;
|
||||||
|
EPOCH_currentTargetMode = 0;
|
||||||
EPOCH_LootedBlds = [];
|
EPOCH_LootedBlds = [];
|
||||||
EPOCH_lootObjects = [];
|
EPOCH_lootObjects = [];
|
||||||
EPOCH_soundLevel = 1;
|
EPOCH_soundLevel = 1;
|
||||||
|
@ -27,6 +27,8 @@ class CfgActionMenu
|
|||||||
dyna_buildMode = "([10] call EPOCH_fnc_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_isPlayer = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'Man') && (dyna_cursorTarget != player) && (isPlayer dyna_cursorTarget))} else {false}";
|
||||||
|
dyna_canAcceptTrade = "if (!(isNull EPOCH_pendingP2ptradeTarget) && alive EPOCH_pendingP2ptradeTarget) then {((EPOCH_pendingP2ptradeTarget isKindOf 'Man') && (dyna_cursorTarget isEqualTo EPOCH_pendingP2ptradeTarget))} 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]";
|
||||||
};
|
};
|
||||||
|
@ -77,6 +77,21 @@ class tra_shop
|
|||||||
tooltip = "Shop";
|
tooltip = "Shop";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class player_trade
|
||||||
|
{
|
||||||
|
condition = "dyna_isPlayer";
|
||||||
|
action = "[dyna_cursorTarget, player, Epoch_personalToken] call EPOCH_startTRADEREQ;";
|
||||||
|
icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
|
||||||
|
tooltip = "Make Trade Request";
|
||||||
|
};
|
||||||
|
class player_trade_accept
|
||||||
|
{
|
||||||
|
condition = "dyna_isPlayer && dyna_canAcceptTrade";
|
||||||
|
action = "EPOCH_p2ptradeTarget = EPOCH_pendingP2ptradeTarget;call EPOCH_startTrade;";
|
||||||
|
icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
|
||||||
|
tooltip = "Accept Trade Request";
|
||||||
|
};
|
||||||
|
|
||||||
//User action replacement
|
//User action replacement
|
||||||
class maintain_jammer
|
class maintain_jammer
|
||||||
{
|
{
|
||||||
|
@ -22,11 +22,9 @@ class CfgBaseBuilding {
|
|||||||
{
|
{
|
||||||
upgradeBuilding[] = { { "FirePlaceOn_EPOCH", { { "WoodLog_EPOCH", 1 } } } };
|
upgradeBuilding[] = { { "FirePlaceOn_EPOCH", { { "WoodLog_EPOCH", 1 } } } };
|
||||||
removeParts[] = { { "ItemRock", 2 } };
|
removeParts[] = { { "ItemRock", 2 } };
|
||||||
|
|
||||||
staticClass = "FirePlace_EPOCH";
|
staticClass = "FirePlace_EPOCH";
|
||||||
simulClass = "Fireplace_SIM_EPOCH";
|
simulClass = "Fireplace_SIM_EPOCH";
|
||||||
GhostPreview = "FirePlace_EPOCH";
|
GhostPreview = "FirePlace_EPOCH";
|
||||||
|
|
||||||
limitNearby = 2;
|
limitNearby = 2;
|
||||||
bypassJammer = 1;
|
bypassJammer = 1;
|
||||||
isTemporary = 1;
|
isTemporary = 1;
|
||||||
@ -42,69 +40,284 @@ class CfgBaseBuilding {
|
|||||||
class Foundation_EPOCH : Default
|
class Foundation_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "ItemRock", 4 } };
|
removeParts[] = { { "ItemRock", 4 } };
|
||||||
|
GhostPreview = "Foundation_Ghost_EPOCH";
|
||||||
|
staticClass = "Foundation_EPOCH";
|
||||||
|
snapPointsPara[] = {"N","S","E","W","C"};
|
||||||
|
snapPointsPerp[] = {};
|
||||||
|
//allowedSnapPoints[] = {"N","S","E","W"};
|
||||||
|
//allowedSnapObjects[] = { "Constructions_foundation_F" };
|
||||||
|
maxHeight = 2.5;
|
||||||
|
};
|
||||||
|
class Foundation_Ghost_EPOCH : Foundation_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W"};
|
||||||
|
allowedSnapObjects[] = { "Constructions_foundation_F" };
|
||||||
};
|
};
|
||||||
class WoodFoundation_EPOCH : Default
|
class WoodFoundation_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "PartPlankPack", 4 } };
|
removeParts[] = { { "PartPlankPack", 4 } };
|
||||||
|
GhostPreview = "WoodFoundation_Ghost_EPOCH";
|
||||||
|
staticClass = "WoodFoundation_EPOCH";
|
||||||
|
snapPointsPara[] = { "N", "S", "E", "W", "C" };
|
||||||
|
snapPointsPerp[] = {};
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
allowedSnapObjects[] = { "Constructions_foundation_F" };
|
||||||
|
maxHeight = 2.5;
|
||||||
|
};
|
||||||
|
class WoodFoundation_Ghost_EPOCH : WoodFoundation_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W"};
|
||||||
|
allowedSnapObjects[] = { "Constructions_foundation_F" };
|
||||||
};
|
};
|
||||||
class Hesco3_EPOCH : Default
|
class Hesco3_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "KitHesco3", 1 } };
|
removeParts[] = { { "KitHesco3", 1 } };
|
||||||
|
simulClass = "Hesco3_SIM_EPOCH";
|
||||||
|
staticClass = "Hesco3_EPOCH";
|
||||||
|
GhostPreview = "Hesco3_Ghost_EPOCH";
|
||||||
|
snapType = "snapPointsPara";
|
||||||
|
snapPointsPara[] = { "C", "E", "W" };
|
||||||
|
energyCost = 0.4;
|
||||||
|
limitNearby = 4;
|
||||||
|
bypassJammer = 1;
|
||||||
};
|
};
|
||||||
|
class Hesco3_SIM_EPOCH : Hesco3_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = { "C", "E", "W" };
|
||||||
|
allowedSnapObjects[] = { "Hesco3_EPOCH" };
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class Hesco3_Ghost_EPOCH : Hesco3_SIM_EPOCH {};
|
||||||
class TankTrap_EPOCH : Default
|
class TankTrap_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "KitTankTrap", 1 } };
|
removeParts[] = { { "KitTankTrap", 1 } };
|
||||||
|
simulClass = "TankTrap_SIM_EPOCH";
|
||||||
|
staticClass = "TankTrap_EPOCH";
|
||||||
|
GhostPreview = "TankTrap_EPOCH";
|
||||||
|
energyCost = 0.2;
|
||||||
|
limitNearby = 4;
|
||||||
|
bypassJammer = 1;
|
||||||
};
|
};
|
||||||
|
class TankTrap_SIM_EPOCH: TankTrap_EPOCH
|
||||||
|
{
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class Spike_TRAP_EPOCH: Default
|
||||||
|
{
|
||||||
|
simulClass = "Spike_TRAP_SIM_EPOCH";
|
||||||
|
staticClass = "Spike_TRAP_EPOCH";
|
||||||
|
GhostPreview = "Spike_TRAP_EPOCH";
|
||||||
|
ammoClass = "Spike_TRAP_AMMO_EPOCH";
|
||||||
|
energyCost = 0.2;
|
||||||
|
limitNearby = 2;
|
||||||
|
bypassJammer = 1;
|
||||||
|
};
|
||||||
|
class Spike_TRAP_SIM_EPOCH: Spike_TRAP_EPOCH {};
|
||||||
|
class Metal_TRAP_EPOCH: Default
|
||||||
|
{
|
||||||
|
simulClass = "Metal_TRAP_SIM_EPOCH";
|
||||||
|
staticClass = "Metal_TRAP_EPOCH";
|
||||||
|
GhostPreview = "Metal_TRAP_EPOCH";
|
||||||
|
ammoClass = "Metal_TRAP_AMMO_EPOCH";
|
||||||
|
energyCost = 0.4;
|
||||||
|
limitNearby = 2;
|
||||||
|
bypassJammer = 1;
|
||||||
|
};
|
||||||
|
class Metal_TRAP_SIM_EPOCH: Metal_TRAP_EPOCH {};
|
||||||
class SolarGen_EPOCH : Default
|
class SolarGen_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "KitSolarGen", 1 } };
|
removeParts[] = { { "KitSolarGen", 1 } };
|
||||||
|
powerCapacity = 10;
|
||||||
|
powerType = 1;
|
||||||
|
GhostPreview = "SolarGen_EPOCH";
|
||||||
|
staticClass = "SolarGen_EPOCH";
|
||||||
|
simulClass = "SolarGen_SIM_EPOCH";
|
||||||
|
interactMode = 1;
|
||||||
|
};
|
||||||
|
class SolarGen_SIM_EPOCH : SolarGen_EPOCH {
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class PlotPole_EPOCH : Default
|
class PlotPole_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "KitPlotPole", 1 } };
|
removeParts[] = { { "KitPlotPole", 1 } };
|
||||||
|
GhostPreview = "PlotPole_EPOCH";
|
||||||
|
staticClass = "PlotPole_EPOCH";
|
||||||
|
simulClass = "PlotPole_SIM_EPOCH";
|
||||||
|
bypassJammer = 1;
|
||||||
|
interactMode = 1;
|
||||||
|
};
|
||||||
|
class PlotPole_SIM_EPOCH : PlotPole_EPOCH
|
||||||
|
{
|
||||||
|
interactMode = 0;
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodRamp_EPOCH : Default
|
class WoodRamp_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "PartPlankPack", 3 } };
|
removeParts[] = { { "PartPlankPack", 3 } };
|
||||||
|
simulClass = "WoodRamp_SIM_EPOCH";
|
||||||
|
staticClass = "WoodRamp_EPOCH";
|
||||||
|
GhostPreview = "WoodRamp_Ghost_EPOCH";
|
||||||
|
snapPointsPara[] = {};
|
||||||
|
snapPointsPerp[] = {};
|
||||||
|
//allowedSnapPoints[] = { "NF", "SF", "EF", "WF", "CB" };
|
||||||
|
energyCost = 0.2;
|
||||||
};
|
};
|
||||||
|
class WoodRamp_SIM_EPOCH : WoodRamp_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = { "NF", "SF", "EF", "WF", "CB" };
|
||||||
|
allowedSnapObjects[] = { "Const_floors_static_F", "Constructions_foundation_F" };
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class WoodRamp_Ghost_EPOCH : WoodRamp_SIM_EPOCH {};
|
||||||
class WoodFloor_EPOCH : Default
|
class WoodFloor_EPOCH : Default
|
||||||
{
|
{
|
||||||
upgradeBuilding[] = { { "MetalFloor_EPOCH", { { "ItemCorrugatedLg", 2 } } } };
|
upgradeBuilding[] = { { "MetalFloor_EPOCH", { { "ItemCorrugatedLg", 2 } } } };
|
||||||
removeParts[] = { { "PartPlankPack", 2 } };
|
removeParts[] = { { "PartPlankPack", 2 } };
|
||||||
|
simulClass = "WoodFloor_SIM_EPOCH";
|
||||||
|
staticClass = "WoodFloor_EPOCH";
|
||||||
|
GhostPreview = "WoodFloor_Ghost_EPOCH";
|
||||||
|
snapPointsPara[] = {"NF","SF","EF","WF","C","CB"};
|
||||||
|
snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"};
|
||||||
|
energyCost = 0.2;
|
||||||
};
|
};
|
||||||
|
class WoodFloor_SIM_EPOCH: WoodFloor_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = {"NF","SF","EF","WF","C"};
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class WoodFloor_Ghost_EPOCH: WoodFloor_SIM_EPOCH {};
|
||||||
class MetalFloor_EPOCH : Default
|
class MetalFloor_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "ItemCorrugatedLg", 2 } };
|
removeParts[] = { { "ItemCorrugatedLg", 2 } };
|
||||||
|
simulClass = "MetalFloor_SIM_EPOCH";
|
||||||
|
staticClass = "MetalFloor_EPOCH";
|
||||||
|
GhostPreview = "MetalFloor_Ghost_EPOCH";
|
||||||
|
snapPointsPara[] = { "NF", "SF", "EF", "WF", "C", "CB" };
|
||||||
|
snapPointsPerp[] = { "N", "S", "E", "W", "CinN", "CinS", "CinE", "CinW" };
|
||||||
|
energyCost = 0.5;
|
||||||
};
|
};
|
||||||
|
class MetalFloor_SIM_EPOCH : Default
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = { "NF", "SF", "EF", "WF", "C" };
|
||||||
|
allowedSnapObjects[] = { "Const_floors_static_F", "Constructions_foundation_F" };
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class MetalFloor_Ghost_EPOCH : MetalFloor_SIM_EPOCH {};
|
||||||
class CinderWallGarage_EPOCH : Default
|
class CinderWallGarage_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "CinderBlocks", 4 }, { "ItemCorrugatedLg", 1 }, { "CircuitParts", 1 } };
|
removeParts[] = { { "CinderBlocks", 4 }, { "ItemCorrugatedLg", 1 }, { "CircuitParts", 1 } };
|
||||||
|
simulClass = "CinderWallGarage_SIM_EPOCH";
|
||||||
|
staticClass = "CinderWallGarage_EPOCH";
|
||||||
|
GhostPreview = "CinderWallGarage_EPOCH";
|
||||||
|
snapType = "snapPointsPara";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
energyCost = 0.5;
|
||||||
};
|
};
|
||||||
class CinderWallHalf_EPOCH : Default{
|
class CinderWallGarage_SIM_EPOCH : CinderWallGarage_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = { "Const_Cinder_static_F", "Const_floors_static_F" };
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class CinderWallHalf_EPOCH : Default
|
||||||
|
{
|
||||||
upgradeBuilding[] = { { "CinderWall_EPOCH", { { "CinderBlocks", 2 }, { "MortarBucket", 1 } } } };
|
upgradeBuilding[] = { { "CinderWall_EPOCH", { { "CinderBlocks", 2 }, { "MortarBucket", 1 } } } };
|
||||||
removeParts[] = { { "CinderBlocks", 2 }, { "ItemRock", 1 } };
|
removeParts[] = { { "CinderBlocks", 2 }, { "ItemRock", 1 } };
|
||||||
|
simulClass = "CinderWallHalf_SIM_EPOCH";
|
||||||
|
staticClass = "CinderWallHalf_EPOCH";
|
||||||
|
GhostPreview = "CinderWallHalf_Ghost_EPOCH";
|
||||||
|
energyCost = 0.2;
|
||||||
|
snapType = "snapPointsPara";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
};
|
};
|
||||||
class CinderWall_EPOCH : Default{
|
class CinderWallHalf_SIM_EPOCH: CinderWallHalf_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = { "Const_Cinder_static_F", "Const_floors_static_F" };
|
||||||
|
removeParts[] = {};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
};
|
||||||
|
class CinderWallHalf_Ghost_EPOCH : CinderWallHalf_SIM_EPOCH {};
|
||||||
|
class CinderWall_EPOCH : Default
|
||||||
|
{
|
||||||
upgradeBuilding[] = { { "CinderWallGarage_EPOCH", { { "ItemCorrugatedLg", 1 }, { "CircuitParts", 1 } } } };
|
upgradeBuilding[] = { { "CinderWallGarage_EPOCH", { { "ItemCorrugatedLg", 1 }, { "CircuitParts", 1 } } } };
|
||||||
removeParts[] = { { "CinderBlocks", 4 }, { "ItemRock", 2 } };
|
removeParts[] = { { "CinderBlocks", 4 }, { "ItemRock", 2 } };
|
||||||
|
simulClass = "CinderWall_SIM_EPOCH";
|
||||||
|
staticClass = "CinderWall_EPOCH";
|
||||||
|
GhostPreview = "CinderWall_EPOCH";
|
||||||
|
snapType = "snapPointsPara";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
energyCost = 0.4;
|
||||||
};
|
};
|
||||||
class WoodLargeWall_EPOCH : Default{
|
class CinderWall_SIM_EPOCH: CinderWall_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class WoodLargeWall_EPOCH : Default
|
||||||
|
{
|
||||||
upgradeBuilding[] = {
|
upgradeBuilding[] = {
|
||||||
{ "WoodWall1_EPOCH", { { "ItemPlywoodPack", 1 } } },
|
{ "WoodWall1_EPOCH", { { "ItemPlywoodPack", 1 } } },
|
||||||
{ "WoodLargeWallCor_EPOCH", { { "ItemCorrugated", 1 } } }
|
{ "WoodLargeWallCor_EPOCH", { { "ItemCorrugated", 1 } } }
|
||||||
};
|
};
|
||||||
removeParts[] = { { "PartPlankPack", 2 } };
|
removeParts[] = { { "PartPlankPack", 2 } };
|
||||||
|
simulClass = "WoodLargeWall_SIM_EPOCH";
|
||||||
|
staticClass = "WoodLargeWall_EPOCH";
|
||||||
|
GhostPreview = "WoodLargeWall_Ghost_EPOCH";
|
||||||
|
snapType = "snapPointsPara";
|
||||||
|
snapPointsPara[] = {"N","E","W"};
|
||||||
|
allowedSnapPoints[] = {"N","S","E","W"};
|
||||||
};
|
};
|
||||||
class WoodWall1_EPOCH : Default{
|
class WoodLargeWall_SIM_EPOCH: WoodLargeWall_EPOCH
|
||||||
|
{
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
};
|
||||||
|
class WoodLargeWall_Ghost_EPOCH: WoodLargeWall_SIM_EPOCH {};
|
||||||
|
class WoodWall1_EPOCH : Default
|
||||||
|
{
|
||||||
upgradeBuilding[] = {
|
upgradeBuilding[] = {
|
||||||
{ "WoodWall2_EPOCH", { { "PartPlankPack", 1 } } },
|
{ "WoodWall2_EPOCH", { { "PartPlankPack", 1 } } },
|
||||||
{ "WoodLargeWallCor_EPOCH", { { "ItemCorrugated", 1 } } }
|
{ "WoodLargeWallCor_EPOCH", { { "ItemCorrugated", 1 } } }
|
||||||
};
|
};
|
||||||
removeParts[] = { { "PartPlankPack", 2 } };
|
removeParts[] = { { "PartPlankPack", 2 } };
|
||||||
|
simulClass = "WoodWall1_SIM_EPOCH";
|
||||||
|
staticClass = "WoodWall1_EPOCH";
|
||||||
|
GhostPreview = "WoodWall1_EPOCH";
|
||||||
|
snapType = "snapPointsPara";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
energyCost = 0.2;
|
||||||
|
};
|
||||||
|
class WoodWall1_SIM_EPOCH : WoodWall1_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = { "Const_floors_static_F", "Const_WoodWalls_static_F" };
|
||||||
|
energyCost = 0.2;
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodLargeWallCor_EPOCH : Default{
|
class WoodLargeWallCor_EPOCH : Default{
|
||||||
upgradeBuilding[] = { { "WoodLargeWallDoorway_EPOCH", { { "PartPlankPack", 1 } } } };
|
upgradeBuilding[] = { { "WoodLargeWallDoorway_EPOCH", { { "PartPlankPack", 1 } } } };
|
||||||
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 } };
|
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 } };
|
||||||
|
simulClass = "WoodLargeWallCor_SIM_EPOCH";
|
||||||
|
staticClass = "WoodLargeWallCor_EPOCH";
|
||||||
|
GhostPreview = "WoodLargeWallCor_EPOCH";
|
||||||
|
snapType = "snapPointsPara";
|
||||||
|
snapPointsPara[] = {"N","E","W"};
|
||||||
|
allowedSnapPoints[] = {"N","S","E","W"};
|
||||||
|
energyCost = 0.2;
|
||||||
|
availableTextures[] = { "\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa" };
|
||||||
|
};
|
||||||
|
class WoodLargeWallCor_SIM_EPOCH: WoodLargeWallCor_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodWall2_EPOCH : Default{
|
class WoodWall2_EPOCH : Default{
|
||||||
upgradeBuilding[] = {
|
upgradeBuilding[] = {
|
||||||
@ -112,10 +325,35 @@ class CfgBaseBuilding {
|
|||||||
{ "WoodLargeWallDoor_EPOCH", { { "ItemCorrugated", 1 }, { "PartPlankPack", 1 } } },
|
{ "WoodLargeWallDoor_EPOCH", { { "ItemCorrugated", 1 }, { "PartPlankPack", 1 } } },
|
||||||
};
|
};
|
||||||
removeParts[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
removeParts[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
||||||
|
simulClass = "WoodWall2_SIM_EPOCH";
|
||||||
|
staticClass = "WoodWall2_EPOCH";
|
||||||
|
GhostPreview = "WoodWall2_EPOCH";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
energyCost = 0.2;
|
||||||
|
};
|
||||||
|
class WoodWall2_SIM_EPOCH: WoodWall2_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodLargeWallDoorway_EPOCH : Default{
|
class WoodLargeWallDoorway_EPOCH : Default{
|
||||||
upgradeBuilding[] = { { "WoodLargeWallDoor_EPOCH", { { "ItemCorrugated", 1 }, { "PartPlankPack", 1 } } } };
|
upgradeBuilding[] = { { "WoodLargeWallDoor_EPOCH", { { "ItemCorrugated", 1 }, { "PartPlankPack", 1 } } } };
|
||||||
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 } };
|
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 } };
|
||||||
|
simulClass = "WoodLargeWallDoorway_SIM_EPOCH";
|
||||||
|
staticClass = "WoodLargeWallDoorway_EPOCH";
|
||||||
|
GhostPreview = "WoodLargeWallDoorway_EPOCH";
|
||||||
|
snapPointsPara[] = {"N","E","W"};
|
||||||
|
allowedSnapPoints[] = {"N","S","E","W"};
|
||||||
|
energyCost = 0.2;
|
||||||
|
availableTextures[] = { "\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa" };
|
||||||
|
};
|
||||||
|
class WoodLargeWallDoorway_SIM_EPOCH: WoodLargeWallDoorway_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodWall3_EPOCH : Default{
|
class WoodWall3_EPOCH : Default{
|
||||||
upgradeBuilding[] = {
|
upgradeBuilding[] = {
|
||||||
@ -123,55 +361,231 @@ class CfgBaseBuilding {
|
|||||||
{ "WoodLargeWallDoorL_EPOCH", { { "ItemCorrugated", 1 }, { "CircuitParts", 1 } } },
|
{ "WoodLargeWallDoorL_EPOCH", { { "ItemCorrugated", 1 }, { "CircuitParts", 1 } } },
|
||||||
};
|
};
|
||||||
removeParts[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
removeParts[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
||||||
|
simulClass = "WoodWall3_SIM_EPOCH";
|
||||||
|
staticClass = "WoodWall3_EPOCH";
|
||||||
|
GhostPreview = "WoodWall3_EPOCH";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
energyCost = 0.2;
|
||||||
|
};
|
||||||
|
class WoodWall3_SIM_EPOCH: WoodWall3_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodLargeWallDoor_EPOCH : Default{
|
class WoodLargeWallDoor_EPOCH : Default{
|
||||||
upgradeBuilding[] = { { "WoodLargeWallDoorL_EPOCH", { { "ItemCorrugated", 1 }, { "CircuitParts", 1 } } } };
|
upgradeBuilding[] = { { "WoodLargeWallDoorL_EPOCH", { { "ItemCorrugated", 1 }, { "CircuitParts", 1 } } } };
|
||||||
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 } };
|
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 } };
|
||||||
|
simulClass = "WoodLargeWallDoor_SIM_EPOCH";
|
||||||
|
staticClass = "WoodLargeWallDoor_EPOCH";
|
||||||
|
GhostPreview = "WoodLargeWallDoor_EPOCH";
|
||||||
|
snapPointsPara[] = {"N","E","W"};
|
||||||
|
allowedSnapPoints[] = {"N","S","E","W"};
|
||||||
|
availableTextures[] = { "\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa" };
|
||||||
|
energyCost = 0.2;
|
||||||
|
};
|
||||||
|
class WoodLargeWallDoor_SIM_EPOCH: WoodLargeWallDoor_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodWall4_EPOCH : Default {
|
class WoodWall4_EPOCH : Default {
|
||||||
removeParts[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 }, { "CircuitParts", 1 } };
|
removeParts[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 }, { "CircuitParts", 1 } };
|
||||||
|
simulClass = "WoodWall4_SIM_EPOCH";
|
||||||
|
staticClass = "WoodWall4_EPOCH";
|
||||||
|
GhostPreview = "WoodWall4_EPOCH";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
energyCost = 0.2;
|
||||||
|
};
|
||||||
|
class WoodWall4_SIM_EPOCH: WoodWall4_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodLargeWallDoorL_EPOCH : Default
|
class WoodLargeWallDoorL_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 }, { "CircuitParts", 1 } };
|
removeParts[] = { { "PartPlankPack", 2 }, { "ItemCorrugated", 1 }, { "CircuitParts", 1 } };
|
||||||
|
simulClass = "WoodLargeWallDoorL_SIM_EPOCH";
|
||||||
|
staticClass = "WoodLargeWallDoorL_EPOCH";
|
||||||
|
GhostPreview = "WoodLargeWallDoorL_EPOCH";
|
||||||
|
snapPointsPara[] = { "N", "E", "W" };
|
||||||
|
allowedSnapPoints[] = { "N", "S", "E", "W" };
|
||||||
|
availableTextures[] = { "\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa", "\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa" };
|
||||||
|
energyCost = 0.2;
|
||||||
};
|
};
|
||||||
class WoodStairs_EPOCH : Default{
|
class WoodLargeWallDoorL_SIM_EPOCH: WoodLargeWallDoorL_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class WoodStairs_EPOCH : Default
|
||||||
|
{
|
||||||
upgradeBuilding[] = { { "WoodStairs2_EPOCH", { { "PartPlankPack", 4 } } } };
|
upgradeBuilding[] = { { "WoodStairs2_EPOCH", { { "PartPlankPack", 4 } } } };
|
||||||
removeParts[] = { { "PartPlankPack", 4 } };
|
removeParts[] = { { "PartPlankPack", 4 } };
|
||||||
|
simulClass = "WoodStairs_SIM_EPOCH";
|
||||||
|
staticClass = "WoodStairs_EPOCH";
|
||||||
|
GhostPreview = "WoodStairs_Ghost_EPOCH";
|
||||||
|
snapPointsPara[] = {};
|
||||||
|
snapPointsPerp[] = {};
|
||||||
|
//allowedSnapPoints[] = { "NF2", "SF2", "EF2", "WF2", "NF", "SF", "EF", "WF", "CB" };
|
||||||
|
//allowedSnapObjects[] = { "Const_floors_static_F", "Constructions_foundation_F" };
|
||||||
|
energyCost = 0.2;
|
||||||
};
|
};
|
||||||
|
class WoodStairs_SIM_EPOCH: WoodStairs_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = {"NF","SF","EF","WF","CB"};
|
||||||
|
allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"};
|
||||||
|
upgradeBuilding[] = {};
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class WoodStairs_Ghost_EPOCH: WoodStairs_SIM_EPOCH {};
|
||||||
class WoodStairs2_EPOCH : Default
|
class WoodStairs2_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "PartPlankPack", 4 } };
|
removeParts[] = { { "PartPlankPack", 4 } };
|
||||||
|
simulClass = "WoodStairs2_SIM_EPOCH";
|
||||||
|
staticClass = "WoodStairs2_EPOCH";
|
||||||
|
GhostPreview = "WoodStairs2_EPOCH";
|
||||||
|
snapPointsPara[] = { "NF2", "SF2", "EF2", "WF2", "NF", "SF", "EF", "WF", "C", "CB" };
|
||||||
|
snapPointsPerp[] = { "N", "S", "E", "W", "CinN", "CinS", "CinE", "CinW" };
|
||||||
|
//allowedSnapPoints[] = { "NF2", "SF2", "EF2", "WF2", "NF", "SF", "EF", "WF", "CB" };
|
||||||
|
energyCost = 0.3;
|
||||||
|
};
|
||||||
|
class WoodStairs2_SIM_EPOCH : WoodStairs2_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = { "NF", "SF", "EF", "WF", "CB" };
|
||||||
|
allowedSnapObjects[] = { "Const_floors_static_F", "Constructions_foundation_F" };
|
||||||
|
removeParts[] = {};
|
||||||
};
|
};
|
||||||
class WoodTower_EPOCH : Default
|
class WoodTower_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "PartPlankPack", 4 } };
|
removeParts[] = { { "PartPlankPack", 4 } };
|
||||||
upgradeBuildingPart[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
upgradeBuildingPart[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
||||||
removeBuildingPart[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
removeBuildingPart[] = { { "ItemPlywoodPack", 1 }, { "PartPlankPack", 2 } };
|
||||||
|
simulClass = "WoodTower_SIM_EPOCH";
|
||||||
|
staticClass = "WoodTower_EPOCH";
|
||||||
|
GhostPreview = "WoodTower_Ghost_EPOCH";
|
||||||
|
snapPointsPara[] = { "NF2", "SF2", "EF2", "WF2","NF", "SF", "EF", "WF", "C", "CB" };
|
||||||
|
snapPointsPerp[] = { "N", "S", "E", "W", "CinN", "CinS", "CinE", "CinW" };
|
||||||
|
//allowedSnapPoints[] = { "NF2", "SF2", "EF2", "WF2", "CB" };
|
||||||
|
//allowedSnapObjects[] = { "WoodTower_EPOCH", "Const_floors_static_F", "Constructions_foundation_F" };
|
||||||
|
persistAnimations[] = { "NWall", "EWall", "SWall", "WWall" };
|
||||||
|
energyCost = 0.3;
|
||||||
};
|
};
|
||||||
|
class WoodTower_SIM_EPOCH : WoodTower_EPOCH
|
||||||
|
{
|
||||||
|
allowedSnapPoints[] = { "NF2", "SF2", "EF2", "WF2", "CB" };
|
||||||
|
allowedSnapObjects[] = { "WoodTower_EPOCH", "Const_floors_static_F", "Constructions_foundation_F" };
|
||||||
|
energyCost = 0.3;
|
||||||
|
};
|
||||||
|
class WoodTower_Ghost_EPOCH : WoodTower_SIM_EPOCH {};
|
||||||
class WoodLadder_EPOCH : Default
|
class WoodLadder_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "PartPlankPack", 2 } };
|
removeParts[] = { { "PartPlankPack", 2 } };
|
||||||
|
simulClass = "WoodLadder_SIM_EPOCH";
|
||||||
|
staticClass = "WoodLadder_EPOCH";
|
||||||
|
GhostPreview = "WoodLadder_Ghost_EPOCH";
|
||||||
|
energyCost = 0.1;
|
||||||
};
|
};
|
||||||
|
class WoodLadder_SIM_EPOCH: WoodLadder_EPOCH
|
||||||
|
{
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class WoodLadder_Ghost_EPOCH : WoodLadder_SIM_EPOCH {};
|
||||||
class Tipi_EPOCH : Default
|
class Tipi_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "Pelt_EPOCH", 2 }, { "PartPlankPack", 1 } };
|
removeParts[] = { { "Pelt_EPOCH", 2 }, { "PartPlankPack", 1 } };
|
||||||
|
GhostPreview = "Tipi_Ghost_EPOCH";
|
||||||
|
staticClass = "Tipi_EPOCH";
|
||||||
|
simulClass = "Tipi_SIM_EPOCH";
|
||||||
|
limitNearby = 2;
|
||||||
|
bypassJammer = 1;
|
||||||
|
interactMode = 4;
|
||||||
};
|
};
|
||||||
|
class Tipi_SIM_EPOCH : Tipi_EPOCH
|
||||||
|
{
|
||||||
|
simulClass = "Tipi_SIM_EPOCH";
|
||||||
|
staticClass = "Tipi_EPOCH";
|
||||||
|
limitNearby = 2;
|
||||||
|
bypassJammer = 1;
|
||||||
|
interactMode = 1;
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class Tipi_Ghost_EPOCH : Tipi_SIM_EPOCH {};
|
||||||
class StorageShelf_EPOCH : Default
|
class StorageShelf_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "ItemCorrugated", 2 } };
|
removeParts[] = { { "ItemCorrugated", 2 } };
|
||||||
|
GhostPreview = "StorageShelf_Ghost_EPOCH";
|
||||||
|
staticClass = "StorageShelf_EPOCH";
|
||||||
|
simulClass = "StorageShelf_SIM_EPOCH";
|
||||||
|
limitNearby = 5;
|
||||||
|
bypassJammer = 1;
|
||||||
|
interactMode = 4;
|
||||||
};
|
};
|
||||||
|
class StorageShelf_SIM_EPOCH : StorageShelf_EPOCH
|
||||||
|
{
|
||||||
|
interactMode = 0;
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class StorageShelf_Ghost_EPOCH : StorageShelf_SIM_EPOCH {};
|
||||||
class Workbench_EPOCH : Default
|
class Workbench_EPOCH : Default
|
||||||
{
|
{
|
||||||
removeParts[] = { { "PartPlankPack", 2 } };
|
removeParts[] = { { "PartPlankPack", 2 } };
|
||||||
|
GhostPreview = "WorkBench_Ghost_EPOCH";
|
||||||
|
staticClass = "WorkBench_EPOCH";
|
||||||
|
simulClass = "WorkBench_SIM_EPOCH";
|
||||||
|
limitNearby = 5;
|
||||||
|
bypassJammer = 1;
|
||||||
|
interactMode = 4;
|
||||||
};
|
};
|
||||||
|
class WorkBench_SIM_EPOCH : Workbench_EPOCH
|
||||||
|
{
|
||||||
|
interactMode = 0;
|
||||||
|
removeParts[] = {};
|
||||||
|
};
|
||||||
|
class WorkBench_Ghost_EPOCH : WorkBench_SIM_EPOCH {};
|
||||||
class LockBox_EPOCH : Default
|
class LockBox_EPOCH : Default
|
||||||
{
|
{
|
||||||
returnOnPack[] = { { "ItemLockbox", 1 } };
|
returnOnPack[] = { { "ItemLockbox", 1 } };
|
||||||
}
|
simulClass = "LockBox_SIM_EPOCH";
|
||||||
|
staticClass = "LockBox_EPOCH";
|
||||||
|
weaponHolderProxy = "LockBoxProxy_EPOCH";
|
||||||
|
GhostPreview = "LockBox_EPOCH";
|
||||||
|
bypassJammer = 1;
|
||||||
|
limitNearby = 2;
|
||||||
|
isSecureStorage = 1;
|
||||||
|
};
|
||||||
|
class LockBox_SIM_EPOCH : LockBox_EPOCH
|
||||||
|
{
|
||||||
|
returnOnPack[] = {};
|
||||||
|
};
|
||||||
class Safe_EPOCH : Default
|
class Safe_EPOCH : Default
|
||||||
{
|
{
|
||||||
returnOnPack[] = { { "ItemSafe", 1 } };
|
returnOnPack[] = { { "ItemSafe", 1 } };
|
||||||
}
|
simulClass = "Safe_SIM_EPOCH";
|
||||||
|
staticClass = "Safe_EPOCH";
|
||||||
|
weaponHolderProxy = "SafeProxy_EPOCH";
|
||||||
|
GhostPreview = "Safe_EPOCH";
|
||||||
|
bypassJammer = 1;
|
||||||
|
limitNearby = 2;
|
||||||
|
isSecureStorage = 1;
|
||||||
|
};
|
||||||
|
class Safe_SIM_EPOCH : Safe_EPOCH
|
||||||
|
{
|
||||||
|
returnOnPack[] = {};
|
||||||
|
};
|
||||||
|
class Jack_EPOCH : Default
|
||||||
|
{
|
||||||
|
simulClass = "Jack_SIM_EPOCH";
|
||||||
|
staticClass = "Jack_EPOCH";
|
||||||
|
GhostPreview = "Jack_EPOCH";
|
||||||
|
limitNearby = 2;
|
||||||
|
bypassJammer = 1;
|
||||||
|
energyCost = 0.1;
|
||||||
|
};
|
||||||
|
class Jack_SIM_EPOCH : Jack_EPOCH {};
|
||||||
};
|
};
|
||||||
|
19
Sources/epoch_config/Configs/CfgInteractions.hpp
Normal file
19
Sources/epoch_config/Configs/CfgInteractions.hpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
class CfgObjectInteractions {
|
||||||
|
class Default {
|
||||||
|
interactMode = 0;
|
||||||
|
};
|
||||||
|
class Land_MPS_EPOCH : Default {};
|
||||||
|
class container_epoch : Default {};
|
||||||
|
class PlotPole_EPOCH : Default {
|
||||||
|
interactMode = 1;
|
||||||
|
};
|
||||||
|
class Epoch_Female_F : Default {
|
||||||
|
interactMode = 2;
|
||||||
|
};
|
||||||
|
class Epoch_Male_F : Default {
|
||||||
|
interactMode = 2;
|
||||||
|
};
|
||||||
|
class C_man_1 : Default {
|
||||||
|
interactMode = 2;
|
||||||
|
};
|
||||||
|
};
|
@ -1 +1 @@
|
|||||||
build=445;
|
build=447;
|
||||||
|
@ -63,6 +63,9 @@ disableRandomization[] = {"All"};
|
|||||||
#include "Configs\CfgActionMenu\CfgActionMenu_core.hpp"
|
#include "Configs\CfgActionMenu\CfgActionMenu_core.hpp"
|
||||||
#include "Configs\CfgEpochConfiguration.hpp"
|
#include "Configs\CfgEpochConfiguration.hpp"
|
||||||
#include "Configs\CfgClientFunctions.hpp"
|
#include "Configs\CfgClientFunctions.hpp"
|
||||||
|
#include "Configs\CfgInteractions.hpp"
|
||||||
|
|
||||||
|
// A3 specific configs
|
||||||
#include "Configs\CfgFunctions.hpp"
|
#include "Configs\CfgFunctions.hpp"
|
||||||
#include "Configs\CfgRemoteExec.hpp"
|
#include "Configs\CfgRemoteExec.hpp"
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
build=445;
|
build=447;
|
||||||
|
@ -17,17 +17,18 @@ _return = false;
|
|||||||
if !(isNull _this) then {
|
if !(isNull _this) then {
|
||||||
_objSlot = _this getVariable["BUILD_SLOT", -1];
|
_objSlot = _this getVariable["BUILD_SLOT", -1];
|
||||||
if (_objSlot != -1) then{
|
if (_objSlot != -1) then{
|
||||||
_this setDamage 0;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_class = typeOf _this;
|
_this setDamage 0;
|
||||||
_worldspace = [(getposATL _this call EPOCH_precisionPos), vectordir _this, vectorup _this];
|
_class = typeOf _this;
|
||||||
|
_worldspace = [(getposATL _this call EPOCH_precisionPos), vectordir _this, vectorup _this];
|
||||||
_objHiveKey = format["%1:%2", (call EPOCH_fn_InstanceID), _objSlot];
|
_objHiveKey = format["%1:%2", (call EPOCH_fn_InstanceID), _objSlot];
|
||||||
_animPhases = [];
|
_animPhases = [];
|
||||||
{
|
{
|
||||||
_animPhases pushBack (_this animationPhase _x)
|
_animPhases pushBack (_this animationPhase _x)
|
||||||
} foreach (getArray(configFile >> "CfgVehicles" >> _class >> "persistAnimations"));
|
} foreach (getArray(_cfgBaseBuilding >> _class >> "persistAnimations"));
|
||||||
_VAL = [_class, _worldspace, _this getVariable["EPOCH_secureStorage", "-1"], _this getVariable["BUILD_OWNER", "-1"], _this getVariable["TEXTURE_SLOT", 0], _animPhases];
|
_VAL = [_class, _worldspace, _this getVariable["EPOCH_secureStorage", "-1"], _this getVariable["BUILD_OWNER", "-1"], _this getVariable["TEXTURE_SLOT", 0], _animPhases];
|
||||||
["Building", _objHiveKey, EPOCH_expiresBuilding, _VAL] call EPOCH_fnc_server_hiveSETEX;
|
["Building", _objHiveKey, EPOCH_expiresBuilding, _VAL] call EPOCH_fnc_server_hiveSETEX;
|
||||||
_return = true;
|
_return = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
_return
|
_return
|
||||||
|
@ -14,8 +14,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
_maxTTL = parseNumber EPOCH_expiresBuilding;
|
_maxTTL = parseNumber EPOCH_expiresBuilding;
|
||||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
_cfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||||
_buildingJammerRange = getNumber(_config >> "buildingJammerRange");
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
_buildingJammerRange = getNumber(_cfgEpochClient >> "buildingJammerRange");
|
||||||
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
|
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
|
||||||
|
|
||||||
_VAL = ["", [], "", "", 0, []];
|
_VAL = ["", [], "", "", 0, []];
|
||||||
@ -77,7 +78,7 @@ for "_i" from 0 to _this do {
|
|||||||
_baseObj setVectorDirAndUp _worldspace;
|
_baseObj setVectorDirAndUp _worldspace;
|
||||||
|
|
||||||
// spawn additional object for trap
|
// spawn additional object for trap
|
||||||
_ammoClass = (configFile >> "CfgVehicles" >> _class >> "ammoClass");
|
_ammoClass = (_cfgBaseBuilding >> _class >> "ammoClass");
|
||||||
if(isText _ammoClass) then {
|
if(isText _ammoClass) then {
|
||||||
_ammoClass = getText _ammoClass;
|
_ammoClass = getText _ammoClass;
|
||||||
_ammoObj = createVehicle [_ammoClass, [0,0,0], [], 0, "CAN_COLLIDE"];
|
_ammoObj = createVehicle [_ammoClass, [0,0,0], [], 0, "CAN_COLLIDE"];
|
||||||
@ -97,7 +98,7 @@ for "_i" from 0 to _this do {
|
|||||||
|
|
||||||
{
|
{
|
||||||
_baseObj animate [_x, _anims param [_forEachIndex,0], true]
|
_baseObj animate [_x, _anims param [_forEachIndex,0], true]
|
||||||
} foreach(getArray(configFile >> "CfgVehicles" >> _class >> "persistAnimations"));
|
} foreach(getArray(_cfgBaseBuilding >> _class >> "persistAnimations"));
|
||||||
};
|
};
|
||||||
|
|
||||||
// Handle Jammers and create marker if EPOCH_SHOW_JAMMERS set true.
|
// Handle Jammers and create marker if EPOCH_SHOW_JAMMERS set true.
|
||||||
@ -122,7 +123,7 @@ for "_i" from 0 to _this do {
|
|||||||
|
|
||||||
if (_textureSlot != 0) then {
|
if (_textureSlot != 0) then {
|
||||||
// get texture path from index
|
// get texture path from index
|
||||||
_color = getArray (configFile >> "CfgVehicles" >> _class >> "availableTextures");
|
_color = getArray (_cfgBaseBuilding >> _class >> "availableTextures");
|
||||||
if !(_color isEqualTo []) then {
|
if !(_color isEqualTo []) then {
|
||||||
_baseObj setObjectTextureGlobal [0, (_color select _textureSlot)];
|
_baseObj setObjectTextureGlobal [0, (_color select _textureSlot)];
|
||||||
_baseObj setVariable ["TEXTURE_SLOT", _textureSlot, true];
|
_baseObj setVariable ["TEXTURE_SLOT", _textureSlot, true];
|
||||||
|
@ -25,15 +25,15 @@
|
|||||||
Returns:
|
Returns:
|
||||||
NOTHING
|
NOTHING
|
||||||
*/
|
*/
|
||||||
private ["_playerUID","_counter","_objSlot","_buildingJammerRange","_current_crypto","_cIndex","_vars","_storSlot","_playerCryptoLimit","_config"];
|
private ["_playerUID","_counter","_objSlot","_buildingJammerRange","_current_crypto","_cIndex","_vars","_storSlot","_playerCryptoLimit","_cfgEpochClient"];
|
||||||
params [["_object",objNull],"_player","_maintCount",["_token","",[""]]];
|
params [["_object",objNull],"_player","_maintCount",["_token","",[""]]];
|
||||||
|
|
||||||
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
||||||
if (isNull _object) exitWith{};
|
if (isNull _object) exitWith{};
|
||||||
if (_player distance _object > 20) exitWith{};
|
if (_player distance _object > 20) exitWith{};
|
||||||
|
|
||||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
_cfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||||
_buildingJammerRange = getNumber(_config >> "buildingJammerRange");
|
_buildingJammerRange = getNumber(_cfgEpochClient >> "buildingJammerRange");
|
||||||
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
|
if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
|
||||||
|
|
||||||
_playerUID = getPlayerUID _player;
|
_playerUID = getPlayerUID _player;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_paintBUILD.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_paintBUILD.sqf
|
||||||
*/
|
*/
|
||||||
private["_color", "_class", "_currentTextureSlot", "_slot", "_worldspace", "_objHiveKey", "_VAL", "_return", "_playerUID", "_objSlot"];
|
private["_cfgBaseBuilding","_color", "_class", "_currentTextureSlot", "_slot", "_worldspace", "_objHiveKey", "_VAL", "_return", "_playerUID", "_objSlot"];
|
||||||
params [["_object",objNull],"_textureSlot","_player",["_token","",[""]]];
|
params [["_object",objNull],"_textureSlot","_player",["_token","",[""]]];
|
||||||
|
|
||||||
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
||||||
@ -28,7 +28,8 @@ if (_objSlot != -1) then {
|
|||||||
if (_textureSlot != _currentTextureSlot) then {
|
if (_textureSlot != _currentTextureSlot) then {
|
||||||
|
|
||||||
_class = typeOf _object;
|
_class = typeOf _object;
|
||||||
_color = getArray(configFile >> "CfgVehicles" >> _class >> "availableTextures");
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
_color = getArray(_cfgBaseBuilding >> _class >> "availableTextures");
|
||||||
if !(_color isEqualTo[]) then {
|
if !(_color isEqualTo[]) then {
|
||||||
_object setObjectTextureGlobal[0, (_color select _textureSlot)];
|
_object setObjectTextureGlobal[0, (_color select _textureSlot)];
|
||||||
_object setVariable["TEXTURE_SLOT", _textureSlot, true];
|
_object setVariable["TEXTURE_SLOT", _textureSlot, true];
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_removeBUILD.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_removeBUILD.sqf
|
||||||
*/
|
*/
|
||||||
private["_config","_vehSlot", "_gwh", "_wepsItemsCargo", "_magsAmmoCargo", "_objTypes", "_objQty", "_magazine", "_weapon", "_suppressor", "_laser", "_optics", "_arrCount", "_magazineName", "_magazineSize", "_qty", "_objType", "_inventory", "_posWH", "_nearbyWH", "_removeParts", "_isTemporary", "_storageSlot"];
|
private["_cfgBaseBuilding","_vehSlot", "_gwh", "_wepsItemsCargo", "_magsAmmoCargo", "_objTypes", "_objQty", "_magazine", "_weapon", "_suppressor", "_laser", "_optics", "_arrCount", "_magazineName", "_magazineSize", "_qty", "_objType", "_inventory", "_posWH", "_nearbyWH", "_removeParts", "_isTemporary", "_storageSlot"];
|
||||||
params ["_building","_player",["_token","",[""]]];
|
params ["_building","_player",["_token","",[""]]];
|
||||||
|
|
||||||
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
||||||
@ -21,8 +21,8 @@ if (_player distance _building > 20) exitWith{};
|
|||||||
|
|
||||||
// TODO add group check here since this should only be removed by group or owner of pole
|
// TODO add group check here since this should only be removed by group or owner of pole
|
||||||
_objType = typeOf _building;
|
_objType = typeOf _building;
|
||||||
_config = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_isTemporary = getNumber(_config >> _objType >> "isTemporary");
|
_isTemporary = getNumber(_cfgBaseBuilding >> _objType >> "isTemporary");
|
||||||
|
|
||||||
// check that object has building or storage slot
|
// check that object has building or storage slot
|
||||||
_vehSlot = _building getVariable["BUILD_SLOT", -1];
|
_vehSlot = _building getVariable["BUILD_SLOT", -1];
|
||||||
@ -30,7 +30,7 @@ _storageSlot = _building getVariable["STORAGE_SLOT", "ABORT"];
|
|||||||
|
|
||||||
if (_vehSlot != -1 || _storageSlot != "ABORT" || _isTemporary == 1) then{
|
if (_vehSlot != -1 || _storageSlot != "ABORT" || _isTemporary == 1) then{
|
||||||
|
|
||||||
_removeParts = getArray(('CfgBaseBuilding' call EPOCH_returnConfig) >> _objType >> "removeParts");
|
_removeParts = getArray(_cfgBaseBuilding >> _objType >> "removeParts");
|
||||||
if !(_removeParts isEqualTo []) then {
|
if !(_removeParts isEqualTo []) then {
|
||||||
|
|
||||||
_posWH = getPosATL _player;
|
_posWH = getPosATL _player;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf
|
||||||
*/
|
*/
|
||||||
private["_objSlot", "_findnextslot", "_worldspace", "_objHiveKey", "_VAL", "_config", "_slot", "_storageObj", "_pos", "_buildClass", "_newVehicle", "_textureSlot", "_staticClass", "_playerUID", "_oemType"];
|
private["_staticClassConfig","_objSlot", "_findnextslot", "_worldspace", "_objHiveKey", "_VAL", "_cfgBaseBuilding", "_slot", "_storageObj", "_pos", "_buildClass", "_newVehicle", "_textureSlot", "_staticClass", "_playerUID", "_oemType"];
|
||||||
params ["_vehicle", "_player", ["_token","",[""]]];
|
params ["_vehicle", "_player", ["_token","",[""]]];
|
||||||
|
|
||||||
if (isNull _vehicle) exitWith{};
|
if (isNull _vehicle) exitWith{};
|
||||||
@ -23,12 +23,11 @@ _playerUID = getPlayerUID _player;
|
|||||||
if (!isNull ropeAttachedTo _vehicle) exitWith{};
|
if (!isNull ropeAttachedTo _vehicle) exitWith{};
|
||||||
|
|
||||||
_oemType = typeOf _vehicle;
|
_oemType = typeOf _vehicle;
|
||||||
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
_staticClassConfig = (_cfgBaseBuilding >> _oemType >> "staticClass");
|
||||||
|
if (isText _staticClassConfig) then {
|
||||||
|
|
||||||
_config = (configFile >> "CfgVehicles" >> _oemType >> "staticClass");
|
_staticClass = getText(_staticClassConfig);
|
||||||
if (isText _config) then {
|
|
||||||
|
|
||||||
_staticClass = getText(_config);
|
|
||||||
|
|
||||||
if (_staticClass isKindOf "Buildable_Storage" || _staticClass isKindOf "Constructions_lockedstatic_F") then{
|
if (_staticClass isKindOf "Buildable_Storage" || _staticClass isKindOf "Constructions_lockedstatic_F") then{
|
||||||
|
|
||||||
if !(EPOCH_StorageSlots isEqualTo[]) then {
|
if !(EPOCH_StorageSlots isEqualTo[]) then {
|
||||||
@ -45,7 +44,7 @@ if (isText _config) then {
|
|||||||
_storageObj setposATL _vehiclePos;
|
_storageObj setposATL _vehiclePos;
|
||||||
_storageObj setVectorDirAndUp _vectorDirAndUp;
|
_storageObj setVectorDirAndUp _vectorDirAndUp;
|
||||||
|
|
||||||
if (getNumber(configFile >> "CfgVehicles" >> _staticClass >> "isSecureStorage") == 1) then{
|
if (getNumber(_cfgBaseBuilding >> _staticClass >> "isSecureStorage") == 1) then{
|
||||||
_storageObj setVariable["EPOCH_Locked", false, true];
|
_storageObj setVariable["EPOCH_Locked", false, true];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,15 +12,16 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simToStatic.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simToStatic.sqf
|
||||||
*/
|
*/
|
||||||
private ["_worldspace","_newObj","_class","_objSlot","_config","_lastPosition","_currentPosition","_entities"];
|
private ["_worldspace","_newObj","_class","_objSlot","_cfgBaseBuilding","_lastPosition","_currentPosition","_entities"];
|
||||||
_entities = allMissionObjects "Constructions_modular_F";
|
_entities = allMissionObjects "Constructions_modular_F";
|
||||||
{
|
{
|
||||||
_lastPosition = _x getVariable["LAST_POS", []];
|
_lastPosition = _x getVariable["LAST_POS", []];
|
||||||
_currentPosition = getposATL _x;
|
_currentPosition = getposATL _x;
|
||||||
if (_lastPosition isEqualTo _currentPosition) then {
|
if (_lastPosition isEqualTo _currentPosition) then {
|
||||||
_config = (configFile >> "CfgVehicles" >> (typeOf _x) >> "staticClass");
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
if (isText(_config)) then {
|
_staticClassConfig = (_cfgBaseBuilding >> (typeOf _x) >> "staticClass");
|
||||||
_class = getText(_config);
|
if (isText(_staticClassConfig)) then {
|
||||||
|
_class = getText(_staticClassConfig);
|
||||||
_objSlot = _x getVariable["BUILD_SLOT", -1];
|
_objSlot = _x getVariable["BUILD_SLOT", -1];
|
||||||
if (_objSlot != -1) then {
|
if (_objSlot != -1) then {
|
||||||
_worldspace = [_currentPosition,(vectordir _x),(vectorup _x)];
|
_worldspace = [_currentPosition,(vectordir _x),(vectorup _x)];
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf
|
||||||
*/
|
*/
|
||||||
private["_cfgClass", "_worldspace", "_newObj", "_return", "_class", "_oemType", "_config", "_object", "_objSlot", "_damage", "_color", "_textureSlot"];
|
private["_classConfig","_cfgClass", "_worldspace", "_newObj", "_return", "_class", "_oemType", "_cfgBaseBuilding", "_object", "_objSlot", "_damage", "_color", "_textureSlot"];
|
||||||
params [["_object",objNull,[objNull]],["_static",false,[false]]];
|
params [["_object",objNull,[objNull]],["_static",false,[false]]];
|
||||||
_return = _object;
|
_return = _object;
|
||||||
_objSlot = _object getVariable ["BUILD_SLOT", -1];
|
_objSlot = _object getVariable ["BUILD_SLOT", -1];
|
||||||
@ -23,10 +23,10 @@ if (_objSlot != -1) then {
|
|||||||
_cfgClass = "simulClass";
|
_cfgClass = "simulClass";
|
||||||
};
|
};
|
||||||
_oemType = typeOf _object;
|
_oemType = typeOf _object;
|
||||||
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_config = (configFile >> "CfgVehicles" >> _oemType >> _cfgClass);
|
_classConfig = (_cfgBaseBuilding >> _oemType >> _cfgClass);
|
||||||
if (isText _config) then {
|
if (isText _classConfig) then {
|
||||||
_class = getText(_config);
|
_class = getText(_classConfig);
|
||||||
|
|
||||||
if (_oemType != _class) then {
|
if (_oemType != _class) then {
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ if (_objSlot != -1) then {
|
|||||||
|
|
||||||
if (_textureSlot != 0) then {
|
if (_textureSlot != 0) then {
|
||||||
// get texture path from index
|
// get texture path from index
|
||||||
_color = getArray(configFile >> "CfgVehicles" >> _class >> "availableTextures");
|
_color = getArray(_cfgBaseBuilding >> _class >> "availableTextures");
|
||||||
if !(_color isEqualTo[]) then {
|
if !(_color isEqualTo[]) then {
|
||||||
_newObj setObjectTextureGlobal[0, (_color select _textureSlot)];
|
_newObj setObjectTextureGlobal[0, (_color select _textureSlot)];
|
||||||
_newObj setVariable["TEXTURE_SLOT", _textureSlot, true];
|
_newObj setVariable["TEXTURE_SLOT", _textureSlot, true];
|
||||||
@ -50,7 +50,7 @@ if (_objSlot != -1) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// spawn additional object for trap
|
// spawn additional object for trap
|
||||||
_ammoClass = (configFile >> "CfgVehicles" >> _class >> "ammoClass");
|
_ammoClass = (_cfgBaseBuilding >> _class >> "ammoClass");
|
||||||
if (isText _ammoClass) then {
|
if (isText _ammoClass) then {
|
||||||
_ammoClass = getText _ammoClass;
|
_ammoClass = getText _ammoClass;
|
||||||
_ammoObj = createVehicle [_ammoClass, [0,0,0], [], 0, "CAN_COLLIDE"];
|
_ammoObj = createVehicle [_ammoClass, [0,0,0], [], 0, "CAN_COLLIDE"];
|
||||||
|
@ -12,21 +12,21 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_unsuppported.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_unsuppported.sqf
|
||||||
*/
|
*/
|
||||||
private["_worldspace", "_newObj", "_class", "_objSlot", "_config", "_isSupported", "_lastPosition", "_currentPosition", "_objectPos"];
|
private["_simulClassConfig","_worldspace", "_newObj", "_class", "_objSlot", "_cfgBaseBuilding", "_isSupported", "_lastPosition", "_currentPosition", "_objectPos"];
|
||||||
|
|
||||||
if !(isNil "EPOCH_unsupportedCheckRunning") exitWith{ diag_log "UnsupportedCheck: Already running aborted"};
|
if !(isNil "EPOCH_unsupportedCheckRunning") exitWith{ diag_log "UnsupportedCheck: Already running aborted"};
|
||||||
EPOCH_unsupportedCheckRunning = true;
|
EPOCH_unsupportedCheckRunning = true;
|
||||||
|
|
||||||
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
|
||||||
// Check unsupported
|
// Check unsupported
|
||||||
_start = diag_tickTime;
|
_start = diag_tickTime;
|
||||||
_simulatedCount = 0;
|
_simulatedCount = 0;
|
||||||
_stableCount = 0;
|
_stableCount = 0;
|
||||||
{
|
{
|
||||||
if (!isNull _x) then {
|
if (!isNull _x) then {
|
||||||
|
_simulClassConfig = (_cfgBaseBuilding >> (typeOf _x) >> "simulClass");
|
||||||
_config = (configFile >> "CfgVehicles" >> (typeOf _x) >> "simulClass");
|
if (isText(_simulClassConfig)) then {
|
||||||
if (isText(_config)) then {
|
|
||||||
|
|
||||||
_objectPos = getPosASL _x;
|
_objectPos = getPosASL _x;
|
||||||
_isSupported = isTouchingGround _x;
|
_isSupported = isTouchingGround _x;
|
||||||
if (!_isSupported) then {
|
if (!_isSupported) then {
|
||||||
@ -35,7 +35,7 @@ _stableCount = 0;
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
if (!_isSupported) then {
|
if (!_isSupported) then {
|
||||||
_class = getText(_config);
|
_class = getText(_simulClassConfig);
|
||||||
_objSlot = _x getVariable["BUILD_SLOT", -1];
|
_objSlot = _x getVariable["BUILD_SLOT", -1];
|
||||||
if (_objSlot != -1) then {
|
if (_objSlot != -1) then {
|
||||||
_vDir = vectordir _x;
|
_vDir = vectordir _x;
|
||||||
|
@ -12,16 +12,16 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf
|
||||||
*/
|
*/
|
||||||
private["_config","_worldspace", "_class", "_newObj", "_objHiveKey", "_VAL", "_return", "_upgrade", "_objSlot", "_objType"];
|
private["_cfgBaseBuilding","_worldspace", "_class", "_newObj", "_objHiveKey", "_VAL", "_return", "_upgrade", "_objSlot", "_objType"];
|
||||||
params ["_object","_player",["_index",0],["_token","",[""]]];
|
params ["_object","_player",["_index",0],["_token","",[""]]];
|
||||||
|
|
||||||
if (isNull _object) exitWith{};
|
if (isNull _object) exitWith{};
|
||||||
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
||||||
|
|
||||||
_objSlot = _object getVariable["BUILD_SLOT", -1];
|
_objSlot = _object getVariable["BUILD_SLOT", -1];
|
||||||
_config = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
if (_objSlot != -1) then {
|
if (_objSlot != -1) then {
|
||||||
_upgrades = getArray(_config >> (typeOf _object) >> "upgradeBuilding");
|
_upgrades = getArray(_cfgBaseBuilding >> (typeOf _object) >> "upgradeBuilding");
|
||||||
if !(_upgrades isEqualTo []) then {
|
if !(_upgrades isEqualTo []) then {
|
||||||
_upgrade = _upgrades param [_index,[]];
|
_upgrade = _upgrades param [_index,[]];
|
||||||
_objectPos = getposATL _object;
|
_objectPos = getposATL _object;
|
||||||
@ -37,8 +37,8 @@ if (_objSlot != -1) then {
|
|||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
_objType = typeOf _object;
|
_objType = typeOf _object;
|
||||||
if (getNumber(_config >> _objType >> "isTemporary") == 1) then{
|
if (getNumber(_cfgBaseBuilding >> _objType >> "isTemporary") == 1) then{
|
||||||
_upgrades = getArray(_config >> (typeOf _object) >> "upgradeBuilding");
|
_upgrades = getArray(_cfgBaseBuilding >> (typeOf _object) >> "upgradeBuilding");
|
||||||
if !(_upgrades isEqualTo []) then {
|
if !(_upgrades isEqualTo []) then {
|
||||||
_upgrade = _upgrades param [_index,[]];
|
_upgrade = _upgrades param [_index,[]];
|
||||||
_worldspace = [getposATL _object, vectordir _object, vectorup _object];
|
_worldspace = [getposATL _object, vectordir _object, vectorup _object];
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_storage.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_storage.sqf
|
||||||
*/
|
*/
|
||||||
private ["_inventory","_location","_dir","_textures","_colors","_textureSelectionIndex","_selections","_count","_color","_config","_objTypes","_objQty","_wMags","_wMagsArray","_attachments","_magazineSizeMax","_magazineName","_magazineSize","_qty","_objType","_marker","_class_raw","_damage","_class","_worldspace","_wsCount","_vehicle","_arr","_storageSlotIndex","_vehHiveKey","_response","_diag"];
|
private ["_inventory","_location","_dir","_textures","_colors","_textureSelectionIndex","_selections","_count","_color","_cfgBaseBuilding","_objTypes","_objQty","_wMags","_wMagsArray","_attachments","_magazineSizeMax","_magazineName","_magazineSize","_qty","_objType","_marker","_class_raw","_damage","_class","_worldspace","_wsCount","_vehicle","_arr","_storageSlotIndex","_vehHiveKey","_response","_diag"];
|
||||||
params [["_maxStorageLimit",0]];
|
params [["_maxStorageLimit",0]];
|
||||||
|
|
||||||
_diag = diag_tickTime;
|
_diag = diag_tickTime;
|
||||||
@ -86,10 +86,11 @@ for "_i" from 1 to _maxStorageLimit do {
|
|||||||
|
|
||||||
if (count _arr >= 5) then {
|
if (count _arr >= 5) then {
|
||||||
_color = _arr select 4;
|
_color = _arr select 4;
|
||||||
_config = configFile >> "CfgVehicles" >> _class >> "availableColors";
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
if (isArray _config) then {
|
_availableColorsConfig = _cfgBaseBuilding >> _class >> "availableColors";
|
||||||
_colors = getArray(_config);
|
if (isArray _availableColorsConfig) then {
|
||||||
_textureSelectionIndex = configFile >> "CfgVehicles" >> _class >> "textureSelectionIndex";
|
_colors = getArray(_availableColorsConfig);
|
||||||
|
_textureSelectionIndex = _cfgBaseBuilding >> _class >> "textureSelectionIndex";
|
||||||
_selections = if (isArray(_textureSelectionIndex)) then { getArray(_textureSelectionIndex) } else { [0] };
|
_selections = if (isArray(_textureSelectionIndex)) then { getArray(_textureSelectionIndex) } else { [0] };
|
||||||
_count = (count _colors)-1;
|
_count = (count _colors)-1;
|
||||||
{
|
{
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_vehicle/EPOCH_load_vehicles.sqf
|
||||||
*/
|
*/
|
||||||
private ["_location","_class","_dmg","_actualHitpoints","_hitpoints","_textures","_color","_colors","_textureSelectionIndex","_selections","_count","_objTypes","_objQty","_wMags","_wMagsArray","_attachments","_magazineSizeMax","_magazineName","_magazineSize","_qty","_objType","_marker","_found","_vehicle","_allHitpoints","_config","_worldspace","_damage","_arr","_arrNum","_vehicleSlotIndex","_vehHiveKey","_response","_immuneVehicleSpawnTime","_diag","_dataFormat","_dataFormatCount","_allVehicles","_serverSettingsConfig","_simulationHandler","_immuneVehicleSpawn"];
|
private ["_availableColorsConfig","_location","_class","_dmg","_actualHitpoints","_hitpoints","_textures","_color","_colors","_textureSelectionIndex","_selections","_count","_objTypes","_objQty","_wMags","_wMagsArray","_attachments","_magazineSizeMax","_magazineName","_magazineSize","_qty","_objType","_marker","_found","_vehicle","_allHitpoints","_cfgBaseBuilding","_worldspace","_damage","_arr","_arrNum","_vehicleSlotIndex","_vehHiveKey","_response","_immuneVehicleSpawnTime","_diag","_dataFormat","_dataFormatCount","_allVehicles","_serverSettingsConfig","_simulationHandler","_immuneVehicleSpawn"];
|
||||||
params [["_maxVehicleLimit",0]];
|
params [["_maxVehicleLimit",0]];
|
||||||
|
|
||||||
_diag = diag_tickTime;
|
_diag = diag_tickTime;
|
||||||
@ -94,11 +94,12 @@ for "_i" from 1 to _maxVehicleLimit do {
|
|||||||
|
|
||||||
_vehicle call EPOCH_server_vehicleInit;
|
_vehicle call EPOCH_server_vehicleInit;
|
||||||
|
|
||||||
_config = configFile >> "CfgVehicles" >> _class >> "availableColors";
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
if (isArray(_config)) then {
|
_availableColorsConfig = (_cfgBaseBuilding >> _class >> "availableColors");
|
||||||
|
if (isArray(_availableColorsConfig)) then {
|
||||||
_color = _arr select 7;
|
_color = _arr select 7;
|
||||||
_colors = getArray(_config);
|
_colors = getArray(_availableColorsConfig);
|
||||||
_textureSelectionIndex = configFile >> "CfgVehicles" >> _class >> "textureSelectionIndex";
|
_textureSelectionIndex = (_cfgBaseBuilding >> _class >> "textureSelectionIndex");
|
||||||
_selections = if (isArray(_textureSelectionIndex)) then { getArray(_textureSelectionIndex) } else { [0] };
|
_selections = if (isArray(_textureSelectionIndex)) then { getArray(_textureSelectionIndex) } else { [0] };
|
||||||
_count = (count _colors) - 1;
|
_count = (count _colors) - 1;
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,8 @@ _fnc_unlock = {
|
|||||||
_this setVariable ["EPOCH_Locked", false, true];
|
_this setVariable ["EPOCH_Locked", false, true];
|
||||||
};
|
};
|
||||||
|
|
||||||
if (getNumber(configFile >> "CfgVehicles" >> _type >> "isSecureStorage") == 1) then{
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
if (getNumber(_cfgBaseBuilding >> _type >> "isSecureStorage") == 1) then{
|
||||||
|
|
||||||
_owners = _unit getVariable["STORAGE_OWNERS", []];
|
_owners = _unit getVariable["STORAGE_OWNERS", []];
|
||||||
|
|
||||||
|
@ -12,13 +12,12 @@
|
|||||||
Github:
|
Github:
|
||||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf
|
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_vehicle/EPOCH_spawn_vehicle.sqf
|
||||||
*/
|
*/
|
||||||
private ["_maxDamage","_textures","_textureSelectionIndex","_selections","_colors","_color","_count","_vehLockHiveKey","_marker","_config","_vehObj"];
|
private ["_maxDamage","_textures","_textureSelectionIndex","_selections","_colors","_color","_count","_vehLockHiveKey","_marker","_cfgBaseBuilding","_vehObj"];
|
||||||
params ["_vehClass","_position","_direction","_locked","_slot",["_lockOwner",""],["_can_collide","CAN_COLLIDE"],["_spawnLoot",false],["_spawnDamaged",true]];
|
params ["_vehClass","_position","_direction","_locked","_slot",["_lockOwner",""],["_can_collide","CAN_COLLIDE"],["_spawnLoot",false],["_spawnDamaged",true]];
|
||||||
if !(isClass (configFile >> "CfgVehicles" >> _vehClass)) exitWith {objNull};
|
if !(isClass (configFile >> "CfgVehicles" >> _vehClass)) exitWith {objNull};
|
||||||
_vehObj = createVehicle[_vehClass, _position, [], 0, _can_collide];
|
_vehObj = createVehicle[_vehClass, _position, [], 0, _can_collide];
|
||||||
if !(isNull _vehObj) then{
|
if !(isNull _vehObj) then{
|
||||||
_vehObj call EPOCH_server_setVToken;
|
_vehObj call EPOCH_server_setVToken;
|
||||||
|
|
||||||
// Set Direction and position
|
// Set Direction and position
|
||||||
if (_direction isEqualType []) then{
|
if (_direction isEqualType []) then{
|
||||||
_vehObj setposATL _position;
|
_vehObj setposATL _position;
|
||||||
@ -27,7 +26,6 @@ if !(isNull _vehObj) then{
|
|||||||
_vehObj setdir _direction;
|
_vehObj setdir _direction;
|
||||||
_vehObj setposATL _position;
|
_vehObj setposATL _position;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Normalize vehicle inventory
|
// Normalize vehicle inventory
|
||||||
clearWeaponCargoGlobal _vehObj;
|
clearWeaponCargoGlobal _vehObj;
|
||||||
clearMagazineCargoGlobal _vehObj;
|
clearMagazineCargoGlobal _vehObj;
|
||||||
@ -52,13 +50,13 @@ if !(isNull _vehObj) then{
|
|||||||
};
|
};
|
||||||
|
|
||||||
// get colors from config
|
// get colors from config
|
||||||
_config = (configFile >> "CfgVehicles" >> _vehClass >> "availableColors");
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
|
_availableColorsConfig = (_cfgBaseBuilding >> _vehClass >> "availableColors");
|
||||||
|
if (isArray(_availableColorsConfig)) then{
|
||||||
|
|
||||||
if (isArray(_config)) then{
|
_textureSelectionIndex = (_cfgBaseBuilding >> _vehClass >> "textureSelectionIndex");
|
||||||
|
|
||||||
_textureSelectionIndex = configFile >> "CfgVehicles" >> _vehClass >> "textureSelectionIndex";
|
|
||||||
_selections = if (isArray(_textureSelectionIndex)) then{ getArray(_textureSelectionIndex) } else { [0] };
|
_selections = if (isArray(_textureSelectionIndex)) then{ getArray(_textureSelectionIndex) } else { [0] };
|
||||||
_colors = getArray(_config);
|
_colors = getArray(_availableColorsConfig);
|
||||||
_textures = _colors select 0;
|
_textures = _colors select 0;
|
||||||
_color = floor(random(count _textures));
|
_color = floor(random(count _textures));
|
||||||
_count = (count _colors) - 1;
|
_count = (count _colors) - 1;
|
||||||
|
@ -1144,11 +1144,13 @@ call compile ("'"+_skn_doAdminRequest+"' addPublicVariableEventHandler {
|
|||||||
_vehLockHiveKey = format['%1:%2', (call EPOCH_fn_InstanceID), _slot];
|
_vehLockHiveKey = format['%1:%2', (call EPOCH_fn_InstanceID), _slot];
|
||||||
['VehicleLock', _vehLockHiveKey, EPOCH_vehicleLockTime, [_lockOwner]] call EPOCH_fnc_server_hiveSETEX;
|
['VehicleLock', _vehLockHiveKey, EPOCH_vehicleLockTime, [_lockOwner]] call EPOCH_fnc_server_hiveSETEX;
|
||||||
|
|
||||||
_config = (configFile >> 'CfgVehicles' >> _item >> 'availableColors');
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
if (isArray(_config)) then {
|
_availableColorsConfig = (_cfgBaseBuilding >> _item >> 'availableColors');
|
||||||
_textureSelectionIndex = configFile >> 'CfgVehicles' >> _item >> 'textureSelectionIndex';
|
|
||||||
|
if (isArray(_availableColorsConfig)) then {
|
||||||
|
_textureSelectionIndex = (_cfgBaseBuilding >> _item >> 'textureSelectionIndex');
|
||||||
_selections = if (isArray(_textureSelectionIndex)) then {getArray(_textureSelectionIndex)} else {[0]};
|
_selections = if (isArray(_textureSelectionIndex)) then {getArray(_textureSelectionIndex)} else {[0]};
|
||||||
_colors = getArray(_config);
|
_colors = getArray(_availableColorsConfig);
|
||||||
_textures = _colors select 0;
|
_textures = _colors select 0;
|
||||||
_color = floor(random(count _textures));
|
_color = floor(random(count _textures));
|
||||||
_count = (count _colors) - 1;
|
_count = (count _colors) - 1;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=445;
|
build=447;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=445;
|
build=447;
|
||||||
|
Loading…
Reference in New Issue
Block a user