mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Added Service Point to Rearm, Repair and Refuel
- I have no idea, where to upload the new needed pics for DynaMenu, so I have added them into the root folder. Please move to the correct location. - Added needed "PayCrypto" function serverside. This function can only remove Crypto from player. If someone try to add crypto, he will be killed (could also changed to ban?!) - I tried to avoid all Battleye filters (excepted remoteexec, of course). But I have not tested it with Battleye for now.
This commit is contained in:
parent
723584aa80
commit
aa2f7b02ce
BIN
Refuel.paa
Normal file
BIN
Refuel.paa
Normal file
Binary file not shown.
BIN
Repair.paa
Normal file
BIN
Repair.paa
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms|make(marker|SP)|removemarker) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer|client_bitePlayer|serverlootobject) \[.+\]"
|
||||
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms|make(marker|SP)|removemarker) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(paycrypto|tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer|client_bitePlayer|serverlootobject) \[.+\]"
|
||||
|
14
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Check.sqf
Normal file
14
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Check.sqf
Normal file
@ -0,0 +1,14 @@
|
||||
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};
|
||||
|
||||
_config = 'CfgServicePoint' call EPOCH_returnConfig;
|
||||
_servicepoints = getArray (_config >> worldname >> 'ServicePoints');
|
||||
_servicepointDist = ["CfgServicePoint", "ServicePointDist", 40] 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
|
30
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Rearm.sqf
Normal file
30
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Rearm.sqf
Normal file
@ -0,0 +1,30 @@
|
||||
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;
|
||||
};
|
||||
|
||||
if(_costs > 0)then{
|
||||
[player,(_costs*-1)] remoteexec ['epoch_server_paycrypto',2];
|
||||
};
|
||||
_vehicle removeMagazinesTurret [_ammotype,_turret];
|
||||
for '_i' from 1 to _reloagmags do {
|
||||
_vehicle addMagazineTurret [_ammotype, _turret, _ammocount];
|
||||
};
|
||||
_magname = getText (configFile >> 'CfgMagazines' >> _ammotype >> 'displayName');
|
||||
if (_magname isequalto '') then {
|
||||
_magname = _ammotype;
|
||||
};
|
||||
_line = format ['%1 rearmed with %2', _VehName, _magname];
|
||||
[_line,5] call Epoch_message;
|
33
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Refuel.sqf
Normal file
33
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Refuel.sqf
Normal file
@ -0,0 +1,33 @@
|
||||
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');
|
||||
if (EPOCH_playerCrypto < _costs) exitWith {
|
||||
_line = format ['You need %1 Crypto to refuel %2', _costs,_name];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
if(_costs > 0)then{
|
||||
[player,(_costs*-1)] 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 {
|
||||
if (speed _vehicle > 2 || speed _vehicle < -2 ) exitWith {
|
||||
_line = format ['Refueling of %1 stopped', _name];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
_vehicle setFuel ((Fuel _vehicle)+_amount);
|
||||
if (Fuel _vehicle > 0.99) exitWith {
|
||||
_line = format ['%1 Refueled', _name];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
uisleep _updateInterval;
|
||||
};
|
50
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Repair.sqf
Normal file
50
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Repair.sqf
Normal file
@ -0,0 +1,50 @@
|
||||
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]
|
||||
};
|
||||
_args = _this select 1;
|
||||
_costs = _args select 0;
|
||||
_repairTime = _args select 1;
|
||||
_type = typeOf _Ignatz_vehicle;
|
||||
_name = getText(configFile >> 'cfgVehicles' >> _type >> 'displayName');
|
||||
if (EPOCH_playerCrypto < _costs) exitWith {
|
||||
_line = format ['You need %1 Crypto to Repair %2', _costs,_name];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
if(_costs > 0)then{
|
||||
[player,(_costs*-1)] remoteexec ['epoch_server_paycrypto',2];
|
||||
};
|
||||
_Ignatz_vehicle engineOn false;
|
||||
_repaired = [];
|
||||
_allRepaired = true;
|
||||
_allHitPointsDamage = getAllHitPointsDamage _Ignatz_vehicle;
|
||||
{
|
||||
if ((vehicle player != _Ignatz_vehicle) || (!local _Ignatz_vehicle) || speed _Ignatz_vehicle < -2 || speed _Ignatz_vehicle > 2) exitWith {
|
||||
_allRepaired = false;
|
||||
_line = format ['Repairing of %1 stopped', _name];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
if (!(_x in _repaired) && !(_x isequalto "") && (_allHitPointsDamage select 2 select _foreachindex) > 0) then {
|
||||
_partName = toarray _x;
|
||||
_partName set [0,20];
|
||||
_partName set [1,45];
|
||||
_partName set [2,20];
|
||||
_partName = toString _partName;
|
||||
_Ignatz_vehicle setHitPointDamage [_x,0];
|
||||
_line = format ['Repairing%1 ...', _partName];
|
||||
[_line,5] call Epoch_message;
|
||||
_repaired pushback _x;
|
||||
uisleep _repairTime;
|
||||
};
|
||||
} 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];
|
||||
};
|
||||
_pos = getposatl _Ignatz_vehicle;
|
||||
_pos set [2,(_pos select 2)+0.25];
|
||||
_Ignatz_vehicle setposatl _pos;
|
||||
_line = format ['%1 full Repaired', _name];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
104
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Start.sqf
Normal file
104
Sources/epoch_code/compile/servicepoint/EPOCH_SP_Start.sqf
Normal file
@ -0,0 +1,104 @@
|
||||
Ignatz_Refuel = nil;
|
||||
Ignatz_Repair = nil;
|
||||
Ignatz_Rearm0 = nil;
|
||||
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};
|
||||
|
||||
_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;
|
||||
_refuel_amount = ["CfgServicePoint", "refuel_amount", 0.1] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_repairTime = ["CfgServicePoint", "repairTime", 1.2] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_VehiclesAndAmmo = ["CfgServicePoint", "VehiclesAndAmmo", []] call EPOCH_fnc_returnConfigEntryV2;
|
||||
|
||||
_Ignatz_SP_Array = [];
|
||||
_costsFree = 'free';
|
||||
|
||||
_fnc_getCosts = {
|
||||
private ['_typeName','_vehicle','_costs','_cost'];
|
||||
_vehicle = _this select 0;
|
||||
_costs = _this select 1;
|
||||
_cost = 0;
|
||||
{
|
||||
_typeName = _x select 0;
|
||||
if (_vehicle isKindOf _typeName) exitWith {
|
||||
_cost = _x select 1;
|
||||
};
|
||||
} forEach _costs;
|
||||
_cost
|
||||
};
|
||||
_fnc_actionTitle = {
|
||||
private ['_itemName','_displayName','_actionName','_costs','_costsText','_actionTitle'];
|
||||
_actionName = _this select 0;
|
||||
_costs = _this select 1;
|
||||
_costsText = _costsFree;
|
||||
if (_costs > 0) then {
|
||||
_costsText = format ['%1 Crypto',_costs];
|
||||
};
|
||||
_actionTitle = format ['%1 (%2)', _actionName, _costsText];
|
||||
_actionTitle
|
||||
};
|
||||
|
||||
{
|
||||
if ((typeof _vehicle) == _x select 0) exitwith {
|
||||
{
|
||||
_ammotype = _x select 0;
|
||||
_turret = _x select 1;
|
||||
_maxmags = _x select 2;
|
||||
_costs = _x select 3;
|
||||
_ammocount = getNumber (configfile >> "CfgMagazines" >> (_x select 0) >> "count");
|
||||
_maxammototal = _maxmags*_ammocount;
|
||||
_totalammocount = 0;
|
||||
{
|
||||
if (_ammotype isequalto (_x select 0) && _turret isequalto (_x select 1)) then {
|
||||
_totalammocount = _totalammocount + (_x select 2);
|
||||
};
|
||||
} foreach (magazinesAllTurrets _vehicle);
|
||||
if (_totalammocount < _maxammototal) then {
|
||||
for '_i' from 1 to 10 do {
|
||||
if (_totalammocount < _i*_ammocount) exitwith {
|
||||
_ownedcompletemags = _i-1;
|
||||
_missingammo = _ammocount*_i - _totalammocount;
|
||||
_costs = round (_costs/_ammocount*_missingammo);
|
||||
};
|
||||
};
|
||||
_magname = getText (configFile >> 'CfgMagazines' >> _ammotype >> 'displayName');
|
||||
if (_magname isequalto '') then {
|
||||
_magname = _ammotype;
|
||||
};
|
||||
_reloagmags = _ownedcompletemags+1;
|
||||
_actionTitle = format['Rearm %1 with %2 round %3 (%4 Crypto)',getText (configFile >> 'Cfgvehicles' >> typeOf _vehicle >> 'displayName'),_missingammo,_magname, _costs];
|
||||
_Ignatz_SP_Array pushback [_actionTitle,[_vehicle,_ammotype,_turret,_reloagmags,_ammocount,_costs]];
|
||||
};
|
||||
} foreach (_x select 1);
|
||||
};
|
||||
} foreach _VehiclesAndAmmo;
|
||||
|
||||
_costs = [_vehicle, _refuel_costs] call _fnc_getCosts;
|
||||
_actionTitle = [format['Refuel %1',getText (configFile >> 'Cfgvehicles' >> typeOf _vehicle >> 'displayName')], _costs] call _fnc_actionTitle;
|
||||
Ignatz_Refuel = [_actionTitle,[_vehicle,[_costs, _refuel_updateInterval,_refuel_amount]]];
|
||||
|
||||
_costs = [_vehicle, _repair_costs] call _fnc_getCosts;
|
||||
_actionTitle = [format['Repair %1',getText (configFile >> 'Cfgvehicles' >> typeOf _vehicle >> 'displayName')], _costs] call _fnc_actionTitle;
|
||||
Ignatz_Repair = [_actionTitle,[_vehicle,[_costs, _repairTime]]];
|
||||
if (count _Ignatz_SP_Array > 0) then {Ignatz_Rearm0 = _Ignatz_SP_Array select 0;};
|
||||
if (count _Ignatz_SP_Array > 1) then {Ignatz_Rearm1 = _Ignatz_SP_Array select 1;};
|
||||
if (count _Ignatz_SP_Array > 2) then {Ignatz_Rearm2 = _Ignatz_SP_Array select 2;};
|
||||
if (count _Ignatz_SP_Array > 3) then {Ignatz_Rearm3 = _Ignatz_SP_Array select 3;};
|
||||
true
|
@ -99,3 +99,52 @@ class base_mode_snap_direction_3
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_move.paa";
|
||||
tooltip = "Build Mode: Snap Direction 270°";
|
||||
};
|
||||
class ServicePoint
|
||||
{
|
||||
condition = "call EPOCH_SP_Check";
|
||||
action = "call EPOCH_SP_Start;";
|
||||
// icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
tooltip = "Service Point";
|
||||
|
||||
class Refuel
|
||||
{
|
||||
condition = "true";
|
||||
action = "(Ignatz_Refuel select 1) spawn EPOCH_SP_Refuel";
|
||||
// icon = "x\addons\a3_epoch_code\Data\UI\buttons\Refuel.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
tooltipcode = "Ignatz_Refuel select 0";
|
||||
};
|
||||
class Repair
|
||||
{
|
||||
condition = "true";
|
||||
action = "(Ignatz_Repair select 1) spawn EPOCH_SP_Repair";
|
||||
// icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
tooltipcode = "Ignatz_Repair select 0";
|
||||
};
|
||||
class Rearm0
|
||||
{
|
||||
condition = "!isnil 'Ignatz_Rearm0'";
|
||||
action = "(Ignatz_Rearm0 select 1) call EPOCH_SP_Rearm";
|
||||
// icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
tooltipcode = "Ignatz_Rearm0 select 0";
|
||||
};
|
||||
class Rearm1
|
||||
{
|
||||
condition = "!isnil 'Ignatz_Rearm1'";
|
||||
action = "(Ignatz_Rearm1 select 1) call EPOCH_SP_Rearm";
|
||||
// icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
tooltipcode = "Ignatz_Rearm1 select 0";
|
||||
};
|
||||
class Rearm2
|
||||
{
|
||||
condition = "!isnil 'Ignatz_Rearm2'";
|
||||
action = "(Ignatz_Rearm2 select 1) call EPOCH_SP_Rearm";
|
||||
// icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
tooltipcode = "Ignatz_Rearm2 select 0";
|
||||
};
|
||||
};
|
@ -168,6 +168,14 @@ class CfgClientFunctions
|
||||
class initUI {};
|
||||
class refeshUI {};
|
||||
};
|
||||
class servicepoint
|
||||
{
|
||||
class SP_Check {};
|
||||
class SP_Rearm {};
|
||||
class SP_Refuel {};
|
||||
class SP_Repair {};
|
||||
class SP_Start {};
|
||||
};
|
||||
class customs
|
||||
{
|
||||
file = "epoch_code\customs";
|
||||
|
@ -26,6 +26,11 @@ class CfgRemoteExec
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_paycrypto
|
||||
{
|
||||
allowedTargets = 2;
|
||||
jip = 0;
|
||||
};
|
||||
class EPOCH_server_save_vehicles
|
||||
{
|
||||
allowedTargets = 2;
|
||||
|
248
Sources/epoch_config/Configs/CfgServicePoint.hpp
Normal file
248
Sources/epoch_config/Configs/CfgServicePoint.hpp
Normal file
@ -0,0 +1,248 @@
|
||||
class CfgServicePoint {
|
||||
class Altis {
|
||||
ServicePoints[] = {
|
||||
{13325,14477,0}
|
||||
};
|
||||
};
|
||||
class Tanoa {
|
||||
ServicePoints[] = {
|
||||
/*
|
||||
{2157.79,3477.65,0},
|
||||
{11731.5,3125.95,0},
|
||||
{7008.93,7582.59,0},
|
||||
{2326.28,13167.9,0},
|
||||
{11805.8,13100.6,0},
|
||||
|
||||
{5525.8,10345.2,0},
|
||||
{11916,2383.88,0},
|
||||
{13562.4,12139.5,0}
|
||||
*/
|
||||
};
|
||||
};
|
||||
class Chernarus {
|
||||
ServicePoints[] = {
|
||||
|
||||
};
|
||||
};
|
||||
ServicePointDist = 40;
|
||||
refuel_updateInterval = 1;
|
||||
refuel_amount = 0.1;
|
||||
repairTime = 1.2;
|
||||
repair_costs[] = {
|
||||
{"Air",0},
|
||||
{"Tank",0},
|
||||
{"Ship",0},
|
||||
{"Landvehicle",0}
|
||||
};
|
||||
refuel_costs[] = {
|
||||
{"Air",0},
|
||||
{"Tank",0},
|
||||
{"Ship",0},
|
||||
{"Landvehicle",0}
|
||||
};
|
||||
VehiclesAndAmmo[] = {
|
||||
/*
|
||||
{
|
||||
"typeof vehicle",
|
||||
{
|
||||
{"Ammoclass",{Turretpath},MaxMagsCount,PricePerMag},
|
||||
{"Ammoclass",{Turretpath},MaxMagsCount,PricePerMag}
|
||||
}
|
||||
},
|
||||
*/
|
||||
{
|
||||
"B_G_Offroad_01_armed_F",
|
||||
{
|
||||
{"100Rnd_127x99_mag_Tracer_Yellow",{0},4,200}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_G_Offroad_01_armed_F",
|
||||
{
|
||||
{"100Rnd_127x99_mag_Tracer_Yellow",{0},4,200}
|
||||
}
|
||||
},
|
||||
{
|
||||
"I_G_Offroad_01_armed_F",
|
||||
{
|
||||
{"100Rnd_127x99_mag_Tracer_Yellow",{0},4,200}
|
||||
}
|
||||
},
|
||||
{
|
||||
"I_MRAP_03",
|
||||
{
|
||||
{"SmokeLauncherMag",{0},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"I_MRAP_03_EPOCH",
|
||||
{
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_MRAP_02_F",
|
||||
{
|
||||
{"SmokeLauncherMag",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_LSV_01_armed_olive_F",
|
||||
{
|
||||
{"100Rnd_127x99_mag_Tracer_Red",{0},3,200},
|
||||
{"130Rnd_338_Mag",{1},3,260}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_LSV_01_armed_black_F",
|
||||
{
|
||||
{"100Rnd_127x99_mag_Tracer_Red",{0},3,200},
|
||||
{"130Rnd_338_Mag",{1},3,260}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_T_LSV_02_armed_black_F",
|
||||
{
|
||||
{"500Rnd_65x39_Belt_Tracer_Green_Splash",{0},3,500}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_T_LSV_02_armed_ghex_F",
|
||||
{
|
||||
{"500Rnd_65x39_Belt_Tracer_Green_Splash",{0},3,500}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_SDV_01_EPOCH",
|
||||
{
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_Heli_Light_01_armed_F",
|
||||
{
|
||||
{"5000Rnd_762x51_Belt",{-1},1,1600}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_Heli_Light_02_unarmed_EPOCH",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_Heli_Light_02_v2_F",
|
||||
{
|
||||
{"2000Rnd_65x39_Belt_Tracer_Green_Splash",{-1},1,1200},
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_Heli_Transport_01_EPOCH",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150},
|
||||
{"2000Rnd_65x39_Belt_Tracer_Red",{1},1,1200},
|
||||
{"2000Rnd_65x39_Belt_Tracer_Red",{2},1,1200}
|
||||
}
|
||||
},
|
||||
{
|
||||
"I_Heli_Transport_02_F",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"I_Heli_Transport_02_EPOCH",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_Heli_Transport_03_F",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150},
|
||||
{"2000Rnd_65x39_Belt_Tracer_Red",{1},1,1200},
|
||||
{"2000Rnd_65x39_Belt_Tracer_Red",{2},1,1200}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_Heli_Transport_03_black_F",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150},
|
||||
{"2000Rnd_65x39_Belt_Tracer_Red",{1},1,1200},
|
||||
{"2000Rnd_65x39_Belt_Tracer_Red",{2},1,1200}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_Heli_Transport_03_unarmed_EPOCH",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"I_Heli_light_03_unarmed_EPOCH",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_T_VTOL_01_vehicle_blue_F",
|
||||
{
|
||||
{"240Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_T_VTOL_01_infantry_olive_F",
|
||||
{
|
||||
{"240Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_T_VTOL_01_infantry_blue_F",
|
||||
{
|
||||
{"240Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_T_VTOL_02_vehicle_F",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_T_VTOL_02_vehicle_grey_F",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_T_VTOL_02_infantry_F",
|
||||
{
|
||||
{"168Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"B_Heli_Attack_01_F",
|
||||
{
|
||||
{"240Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_Heli_Attack_02_black_F",
|
||||
{
|
||||
{"192Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_Heli_Attack_02_F",
|
||||
{
|
||||
{"192Rnd_CMFlare_Chaff_Magazine",{-1},1,150}
|
||||
}
|
||||
},
|
||||
{
|
||||
"O_Boat_Armed_01_hmg_F",
|
||||
{
|
||||
{"SmokeLauncherMag_boat",{-1},1,100},
|
||||
{"200Rnd_127x99_mag_Tracer_Green",{1},3,300}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
@ -52,6 +52,7 @@ wreckRemovalMaxTime = 360;
|
||||
|
||||
disableRandomization[] = {"All"};
|
||||
|
||||
#include "Configs\CfgServicePoint.hpp"
|
||||
#include "Configs\CfgItemSort.hpp"
|
||||
#include "Configs\CfgTraderMissions.hpp"
|
||||
#include "Configs\CfgMissions.hpp"
|
||||
|
@ -0,0 +1,8 @@
|
||||
params [["_player",objNull,[objNull]],["_crypto",0,[0]]];
|
||||
_player = _this select 0;
|
||||
_crypto = _this select 1;
|
||||
if (_crypto > 0) exitwith { // This is only for pay Crypto, not for give Crypto ;)
|
||||
diag_log format ['Player %1 (%2) killed for Code hack',name _player, getplayeruid _player];
|
||||
_player setdamage 1
|
||||
};
|
||||
_this call EPOCH_server_effectCrypto;
|
@ -63,6 +63,7 @@ class CfgServerFunctions
|
||||
class server_unpackBackpack {};
|
||||
class server_deadPlayerDetonate{};
|
||||
class server_playerSetVariable{};
|
||||
class server_PayCrypto{};
|
||||
};
|
||||
class epoch_traders {
|
||||
class server_loadTraders {};
|
||||
|
@ -210,6 +210,19 @@ if (_dateChanged) then {
|
||||
};
|
||||
};
|
||||
|
||||
_config = 'CfgServicePoint' call EPOCH_returnConfig;
|
||||
_servicepoints = getArray (_config >> worldname >> 'ServicePoints');
|
||||
{
|
||||
_marker = createMarker [('ServicePointMarker'+(str _foreachindex)), _x];
|
||||
_marker setmarkertype "mil_dot";
|
||||
_marker setmarkercolor 'ColorBlack';
|
||||
_marker setMarkerText ("Service Point");
|
||||
if !(surfaceiswater _x) then {
|
||||
"Land_HelipadCircle_F" createvehicle _x;
|
||||
};
|
||||
} forEach _ServicePoints;
|
||||
|
||||
|
||||
// set time multiplier
|
||||
setTimeMultiplier ([_serverSettingsConfig, "timeMultiplier", 1] call EPOCH_fnc_returnConfigEntry);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user