Merge pull request #729 from EpochModTeam/experimental

0.5 b749
This commit is contained in:
vbawol 2017-04-03 11:58:35 -05:00 committed by GitHub
commit 4f6fc29717
83 changed files with 76536 additions and 1003 deletions

View File

@ -1,3 +1,4 @@
0.5 b740:
[New] Epoch is leaving alpha and entering beta! All Epoch Asset project sources are now available via our GitHub +LFS and under APL-SA license here: https://github.com/EpochModTeam/EpochCore
[Added] Added Service Point to Rearm, Repair and Refuel. Thanks to @Ignatz-HeMan
[Added] 7 new Keesha camo skins by Craig Hauer aka ComatoseBadger.
@ -25,3 +26,13 @@
[Info] Re-add missing comments in some config files.
[Info] Numerous other fixes and optimizations.
[Info] Requires Arma 3 1.68 or higher.
0.5 b749:
[Added] 200 player support to all mission files, thanks to increased group limits in Arma 1.68!
[Added] Experimental support for Mad ArmA Mod: https://forums.bistudio.com/forums/topic/200295-mad-arma-mad-max-inspired-mod/
[Changed] Spawn in base now use player position instead of jammers (reset spawn point to use). @Ignatz-HeMan
[Changed] Force "Take Crypto" option on dead bodies. @Ignatz-HeMan
[Changed ] Added optional Classnames for Service Point Pos. @Ignatz-HeMan
[Changed ] Some Cleanups and Script optimization to the service point scripts. @Ignatz-HeMan
[Fixed] Toxic Smoke Grenade not making you Toxic thanks to @Ignatz-HeMan
[Info] Install script for Mad Arma mod via Steam workshop in the tools/install folder.

View File

@ -1 +1 @@
5 "" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf)_mask_epoch" !="Item(Map|GPS|Compass|Watch)" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-6](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_"
5 "" !="H_MM_(Buzzard_Gasmask|Helmet)_01" !="V_MM_Vest_01" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf)_mask_epoch" !="Item(Map|GPS|Compass|Watch)" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-6](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_"

View File

@ -13,7 +13,7 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/functions/EPOCH_worldObjectType.sqf
Example:
_isTree = [_objectSting, "tree"] call EPOCH_worldObjectType;
_isTree = [_objectString, "tree"] call EPOCH_worldObjectType;
Parameter(s):
_this select 0: STRING - string name of world object

View File

@ -1,14 +1,48 @@
if (vehicle player == player) exitwith {false};
if !(local vehicle player) exitwith {false};
if (speed vehicle player > 2 || speed vehicle player < -2) exitwith {false};
if (((getpos vehicle player) select 2) > 1) exitwith {false};
/*
Author: [Ignatz] He-Man
Contributors: Aaron Clark - EpochMod.com
Description:
Check if in Service Point for A3 Epoch
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/servicepoint/EPOCH_SP_Check.sqf
*/
private ['_inSP','_vehicle','_vehName','_allRepaired'];
_vehicle = vehicle player;
if (_vehicle == player) exitwith {false};
if !(local _vehicle) exitwith {false};
if (speed _vehicle > 2 || speed _vehicle < -2) exitwith {false};
if (((getpos _vehicle) select 2) > 1) exitwith {false};
if (!(_vehicle iskindof 'ship') && (((getposasl _vehicle) select 2) < 1)) exitwith {false};
_config = 'CfgServicePoint' call EPOCH_returnConfig;
_servicepoints = getArray (_config >> worldname >> 'ServicePoints');
_servicepointDist = ["CfgServicePoint", "ServicePointDist", 40] call EPOCH_fnc_returnConfigEntryV2;
_ServicePointClasses = ["CfgServicePoint", "ServicePointClasses", []] call EPOCH_fnc_returnConfigEntryV2;
if (_servicepoints isequalto []) exitwith {false};
if !(({player distance _x < _servicepointDist} count _servicepoints > 0)) exitwith {false};
_Vehicle = vehicle player;
if (!(_Vehicle iskindof 'ship') && (((getposasl _Vehicle) select 2) < 1)) exitwith {false};
true
if (_servicepoints isequalto [] && _ServicePointClasses isequalto []) exitwith {false};
if (_vehicle == player) exitwith {false};
if !(local _vehicle) exitwith {false};
if (speed _vehicle > 2 || speed _vehicle < -2) exitwith {false};
if (((getpos _vehicle) select 2) > 1) exitwith {false};
if (!(_vehicle iskindof 'ship') && (((getposasl _vehicle) select 2) < 1)) exitwith {false};
_inSP = false;
if (({player distance _x < _servicepointDist} count _servicepoints > 0)) then {
_inSP = true;
};
if (!_inSP) then {
if !(_ServicePointClasses isequalto []) then {
_nearClasses = nearestobjects [_vehicle,_ServicePointClasses,_servicepointDist];
if !(_nearClasses isequalto []) then {
_inSP = true;
};
};
};
_inSP

