mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Merge pull request #684 from EpochModTeam/experimental
release 0.4 b672
This commit is contained in:
commit
241a247c08
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -40,6 +40,22 @@ removevehmagazinesturret[] = { // Remove these Magazines from the given Turret f
|
|||||||
{"200Rnd_40mm_G_belt",{0}}
|
{"200Rnd_40mm_G_belt",{0}}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// BaseBuilding
|
||||||
|
UseIndestructible = false; // Enable / Disable Indestructible BaseObjects
|
||||||
|
IndestructibleBaseObjects[] = { // Can be Names or Classes
|
||||||
|
"Constructions_static_F",
|
||||||
|
"Buildable_Storage",
|
||||||
|
"PlotPole_EPOCH",
|
||||||
|
"LockBox_EPOCH",
|
||||||
|
"Safe_EPOCH"
|
||||||
|
};
|
||||||
|
ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of IndestructibleBaseObjects
|
||||||
|
"CinderWallGarage_EPOCH",
|
||||||
|
"WoodLargeWallDoorL_EPOCH",
|
||||||
|
"WoodLargeWallDoor_EPOCH",
|
||||||
|
"WoodWall4_EPOCH"
|
||||||
|
};
|
||||||
|
|
||||||
// Traders
|
// Traders
|
||||||
taxRate = 0.1; // controls the price increase for purchases
|
taxRate = 0.1; // controls the price increase for purchases
|
||||||
starterTraderItems[] = { { "ItemSodaBurst", "meatballs_epoch", "MortarBucket", "CinderBlocks", "VehicleRepair", "CircuitParts", "ItemCorrugated", "PartPlankPack", "ItemRock", "ItemRope", "ItemStick" }, { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 } }; // Starter Items for fresh spawned trader first array is classnames second is quantity.
|
starterTraderItems[] = { { "ItemSodaBurst", "meatballs_epoch", "MortarBucket", "CinderBlocks", "VehicleRepair", "CircuitParts", "ItemCorrugated", "PartPlankPack", "ItemRock", "ItemRope", "ItemStick" }, { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 } }; // Starter Items for fresh spawned trader first array is classnames second is quantity.
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -121,21 +121,23 @@ switch _interactOption do {
|
|||||||
if (_otherObjects isEqualTo []) then {
|
if (_otherObjects isEqualTo []) then {
|
||||||
_object=createVehicle[_buildClass,_pos,[],0,"CAN_COLLIDE"];
|
_object=createVehicle[_buildClass,_pos,[],0,"CAN_COLLIDE"];
|
||||||
_object setDir ((getDir player) - 180);
|
_object setDir ((getDir player) - 180);
|
||||||
|
[format["Press '%1' to drop object.", "1"], 5] call Epoch_message;
|
||||||
if (([player, _item] call BIS_fnc_invRemove) == 1) then {
|
if (([player, _item] call BIS_fnc_invRemove) == 1) then {
|
||||||
[_object] spawn EPOCH_simulSwap;
|
[_object] spawn EPOCH_simulSwap;
|
||||||
};
|
};
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
["Building Disallowed: Frequency Unstable", 5] call Epoch_message;
|
["Building Disallowed: Frequency Unstable", 5] call Epoch_message;
|
||||||
};
|
};
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
_object=createVehicle[_buildClass,_pos,[],0,"CAN_COLLIDE"];
|
_object=createVehicle[_buildClass,_pos,[],0,"CAN_COLLIDE"];
|
||||||
_object setDir ((getDir player) - 180);
|
_object setDir ((getDir player) - 180);
|
||||||
|
[format["Press '%1' to drop object.", "1"], 5] call Epoch_message;
|
||||||
[_object,_item] spawn EPOCH_staticMove;
|
[_object,_item] spawn EPOCH_staticMove;
|
||||||
};
|
};
|
||||||
// _object spawn EPOCH_countdown;
|
}
|
||||||
[format["Press '%1' to drop object.", "1"], 5] call Epoch_message;
|
else {
|
||||||
|
|
||||||
} else {
|
|
||||||
["Need Energy", 5] call Epoch_message;
|
["Need Energy", 5] call Epoch_message;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -28,8 +28,8 @@ private ["_alljammer","_buildingAllowed","_buildingCountLeader","_buildingCountL
|
|||||||
|
|
||||||
_buildingAllowed = true;
|
_buildingAllowed = true;
|
||||||
_ownedJammerExists = false;
|
_ownedJammerExists = false;
|
||||||
_scl = false;
|
_useSplitCountLimits = false;
|
||||||
_gcl = true;
|
_useGroupCountLimits = true;
|
||||||
_nearestJammer = objNull;
|
_nearestJammer = objNull;
|
||||||
|
|
||||||
// reject building if in vehicle
|
// reject building if in vehicle
|
||||||
@ -48,8 +48,8 @@ _storageCountPerMember = getNumber(_config >> "storageCountPerMember");
|
|||||||
_minJammerDistance = getNumber(_config >> "minJammerDistance");
|
_minJammerDistance = getNumber(_config >> "minJammerDistance");
|
||||||
_maxBuildingHeight = getNumber(_config >> "maxBuildingHeight");
|
_maxBuildingHeight = getNumber(_config >> "maxBuildingHeight");
|
||||||
_jammerPerGroup = getNumber(_config >> "jammerPerGroup");
|
_jammerPerGroup = getNumber(_config >> "jammerPerGroup");
|
||||||
if(getNumber(_config >> "useGroupCountLimits") == 0)then{_gcl=false};
|
if(getNumber(_config >> "useGroupCountLimits") == 0)then{_useGroupCountLimits=false};
|
||||||
if(getNumber(_config >> "splitCountLimits") == 1)then{_scl=true};
|
if(getNumber(_config >> "splitCountLimits") == 1)then{_useSplitCountLimits=true};
|
||||||
if(_buildingJammerRange == 0)then{_buildingJammerRange = 75};
|
if(_buildingJammerRange == 0)then{_buildingJammerRange = 75};
|
||||||
if(_buildingCountLimit == 0)then{_buildingCountLimit = 200};
|
if(_buildingCountLimit == 0)then{_buildingCountLimit = 200};
|
||||||
if(_buildingCountLeader == 0)then{_buildingCountLeader = _buildingCountLimit};
|
if(_buildingCountLeader == 0)then{_buildingCountLeader = _buildingCountLimit};
|
||||||
@ -81,68 +81,55 @@ if !(_jammer isEqualTo []) then {
|
|||||||
["Building Disallowed: Existing Jammer Signal", 5] call Epoch_message;
|
["Building Disallowed: Existing Jammer Signal", 5] call Epoch_message;
|
||||||
};
|
};
|
||||||
} foreach _jammer;
|
} foreach _jammer;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
{
|
{
|
||||||
if (alive _x && (_x distance player) <= _buildingJammerRange) exitWith{
|
if (alive _x && (_x distance player) <= _buildingJammerRange) exitWith{
|
||||||
_nearestJammer = _x;
|
_nearestJammer = _x;
|
||||||
};
|
};
|
||||||
} foreach _jammer;
|
} foreach _jammer;
|
||||||
if !(isNull _nearestJammer) then {
|
if !(isNull _nearestJammer) then {
|
||||||
if ((getPosATL player) select 2 < _maxBuildingHeight) then {
|
if !((_nearestJammer getVariable["BUILD_OWNER", "-1"]) in[getPlayerUID player, Epoch_my_GroupUID]) exitwith {
|
||||||
if ((_nearestJammer getVariable["BUILD_OWNER", "-1"]) in[getPlayerUID player, Epoch_my_GroupUID]) then {
|
|
||||||
_ownedJammerExists = true;
|
|
||||||
} else {
|
|
||||||
_buildingAllowed = false;
|
_buildingAllowed = false;
|
||||||
["Building Disallowed: Frequency Blocked", 5] call Epoch_message;
|
["Building Disallowed: Frequency Blocked", 5] call Epoch_message;
|
||||||
};
|
};
|
||||||
if(_gcl)then{
|
_ownedJammerExists = true;
|
||||||
|
if(_useGroupCountLimits)then{
|
||||||
_membercount = 0;
|
_membercount = 0;
|
||||||
if(count Epoch_my_Group > 0)then{_membercount = count (Epoch_my_Group select 3) + count (Epoch_my_Group select 4)}
|
if(count Epoch_my_Group > 0)then{
|
||||||
|
_membercount = count (Epoch_my_Group select 3) + count (Epoch_my_Group select 4)
|
||||||
};
|
};
|
||||||
if(_objType in ["WorkBench_EPOCH","StorageShelf_EPOCH","Tipi_EPOCH","LockBox_EPOCH","Safe_EPOCH","StorageShelf_SIM_EPOCH","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","Workbench_SIM_EPOCH","Tipi_SIM_EPOCH"])then[{
|
|
||||||
if(_scl)then{
|
|
||||||
if(_gcl)then{
|
|
||||||
_storageCountLimit = _storageCountLeader + (_storageCountPerMember * _membercount);
|
_storageCountLimit = _storageCountLeader + (_storageCountPerMember * _membercount);
|
||||||
if((_storageCountLeader + _storageCountPerMember) > _storageCountLimit)then{_storageCountLimit = _storageCountLeader}
|
_buildingCountLimit = _buildingCountLeader + (_buildingCountPerMember * _membercount);
|
||||||
};
|
};
|
||||||
if((count nearestObjects[_nearestJammer,["Buildable_Storage","Constructions_lockedstatic_F",_ghostClass],_buildingJammerRange]) >= _storageCountLimit)then{
|
if (_useSplitCountLimits) then {
|
||||||
|
if(_objType in ["WorkBench_EPOCH","StorageShelf_EPOCH","Tipi_EPOCH","LockBox_EPOCH","Safe_EPOCH","StorageShelf_SIM_EPOCH","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","Workbench_SIM_EPOCH","Tipi_SIM_EPOCH"]) then {
|
||||||
|
if ((count (nearestObjects[_nearestJammer,["Buildable_Storage","Constructions_lockedstatic_F","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","StorageShelf_SIM_EPOCH","WorkBench_SIM_EPOCH"],_buildingJammerRange]-[_obj])) >= _storageCountLimit) exitwith {
|
||||||
_buildingAllowed = false;
|
_buildingAllowed = false;
|
||||||
[format["Building Disallowed: Max. %1 Storage Objects",_storageCountLimit],5] call Epoch_message
|
[format["Building Disallowed: Max. %1 Storage Objects",_storageCountLimit],5] call Epoch_message
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(_gcl)then{_buildingCountLimit = _buildingCountLeader + (_buildingCountPerMember * _membercount)};
|
|
||||||
if((count nearestObjects[_nearestJammer,["Buildable_Storage","Constructions_lockedstatic_F","Constructions_static_F","Constructions_foundation_F",_ghostClass],_buildingJammerRange]) >= _buildingCountLimit)then{
|
|
||||||
_buildingAllowed = false;
|
|
||||||
[format["Building Disallowed, Frequency Overloaded: Limit %1",_buildingCountLimit],5] call Epoch_message
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},{
|
|
||||||
//a try to prevent bugusing (TODO: not working for storage objects atm)
|
|
||||||
if((count nearestObjects[_nearestJammer,[_ghostClass],_buildingJammerRange]) >= 2)exitWith{ //setting this too low may not be player-friendly. Recommend: >= 2
|
|
||||||
_buildingAllowed = false;
|
|
||||||
["Building Disallowed: Frequency Unstable, Wait A Moment",5] call Epoch_message
|
|
||||||
};
|
};
|
||||||
|
}
|
||||||
if(_gcl)then{_buildingCountLimit = _buildingCountLeader + (_buildingCountPerMember * _membercount)};
|
else {
|
||||||
if(_scl)then{
|
if ((count (nearestObjects[_nearestJammer,["Constructions_static_F","Constructions_foundation_F","Const_Ghost_EPOCH"],_buildingJammerRange]-[_obj])) >= _buildingCountLimit) exitwith {
|
||||||
if((count nearestObjects[_nearestJammer,["Constructions_static_F","Constructions_foundation_F",_ghostClass],_buildingJammerRange]) >= (_buildingCountLimit +1))then{
|
|
||||||
_buildingAllowed = false;
|
_buildingAllowed = false;
|
||||||
[format["Building Disallowed: Max. %1 Constructions",_buildingCountLimit],5] call Epoch_message
|
[format["Building Disallowed: Max. %1 Constructions",_buildingCountLimit],5] call Epoch_message
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}else{
|
else {
|
||||||
if((count nearestObjects[_nearestJammer,["Buildable_Storage","Constructions_lockedstatic_F","Constructions_static_F","Constructions_foundation_F",_ghostClass],_buildingJammerRange]) >= (_buildingCountLimit +1))then{
|
if ((count (nearestObjects [_nearestJammer,["Buildable_Storage","Constructions_lockedstatic_F","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","StorageShelf_SIM_EPOCH","WorkBench_SIM_EPOCH","Constructions_static_F","Constructions_foundation_F","Const_Ghost_EPOCH"],_buildingJammerRange]-[_obj])) >= _buildingCountLimit) exitwith {
|
||||||
_buildingAllowed = false;
|
_buildingAllowed = false;
|
||||||
[format["Building Disallowed: Frequency Overloaded: Limit %1",_buildingCountLimit],5] call Epoch_message
|
[format["Building Disallowed, Frequency Overloaded: Limit %1",_buildingCountLimit],5] call Epoch_message
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
}]
|
if !((getPosATL player) select 2 < _maxBuildingHeight) exitwith {
|
||||||
}else{
|
|
||||||
_buildingAllowed = false;
|
_buildingAllowed = false;
|
||||||
["Building Disallowed: Max building height reached",5] call Epoch_message;
|
["Building Disallowed: Max building height reached",5] call Epoch_message;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}else{
|
}
|
||||||
|
else {
|
||||||
if (_objType in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then {
|
if (_objType in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then {
|
||||||
// TODO: rework not ideal to use allmissionobjects
|
// TODO: rework not ideal to use allmissionobjects
|
||||||
_alljammer = allmissionobjects 'PlotPole_EPOCH';
|
_alljammer = allmissionobjects 'PlotPole_EPOCH';
|
||||||
@ -166,9 +153,8 @@ if (!_ownedJammerExists) then{
|
|||||||
|
|
||||||
if (_limitNearby > 0) then{
|
if (_limitNearby > 0) then{
|
||||||
// remove current target from objects
|
// remove current target from objects
|
||||||
_objectCount = count (nearestObjects[player, [_staticClass, _simulClass], _buildingJammerRange] - [_obj]);
|
_objectscount = count (nearestObjects[player, [_staticClass, _simulClass], _buildingJammerRange]-[_obj]);
|
||||||
// TODO: not properly limiting simulated objects
|
if (_objectscount >= _limitNearby) then{
|
||||||
if (_objectCount >= _limitNearby) then{
|
|
||||||
_buildingAllowed = false;
|
_buildingAllowed = false;
|
||||||
[format["Building Disallowed: Limit %1", _limitNearby], 5] call Epoch_message;
|
[format["Building Disallowed: Limit %1", _limitNearby], 5] call Epoch_message;
|
||||||
};
|
};
|
||||||
|
@ -37,7 +37,7 @@ _isSnap = false;
|
|||||||
if (EPOCH_playerEnergy <= 0) exitWith {
|
if (EPOCH_playerEnergy <= 0) exitWith {
|
||||||
["Need Energy", 5] call Epoch_message;
|
["Need Energy", 5] call Epoch_message;
|
||||||
};
|
};
|
||||||
if !(_objType call EPOCH_isBuildAllowed) exitWith{};
|
if !(_object call EPOCH_isBuildAllowed) exitWith{};
|
||||||
|
|
||||||
EPOCH_simulSwap_Lock = true;
|
EPOCH_simulSwap_Lock = true;
|
||||||
_return = _object;
|
_return = _object;
|
||||||
|
@ -42,7 +42,7 @@ if (EPOCH_playerEnergy <= 0) exitWith{
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Remove object if not allowed
|
// Remove object if not allowed
|
||||||
if !("" call EPOCH_isBuildAllowed) exitWith{ deleteVehicle _object };
|
if !(_object call EPOCH_isBuildAllowed) exitWith{ deleteVehicle _object };
|
||||||
EPOCH_simulSwap_Lock = true;
|
EPOCH_simulSwap_Lock = true;
|
||||||
|
|
||||||
_objType = typeOf _object;
|
_objType = typeOf _object;
|
||||||
@ -117,7 +117,7 @@ if (_class != "") then {
|
|||||||
_rejectMove = false;
|
_rejectMove = false;
|
||||||
if ((diag_tickTime - _lastCheckTime) > 10) then {
|
if ((diag_tickTime - _lastCheckTime) > 10) then {
|
||||||
_lastCheckTime = diag_tickTime;
|
_lastCheckTime = diag_tickTime;
|
||||||
_rejectMove = !(_objType call EPOCH_isBuildAllowed);
|
_rejectMove = !(_object call EPOCH_isBuildAllowed);
|
||||||
};
|
};
|
||||||
if (_rejectMove) exitWith{
|
if (_rejectMove) exitWith{
|
||||||
deleteVehicle EPOCH_target;
|
deleteVehicle EPOCH_target;
|
||||||
|
@ -4366,6 +4366,121 @@ class CfgPricing
|
|||||||
{
|
{
|
||||||
price = 10;
|
price = 10;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Apex Items & Weapons
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
class hgun_Pistol_01_F { price = 65; };
|
||||||
|
class hgun_P07_khk_F { price = 65; };
|
||||||
|
class SMG_05_F { price = 150; };
|
||||||
|
class LMG_03_F { price = 300; };
|
||||||
|
class arifle_MX_khk_F { price = 150; };
|
||||||
|
class arifle_MX_GL_khk_F { price = 150; };
|
||||||
|
class arifle_MXC_khk_F { price = 135; };
|
||||||
|
class arifle_MXM_khk_F { price = 150; };
|
||||||
|
class srifle_LRR_tna_F { price = 185; };
|
||||||
|
class srifle_GM6_ghex_F { price = 190; };
|
||||||
|
class srifle_DMR_07_blk_F { price = 175; };
|
||||||
|
class srifle_DMR_07_hex_F { price = 175; };
|
||||||
|
class srifle_DMR_07_ghex_F { price = 175; };
|
||||||
|
class arifle_AK12_F { price = 165; };
|
||||||
|
class arifle_AK12_GL_F { price = 170; };
|
||||||
|
class arifle_AKM_F { price = 140; };
|
||||||
|
class arifle_AKM_FL_F { price = 140; };
|
||||||
|
class arifle_AKS_F { price = 135; };
|
||||||
|
class arifle_ARX_blk_F { price = 190; };
|
||||||
|
class arifle_ARX_ghex_F { price = 190; };
|
||||||
|
class arifle_ARX_hex_F { price = 190; };
|
||||||
|
class arifle_CTAR_blk_F { price = 145; };
|
||||||
|
class arifle_CTAR_hex_F { price = 145; };
|
||||||
|
class arifle_CTAR_ghex_F { price = 145; };
|
||||||
|
class arifle_CTAR_GL_blk_F { price = 145; };
|
||||||
|
class arifle_CTARS_blk_F { price = 145; };
|
||||||
|
class arifle_CTARS_ghex_F { price = 145; };
|
||||||
|
class arifle_CTARS_hex_F { price = 145; };
|
||||||
|
class arifle_SPAR_01_blk_F { price = 140; };
|
||||||
|
class arifle_SPAR_01_khk_F { price = 140; };
|
||||||
|
class arifle_SPAR_01_snd_F { price = 140; };
|
||||||
|
class arifle_SPAR_01_GL_blk_F { price = 150; };
|
||||||
|
class arifle_SPAR_01_GL_khk_F { price = 150; };
|
||||||
|
class arifle_SPAR_01_GL_snd_F { price = 150; };
|
||||||
|
class arifle_SPAR_02_blk_F { price = 155; };
|
||||||
|
class arifle_SPAR_02_khk_F { price = 155; };
|
||||||
|
class arifle_SPAR_02_snd_F { price = 155; };
|
||||||
|
class arifle_SPAR_03_blk_F { price = 160; };
|
||||||
|
class arifle_SPAR_03_khk_F { price = 160; };
|
||||||
|
class arifle_SPAR_03_snd_F { price = 160; };
|
||||||
|
class muzzle_snds_H_khk_F { price = 5; };
|
||||||
|
class muzzle_snds_H_snd_F { price = 5; };
|
||||||
|
class muzzle_snds_58_blk_F { price = 2; };
|
||||||
|
class muzzle_snds_m_khk_F { price = 1; };
|
||||||
|
class muzzle_snds_m_snd_F { price = 1; };
|
||||||
|
class muzzle_snds_B_khk_F { price = 5; };
|
||||||
|
class muzzle_snds_B_snd_F { price = 5; };
|
||||||
|
class muzzle_snds_58_wdm_F { price = 2; };
|
||||||
|
class muzzle_snds_65_TI_blk_F { price = 7; };
|
||||||
|
class muzzle_snds_65_TI_hex_F { price = 7; };
|
||||||
|
class muzzle_snds_65_TI_ghex_F { price = 7; };
|
||||||
|
class muzzle_snds_H_MG_blk_F { price = 2; };
|
||||||
|
class muzzle_snds_H_MG_khk_F { price = 2; };
|
||||||
|
class optic_Arco_blk_F { price = 10; };
|
||||||
|
class optic_Arco_ghex_F { price = 10; };
|
||||||
|
class optic_DMS_ghex_F { price = 15; };
|
||||||
|
class optic_Hamr_khk_F { price = 20; };
|
||||||
|
class optic_ERCO_blk_F { price = 12; };
|
||||||
|
class optic_ERCO_khk_F { price = 12; };
|
||||||
|
class optic_ERCO_snd_F { price = 12; };
|
||||||
|
class optic_SOS_khk_F { price = 20; };
|
||||||
|
class optic_LRPS_tna_F { price = 30; };
|
||||||
|
class optic_LRPS_ghex_F { price = 30; };
|
||||||
|
class optic_Holosight_blk_F { price = 5; };
|
||||||
|
class optic_Holosight_khk_F { price = 5; };
|
||||||
|
class optic_Holosight_smg_blk_F { price = 5; };
|
||||||
|
class bipod_01_F_khk { price = 2; };
|
||||||
|
class 30Rnd_9x21_Mag_SMG_02 { price = 3;};
|
||||||
|
class 30Rnd_9x21_Mag_SMG_02_Tracer_Red { price = 2; };
|
||||||
|
class 30Rnd_9x21_Mag_SMG_02_Tracer_Yellow { price = 2; };
|
||||||
|
class 30Rnd_9x21_Mag_SMG_02_Tracer_Green { price = 2; };
|
||||||
|
class 30Rnd_580x42_Mag_F { price = 2; };
|
||||||
|
class 30Rnd_580x42_Mag_Tracer_F { price = 2; };
|
||||||
|
class 100Rnd_580x42_Mag_F { price = 2; };
|
||||||
|
class 100Rnd_580x42_Mag_Tracer_F { price = 2; };
|
||||||
|
class 20Rnd_650x39_Cased_Mag_F { price = 2; };
|
||||||
|
class 10Rnd_50BW_Mag_F { price = 4; };
|
||||||
|
class 150Rnd_556x45_Drum_Mag_F { price = 8; };
|
||||||
|
class 150Rnd_556x45_Drum_Mag_Tracer_F { price = 8; };
|
||||||
|
class 30Rnd_762x39_Mag_F { price = 3; };
|
||||||
|
class 30Rnd_762x39_Mag_Green_F { price = 3; };
|
||||||
|
class 30Rnd_762x39_Mag_Tracer_F { price = 3; };
|
||||||
|
class 30Rnd_762x39_Mag_Tracer_Green_F { price = 3; };
|
||||||
|
class 30Rnd_545x39_Mag_F { price = 2; };
|
||||||
|
class 30Rnd_545x39_Mag_Green_F { price = 2; };
|
||||||
|
class 30Rnd_545x39_Mag_Tracer_F { price = 2; };
|
||||||
|
class 30Rnd_545x39_Mag_Tracer_Green_F { price = 2; };
|
||||||
|
class 200Rnd_556x45_Box_F { price = 9; };
|
||||||
|
class 200Rnd_556x45_Box_Red_F { price = 9; };
|
||||||
|
class 200Rnd_556x45_Box_Tracer_F { price = 9; };
|
||||||
|
class 200Rnd_556x45_Box_Tracer_Red_F { price = 9; };
|
||||||
|
class 10Rnd_9x21_Mag { price = 2; };
|
||||||
|
class B_Bergen_mcamo_F { price = 40; };
|
||||||
|
class B_Bergen_dgtl_F { price = 40; };
|
||||||
|
class B_Bergen_hex_F { price = 40; };
|
||||||
|
class B_Bergen_tna_F { price = 40; };
|
||||||
|
class B_AssaultPack_tna_F { price = 10; };
|
||||||
|
class B_Carryall_ghex_F { price = 30; };
|
||||||
|
class B_FieldPack_ghex_F { price = 12; };
|
||||||
|
class B_ViperHarness_base_F { price = 25; };
|
||||||
|
class B_ViperHarness_blk_F { price = 25; };
|
||||||
|
class B_ViperHarness_ghex_F { price = 25; };
|
||||||
|
class B_ViperHarness_hex_F { price = 25; };
|
||||||
|
class B_ViperHarness_khk_F { price = 25; };
|
||||||
|
class B_ViperHarness_oli_F { price = 25; };
|
||||||
|
class B_ViperLightHarness_base_F { price = 20; };
|
||||||
|
class B_ViperLightHarness_blk_F { price = 20; };
|
||||||
|
class B_ViperLightHarness_ghex_F { price = 20; };
|
||||||
|
class B_ViperLightHarness_hex_F { price = 20; };
|
||||||
|
class B_ViperLightHarness_khk_F { price = 20; };
|
||||||
|
class B_ViperLightHarness_oli_F { price = 20; };
|
||||||
};
|
};
|
||||||
|
|
||||||
/*[[[end]]]*/
|
/*[[[end]]]*/
|
||||||
|
@ -1 +1 @@
|
|||||||
build=668;
|
build=672;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=668;
|
build=672;
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
_maxTTL = parseNumber EPOCH_expiresBuilding;
|
_maxTTL = parseNumber EPOCH_expiresBuilding;
|
||||||
|
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
||||||
|
_UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
_IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
_ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
_cfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig;
|
_cfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||||
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_buildingJammerRange = getNumber(_cfgEpochClient >> "buildingJammerRange");
|
_buildingJammerRange = getNumber(_cfgEpochClient >> "buildingJammerRange");
|
||||||
@ -74,6 +78,15 @@ for "_i" from 0 to _this do {
|
|||||||
if (isClass (configFile >> "CfgVehicles" >> _class) && (_damage < 1) && !(_class isKindOf 'Constructions_lockedstatic_F')) then {
|
if (isClass (configFile >> "CfgVehicles" >> _class) && (_damage < 1) && !(_class isKindOf 'Constructions_lockedstatic_F')) then {
|
||||||
|
|
||||||
_baseObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"];
|
_baseObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"];
|
||||||
|
if (_UseIndestructible) then {
|
||||||
|
if ({_baseObj iskindof _x} count _ExceptedBaseObjects == 0) then {
|
||||||
|
{
|
||||||
|
if (_baseObj iskindof _x) exitwith {
|
||||||
|
_baseObj allowdamage false;
|
||||||
|
};
|
||||||
|
} foreach _IndestructibleBaseObjects;
|
||||||
|
};
|
||||||
|
};
|
||||||
_baseObj setVectorDirAndUp _worldspace;
|
_baseObj setVectorDirAndUp _worldspace;
|
||||||
_baseObj setposATL _location;
|
_baseObj setposATL _location;
|
||||||
|
|
||||||
|
@ -23,6 +23,10 @@ _playerUID = getPlayerUID _player;
|
|||||||
if (!isNull ropeAttachedTo _vehicle) exitWith{};
|
if (!isNull ropeAttachedTo _vehicle) exitWith{};
|
||||||
|
|
||||||
_oemType = typeOf _vehicle;
|
_oemType = typeOf _vehicle;
|
||||||
|
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
||||||
|
_UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
_IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
_ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
_cfgBaseBuilding = 'CfgBaseBuilding' call EPOCH_returnConfig;
|
||||||
_staticClassConfig = (_cfgBaseBuilding >> _oemType >> "staticClass");
|
_staticClassConfig = (_cfgBaseBuilding >> _oemType >> "staticClass");
|
||||||
if (isText _staticClassConfig) then {
|
if (isText _staticClassConfig) then {
|
||||||
@ -40,6 +44,16 @@ if (isText _staticClassConfig) then {
|
|||||||
|
|
||||||
_storageObj = [_staticClass,_vehicle] call EPOCH_swapBuilding;
|
_storageObj = [_staticClass,_vehicle] call EPOCH_swapBuilding;
|
||||||
|
|
||||||
|
if (_UseIndestructible) then {
|
||||||
|
if ({_storageObj iskindof _x} count _ExceptedBaseObjects == 0) then {
|
||||||
|
{
|
||||||
|
if (_storageObj iskindof _x) exitwith {
|
||||||
|
_storageObj allowdamage false;
|
||||||
|
};
|
||||||
|
} foreach _IndestructibleBaseObjects;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
if (getNumber(_cfgBaseBuilding >> _staticClass >> "isSecureStorage") == 1) then{
|
if (getNumber(_cfgBaseBuilding >> _staticClass >> "isSecureStorage") == 1) then{
|
||||||
_storageObj setVariable["EPOCH_Locked", false, true];
|
_storageObj setVariable["EPOCH_Locked", false, true];
|
||||||
};
|
};
|
||||||
@ -73,6 +87,17 @@ if (isText _staticClassConfig) then {
|
|||||||
|
|
||||||
if (_objSlot != -1) then {
|
if (_objSlot != -1) then {
|
||||||
_newVehicle = [_vehicle, false] call EPOCH_server_simulSwap;
|
_newVehicle = [_vehicle, false] call EPOCH_server_simulSwap;
|
||||||
|
|
||||||
|
if (_UseIndestructible) then {
|
||||||
|
if ({_newVehicle iskindof _x} count _ExceptedBaseObjects == 0) then {
|
||||||
|
{
|
||||||
|
if (_newVehicle iskindof _x) exitwith {
|
||||||
|
_newVehicle allowdamage false;
|
||||||
|
};
|
||||||
|
} foreach _IndestructibleBaseObjects;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
_newVehicle setVariable["BUILD_OWNER", _playerUID, true];
|
_newVehicle setVariable["BUILD_OWNER", _playerUID, true];
|
||||||
_newVehicle call EPOCH_saveBuilding;
|
_newVehicle call EPOCH_saveBuilding;
|
||||||
};
|
};
|
||||||
|
@ -21,22 +21,18 @@ switch (_command) do {
|
|||||||
case 'kick': {
|
case 'kick': {
|
||||||
_playerUID = _param1;
|
_playerUID = _param1;
|
||||||
if (_playerUID isEqualType objNull) then{
|
if (_playerUID isEqualType objNull) then{
|
||||||
if (!isNull(_playerUID)) then{
|
|
||||||
_playerUID = getPlayerUID _playerUID;
|
_playerUID = getPlayerUID _playerUID;
|
||||||
};
|
};
|
||||||
};
|
if !(_playerUID isEqualTo '') then{
|
||||||
if (_playerUID != '') then{
|
|
||||||
'epochserver' callExtension format['911|%1|%2', _playerUID, _param2];
|
'epochserver' callExtension format['911|%1|%2', _playerUID, _param2];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
case 'ban': {
|
case 'ban': {
|
||||||
_playerUID = _param1;
|
_playerUID = _param1;
|
||||||
if (_playerUID isEqualType objNull) then{
|
if (_playerUID isEqualType objNull) then{
|
||||||
if (!isNull(_playerUID)) then{
|
|
||||||
_playerUID = getPlayerUID _playerUID;
|
_playerUID = getPlayerUID _playerUID;
|
||||||
};
|
};
|
||||||
};
|
if !(_playerUID isEqualTo '') then{
|
||||||
if (_playerUID != '') then{
|
|
||||||
'epochserver' callExtension format['921|%1|%2|%3', _playerUID, _param2, _param3];
|
'epochserver' callExtension format['921|%1|%2|%3', _playerUID, _param2, _param3];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -15,6 +15,11 @@
|
|||||||
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"];
|
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]];
|
||||||
|
|
||||||
|
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
||||||
|
_UseIndestructible = [_serverSettingsConfig, "UseIndestructible", false] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
_IndestructibleBaseObjects = [_serverSettingsConfig, "IndestructibleBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
_ExceptedBaseObjects = [_serverSettingsConfig, "ExceptedBaseObjects", []] call EPOCH_fnc_returnConfigEntry;
|
||||||
|
|
||||||
_diag = diag_tickTime;
|
_diag = diag_tickTime;
|
||||||
EPOCH_StorageSlots = [];
|
EPOCH_StorageSlots = [];
|
||||||
for "_i" from 1 to _maxStorageLimit do {
|
for "_i" from 1 to _maxStorageLimit do {
|
||||||
@ -67,6 +72,16 @@ for "_i" from 1 to _maxStorageLimit do {
|
|||||||
|
|
||||||
_vehicle = createVehicle[_class, [0,0,0], [], 0, "CAN_COLLIDE"];
|
_vehicle = createVehicle[_class, [0,0,0], [], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
if (_UseIndestructible) then {
|
||||||
|
if ({_vehicle iskindof _x} count _ExceptedBaseObjects == 0) then {
|
||||||
|
{
|
||||||
|
if (_vehicle iskindof _x) exitwith {
|
||||||
|
_vehicle allowdamage false;
|
||||||
|
};
|
||||||
|
} foreach _IndestructibleBaseObjects;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
if (_dir isEqualType []) then {
|
if (_dir isEqualType []) then {
|
||||||
_vehicle setVectorDirAndUp _dir;
|
_vehicle setVectorDirAndUp _dir;
|
||||||
_vehicle setposATL _location;
|
_vehicle setposATL _location;
|
||||||
|
@ -80,17 +80,7 @@ addMissionEventHandler ["PlayerConnected", {
|
|||||||
['Connected', [_uid, _name]] call EPOCH_fnc_server_hiveLog;
|
['Connected', [_uid, _name]] call EPOCH_fnc_server_hiveLog;
|
||||||
}];
|
}];
|
||||||
|
|
||||||
onPlayerDisconnected {
|
addMissionEventHandler ["HandleDisconnect", {_this call EPOCH_server_onPlayerDisconnect}];
|
||||||
params ["_id", "_uid", "_name"];
|
|
||||||
_unit = objNull;
|
|
||||||
{
|
|
||||||
if ((_x getVariable["PUID", "0"]) == _uid) exitWith {
|
|
||||||
_unit = _x;
|
|
||||||
};
|
|
||||||
} forEach allUnits;
|
|
||||||
[_unit,_id,_uid,_name] call EPOCH_server_onPlayerDisconnect
|
|
||||||
};
|
|
||||||
// addMissionEventHandler ["HandleDisconnect", {_this call EPOCH_server_onPlayerDisconnect}];
|
|
||||||
|
|
||||||
diag_log "Epoch: Setup Side Settings";
|
diag_log "Epoch: Setup Side Settings";
|
||||||
//set side status
|
//set side status
|
||||||
|
@ -1 +1 @@
|
|||||||
build=668;
|
build=672;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=668;
|
build=672;
|
||||||
|
Loading…
Reference in New Issue
Block a user