mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Merge pull request #694 from EpochModTeam/experimental
released 0.4 b675
This commit is contained in:
commit
ae9d5fd6cd
31
CREDITS.md
31
CREDITS.md
@ -10,25 +10,26 @@ Epoch Server DB extension (DLL / so)
|
|||||||
Epoch Assets Mod Configs - Custom Units, Vehicles, Weapons, Items and more!
|
Epoch Assets Mod Configs - Custom Units, Vehicles, Weapons, Items and more!
|
||||||
|
|
||||||
#### Developers
|
#### Developers
|
||||||
* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Concept, Code, Configs, Textures - [x] Active
|
* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Concept, Code, Configs, Textures
|
||||||
* [Kenneth Bente (Axle)](www.twitch.tv/axles): Tester, Models - [ ] Active
|
* [Kenneth Bente (Axle)](www.twitch.tv/axles): Tester, Models
|
||||||
* [Paul Tomany (Sequisha)](https://www.twitch.tv/sequisha): Models, Textures - [ ] Active
|
* [Paul Tomany (Sequisha)](https://www.twitch.tv/sequisha): Models, Textures
|
||||||
* [Andrew Gregory (Axeman)](http://thefreezer.co.uk): AI Code - [x] Active
|
* [Damian Clark ([VB]GREEN)](http://epochmod.com): Graphics
|
||||||
* [Raimonds Virtoss (Raymix)](https://www.twitch.tv/raymich): UI Code - [x] Active
|
* [Andrew Gregory (Axeman)](http://thefreezer.co.uk): AI Code
|
||||||
* [Florian Kinder (Fank)](https://github.com/Fank): Code - [ ] Active
|
* [Raimonds Virtoss (Raymix)](https://www.twitch.tv/raymich): UI Code
|
||||||
* [Denis Erygin (devd)](https://github.com/denisio): Linux Code Support - [ ] Active
|
* [Darren Harrison (Kiory)](https://www.twitch.tv/kiory123): Models, Textures, Configs
|
||||||
* [Darren Harrison (Kiory)](https://www.twitch.tv/kiory123): Models, Textures, Configs - [ ] Active
|
* [Niklas Wagner (Skaronator)](https://skaronator.com): Code
|
||||||
* [Paden Sturtevant (SteamPunkGears)](https://www.twitch.tv/steampunkgears): Models, Textures - [ ] Active
|
* [Florian Kinder (Fank)](https://github.com/Fank): Code
|
||||||
* [Niklas Wagner (Skaronator)](https://skaronator.com): Code - [ ] Active
|
* [Denis Erygin (devd)](https://github.com/denisio): Linux Code Support
|
||||||
* [Damian Clark ([VB]GREEN)](http://epochmod.com): Graphics - [ ] Active
|
* [Paden Sturtevant (SteamPunkGears)](https://www.twitch.tv/steampunkgears): Models, Textures
|
||||||
|
* [Dan Dalsted (OrangeSherbet)](https://www.twitch.tv/OrangeSherbet): Tester, Videos, Wiki Editor
|
||||||
|
|
||||||
#### Contributors
|
#### Top Contributors
|
||||||
|
|
||||||
* [Dan (OrangeSherbet)](https://www.twitch.tv/OrangeSherbet): Tester, Videos, Wiki Editor
|
|
||||||
* [HeMan](https://github.com/Ignatz-HeMan)
|
* [HeMan](https://github.com/Ignatz-HeMan)
|
||||||
|
* [$p4rkY](https://github.com/SPKcoding)
|
||||||
|
* [82ndab-Bravo17](https://github.com/82ndab-Bravo17) - http://www.the82ndab.net
|
||||||
* [Robio](https://github.com/RC-Robio)
|
* [Robio](https://github.com/RC-Robio)
|
||||||
* [Poulmba](https://www.youtube.com/user/poulmba): Wiki Editor, Tester
|
* [Poulmba](https://www.youtube.com/user/poulmba): Wiki Editor, Tester
|
||||||
* Richie: Map Support, Forum Moderator
|
* [Richie](http://uk-gaming-zone.co.uk): Map Support, Forum Moderator
|
||||||
* [Tobias Solem](http://whatthepoch.com/): Tester
|
* [Tobias Solem](http://whatthepoch.com/): Tester
|
||||||
|
|
||||||
#### Special Thanks!
|
#### Special Thanks!
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,8 +1,8 @@
|
|||||||
// Anti Hack
|
// Anti Hack
|
||||||
antihack_Enabled = true; // built-in Anti-Hack
|
antihack_Enabled = "true"; // built-in Anti-Hack
|
||||||
antihack_maxTravelDistance = 30; // anti-teleport max travel distance
|
antihack_maxTravelDistance = 30; // anti-teleport max travel distance
|
||||||
antihack_TPcenterDistance = 30; // anti-teleport distance from start
|
antihack_TPcenterDistance = 30; // anti-teleport distance from start
|
||||||
antihack_cfgPatchesCheck = true; // cfgPatches (AddOn Check)
|
antihack_cfgPatchesCheck = "true"; // cfgPatches (AddOn Check)
|
||||||
antihack_PVSPrefix = "EPAH_"; // used to help whitelist pveh variables in BE without BEC and watchdog, leave blank to use no prefix.
|
antihack_PVSPrefix = "EPAH_"; // used to help whitelist pveh variables in BE without BEC and watchdog, leave blank to use no prefix.
|
||||||
antihack_cfgPatchesMode[] = {2}; // 0 == BAN - 1 = LOG, 2 = KICK
|
antihack_cfgPatchesMode[] = {2}; // 0 == BAN - 1 = LOG, 2 = KICK
|
||||||
antihack_ahInitAuthCfg[] = {0,180}; // 0 == BAN - 1 = LOG, 60 = ban or log if anti hack is not started in 180 seconds
|
antihack_ahInitAuthCfg[] = {0,180}; // 0 == BAN - 1 = LOG, 60 = ban or log if anti hack is not started in 180 seconds
|
||||||
@ -24,7 +24,7 @@ antihack_checkFiles[] = { //script check, leave it blank to disable it
|
|||||||
{"epoch_code\compile\setup\EPOCH_clientRespawn.sqf", "EPOCH_clientRespawn"},
|
{"epoch_code\compile\setup\EPOCH_clientRespawn.sqf", "EPOCH_clientRespawn"},
|
||||||
{"epoch_code\compile\interface_event_handlers\EPOCH_KeyDown.sqf", "EPOCH_KeyDown"}
|
{"epoch_code\compile\interface_event_handlers\EPOCH_KeyDown.sqf", "EPOCH_KeyDown"}
|
||||||
};
|
};
|
||||||
antihack_addActionCheck = true; // false to disable addAction checks
|
antihack_addActionCheck = "true"; // false to disable addAction checks
|
||||||
adminMenu_Owner[] = {};
|
adminMenu_Owner[] = {};
|
||||||
adminMenu_OwnerSetting[] = {
|
adminMenu_OwnerSetting[] = {
|
||||||
"ESP-PLAYER",
|
"ESP-PLAYER",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
serverRestart = false; // true sends #shutdown command to server after the time specified in ForceRestartTime
|
serverRestart = "false"; // true sends #shutdown command to server after the time specified in ForceRestartTime
|
||||||
forceRestartTime = 14400; // 4 hour restarts
|
forceRestartTime = 14400; // 4 hour restarts
|
||||||
|
|
||||||
StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the number lower performance.
|
StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the number lower performance.
|
||||||
@ -28,7 +28,7 @@ antagonistChanceLoot = 0.09; //9% chance when player click "SEARCH" on a loot ob
|
|||||||
cloneCost = 100; // debt incurred on player death
|
cloneCost = 100; // debt incurred on player death
|
||||||
|
|
||||||
// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance.
|
// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance.
|
||||||
simulationHandlerOld = false; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps.
|
simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps.
|
||||||
vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle.
|
vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle.
|
||||||
removevehweapons[] = { // remove these Weapons from spawned Vehicles
|
removevehweapons[] = { // remove these Weapons from spawned Vehicles
|
||||||
"missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F",
|
"missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F",
|
||||||
@ -41,7 +41,7 @@ removevehmagazinesturret[] = { // Remove these Magazines from the given Turret f
|
|||||||
};
|
};
|
||||||
|
|
||||||
// BaseBuilding
|
// BaseBuilding
|
||||||
UseIndestructible = false; // Enable / Disable Indestructible BaseObjects
|
UseIndestructible = "false"; // Enable / Disable Indestructible BaseObjects
|
||||||
IndestructibleBaseObjects[] = { // Can be Names or Classes
|
IndestructibleBaseObjects[] = { // Can be Names or Classes
|
||||||
"Constructions_static_F",
|
"Constructions_static_F",
|
||||||
"Buildable_Storage",
|
"Buildable_Storage",
|
||||||
@ -60,15 +60,15 @@ ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of Indestr
|
|||||||
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.
|
||||||
NPCSlotsLimit = 20; // Max number of traders static or dynamic. Warning! Higher the number lower performance.
|
NPCSlotsLimit = 20; // Max number of traders static or dynamic. Warning! Higher the number lower performance.
|
||||||
forceStaticTraders = true; // disables traders moving from work to home
|
forceStaticTraders = "true"; // disables traders moving from work to home
|
||||||
|
|
||||||
// Markers
|
// Markers
|
||||||
showEarthQuakes = true; // show mineral viens caused by earthquakes
|
showEarthQuakes = "true"; // show mineral viens caused by earthquakes
|
||||||
showShippingContainers = true; // Show location of events based loots (plants, shipping container, Carnival)
|
showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival)
|
||||||
SHOW_TRADERS = true; // Show locations of traders
|
SHOW_TRADERS = "true"; // Show locations of traders
|
||||||
SHOW_JAMMERS = false; // Shows location of base jammers
|
SHOW_JAMMERS = "false"; // Shows location of base jammers
|
||||||
SHOW_BOATLOOT = true; // Shows the location of shipwreck loot
|
SHOW_BOATLOOT = "true"; // Shows the location of shipwreck loot
|
||||||
DEBUG_VEH = false; // DEBUG ONLY used to debug spawing of vehicles
|
DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles
|
||||||
|
|
||||||
// Hive Related
|
// Hive Related
|
||||||
expiresBuilding = "604800"; // expiration date in seconds for buildings
|
expiresBuilding = "604800"; // expiration date in seconds for buildings
|
||||||
@ -76,12 +76,12 @@ expiresPlayer = "2592000"; // expiration date in seconds for players
|
|||||||
expiresBank = "7776000"; // expiration date in seconds for players bank
|
expiresBank = "7776000"; // expiration date in seconds for players bank
|
||||||
expiresVehicle = "604800"; // expiration date in seconds for vehicles
|
expiresVehicle = "604800"; // expiration date in seconds for vehicles
|
||||||
expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory
|
expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory
|
||||||
hiveAsync = true; // true = asynchronous hive calls (non blocking), false = synchronous hive calls (blocking)
|
hiveAsync = "true"; // true = asynchronous hive calls (non blocking), false = synchronous hive calls (blocking)
|
||||||
|
|
||||||
// Admin Features
|
// Admin Features
|
||||||
hiveAdminCmdExec = false; // true = enables extra (To Be Released) feature to allow execution of code via hive.
|
hiveAdminCmdExec = "false"; // true = enables extra (To Be Released) feature to allow execution of code via hive.
|
||||||
hiveAdminSavePlayerList = true; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID.
|
hiveAdminSavePlayerList = "true"; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID.
|
||||||
hiveAdminCmdTime = 5; // how many seconds between each command queue call.
|
hiveAdminCmdTime = 5; // how many seconds between each command queue call.
|
||||||
|
|
||||||
// DEBUG
|
// DEBUG
|
||||||
useOldLoadVehicles = false;
|
useOldLoadVehicles = "false";
|
||||||
|
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.
@ -1 +1 @@
|
|||||||
5 "" !"B_Parachute" !"B_AssaultPack_(cbr|dgtl|khk|mcamo|ocamo|rgr|sgg|blk)" !"B_Carryall_(cbr|khk|mcamo|ocamo|oli|oucamo)" !"B_FieldPack_(blk|cbr|khk|ocamo|oli|oucamo)" !"B_Kitbag_(cbr|mcamo|rgr|sgg)" !"B_TacticalPack_(blk|mcamo|ocamo|oli|rgr)" !"smallbackpack_(red|green|teal|pink|)_epoch" !"(O|I|B)_UAV_01_backpack_F"
|
5 "" !"B_Parachute" !"B_AssaultPack_(cbr|dgtl|khk|mcamo|ocamo|rgr|sgg|blk)" !"B_Carryall(cbr|khk|mcamo|ocamo|oli|oucamo|hex|ghex)" !"B_FieldPack_(blk|cbr|khk|ocamo|oli|oucamo|ghex_F)" !"B_Kitbag_(cbr|mcamo|rgr|sgg)" !"B_TacticalPack_(blk|mcamo|ocamo|oli|rgr)" !"smallbackpack_(red|green|teal|pink|)_epoch" !"(O|I|B)_UAV_01_backpack_F" !"B_Bergen_(mcamo|dgtl|hex|tna)_F" !"B_Viper(Light|)Harness_(blk|ghex|hex|khk|oli)_F"
|
||||||
|
@ -207,7 +207,7 @@ class FSM
|
|||||||
"};" \n
|
"};" \n
|
||||||
"" \n
|
"" \n
|
||||||
"_finalPlayerObjectCheck = {" \n
|
"_finalPlayerObjectCheck = {" \n
|
||||||
" (_mass == (loadAbs _playerObject))" \n
|
" (_mass isEqualTo (loadAbs _playerObject))" \n
|
||||||
"};" \n
|
"};" \n
|
||||||
"" \n
|
"" \n
|
||||||
"EPOCH_loginFSM = _thisFSM;" \n
|
"EPOCH_loginFSM = _thisFSM;" \n
|
||||||
@ -1423,4 +1423,4 @@ class FSM
|
|||||||
"Reject_without_B",
|
"Reject_without_B",
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
/*%FSM</COMPILE>*/
|
/*%FSM</COMPILE>*/
|
||||||
|
@ -40,7 +40,7 @@ if (isClass(_config)) then{
|
|||||||
if (configName(_finalconfig) == _variableName) then{
|
if (configName(_finalconfig) == _variableName) then{
|
||||||
_varData = switch (typeName _defaultData) do {
|
_varData = switch (typeName _defaultData) do {
|
||||||
case "SCALAR": {if (isNumber (_finalconfig)) then { getNumber _finalconfig } else {_defaultData} };
|
case "SCALAR": {if (isNumber (_finalconfig)) then { getNumber _finalconfig } else {_defaultData} };
|
||||||
case "BOOL": {if (isText (_finalconfig)) then { (getText _finalconfig) isEqualTo "true" } else {_defaultData} };
|
case "BOOL": {if (isText (_finalconfig)) then {(getText _finalconfig) isEqualTo "true"} else {if (isNumber (_finalconfig)) then {(getNumber _config) isEqualTo 1} else {_defaultData}}};
|
||||||
case "ARRAY": {if (isArray (_finalconfig)) then { getArray _finalconfig } else {_defaultData} };
|
case "ARRAY": {if (isArray (_finalconfig)) then { getArray _finalconfig } else {_defaultData} };
|
||||||
case "STRING": {if (isText (_finalconfig)) then { getText _finalconfig } else {_defaultData} };
|
case "STRING": {if (isText (_finalconfig)) then { getText _finalconfig } else {_defaultData} };
|
||||||
default {_defaultData};
|
default {_defaultData};
|
||||||
|
@ -18,36 +18,60 @@
|
|||||||
Parameter(s):
|
Parameter(s):
|
||||||
_this select 0: OBJECT - player object
|
_this select 0: OBJECT - player object
|
||||||
_this select 1: STRING - personal token
|
_this select 1: STRING - personal token
|
||||||
|
_this select 2: NUMBER - loadABS
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
NOTHING
|
NOTHING
|
||||||
*/
|
*/
|
||||||
//[[[cog import generate_private_arrays ]]]
|
//[[[cog import generate_private_arrays ]]]
|
||||||
private ["_group","_playerObject","_ply"];
|
private ["_prevPlayerObject"];
|
||||||
//[[[end]]]
|
//[[[end]]]
|
||||||
_playerObject = _this select 0;
|
params [
|
||||||
|
["_playerObject",objNull,[objNull]],
|
||||||
|
["_personalToken","",[""]],
|
||||||
|
["_loadAbs",0,[0]]
|
||||||
|
];
|
||||||
|
if (isNull _playerObject) exitWith { diag_log "EPOCH-DEBUG: New Player Object was Null cannot revive." };
|
||||||
if !(alive player && alive _playerObject && !isPlayer _playerObject) then {
|
if !(alive player && alive _playerObject && !isPlayer _playerObject) then {
|
||||||
_ply = player;
|
|
||||||
_group = group player;
|
|
||||||
selectPlayer _playerObject;
|
|
||||||
deleteVehicle _ply;
|
|
||||||
|
|
||||||
Epoch_canBeRevived = false;
|
// reveal new player object (to hopefully propagate info faster).
|
||||||
Epoch_personalToken = _this select 1;
|
player reveal _playerObject;
|
||||||
|
|
||||||
[] spawn EPOCH_masterLoop;
|
// spawn a thread to wait for loadAbs to sync before using selectPlayer
|
||||||
[5, 100] call EPOCH_niteLight;
|
[_playerObject,_personalToken,_loadAbs] spawn {
|
||||||
|
params ["_playerObject","_personalToken","_loadAbs"];
|
||||||
|
|
||||||
closeDialog 0;
|
// get current player object
|
||||||
("BIS_fnc_respawnCounter" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
|
_prevPlayerObjectect = player;
|
||||||
|
|
||||||
{
|
// wait for loadAbs to sync
|
||||||
player removeEventHandler [_x, 0];
|
waitUntil {_loadAbs isEqualTo (loadAbs _playerObject)};
|
||||||
player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)];
|
|
||||||
} forEach (["CfgEpochClient", "addEventHandler", []] call EPOCH_fnc_returnConfigEntryV2);
|
|
||||||
|
|
||||||
// reset blood Pressure to warning level
|
// switch to new playerObject
|
||||||
EPOCH_playerBloodP = 120;
|
selectPlayer _playerObject;
|
||||||
|
|
||||||
|
// delete previous player object
|
||||||
|
deleteVehicle _prevPlayerObject;
|
||||||
|
|
||||||
|
// set token and can revive to false
|
||||||
|
Epoch_canBeRevived = false;
|
||||||
|
Epoch_personalToken = _personalToken;
|
||||||
|
|
||||||
|
// restart masterloop
|
||||||
|
[] spawn EPOCH_masterLoop;
|
||||||
|
[5, 100] call EPOCH_niteLight;
|
||||||
|
|
||||||
|
closeDialog 0;
|
||||||
|
("BIS_fnc_respawnCounter" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
|
||||||
|
|
||||||
|
{
|
||||||
|
player removeEventHandler [_x, 0];
|
||||||
|
player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)];
|
||||||
|
} forEach (["CfgEpochClient", "addEventHandler", []] call EPOCH_fnc_returnConfigEntryV2);
|
||||||
|
|
||||||
|
// reset blood Pressure to warning level
|
||||||
|
EPOCH_playerBloodP = 120;
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
deleteVehicle _playerObject;
|
deleteVehicle _playerObject;
|
||||||
};
|
};
|
||||||
|
@ -37,11 +37,11 @@ class CfgEpochClient
|
|||||||
storageCountPerMember = 5; //ignore if "splitCountLimits=0" & "useGroupCountLimits=0"
|
storageCountPerMember = 5; //ignore if "splitCountLimits=0" & "useGroupCountLimits=0"
|
||||||
maxdoors = 8;
|
maxdoors = 8;
|
||||||
maxgates = 5;
|
maxgates = 5;
|
||||||
disableRemoteSensors = true;
|
disableRemoteSensors = "true";
|
||||||
EPOCH_news[] = {"Word is that Sappers have a new boss.","Dogs will often lure them monsters away.","My dog was blown up. I miss him.."};
|
EPOCH_news[] = {"Word is that Sappers have a new boss.","Dogs will often lure them monsters away.","My dog was blown up. I miss him.."};
|
||||||
deathMorphClass[] = {"Epoch_Sapper_F","Epoch_SapperB_F","I_UAV_01_F","Epoch_Cloak_F"};
|
deathMorphClass[] = {"Epoch_Sapper_F","Epoch_SapperB_F","I_UAV_01_F","Epoch_Cloak_F"};
|
||||||
niteLight[] = {1,1.88,22};
|
niteLight[] = {1,1.88,22};
|
||||||
ryanZombiesEnabled = true;
|
ryanZombiesEnabled = "true";
|
||||||
antagonistSpawnIndex[] = {{"Epoch_Cloak_F",1},{"GreatWhite_F",2},{"Epoch_Sapper_F",2},{"Epoch_SapperB_F",1},{"I_UAV_01_F",2},{"PHANTOM",1},{"B_Heli_Transport_01_F",1},{"EPOCH_RyanZombie_1",12}};
|
antagonistSpawnIndex[] = {{"Epoch_Cloak_F",1},{"GreatWhite_F",2},{"Epoch_Sapper_F",2},{"Epoch_SapperB_F",1},{"I_UAV_01_F",2},{"PHANTOM",1},{"B_Heli_Transport_01_F",1},{"EPOCH_RyanZombie_1",12}};
|
||||||
customVarsDefaults[] = {{"Temp",98.6,{106.7,95,102,105,96,95}},{"Hunger",1500,{5000,0,5001,5001,1250,0}},{"Thirst",750,{2500,0,2501,2501,625,0}},{"AliveTime",0,{-2,0}},{"Energy",0,{2500,0}},{"Wet",0,{100,0,35,55,-1,-1}},{"Soiled",0,{100,0,35,55,-1,-1}},{"Immunity",0,{100,0}},{"Toxicity",0,{100,0,35,55,-1,-1}},{"Stamina",100,{"EPOCH_playerStaminaMax",0}},{"Crypto",0,{250000,0}},{"HitPoints",{0,0,0,0},{1,0,0.5,1,-1,-1}},{"BloodP",100,{190,0,120,140,70,50}},{"SpawnArray",{},{}},{"Karma",0,{50000,-50000}},{"Alcohol",0,{100,0,35,55,-1,-1}},{"Radiation",0,{100,0,35,55,-1,-1}},{"Nuisance",0,{100,0}},{"MissionArray",{},{}}};
|
customVarsDefaults[] = {{"Temp",98.6,{106.7,95,102,105,96,95}},{"Hunger",1500,{5000,0,5001,5001,1250,0}},{"Thirst",750,{2500,0,2501,2501,625,0}},{"AliveTime",0,{-2,0}},{"Energy",0,{2500,0}},{"Wet",0,{100,0,35,55,-1,-1}},{"Soiled",0,{100,0,35,55,-1,-1}},{"Immunity",0,{100,0}},{"Toxicity",0,{100,0,35,55,-1,-1}},{"Stamina",100,{"EPOCH_playerStaminaMax",0}},{"Crypto",0,{250000,0}},{"HitPoints",{0,0,0,0},{1,0,0.5,1,-1,-1}},{"BloodP",100,{190,0,120,140,70,50}},{"SpawnArray",{},{}},{"Karma",0,{50000,-50000}},{"Alcohol",0,{100,0,35,55,-1,-1}},{"Radiation",0,{100,0,35,55,-1,-1}},{"Nuisance",0,{100,0}},{"MissionArray",{},{}}};
|
||||||
hudConfigs[] = {{{"BloodP","","",{"getPlayerDamage",">=",0.7}},"topRight","x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa",{"forceUpdate"}},{{"Oxygen","getPlayerOxygenRemaining","",{},{1,0,2,2,1,0.55}},"topRight","x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa"},{"Hunger","topRight","x\addons\a3_epoch_code\Data\UI\hunger_ca.paa",{"forceBloodRise"}},{"Thirst","topRight","x\addons\a3_epoch_code\Data\UI\thirst_ca.paa",{"forceBloodRise"}},{"Temp","topRight",{"x\addons\a3_epoch_code\Data\UI\hot_ca.paa","x\addons\a3_epoch_code\Data\UI\cold_ca.paa"},{"forceFatigue"}},{"Toxicity","topRight","x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa"},{"Alcohol","topRight","x\addons\a3_epoch_code\Data\UI\drunk_ca.paa"},{"Soiled","topRight","x\addons\a3_epoch_code\Data\UI\soiled_ca.paa"},{"Radiation","topRight","x\addons\a3_epoch_code\Data\UI\rads_ca.paa"},{{"HitPoints","getPlayerHitPointDamage","HitLegs"},"topRight","x\addons\a3_epoch_code\Data\UI\broken_ca.paa"}};
|
hudConfigs[] = {{{"BloodP","","",{"getPlayerDamage",">=",0.7}},"topRight","x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa",{"forceUpdate"}},{{"Oxygen","getPlayerOxygenRemaining","",{},{1,0,2,2,1,0.55}},"topRight","x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa"},{"Hunger","topRight","x\addons\a3_epoch_code\Data\UI\hunger_ca.paa",{"forceBloodRise"}},{"Thirst","topRight","x\addons\a3_epoch_code\Data\UI\thirst_ca.paa",{"forceBloodRise"}},{"Temp","topRight",{"x\addons\a3_epoch_code\Data\UI\hot_ca.paa","x\addons\a3_epoch_code\Data\UI\cold_ca.paa"},{"forceFatigue"}},{"Toxicity","topRight","x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa"},{"Alcohol","topRight","x\addons\a3_epoch_code\Data\UI\drunk_ca.paa"},{"Soiled","topRight","x\addons\a3_epoch_code\Data\UI\soiled_ca.paa"},{"Radiation","topRight","x\addons\a3_epoch_code\Data\UI\rads_ca.paa"},{{"HitPoints","getPlayerHitPointDamage","HitLegs"},"topRight","x\addons\a3_epoch_code\Data\UI\broken_ca.paa"}};
|
||||||
|
@ -1 +1 @@
|
|||||||
build=672;
|
build=675;
|
||||||
|
@ -26,10 +26,10 @@ onPauseScript = "epoch_code\gui\scripts\Epoch_onPause.sqf";
|
|||||||
onLoadMission= "Epoch";
|
onLoadMission= "Epoch";
|
||||||
OnLoadIntro = "Welcome to Epoch Mod";
|
OnLoadIntro = "Welcome to Epoch Mod";
|
||||||
loadScreen = "\x\addons\a3_epoch_assets\pictures\loadScreen_ca.paa";
|
loadScreen = "\x\addons\a3_epoch_assets\pictures\loadScreen_ca.paa";
|
||||||
OnLoadIntroTime = False;
|
OnLoadIntroTime = 0;
|
||||||
OnLoadMissionTime = False;
|
OnLoadMissionTime = 0;
|
||||||
onLoadName = "Epoch Mod";
|
onLoadName = "Epoch Mod";
|
||||||
disabledAI = true;
|
disabledAI = 1;
|
||||||
scriptedPlayer = 1;
|
scriptedPlayer = 1;
|
||||||
disableChannels[]={{0,true,true},{1,false,true},{2,true,true},{6,true,true}}; // allow text only on side chat
|
disableChannels[]={{0,true,true},{1,false,true},{2,true,true},{6,true,true}}; // allow text only on side chat
|
||||||
enableItemsDropping = 0;
|
enableItemsDropping = 0;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=672;
|
build=675;
|
||||||
|
@ -265,7 +265,7 @@ if (!local _player) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// send to player
|
// send to player
|
||||||
[_newPlyr, _token] remoteExec ['EPOCH_clientRevive',_player];
|
[_newPlyr, _token, loadAbs _newPlyr] remoteExec ['EPOCH_clientRevive',_player];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -206,9 +206,24 @@ for "_i" from 1 to _maxVehicleLimit do {
|
|||||||
};
|
};
|
||||||
} forEach _objTypes;
|
} forEach _objTypes;
|
||||||
} forEach (_arr select 5);
|
} forEach (_arr select 5);
|
||||||
// remove and add back magazines works for armed trucks but not helis ATM
|
|
||||||
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
|
// remove and add back magazines
|
||||||
{_vehicle addMagazine _x}count (_arr select 6);
|
if !((_arr select 6) isequalto []) then {
|
||||||
|
if ((_arr select 6 select 0) isequaltype true) then {
|
||||||
|
{
|
||||||
|
_vehicle removeMagazinesTurret [_x select 0, _x select 1];
|
||||||
|
} foreach magazinesAllTurrets _vehicle;
|
||||||
|
{
|
||||||
|
if ((_x select 2) > 0) then {
|
||||||
|
_vehicle addMagazineTurret [_x select 0,_x select 1,_x select 2];
|
||||||
|
};
|
||||||
|
} foreach (_arr select 6 select 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
|
||||||
|
{_vehicle addMagazine _x}count (_arr select 6);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
// set damage and hitpoints
|
// set damage and hitpoints
|
||||||
_vehicle setDamage _damage;
|
_vehicle setDamage _damage;
|
||||||
|
@ -225,22 +225,23 @@ for "_i" from 1 to _maxVehicleLimit do {
|
|||||||
} forEach _objTypes;
|
} forEach _objTypes;
|
||||||
} forEach (_arr select 5);
|
} forEach (_arr select 5);
|
||||||
|
|
||||||
// remove and add back magazines works for armed trucks but not helis ATM
|
// remove and add back magazines
|
||||||
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
|
if !((_arr select 6) isequalto []) then {
|
||||||
{_vehicle addMagazine _x}count (_arr select 6);
|
if ((_arr select 6 select 0) isequaltype true) then {
|
||||||
|
{
|
||||||
// turrets
|
_vehicle removeMagazinesTurret [_x select 0, _x select 1];
|
||||||
/*
|
} foreach magazinesAllTurrets _vehicle;
|
||||||
_mags = _vehicle magazinesTurret [0];
|
{
|
||||||
{
|
if ((_x select 2) > 0) then {
|
||||||
_object removeMagazinesTurret [_x, [0]];
|
_vehicle addMagazineTurret [_x select 0,_x select 1,_x select 2];
|
||||||
} forEach _mags;
|
};
|
||||||
|
} foreach (_arr select 6 select 1);
|
||||||
_mags = _vehicle magazinesTurret [-1];
|
}
|
||||||
{
|
else {
|
||||||
_object removeMagazinesTurret [_x, [-1]];
|
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
|
||||||
} forEach _mags;
|
{_vehicle addMagazine _x}count (_arr select 6);
|
||||||
*/
|
};
|
||||||
|
};
|
||||||
|
|
||||||
if (EPOCH_DEBUG_VEH) then {
|
if (EPOCH_DEBUG_VEH) then {
|
||||||
_marker = createMarker [str(_location) , _location];
|
_marker = createMarker [str(_location) , _location];
|
||||||
@ -253,9 +254,6 @@ for "_i" from 1 to _maxVehicleLimit do {
|
|||||||
if (_simulationHandler) then{
|
if (_simulationHandler) then{
|
||||||
_vehicle enableSimulationGlobal false;
|
_vehicle enableSimulationGlobal false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -17,7 +17,7 @@ params [["_vehicle",objNull]];
|
|||||||
|
|
||||||
if (!isNull _vehicle) then {
|
if (!isNull _vehicle) then {
|
||||||
|
|
||||||
// if (!alive _vehicle) exitWith {diag_log format["DEBUG DEAD VEHICLE SKIPPED SAVE: %1 %2", _vehicle]};
|
if (!alive _vehicle) exitWith {diag_log format["DEBUG DEAD VEHICLE SKIPPED SAVE: %1 %2", _vehicle]};
|
||||||
_vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"];
|
_vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"];
|
||||||
if (_vehSlot != "ABORT") then {
|
if (_vehSlot != "ABORT") then {
|
||||||
|
|
||||||
@ -95,7 +95,7 @@ if (!isNull _vehicle) then {
|
|||||||
];
|
];
|
||||||
_colorSlot = _vehicle getVariable ["VEHICLE_TEXTURE",0];
|
_colorSlot = _vehicle getVariable ["VEHICLE_TEXTURE",0];
|
||||||
|
|
||||||
_VAL = [typeOf _vehicle,[(getposATL _vehicle call EPOCH_precisionPos),vectordir _vehicle,vectorup _vehicle],damage _vehicle,_hitpoints,fuel _vehicle,_inventory,magazinesAmmo _vehicle,_colorSlot];
|
_VAL = [typeOf _vehicle,[(getposATL _vehicle call EPOCH_precisionPos),vectordir _vehicle,vectorup _vehicle],damage _vehicle,_hitpoints,fuel _vehicle,_inventory,[true,magazinesAllTurrets _vehicle],_colorSlot];
|
||||||
["Vehicle", _vehHiveKey, EPOCH_expiresVehicle, _VAL] call EPOCH_fnc_server_hiveSETEX;
|
["Vehicle", _vehHiveKey, EPOCH_expiresVehicle, _VAL] call EPOCH_fnc_server_hiveSETEX;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -258,7 +258,7 @@ EPOCH_server_disconnect = compileFinal("
|
|||||||
");
|
");
|
||||||
|
|
||||||
EPOCH_server_movePlayer = compileFinal("
|
EPOCH_server_movePlayer = compileFinal("
|
||||||
params [['_playerObj',objNull,[_playerObj]],'_pos'];
|
params [['_playerObj',objNull,[objNull]],['_pos',[],[[]]]];
|
||||||
if !(isNull _playerObj) then {
|
if !(isNull _playerObj) then {
|
||||||
"+_skn_antiTeleportPVC+" = true;
|
"+_skn_antiTeleportPVC+" = true;
|
||||||
(owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"';
|
(owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"';
|
||||||
@ -271,7 +271,7 @@ if !(isNull _playerObj) then {
|
|||||||
");
|
");
|
||||||
|
|
||||||
EPOCH_server_teleportCheck = compileFinal("
|
EPOCH_server_teleportCheck = compileFinal("
|
||||||
params [['_playerObj',objNull,[_playerObj]],'_allow'];
|
params [['_playerObj',objNull,[objNull]],'_allow'];
|
||||||
if !(isNull _playerObj) then {
|
if !(isNull _playerObj) then {
|
||||||
"+_skn_antiTeleportPVC+" = _allow;
|
"+_skn_antiTeleportPVC+" = _allow;
|
||||||
(owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"';
|
(owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"';
|
||||||
|
@ -70,7 +70,7 @@ EPOCH_fnc_returnConfigEntry = {
|
|||||||
_config = (_this select 0) >> (_this select 1);
|
_config = (_this select 0) >> (_this select 1);
|
||||||
_varData = switch (typeName _defaultData) do {
|
_varData = switch (typeName _defaultData) do {
|
||||||
case "SCALAR": {if (isNumber (_config)) then { getNumber _config } else {_defaultData} };
|
case "SCALAR": {if (isNumber (_config)) then { getNumber _config } else {_defaultData} };
|
||||||
case "BOOL": {if (isText (_config)) then { (getText _config) isEqualTo "true" } else {_defaultData} };
|
case "BOOL": {if (isText (_config)) then {(getText _config) isEqualTo "true"} else {if (isNumber (_config)) then {(getNumber _config) isEqualTo 1} else {_defaultData}}};
|
||||||
case "ARRAY": {if (isArray (_config)) then { getArray _config } else {_defaultData} };
|
case "ARRAY": {if (isArray (_config)) then { getArray _config } else {_defaultData} };
|
||||||
case "STRING": {if (isText (_config)) then { getText _config } else {_defaultData} };
|
case "STRING": {if (isText (_config)) then { getText _config } else {_defaultData} };
|
||||||
default {_defaultData};
|
default {_defaultData};
|
||||||
|
@ -1 +1 @@
|
|||||||
build=672;
|
build=675;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=672;
|
build=675;
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
*/
|
*/
|
||||||
class CfgSecConf
|
class CfgSecConf
|
||||||
{
|
{
|
||||||
debug = false;
|
debug = "false";
|
||||||
|
|
||||||
class remoteExecClient{
|
class remoteExecClient{
|
||||||
functions[] = {"bankBalance", "resetGroup", "groupUpdate", "groupUidUpdate", "healPlayer","tradeComplete"};
|
functions[] = {"bankBalance", "resetGroup", "groupUpdate", "groupUidUpdate", "healPlayer","tradeComplete"};
|
||||||
@ -28,7 +28,7 @@ class CfgSecConf
|
|||||||
};
|
};
|
||||||
|
|
||||||
class learning {
|
class learning {
|
||||||
mode = false; // true = only trust uids below, false = trust everyone (use only with a passworded server and trusted players)
|
mode = "false"; // true = only trust uids below, false = trust everyone (use only with a passworded server and trusted players)
|
||||||
trustedUsers[] = {};
|
trustedUsers[] = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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.
Loading…
Reference in New Issue
Block a user