View File

@ -1,20 +1,31 @@
params ['_vehicle','_ammotype','_turret','_reloagmags','_ammocount','_costs'];
private ['_magname'];
_vehtype = typeof _vehicle;
_VehName = getText(configFile >> 'cfgVehicles' >> _vehtype >> 'displayName');
if (!local _vehicle) exitWith {
_line = 'Rearm denied - Vehicle is not local to you!';
[_line,5] call Epoch_message;
};
if(count (crew _vehicle) > 1) exitWith {
_line = 'Rearm denied - All Passengers must exit the Vehicle!';
[_line,5] call Epoch_message;
};
if (EPOCH_playerCrypto < _costs) exitWith {
_line = format ['You need %1 Crypto to re-arm %2', _costs,_VehName];
[_line,5] call Epoch_message;
};
/*
Author: [Ignatz] He-Man
Contributors: Aaron Clark - EpochMod.com
Description:
Rearm Vehicles for A3 Epoch
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/servicepoint/EPOCH_SP_Rearm.sqf
*/
private ['_magname','_vehtype','_vehName'];
params ['_vehicle','_ammotype','_turret','_reloagmags','_ammocount','_costs'];
if (!local _vehicle) exitWith {
_line = 'Rearm denied - Go in as driver first!';
[_line,5] call Epoch_message;
};
_vehtype = typeof _vehicle;
_vehName = getText(configFile >> 'cfgVehicles' >> _vehtype >> 'displayName');
if (EPOCH_playerCrypto < _costs) exitWith {
_line = format ['You need %1 Crypto to Rearm %2', _costs,_vehName];
[_line,5] call Epoch_message;
};
if(_costs > 0)then{
[player,(_costs*-1),Epoch_personalToken] remoteexec ['epoch_server_paycrypto',2];
};
@ -26,5 +37,5 @@ _magname = getText (configFile >> 'CfgMagazines' >> _ammotype >> 'displayName');
if (_magname isequalto '') then {
_magname = _ammotype;
};
_line = format ['%1 rearmed with %2', _VehName, _magname];
_line = format ['%1 rearmed with %2', _vehName, _magname];
[_line,5] call Epoch_message;

View File

@ -1,32 +1,44 @@
private ['_vehicle','_args','_servicePoint','_costs','_updateInterval','_amount','_type','_name','_textMissing'];
_vehicle = _this select 0;
if (!local _vehicle) exitWith {};
_args = _this select 1;
_costs = _args select 0;
_updateInterval = _args select 1;
_amount = _args select 2;
_type = typeOf _vehicle;
_name = getText(configFile >> 'cfgVehicles' >> _type >> 'displayName');
/*
Author: [Ignatz] He-Man
Contributors: Aaron Clark - EpochMod.com
Description:
Refuel Vehicles for A3 Epoch
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/servicepoint/EPOCH_SP_Refuel.sqf
*/
private ['_vehtype','_vehName'];
params [['_vehicle',objnull],['_args',[]]];
_args params [['_costs',0],['_updateInterval',1],['_amount',0.1]];
if (!local _vehicle) exitWith {
_line = 'Refuel denied - Go in as driver first!';
[_line,5] call Epoch_message;
};
_vehtype = typeof _vehicle;
_vehName = getText(configFile >> 'cfgVehicles' >> _vehtype >> 'displayName');
if (EPOCH_playerCrypto < _costs) exitWith {
_line = format ['You need %1 Crypto to refuel %2', _costs,_name];
_line = format ['You need %1 Crypto to Refuel %2', _costs,_vehName];
[_line,5] call Epoch_message;
};
if(_costs > 0)then{
[player,(_costs*-1),Epoch_personalToken] remoteexec ['epoch_server_paycrypto',2];
};
_vehicle engineOn false;
if ((vehicle player != _vehicle) || (!local _vehicle) || speed _vehicle < -2 || speed _vehicle > 2) exitWith {
_line = format ['Fueling of %1 stopped', _name];
[_line,5] call Epoch_message;
};
while {(vehicle player == _vehicle) && (local _vehicle)} do {
while {(vehicle player == _vehicle) && (local _vehicle) && (alive player)} do {
if (speed _vehicle > 2 || speed _vehicle < -2 ) exitWith {
_line = format ['Refueling of %1 stopped', _name];
_line = format ['Refueling of %1 stopped', _vehName];
[_line,5] call Epoch_message;
};
_vehicle setFuel ((Fuel _vehicle)+_amount);
if (Fuel _vehicle > 0.99) exitWith {
_line = format ['%1 Refueled', _name];
_line = format ['%1 Refueled', _vehName];
[_line,5] call Epoch_message;
};
uisleep _updateInterval;

View File

@ -1,28 +1,43 @@
private ['_Ignatz_vehicle','_args','_servicePoint','_costs','_repairTime','_type','_name','_hitpoints','_allRepaired'];
_Ignatz_vehicle = _this select 0;
if (!local _Ignatz_vehicle) exitWith {
diag_log format['Error: called service_point_repair.sqf with non-local vehicle: %1', _Ignatz_vehicle]
/*
Author: [Ignatz] He-Man
Contributors: Aaron Clark - EpochMod.com
Description:
Repair Vehicles for A3 Epoch
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/servicepoint/EPOCH_SP_Repair.sqf
*/
private ['_vehtype','_vehName','_allRepaired'];
params [['_vehicle',objnull],['_args',[]]];
_args params [['_costs',0],['_updateInterval',1.2]];
if (!local _vehicle) exitWith {
_line = 'Repair denied - Go in as driver first!';
[_line,5] call Epoch_message;
};
_args = _this select 1;
_costs = _args select 0;
_repairTime = _args select 1;
_type = typeOf _Ignatz_vehicle;
_name = getText(configFile >> 'cfgVehicles' >> _type >> 'displayName');
_vehtype = typeOf _vehicle;
_vehName = getText(configFile >> 'cfgVehicles' >> _vehtype >> 'displayName');
if (EPOCH_playerCrypto < _costs) exitWith {
_line = format ['You need %1 Crypto to Repair %2', _costs,_name];
_line = format ['You need %1 Crypto to Repair %2', _costs,_vehName];
[_line,5] call Epoch_message;
};
if(_costs > 0)then{
[player,(_costs*-1),Epoch_personalToken] remoteexec ['epoch_server_paycrypto',2];
};
_Ignatz_vehicle engineOn false;
_vehicle engineOn false;
_repaired = [];
_allRepaired = true;
_allHitPointsDamage = getAllHitPointsDamage _Ignatz_vehicle;
_allHitPointsDamage = getAllHitPointsDamage _vehicle;
{
if ((vehicle player != _Ignatz_vehicle) || (!local _Ignatz_vehicle) || speed _Ignatz_vehicle < -2 || speed _Ignatz_vehicle > 2) exitWith {
if ((vehicle player != _vehicle) || (!local _vehicle) || speed _vehicle < -2 || speed _vehicle > 2) exitWith {
_allRepaired = false;
_line = format ['Repairing of %1 stopped', _name];
_line = format ['Repairing of %1 stopped', _vehName];
[_line,5] call Epoch_message;
};
if (!(_x in _repaired) && !(_x isequalto "") && (_allHitPointsDamage select 2 select _foreachindex) > 0) then {
@ -31,20 +46,20 @@ _allHitPointsDamage = getAllHitPointsDamage _Ignatz_vehicle;
_partName set [1,45];
_partName set [2,20];
_partName = toString _partName;
_Ignatz_vehicle setHitPointDamage [_x,0];
_vehicle setHitPointDamage [_x,0];
_line = format ['Repairing%1 ...', _partName];
[_line,5] call Epoch_message;
_repaired pushback _x;
uisleep _repairTime;
uisleep _updateInterval;
};
} foreach (_allHitPointsDamage select 0);
if (_allRepaired) then {
if ((damage _Ignatz_vehicle) > 0) then {
[_Ignatz_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
if ((damage _vehicle) > 0) then {
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
};
_pos = getposatl _Ignatz_vehicle;
_pos = getposatl _vehicle;
_pos set [2,(_pos select 2)+0.25];
_Ignatz_vehicle setposatl _pos;
_line = format ['%1 full Repaired', _name];
_vehicle setposatl _pos;
_line = format ['%1 full Repaired', _vehName];
[_line,5] call Epoch_message;
};

View File

@ -1,3 +1,20 @@
/*
Author: [Ignatz] He-Man
Contributors: Aaron Clark - EpochMod.com
Description:
Service Point StartScript for A3 Epoch
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/servicepoint/EPOCH_SP_Start.sqf
*/
private ['_missingammo','_ownedcompletemags','_magname','_actionTitle','_costs','_vehicle','_refuel_costs','_refuel_updateInterval','_refuel_amount','_costsFree','_repair_costs','_fnc_getCosts','_fnc_actionTitle'];
Ignatz_Refuel = nil;
Ignatz_Repair = nil;
Ignatz_Rearm0 = nil;
@ -5,21 +22,7 @@ Ignatz_Rearm1 = nil;
Ignatz_Rearm2 = nil;
Ignatz_Rearm3 = nil;
if (vehicle player == player) exitwith {false};
if !(local vehicle player) exitwith {false};
if (speed vehicle player > 2 || speed vehicle player < -2) exitwith {false};
if (((getpos vehicle player) select 2) > 1) exitwith {false};
private ['_missingammo','_ownedcompletemags','_magname','_actionTitle','_costs','_vehicle','_refuel_costs','_refuel_updateInterval','_refuel_amount','_costsFree','_repair_costs','_repair_repairTime','_fnc_getCosts','_fnc_actionTitle'];
_config = 'CfgServicePoint' call EPOCH_returnConfig;
_servicepoints = getArray (_config >> worldname >> 'ServicePoints');
_servicepointDist = ["CfgServicePoint", "ServicePointDist", 40] call EPOCH_fnc_returnConfigEntryV2;
if !(({player distance _x < _servicepointDist} count _servicepoints > 0)) exitwith {false};
_Vehicle = vehicle player;
if (!(_Vehicle iskindof 'ship') && (((getposasl _Vehicle) select 2) < 1)) exitwith {false};
_vehicle = vehicle player;
_repair_costs = ["CfgServicePoint", "repair_costs", []] call EPOCH_fnc_returnConfigEntryV2;
_refuel_costs = ["CfgServicePoint", "refuel_costs", []] call EPOCH_fnc_returnConfigEntryV2;
_refuel_updateInterval = ["CfgServicePoint", "refuel_updateInterval", 1] call EPOCH_fnc_returnConfigEntryV2;
@ -43,6 +46,7 @@ _fnc_getCosts = {
} forEach _costs;
_cost
};
_fnc_actionTitle = {
private ['_itemName','_displayName','_actionName','_costs','_costsText','_actionTitle'];
_actionName = _this select 0;

View File

@ -17,7 +17,7 @@ private ["_antagonistSpawnDefaults","_customVarsInit","_say3dsounds","_say3dsoun
//[[[end]]]
// detect if Ryan's Zombies and Deamons mod is present
if (["CfgEpochClient", "ryanZombiesEnabled", false] call EPOCH_fnc_returnConfigEntryV2) then {
if (["CfgEpochClient", "ryanZombiesEnabled", true] call EPOCH_fnc_returnConfigEntryV2) then {
EPOCH_mod_Ryanzombies_Enabled = (parseNumber (getText (configFile >> "CfgPatches" >> "Ryanzombies" >> "version")) >= 4.5);
if (EPOCH_mod_Ryanzombies_Enabled) then {
diag_log "Epoch: Ryanzombies detected";
@ -26,6 +26,17 @@ if (["CfgEpochClient", "ryanZombiesEnabled", false] call EPOCH_fnc_returnConfigE
EPOCH_mod_Ryanzombies_Enabled = false;
};
// detect if Mad Arma is present
if (["CfgEpochClient", "madArmaEnabled", true] call EPOCH_fnc_returnConfigEntryV2) then {
EPOCH_mod_madArma_Enabled = (parseNumber (getText (configFile >> "CfgPatches" >> "bv_wheels" >> "version")) >= 2016);
if (EPOCH_mod_madArma_Enabled) then {
diag_log "Epoch: Mad Arma detected";
};
} else {
EPOCH_mod_madArma_Enabled = false;
};
// Init Custom vars
EPOCH_customVars = [];
EPOCH_defaultVars = [];

View File

@ -79,7 +79,7 @@ class tra_shop
class player_takeCrypto
{
condition = "(dyna_cursorTarget getVariable [""Crypto"",0]) > 0";
condition = "dyna_isDeadPlayer || (dyna_cursorTarget getVariable [""Crypto"",0]) > 0";
action = "dyna_cursorTarget call EPOCH_takeCrypto;";
icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
tooltip = "Take Krypto";

View File

@ -202,6 +202,7 @@ class CfgObjectInteractions
canSee = "true";
ppEffect[] = {};
};
class SmokeShellToxic_Ammo : SmokeShellCustom {};
class Epoch_Cloak_F : Default
{
distance = 30;

View File

@ -4513,6 +4513,15 @@ class CfgPricing
class B_ViperLightHarness_hex_F { price = 20; };
class B_ViperLightHarness_khk_F { price = 20; };
class B_ViperLightHarness_oli_F { price = 20; };
// MAD ARMA
class revolver01 { price = 55 };
class VG_sawed_off_01 { price = 120 };
class Devastator_01 { price = 180 };
class in005_1Rnd_12Gauge_Pellets { price = 5 };
class in005_1Rnd_12Gauge_Slug { price = 5 };
class H_MM_Buzzard_Gasmask_01 { price = 65 };
class H_MM_Helmet_01 { price = 75 };
class V_MM_Vest_01 { price = 20 };
};
/*[[[end]]]*/

View File

@ -1,11 +1,11 @@
class CfgServicePoint {
class Altis {
ServicePoints[] = {
ServicePoints[] = { // Array of coords for ServicePoints
{13325,14477,0}
};
};
class Tanoa {
ServicePoints[] = {
ServicePoints[] = { // Array of coords for ServicePoints
/*
{2157.79,3477.65,0},
{11731.5,3125.95,0},
@ -19,11 +19,17 @@ class CfgServicePoint {
*/
};
};
class Chernarus {
class Chernarus { // Array of coords for ServicePoints
ServicePoints[] = {
};
};
ServicePointClasses[] = { // Array of Classnames, where also are ServicePoints
// "Land_Pillar_Pier_F",
// "Land_CarService_F",
// "Land_fs_feed_F",
// "Land_fs_roof_F"
};
ServicePointDist = 40;
refuel_updateInterval = 1;
refuel_amount = 0.1;
@ -245,4 +251,4 @@ class CfgServicePoint {
}
}
};
};
};

View File

@ -1 +1 @@
build=741;
build=749;

View File

@ -15,7 +15,7 @@ class Header
{
gameType = Survive;
minPlayers = 1;
maxPlayers = 100;
maxPlayers = 200;
};
respawn = "BASE";
respawnDelay = 600;

View File

@ -1 +1 @@
build=741;
build=749;

View File

@ -22,7 +22,8 @@ if (count _objArr < 1) exitWith {};
diag_log format["Epoch: Attempt Create Object: %1 for %2",_objArr, name _player];
_cfgPricing = 'CfgPricing' call EPOCH_returnConfig;
_allowedVehicleListName = ["allowedVehiclesList","allowedVehiclesList_CUP"] select EPOCH_modCUPVehiclesEnabled;
_lootTableIndex = if (EPOCH_modCUPVehiclesEnabled) then {if (EPOCH_mod_madArma_Enabled) then {3} else {1}} else {if (EPOCH_mod_madArma_Enabled) then {2} else {0}};
_allowedVehicleListName = ["allowedVehiclesList","allowedVehiclesList_CUP","allowedVehiclesList_MAD","allowedVehiclesList_MADCUP"] select _allowedVehicleIndex;
_allowedVehiclesList = getArray(configFile >> "CfgEpoch" >> worldName >> _allowedVehicleListName);
//diag_log format ["DEBUG: Allowed Vehs: %1",_allowedVehiclesList];
_vehicles = [];
@ -42,41 +43,41 @@ _pos set [2,0];
//Sort Object Array
{
//Weapons / Items
if(isClass (configFile >> "CfgWeapons" >> _x))then{
diag_log format["Epoch: Server_CreateObject: %1 Weapon / Item Found",_x];
if("ItemCore" in ([configFile >> "CfgWeapons" >> _x, true] call BIS_fnc_returnParents))then{
_items pushBack _x;
}else{
_weapons pushBack _x;
};
};
//Magazines
if(isClass (configFile >> "CfgMagazines" >> _x))then{
diag_log format["Epoch: Server_CreateObject: %1 Magazine Found",_x];
if("ItemCore" in ([configFile >> "CfgMagazines" >> _x, true] call BIS_fnc_returnParents))then{
_items pushBack _x;
}else{
_magazines pushBack _x;
};
};
//BackPacks / Vehicles
if(isClass (configFile >> "CfgVehicles" >> _x))then{
if("Bag_Base" in ([configFile >> "CfgVehicles" >> _x, true] call BIS_fnc_returnParents))then{
_backpacks pushBack _x;
}else{
_vehAllowed = true;
//If not destroying vehcile then check if allowed
if!(_doDamage)then{
_veh = _x;
@ -85,8 +86,8 @@ _pos set [2,0];
if (_veh in _x)then{_vehAllowed = true;};
} forEach _allowedVehiclesList;
};
if(_vehAllowed)then{
//If not destroying (mission object) then find safe position
if!(_doDamage)then{
@ -100,7 +101,7 @@ _pos set [2,0];
_pos = _pos findEmptyPosition [1,75,_x];
};
};
_vehicles pushBack [_x,_pos];
};
};
@ -123,7 +124,7 @@ _wepHolder = createVehicle["groundWeaponHolder", _pos, [], 0.0, "CAN_COLLIDE"];
_wepHolder addWeaponCargoGlobal [_x,1];
} forEach _weapons;
};
//Items
if(count _items > 0)then{
{
@ -131,7 +132,7 @@ _wepHolder = createVehicle["groundWeaponHolder", _pos, [], 0.0, "CAN_COLLIDE"];
_wepHolder addItemCargoGlobal [_x,1];
} forEach _items;
};
//Magazines
if(count _magazines > 0)then{
{
@ -139,7 +140,7 @@ _wepHolder = createVehicle["groundWeaponHolder", _pos, [], 0.0, "CAN_COLLIDE"];
_wepHolder addMagazineCargoGlobal [_x,1];
} forEach _magazines;
};
//Backpacks
if(count _backpacks > 0)then{
{
@ -155,9 +156,9 @@ if(count _vehicles > 0)then{
diag_log format["Epoch: Server_CreateObject: %1 Vehicle Spawn",_x];
//Need to create slot to createVehicle a persistent Epoch vehicle.
//_obj = [_x select 0, _x select 1, random 360, true, (EPOCH_storedVehicleCount + 1), _player, "CAN_COLLIDE", !_clearCargo, false] call EPOCH_spawn_vehicle;
_obj = createVehicle[(_x select 0), (_x select 1), [], 15, "CAN_COLLIDE"];
_obj allowdamage false;
if (_driverType != "" || _gunnerType != "" || _commanderType != "") then {
@ -192,10 +193,10 @@ if(count _vehicles > 0)then{
//if (_doOwner) then {_crew setOwner (owner _player)};
};
_obj allowdamage true;
if(_doDamage)then{_obj setDamage 1;};
}forEach _vehicles;
};

View File

@ -120,7 +120,7 @@ if (!isNull _player) then {
_location = getMarkerPos "respawn_west";
_location set[2, 0];
if (_newLocation isEqualType [] && {(count _newLocation) == 3}) then {
_jammers = nearestObjects[_newLocation, ["PlotPole_EPOCH"], 1];
_jammers = nearestObjects[_newLocation, ["PlotPole_EPOCH"], 6];
if !(_jammers isEqualTo[]) then {
// get nearby object
_jammer = _jammers param [0,objNull];

View File

@ -25,10 +25,13 @@ if (alive _jammer) then {
_server_vars = _player getVariable["SERVER_VARS", []];
_currentPos = _server_vars param [0,[]];
// invalidate previous position
if (!(_currentPos isequaltype [])) then {
_currentPos = [];
};
if (!(_currentPos isEqualTo []) && {_jammer distance _currentPos > 20}) then { _currentPos = [] };
if (_currentPos isEqualTo []) then {
// set position of spawnpoint to players SERVER_VARS
_server_vars set [0, getposATL _jammer]; // 0 = RESPAWN POS
_server_vars set [0, getposATL _player]; // 0 = RESPAWN POS
_player setVariable ["SERVER_VARS", _server_vars];
["Spawnpoint set", 5] remoteExec ['Epoch_message',_player];
}

View File

@ -16,7 +16,9 @@ private["_randomItemArray", "_quan", "_randomLootClass", "_randomItem", "_lootPa
params ["_object","_type",["_forceSpawn",false]];
_debug = true;
_pricingConfig = 'CfgPricing' call EPOCH_returnConfig;
_lootTableClass = ["CfgLootTable","CfgLootTable_CUP"] select EPOCH_modCUPWeaponsEnabled;
_lootTableIndex = if (EPOCH_modCUPVehiclesEnabled) then {if (EPOCH_mod_madArma_Enabled) then {3} else {1}} else {if (EPOCH_mod_madArma_Enabled) then {2} else {0}};
_lootTableClass = ["CfgLootTable","CfgLootTable_CUP","CfgLootTable_MAD","CfgLootTable_MADCUP"] select _lootTableIndex;
_randomizeMagazineAmmoCount = ["CfgEpochClient", "randomizeMagazineAmmoCount", true] call EPOCH_fnc_returnConfigEntryV2;
if !(isNull _object) then{
_lootTable = [_type, "CfgMainTable", "tables"] call EPOCH_weightedArray;

View File

@ -18,7 +18,7 @@ if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
if (_player distance _vehicle > 20) exitWith{};
if ((_value select 0) isEqualTo "ALL") then {
_vehicle setDamage 0;
_vehicle setDamage (_value select 1);
} else {
if (local _vehicle) then {
_vehicle setHitIndex _value;

View File

@ -138,7 +138,10 @@ call EPOCH_server_spawnTraders;
diag_log "Epoch: Loading vehicles";
// Vehicle slot limit set to total of all allowed limits
_allowedVehicleListName = ["allowedVehiclesList","allowedVehiclesList_CUP"] select EPOCH_modCUPVehiclesEnabled;
_allowedVehicleIndex = if (EPOCH_modCUPVehiclesEnabled) then {if (EPOCH_mod_madArma_Enabled) then {3} else {1}} else {if (EPOCH_mod_madArma_Enabled) then {2} else {0}};
_allowedVehicleListName = ["allowedVehiclesList","allowedVehiclesList_CUP","allowedVehiclesList_MAD","allowedVehiclesList_MADCUP"] select _allowedVehicleIndex;
// do something here
_allowedVehiclesList = getArray(configFile >> "CfgEpoch" >> worldName >> _allowedVehicleListName);
_vehicleSlotLimit = 0;
{_vehicleSlotLimit = _vehicleSlotLimit + (_x select 1)} forEach _allowedVehiclesList;

View File

@ -1 +1 @@
build=741;
build=749;

View File

@ -1 +1 @@
build=741;
build=749;

View File

@ -30,6 +30,8 @@ class CfgPatches {
#include "configs\CfgMainTable.h"
#include "configs\CfgLootTable.h"
#include "configs\CfgLootTable_CUP.h"
#include "configs\CfgLootTable_MAD.h"
#include "configs\CfgLootTable_MADCUP.h"
// vehicle textures
#include "configs\CfgEpochVehicles.h"
// security checks
@ -202,6 +204,50 @@ class CfgEpoch
{"CUP_B_Ural_Empty_CDF",2},
{"CUP_C_DC3_CIV",2}
};
allowedVehiclesList_MAD[] = {
{"jetski_epoch",5},
{"ebike_epoch",5},
{"mosquito_epoch",5},
{"chums_buggy_1",10},
{"plymouth_rock_1",5},
{"warrig_black",5},
{"nux_car_1",10},
{"interceptor_1",5},
};
allowedVehiclesList_MADCUP[] = {
{"jetski_epoch",3},
{"ebike_epoch",1},
{"mosquito_epoch",3},
{"chums_buggy_1",7},
{"plymouth_rock_1",4},
{"warrig_black",4},
{"nux_car_1",7},
{"interceptor_1",4},
{"CUP_C_Fishing_Boat_Chernarus",2},
{"CUP_C_Skoda_Red_CIV",1},
{"CUP_C_Skoda_White_CIV",1},
{"CUP_C_Skoda_Blue_CIV",1},
{"CUP_C_Skoda_Green_CIV",1},
{"CUP_C_Datsun_Covered",1},
{"CUP_C_Datsun_Plain",1},
{"CUP_C_Datsun_Tubeframe",1},
{"CUP_C_Datsun_4seat",1},
{"CUP_C_Datsun",1},
{"CUP_C_Golf4_green_Civ",1},
{"CUP_C_Golf4_red_Civ",1},
{"CUP_C_Golf4_blue_Civ",1},
{"CUP_C_Golf4_black_Civ",1},
{"CUP_C_Golf4_kitty_Civ",1},
{"CUP_C_Golf4_reptile_Civ",1},
{"CUP_C_Golf4_camodigital_Civ",1},
{"CUP_C_Golf4_camodark_Civ",1},
{"CUP_C_Golf4_camo_Civ",1},
{"CUP_B_M1030",2},
{"CUP_C_Golf4_white_Civ",1},
{"CUP_C_Golf4_whiteblood_Civ",1},
{"CUP_C_Golf4_yellow_Civ",1},
{"CUP_C_Octavia_CIV",1},
};
};
#include "configs\maps\bornholm.h"
#include "configs\maps\stratis.h"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
@ECHO OFF
SET STEAMUN=admin@youremail.net
SET STEAMPW=chamgeme
SET ARMASVRPATH=C:\Arma3Server
SET ARMAAPPID=107410
:: Use -mod line with quotes to support spaces in folder
:: Example: -mod="@Epoch;@madarma;"
:: Install Mad Arma http://steamcommunity.com/sharedfiles/filedetails/?id=815962700
SET MODFOLDER=@madarma
SET ARMAWORKSHOPID=815962700
:: remove old folder
rd /s/q "%ARMASVRPATH%\%MODFOLDER%"
:: update workshop mod
START "" /WAIT steamcmd.exe +login %STEAMUN% %STEAMPW% +workshop_download_item %ARMAAPPID% %ARMAWORKSHOPID% validate +quit
:: copy files back to server
xcopy /s/e/y/q/i "steamapps\workshop\content\%ARMAAPPID%\%ARMAWORKSHOPID%" "%ARMASVRPATH%\%MODFOLDER%"
:: remove old bikey key
del "%ARMASVRPATH%\Keys\MadArmA*.bikey"
:: copy latest bikey to server
xcopy /s/e/y/q/i "%ARMASVRPATH%\%MODFOLDER%\Keys" "%ARMASVRPATH%\Keys"

View File

@ -1 +1 @@
741
749