mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
commit
24bcfafe60
37
Changelogs/0.3.3.0.txt
Normal file
37
Changelogs/0.3.3.0.txt
Normal file
@ -0,0 +1,37 @@
|
||||
[Added] Basic energy capacity system, controls how much power is available based on the type of energy source.
|
||||
[Added] New upgrade system for Wood Tower, add two lumber packs to add windowed wall.
|
||||
[Added] 4 new plywood walls as first level base walls.
|
||||
[Added] Wood Ladder that can be crafted from 4x lumber.
|
||||
[Added] Wood Tower that can be crafted from a Wood Floor and 4x lumber.
|
||||
[Added] Solar Generator base item can be crafted from items found in the world. When placed gives passive power within (75m Default).
|
||||
[Added] New loot/crafting items (Solar Panels, Wire Cables, Battery Box) added to loot tables.
|
||||
[Added] NightVision now use a static rate of 3 per 10 seconds. This can be changed with 'energyCostNV' variable via CfgEpochClient.
|
||||
[Added] Max rate of energy gain can be controlled with 'energyRegenMax' variable via CfgEpochClient.
|
||||
[Added] Max range of energy gain can be controlled with 'energyRange' variable via CfgEpochClient.
|
||||
[Added] Standard base building upgrade system now supports multiple options and has a basic UI.
|
||||
[Changed] Moved client gamemode and CfgFunctions init to mission file.
|
||||
[Changed] Base building upgrade recipes and remove payouts now have dedicated config "CfgBaseBuilding" and code supports over-loading via description.ext.
|
||||
[Changed] Removed base object "Move" in 3d option in favor of a more refined ghost snap mode.
|
||||
[Changed] Server side database functions renamed and now use cfgFunctions via a new pbo "epoch_server_core".
|
||||
[Changed] Increase max payout of Air Drop event loot.
|
||||
[Changed] Make use of new command getAllHitPointsDamage in A3 1.50 to increase performance of hitpoint data storage.
|
||||
[Changed] Use new A3 command setHitIndex instead of setHitPointDamage so we can use all hitpoints regardless of name.
|
||||
[Changed] Change BIS_fnc_distance2D usage over to distance2D command that was added with A3 1.50 for better performance.
|
||||
[Fixed] Cultist spawning is now fixed.
|
||||
[Fixed] Can now press '2' to disable building snap mode and 1 to re-enable.
|
||||
[Fixed] Can now disable base building by pressing Esc or 'gear' menu.
|
||||
[Fixed] Normalized snap memory points for wood tower and stairs.
|
||||
[Fixed] Loot code for "CfgBuildingLootPos" now uses EPOCH_returnConfig to allow over-loading via description.ext.
|
||||
[Fixed] Error in rpt "No geometry and no visual shape" with Poppy and Goldenseal plants models.
|
||||
[Fixed] JetSki sinking like a rock since Arma 1.44, fix was to add buoyancy=1 property to GEO lod.
|
||||
[Fixed] Angle of snapping was incorrect when building on angles.
|
||||
[Fixed] Issue that caused shifting of some base objects after restart.
|
||||
[Fixed] Pumpkins on Chernarus incorrectly payout trash loot and now have separate configs for extra trash loot items.
|
||||
[Fixed] Color not persisting when picking up corrugated walls.
|
||||
[Fixed] Only maintain damaged objects and object health is repaired on maintain.
|
||||
[Fixed] CfgEpochClient missionConfigFile version check was incorrectly using configFile.
|
||||
[Fixed] Loot object "Blue Tarp" weaponholder proxy position was in the wrong position.
|
||||
[Fixed] Reduce base hunger/thirst loss rate by half if players stamina is above 100. Base rate now can be changed with "baseHTLoss" variable in CfgEpochClient.
|
||||
[Info] Requres Arma 3 1.50 or higher.
|
||||
[ServerInfo] CfgEpochClient removed from description.ext as it can be simply added again from our configs as needed.
|
||||
[ServerInfo] Removed old .bikey and added new one for 0330.
|
Binary file not shown.
Binary file not shown.
BIN
Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo
Normal file
BIN
Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo
Normal file
Binary file not shown.
@ -18,10 +18,9 @@ http://www.microsoft.com/en-us/download/details.aspx?id=40784
|
||||
|
||||
== NOTES ==
|
||||
|
||||
* Steamworkshop Client file download batch file for windows: https://github.com/EpochModTeam/Epoch/blob/master/Tools/Install/InstallEpoch.cmd
|
||||
* As of 0.2.5.2 Server Hotfix Build A you only need BEC (http://ibattle.org/) with watchdog plugin (included in BEC folder) if you use do not use a PVS prefix.
|
||||
* You should use a service restarter (like firedaemon) to keep the redis server and Arma 3 server running.
|
||||
* A3 Server should be restarted every 4 hours. A good option ssing BEC http://ibattle.org/ scheduler and the #shutdown rcon command works well. (Scheduler Example: https://gist.github.com/vbawol/38b2f57d89c2c36106b3)
|
||||
* The log rotator found in tools should only need one path to Arma 3 changed and should be ran just before the Arma 3 server starts. (firedeamon Pre/post service: Before Event)
|
||||
* It is recommended that you use ASM https://github.com/fred41/ASM to monitor your server performance.
|
||||
* Go to http://epochmod.com/forum/ for more help if needed.
|
||||
* Go to http://epochmod.com/forum/ for more help if needed.
|
Binary file not shown.
BIN
Server_Install_Pack/keys/epoch0330.bikey
Normal file
BIN
Server_Install_Pack/keys/epoch0330.bikey
Normal file
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.
BIN
Server_Install_Pack/mpmissions/epoch.VR.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.VR.pbo
Normal file
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
5 "" !WeaponHolderSimulated !Shot !"(LockBox|FirePlace|PlotPole|Jack)_EPOCH" !"Jack_SIM_EPOCH" !"LockBox_Ghost_EPOCH" !"CinderWallHalf_Ghost_EPOCH" !"(Tipi|StorageShelf|WoodFloor|WoodLargeWall|WoodStairs|WoodRamp)_Ghost_EPOCH" !"Foundation_Ghost_EPOCH" !"Land_Cages_F" !"Epoch_Sapper_F"
|
||||
5 "" !WeaponHolderSimulated !Shot !"(LockBox|FirePlace|PlotPole|Jack|SolarGen)_EPOCH" !"Jack_SIM_EPOCH" !"LockBox_Ghost_EPOCH" !"CinderWallHalf_Ghost_EPOCH" !"(Tipi|StorageShelf|Wood(Floor|LargeWall|Stairs|Ramp|Ladder|Tower)_Ghost_EPOCH" !"Foundation_Ghost_EPOCH" !"Land_Cages_F" !"Epoch_Sapper_F"
|
||||
|
@ -1,3 +1,3 @@
|
||||
5 "" !="I_UAV_01_F" !="(I|B|O)_UAV_AI" !"_EPOCH" !="B_65x39_Minigun_Caseless_Red_splash" !="B_762x51_Minigun_Tracer_Yellow_splash" !="B_(Swing|Stick)" !"^SmokeShell" !"^G_40mm_" !"^F_40mm_" !"Sub_F_" !"^F_Signal_" !="mini_Grenade" !="GrenadeHand" !="LaserTarget(C|W|E)" !"^Chemlight_" !="(ClaymoreDirectionalMine|DemoCharge|SatchelCharge)_Remote_Ammo" !="SLAMDirectionalMine_Wire_Ammo" !="(CMflare_Chaff|Sapper_Charge|SapperB_Charge|ATMine_Range)_Ammo" !="APERS(TripMine_Wire|BoundingMine_Range|Mine_Range)_Ammo" !="Epoch_(Sapper|SapperB|Cloak)_F" !="GreatWhite_F" !="groundWeaponHolder" !="WeaponHolderSimulated" !="Epoch_(Male|Female)_F" !"Supply[0-9]" !"Steerable_Parachute_F" !="Epoch_Female_CamoRed_F" !="Land_Cages_F" !="(O|I|B)_UAV_01_backpack_F" !="I_(helipilot|helicrew)_F"
|
||||
5 "_EPOCH" !="(SapperHead|Jack)_SIM_EPOCH" !="Wood(Floor|LargeWall|Stairs|Ramp|Foundation)_EPOCH" !="(Tipi|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation))_Ghost_EPOCH" !="(Tipi|StorageShelf|LockBox|FirePlace|FirePlaceOn|PlotPole|Jack|Freezer|Tarp|CinderWallHalf)_EPOCH" !="I_(Soldier[1-3]|Soldier)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="(LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp)_SIM_EPOCH" !="(WoodFoundation|Foundation)_EPOCH"
|
||||
5 "_EPOCH" !="(SapperHead|Jack|SolarGen)_SIM_EPOCH" !="Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower)_EPOCH" !="(Tipi|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH" !="(Tipi|StorageShelf|LockBox|FirePlace|FirePlaceOn|PlotPole|SolarGen|Jack|Freezer|Tarp|CinderWallHalf)_EPOCH" !="I_(Soldier[1-3]|Soldier)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="(LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH" !="(WoodFoundation|Foundation)_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH"
|
||||
5 SeaGull
|
||||
|
@ -1 +1 @@
|
||||
1 "" !="Land_MPS_EPOCH" !="SapperHead_SIM_EPOCH" !="Epoch_Sapper_F" !="Epoch_Cloak_F" !="LockBox_EPOCH" !="Rabbit_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock)_random_EPOCH" !="LockBox_(Ghost|SIM)_EPOCH" !="CinderWallHalf_(Ghost|SIM)_EPOCH" !="CinderWall_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorway|Stairs|Stairs2|Ramp)_(Ghost|SIM)_EPOCH" !="Foundation_Ghost_EPOCH" !="Foundation_EPOCH"
|
||||
1 "" !="Land_MPS_EPOCH" !="SapperHead_SIM_EPOCH" !="Epoch_Sapper_F" !="Epoch_Cloak_F" !="LockBox_EPOCH" !="Rabbit_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock)_random_EPOCH" !="LockBox_(Ghost|SIM)_EPOCH" !="CinderWallHalf_(Ghost|SIM)_EPOCH" !="CinderWall_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_(Ghost|SIM)_EPOCH" !="Foundation_Ghost_EPOCH" !="Foundation_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH"
|
||||
|
@ -1,7 +1,7 @@
|
||||
5 "call"
|
||||
5 "call" !="[a-z]{5,40}"
|
||||
5 "compile"
|
||||
5 "spawn"
|
||||
5 "exec"
|
||||
5 "exec" !="[a-z]{5,40}"
|
||||
5 "loadFile"
|
||||
5 "preprocessFile"
|
||||
5 "tostring"
|
||||
|
@ -1 +1 @@
|
||||
5 ""
|
||||
5 "" !="epoch_server_save_vehicles \[.+\]"
|
||||
|
@ -34,7 +34,7 @@
|
||||
7 createUnit !="_unit = _grp createUnit[(_arrUnits select _i), _pos, [], 0, \"FORM\"];" !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit ["I_officer_F", axeGeneralPos, [], 1, "CAN_COLLIDE"];"
|
||||
7 createAgent !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent ["Epoch_Sapper_F", getPos _cage2, [], 0, "FORM"];"
|
||||
7 createTeam
|
||||
7 createDialog !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog \"TapOut\";" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';"
|
||||
7 createDialog !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog \"TapOut\";" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';"
|
||||
7 deleteMarker
|
||||
7 setMarker
|
||||
7 createMarker
|
||||
|
@ -1 +1 @@
|
||||
5 "" !="Epoch_(Male|Female)_F" !="SapperHead_SIM_EPOCH" !="(Tipi|StorageShelf|LockBox|FirePlace|FirePlaceOn|PlotPole)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="LockBox_SIM_EPOCH" !="(CinderWallHalf|CinderWall|Fireplace)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorway|Stairs|Stairs2|Ramp)_SIM_EPOCH" !="(Foundation|WoodFoundation)_Ghost_EPOCH" !="Foundation_EPOCH" !="WoodFoundation_EPOCH"
|
||||
5 "" !="Epoch_(Male|Female)_F" !="SapperHead_SIM_EPOCH" !="(Tipi|StorageShelf|LockBox|FirePlace|FirePlaceOn|PlotPole|SolarGen)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="(LockBox|CinderWallHalf|CinderWall|Fireplace|SolarGen)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorway|Stairs|Stairs2|Ramp)_SIM_EPOCH" !="(Foundation|Wood(Foundation|Ladder|Tower))_Ghost_EPOCH" !="Foundation_EPOCH" !="WoodFoundation_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH"
|
||||
|
@ -1,14 +1,14 @@
|
||||
// EPOCH SERVER CONFIG
|
||||
|
||||
// GLOBAL SETTINGS
|
||||
hostname = "EpochMod.com (0.3.2|1.48) ID02 YourHost";
|
||||
hostname = "EpochMod.com (0.3.3|1.50) ID02 YourHost";
|
||||
password = "";
|
||||
passwordAdmin = "!CHANGE_THIS_PASSWORD!";
|
||||
serverCommandPassword = "!CHANGE_THIS_PASSWORD!";
|
||||
logFile = "A3Master.log";
|
||||
verifySignatures = 2;
|
||||
BattlEye = 1;
|
||||
requiredBuild = 131561;
|
||||
requiredBuild = 131696;
|
||||
|
||||
// WHITELIST FILE TYPES
|
||||
allowedLoadFileExtensions[] = {:};
|
||||
|
@ -0,0 +1,13 @@
|
||||
/*
|
||||
Hive Delete by Key
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveDEL.sqf
|
||||
*/
|
||||
//_PREFIX = _this select 0;
|
||||
//_KEY = _this select 1;
|
||||
"epochserver" callExtension format["400|%1:%2", _this select 0, _this select 1];
|
@ -0,0 +1,21 @@
|
||||
/*
|
||||
Hive Expire
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveEXPIRE.sqf
|
||||
*/
|
||||
private ["_prefix","_key","_expires","_call"];
|
||||
_prefix = _this select 0;
|
||||
_key = _this select 1;
|
||||
_expires = _this select 2;
|
||||
|
||||
_call = 131;
|
||||
if !(EPOCH_hiveAsync) then {
|
||||
_call = 130;
|
||||
};
|
||||
|
||||
"epochserver" callExtension format ["%1|%2:%3|%4", _call, _prefix, _key, _expires];
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
Hive Expire
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGET.sqf
|
||||
*/
|
||||
|
||||
private ["_hiveResponse","_hiveStatus","_hiveMessage"];
|
||||
//_PREFIX = _this select 0;
|
||||
//_KEY = _this select 1;
|
||||
|
||||
_hiveStatus = -1;
|
||||
_hiveMessage = "";
|
||||
|
||||
while {_hiveStatus < 0 || _hiveStatus == 2} do {
|
||||
_hiveResponse = "epochserver" callExtension format ["200|%1:%2", _this select 0, _this select 1];
|
||||
_hiveStatus = 0;
|
||||
if (_hiveResponse != "") then {
|
||||
_hiveResponse = call compile _hiveResponse;
|
||||
if !(isNil "_hiveResponse") then {
|
||||
if (typeName _hiveResponse == "ARRAY" && !(_hiveResponse isEqualTo [])) then {
|
||||
_hiveStatus = _hiveResponse select 0;
|
||||
if (_hiveStatus >= 1) then {
|
||||
_hiveMessage = _hiveMessage + (_hiveResponse select 1);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
if (_hiveStatus > 0 && _hiveMessage find "<null>" == -1) then {
|
||||
_hiveMessage = call compile _hiveMessage;
|
||||
if (isNil "_hiveMessage") then { _hiveMessage = [];}
|
||||
}
|
||||
else {
|
||||
_hiveMessage = [];
|
||||
};
|
||||
|
||||
[_hiveStatus, _hiveMessage]
|
@ -0,0 +1,29 @@
|
||||
/*
|
||||
Hive Getbit
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETBIT.sqf
|
||||
*/
|
||||
|
||||
private ["_hiveResponse","_hiveStatus","_hiveMessage"];
|
||||
//_PREFIX = _this select 0;
|
||||
//_KEY = _this select 1;
|
||||
//_BIT = _this select 2;
|
||||
|
||||
_hiveMessage = false;
|
||||
_hiveResponse = "epochserver" callExtension format["240|%1:%2|%3", _this select 0, _this select 1, _this select 2];
|
||||
if (_hiveResponse != "") then {
|
||||
_hiveResponse = call compile _hiveResponse;
|
||||
if !(isNil "_hiveResponse") then {
|
||||
if (typeName _hiveResponse == "ARRAY" && !(_hiveResponse isEqualTo[])) then {
|
||||
if ((_hiveResponse select 0) == 1) then {
|
||||
_hiveMessage = ((_hiveResponse select 1) == "1");
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
_hiveMessage
|
@ -0,0 +1,68 @@
|
||||
/*
|
||||
Hive Getrange
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETRANGE.sqf
|
||||
*/
|
||||
|
||||
private["_hiveResponse", "_hiveStatus", "_hiveMessage", "_currentIndex", "_hiveMakeCall", "_data"];
|
||||
// GetRange
|
||||
//_PREFIX = _this select 0;
|
||||
//_KEY = _this select 1;
|
||||
|
||||
_hiveMessage = "";
|
||||
_hiveStatus = 0;
|
||||
|
||||
_currentIndex = 0;
|
||||
|
||||
_hiveMakeCall = true;
|
||||
while {_hiveMakeCall} do {
|
||||
|
||||
_hiveMakeCall = false;
|
||||
|
||||
// get 8k chars
|
||||
_currentIndexMax = _currentIndex + 8000;
|
||||
_hiveResponse = "epochserver" callExtension format["220|%1:%2|%3|%4", _this select 0, _this select 1, _currentIndex, (_currentIndexMax-1)];
|
||||
|
||||
//0 _hiveResponse: [1,""]
|
||||
//diag_log format["%2:%3 _hiveResponse: %1", _hiveResponse, _currentIndex, count _hiveResponse];
|
||||
|
||||
if (_hiveResponse != "") then {
|
||||
|
||||
_hiveResponse = call compile _hiveResponse;
|
||||
if !(isNil "_hiveResponse") then{
|
||||
|
||||
if (typeName _hiveResponse == "ARRAY" && !(_hiveResponse isEqualTo[])) then{
|
||||
|
||||
_hiveStatus = _hiveResponse select 0;
|
||||
if (_hiveStatus == 1) then{
|
||||
|
||||
_data = _hiveResponse select 1;
|
||||
|
||||
if !(_data isEqualTo []) then{
|
||||
|
||||
// add data to string
|
||||
_hiveMessage = _hiveMessage + _data;
|
||||
|
||||
// if data returned is exactly 8k chars then we likely need to make another call
|
||||
if (count _data == 8000) then{
|
||||
_currentIndex = _currentIndexMax;
|
||||
_hiveMakeCall = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
if (_hiveStatus == 1) then{
|
||||
_hiveMessage = call compile _hiveMessage;
|
||||
if (isNil "_hiveMessage") then{ _hiveMessage = []; }
|
||||
};
|
||||
|
||||
[_hiveStatus, _hiveMessage]
|
@ -0,0 +1,59 @@
|
||||
/*
|
||||
Hive Get w/ TTL
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveGETTTL.sqf
|
||||
*/
|
||||
|
||||
private ["_hiveResponse","_hiveStatus","_hiveMessage","_whileCount"];
|
||||
//_PREFIX = _this select 0;
|
||||
//_KEY = _this select 1;
|
||||
|
||||
_hiveStatus = -1;
|
||||
_hiveMessage = "";
|
||||
_hiveTTL = -1;
|
||||
_hiveResponse = "";
|
||||
_whileCount = 0;
|
||||
while {_hiveStatus < 0 || _hiveStatus == 2} do {
|
||||
if (_whileCount == 0) then {
|
||||
_hiveResponse = "epochserver" callExtension format ["210|%1:%2", _this select 0, _this select 1];
|
||||
}
|
||||
else {
|
||||
_hiveResponse = "epochserver" callExtension format ["200|%1:%2", _this select 0, _this select 1];
|
||||
};
|
||||
|
||||
_hiveStatus = 0;
|
||||
if (_hiveResponse != "") then {
|
||||
_hiveResponse = call compile _hiveResponse;
|
||||
if !(isNil "_hiveResponse") then {
|
||||
if (typeName _hiveResponse == "ARRAY" && !(_hiveResponse isEqualTo [])) then {
|
||||
_hiveStatus = _hiveResponse select 0;
|
||||
if (_hiveStatus >= 1) then {
|
||||
if (_whileCount == 0) then {
|
||||
_hiveTTL = _hiveResponse select 1;
|
||||
_hiveMessage = _hiveMessage + (_hiveResponse select 2);
|
||||
}
|
||||
else {
|
||||
_hiveMessage = _hiveMessage + (_hiveResponse select 1);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_whileCount = _whileCount + 1;
|
||||
};
|
||||
|
||||
if (_hiveStatus > 0 && _hiveMessage find "<null>" == -1) then {
|
||||
_hiveMessage = call compile _hiveMessage;
|
||||
if (isNil "_hiveMessage") then { _hiveMessage = [];}
|
||||
}
|
||||
else {
|
||||
_hiveMessage = [];
|
||||
};
|
||||
|
||||
[_hiveStatus, _hiveMessage, _hiveTTL]
|
@ -0,0 +1,14 @@
|
||||
/*
|
||||
Hive Log
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveLog.sqf
|
||||
*/
|
||||
|
||||
//_PREFIX = _this select 0;
|
||||
//_VAL = _this select 1;
|
||||
"epochserver" callExtension format["700|%1|%2", _this select 0, _this select 1];
|
@ -0,0 +1,54 @@
|
||||
/*
|
||||
Hive SET
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSET.sqf
|
||||
*/
|
||||
|
||||
private ["_prefix","_key","_value","_valueLength","_callStack","_call","_setterCall","_index","_charLimit"];
|
||||
|
||||
_prefix = _this select 0;
|
||||
_key = _this select 1;
|
||||
_value = str (_this select 2);
|
||||
_valueLength = count _value;
|
||||
|
||||
_callStack = 101;
|
||||
_call = 111;
|
||||
if !(EPOCH_hiveAsync) then {
|
||||
_setterCall = 100;
|
||||
_call = 110;
|
||||
};
|
||||
|
||||
_index = 0;
|
||||
_charLimit = 8000;
|
||||
|
||||
if (_valueLength > _charLimit) then{
|
||||
|
||||
if (isNil "EPOCH_hiveCallID") then{
|
||||
EPOCH_hiveCallID = 0;
|
||||
} else {
|
||||
if (EPOCH_hiveCallID > 10) then{
|
||||
EPOCH_hiveCallID = 0;
|
||||
};
|
||||
EPOCH_hiveCallID = EPOCH_hiveCallID + 1;
|
||||
};
|
||||
|
||||
while {_valueLength > _charLimit} do {
|
||||
_valueLength = _valueLength - _charLimit;
|
||||
"epochserver" callExtension format["%1|%2:%3|%4|%5", _callStack, _prefix, _key, EPOCH_hiveCallID, _value select[_index, _charLimit]];
|
||||
//diag_log format["Append: %1", [_index, _callStack, _prefix, _key, EPOCH_hiveCallID, _value select[_index, _charLimit]]];
|
||||
_index = _index + _charLimit;
|
||||
};
|
||||
|
||||
"epochserver" callExtension format["%1|%2:%3|%4|%5", _call, _prefix, _key, EPOCH_hiveCallID, _value select[_index, _charLimit]];
|
||||
//diag_log format["Large: %1", [_index, _call, _prefix, _key, EPOCH_hiveCallID, _value select[_index, _charLimit]]];
|
||||
|
||||
}
|
||||
else {
|
||||
"epochserver" callExtension format["%1|%2:%3|%4|%5", _call, _prefix, _key, "", _value select[_index, _charLimit]];
|
||||
//diag_log format["Small: %1", [_index, _call, _prefix, _key, _value select[_index, _charLimit]]];
|
||||
};
|
@ -0,0 +1,19 @@
|
||||
/*
|
||||
Hive SETBit
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETBIT.sqf
|
||||
*/
|
||||
|
||||
private ["_prefix","_key","_value","_bitIndex"];
|
||||
|
||||
_prefix = _this select 0;
|
||||
_key = _this select 1;
|
||||
_bitIndex = _this select 2;
|
||||
_value = _this select 3;
|
||||
|
||||
"epochserver" callExtension format["141|%1:%2|%3|%4", _prefix, _key, _bitIndex, _value];
|
@ -0,0 +1,54 @@
|
||||
/*
|
||||
Hive SETEX
|
||||
by Aaron Clark - EpochMod.com
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
|
||||
Improvements and or bugfixes and other contributions are welcome via the github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server_core/compile/epoch_hive/fn_server_hiveSETEX.sqf
|
||||
*/
|
||||
|
||||
private ["_prefix","_key","_expires","_value","_valueLength","_callStack","_call","_index","_charLimit"];
|
||||
|
||||
_prefix = _this select 0;
|
||||
_key = _this select 1;
|
||||
_expires = _this select 2;
|
||||
_value = str (_this select 3);
|
||||
_valueLength = count _value;
|
||||
|
||||
_callStack = 101;
|
||||
_call = 121;
|
||||
if !(EPOCH_hiveAsync) then {
|
||||
_callStack = 100;
|
||||
_call = 120;
|
||||
};
|
||||
|
||||
_index = 0;
|
||||
_charLimit = 8000;
|
||||
|
||||
if (_valueLength > _charLimit) then{
|
||||
|
||||
if (isNil "EPOCH_hiveCallID") then{
|
||||
EPOCH_hiveCallID = 0;
|
||||
} else {
|
||||
if (EPOCH_hiveCallID > 10) then{
|
||||
EPOCH_hiveCallID = 0;
|
||||
};
|
||||
EPOCH_hiveCallID = EPOCH_hiveCallID + 1;
|
||||
};
|
||||
|
||||
while {_valueLength > _charLimit} do {
|
||||
_valueLength = _valueLength - _charLimit;
|
||||
"epochserver" callExtension format["%1|%2:%3|%4|%5", _callStack, _prefix, _key, EPOCH_hiveCallID, _value select[_index, _charLimit]];
|
||||
//diag_log format["Append: %1", [_index, _callStack, _prefix, _key, _value select[_index, _charLimit]]];
|
||||
_index = _index + _charLimit;
|
||||
};
|
||||
|
||||
"epochserver" callExtension format["%1|%2:%3|%4|%5|%6", _call, _prefix, _key, _expires, EPOCH_hiveCallID, _value select[_index, _charLimit]];
|
||||
//diag_log format["Large: %1", [_index, _call, _prefix, _key, _expires, _value select[_index, _charLimit]]];
|
||||
|
||||
} else {
|
||||
"epochserver" callExtension format["%1|%2:%3|%4|%5|%6", _call, _prefix, _key, _expires, "", _value select[_index, _charLimit]];
|
||||
//diag_log format["Small: %1", [_index, _call, _prefix, _key, _expires, _value select[_index, _charLimit]]];
|
||||
};
|
32
Sources/epoch_server_core/config.cpp
Normal file
32
Sources/epoch_server_core/config.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
/****************************************************************************
|
||||
Copyright (C) 2015 - ARMA 3 EPOCH MOD [EpochMod.com] (v0.3.3.0)
|
||||
*****************************************************************************/
|
||||
#define _ARMA_
|
||||
class CfgPatches {
|
||||
class A3_epoch_server_core {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {};
|
||||
};
|
||||
};
|
||||
class cfgFunctions
|
||||
{
|
||||
class A3E_CORE
|
||||
{
|
||||
tag = "EPOCH";
|
||||
file = "\epoch_server_core\compile";
|
||||
class epoch_hive {
|
||||
file = "\epoch_server_core\compile\epoch_hive";
|
||||
class server_hiveSET {};
|
||||
class server_hiveSETBIT {};
|
||||
class server_hiveSETEX {};
|
||||
class server_hiveEXPIRE {};
|
||||
class server_hiveGET {};
|
||||
class server_hiveGETRANGE {};
|
||||
class server_hiveGETBIT {};
|
||||
class server_hiveGETTTL {};
|
||||
class server_hiveDEL {};
|
||||
};
|
||||
};
|
||||
};
|
@ -33,7 +33,7 @@ if !(EPOCH_WeatherStaticForecast isEqualTo []) then {
|
||||
} else {
|
||||
|
||||
// Make database call to get "Weather:InstanceID" that can be set in the database to allow for weather controls outside of the game.
|
||||
_response = ["Weather", (call EPOCH_fn_InstanceID)] call EPOCH_server_hiveGETRANGE;
|
||||
_response = ["Weather", (call EPOCH_fn_InstanceID)] call EPOCH_fnc_server_hiveGETRANGE;
|
||||
if ((_response select 0) == 1 && typeName(_response select 1) == "ARRAY" && !((_response select 1) isEqualTo[])) then {
|
||||
_arr = _response select 1;
|
||||
_tempOVRD = _arr select 0;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
Copyright (C) 2015 - ARMA 3 EPOCH MOD [EpochMod.com] (v0.3.2.0)
|
||||
Copyright (C) 2015 - ARMA 3 EPOCH MOD [EpochMod.com] (v0.3.3.0)
|
||||
*****************************************************************************/
|
||||
|
||||
#define _ARMA_
|
||||
@ -9,7 +9,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
epochVersion = "0.3.2.0";
|
||||
epochVersion = "0.3.3.0";
|
||||
requiredAddons[] = {};
|
||||
};
|
||||
};
|
||||
|
@ -508,7 +508,7 @@ class CfgMainTable
|
||||
class AirDrop_Payout1
|
||||
{
|
||||
lootMin = 7;
|
||||
LootMax = 10;
|
||||
LootMax = 14;
|
||||
tables[] = {
|
||||
{ "Equipment", 6 },
|
||||
{ "Pistols", 8 },
|
||||
@ -831,11 +831,14 @@ class CfgLootTable
|
||||
class GenericLarge
|
||||
{
|
||||
items[] = {
|
||||
{ { "MortarBucket", "magazine" }, 20 },
|
||||
{ { "CinderBlocks", "magazine" }, 20 },
|
||||
{ { "VehicleRepair", "magazine" }, 20 },
|
||||
{ { "CircuitParts", "magazine" }, 20 },
|
||||
{ { "ItemCorrugated", "magazine" }, 20 }
|
||||
{ { "MortarBucket", "magazine" }, 17 },
|
||||
{ { "CinderBlocks", "magazine" }, 17 },
|
||||
{ { "VehicleRepair", "magazine" }, 17 },
|
||||
{ { "CircuitParts", "magazine" }, 17 },
|
||||
{ { "ItemCorrugated", "magazine" }, 17 },
|
||||
{ { "ItemSolar", "magazine" }, 5 },
|
||||
{ { "ItemBattery", "magazine" }, 5 },
|
||||
{ { "ItemCables", "magazine" }, 5 }
|
||||
};
|
||||
};
|
||||
|
||||
@ -849,10 +852,13 @@ class CfgLootTable
|
||||
{ { "VehicleRepair", "magazine" }, 11 },
|
||||
{ { "ItemCorrugated", "magazine" }, 11 },
|
||||
{ { "CinderBlocks", "magazine" }, 12 },
|
||||
{ { "JackKit", "magazine" }, 13 },
|
||||
{ { "ItemCoolerE", "magazine" }, 14 },
|
||||
{ { "ItemScraps", "magazine" }, 14 },
|
||||
{ { "lighter_epoch", "magazine" }, 1 }
|
||||
{ { "JackKit", "magazine" }, 9 },
|
||||
{ { "ItemCoolerE", "magazine" }, 13 },
|
||||
{ { "ItemScraps", "magazine" }, 13 },
|
||||
{ { "lighter_epoch", "magazine" }, 1 },
|
||||
{ { "ItemSolar", "magazine" }, 3 },
|
||||
{ { "ItemBattery", "magazine" }, 3 },
|
||||
{ { "ItemCables", "magazine" }, 3 }
|
||||
};
|
||||
};
|
||||
|
||||
@ -1341,11 +1347,14 @@ class CfgLootTable
|
||||
{
|
||||
items[] = {
|
||||
{ { "KitPlotPole", "magazine" }, 5 },
|
||||
{ { "KitStudWall", "magazine" }, 15 },
|
||||
{ { "KitSolarGen", "magazine" }, 2 },
|
||||
{ { "KitStudWall", "magazine" }, 13 },
|
||||
{ { "KitShelf", "magazine" }, 11 },
|
||||
{ { "KitWoodFloor", "magazine" }, 15 },
|
||||
{ { "KitWoodStairs", "magazine" }, 12 },
|
||||
{ { "KitWoodRamp", "magazine" }, 10 },
|
||||
{ { "KitWoodFloor", "magazine" }, 12 },
|
||||
{ { "KitWoodStairs", "magazine" }, 10 },
|
||||
{ { "KitWoodTower", "magazine" }, 5 },
|
||||
{ { "KitWoodRamp", "magazine" }, 5 },
|
||||
{ { "KitWoodLadder", "magazine" }, 5 },
|
||||
{ { "KitFirePlace", "magazine" }, 8 },
|
||||
{ { "KitCinderWall", "magazine" }, 5 },
|
||||
{ { "KitFoundation", "magazine" }, 5 },
|
||||
|
17
Sources/epoch_server_settings/configs/maps/vr.h
Normal file
17
Sources/epoch_server_settings/configs/maps/vr.h
Normal file
@ -0,0 +1,17 @@
|
||||
class VR : Default
|
||||
{
|
||||
worldSize = 10000;
|
||||
traderBlds[] = { "Land_Kiosk_blueking_F", "Land_FuelStation_Build_F", "Land_CarService_F", "Land_i_Garage_V1_F", "Land_i_Shed_Ind_F", "Land_i_Shop_01_V1_F" };
|
||||
containerPos[] = {};
|
||||
telePos[] = {
|
||||
|
||||
// N [-0.286865,8.17383,-10.3098]
|
||||
// S [-0.415527,-7.05298,-10.3098]
|
||||
// E [13.5127,0.410156,-10.3098]
|
||||
// W [-14.4316,0.112793,-10.3098]
|
||||
|
||||
{ "Transport_C_EPOCH", { -0.286865, 8.17383, -10.3098 }, "", { 4089.82, 4597.71, 0.00143433 } }
|
||||
};
|
||||
propsPos[] = {};
|
||||
staticNpcPos[] = {};
|
||||
};
|
@ -63,7 +63,7 @@ class CfgSecConf
|
||||
class addEventHandler {
|
||||
checks[] = {"Fired","InventoryClosed","InventoryOpened","Killed","HandleDamage","HandleHeal","Dammaged","Hit","HitPart"};
|
||||
Fired = "_this call EPOCH_fnc_playerFired;";
|
||||
InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then { EPOCH_S_S_VEHICLES = EPOCH_arr_interactedObjs; publicVariableServer 'EPOCH_S_S_VEHICLES'; EPOCH_arr_interactedObjs = [];};";
|
||||
InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {EPOCH_arr_interactedObjs remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};";
|
||||
InventoryOpened = "_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3])";
|
||||
Killed = "_this call EPOCH_fnc_playerDeath;";
|
||||
HandleDamage = "";
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,25 +53,40 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\Altis.hpp"
|
||||
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
class CfgEpochSapper
|
||||
{
|
||||
detonateDistMax = 8; //Random distance between 3m and this number at which sapper detonates. Min value = 4
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,23 +53,39 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\australia.hpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,23 +53,39 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\Bornholm.hpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,23 +53,39 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\Chernarus.hpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,23 +53,39 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\Chernarus_Summer.hpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,23 +53,39 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\Esseker.hpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,23 +53,39 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\Stratis.hpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
|
@ -36,6 +36,9 @@ wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
<<<<<<< HEAD
|
||||
class cfgFunctions
|
||||
=======
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
@ -50,23 +53,39 @@ class CfgRemoteExec
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
>>>>>>> master
|
||||
{
|
||||
epochVersion = "0.3.2.0";
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
#include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\Takistan.hpp"
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
|
143
Sources/mpmissions/epoch.VR/description.ext
Normal file
143
Sources/mpmissions/epoch.VR/description.ext
Normal file
@ -0,0 +1,143 @@
|
||||
author = "Epoch Mod Team";
|
||||
class Header
|
||||
{
|
||||
gameType = Sandbox;
|
||||
minPlayers = 1;
|
||||
maxPlayers = 100;
|
||||
};
|
||||
respawn = "BASE";
|
||||
respawnDelay = 600;
|
||||
respawnDialog = 0;
|
||||
|
||||
onLoadMission= "Epoch";
|
||||
OnLoadIntro = "Welcome to Epoch Mod";
|
||||
loadScreen = "\x\addons\a3_epoch_assets\pictures\loadScreen_ca.paa";
|
||||
OnLoadIntroTime = False;
|
||||
OnLoadMissionTime = False;
|
||||
onLoadName = "Epoch Mod";
|
||||
disabledAI = true;
|
||||
scriptedPlayer = 1;
|
||||
disableChannels[]={0,1,2,6};
|
||||
enableItemsDropping = 0;
|
||||
briefing = 0;
|
||||
debriefing = 0;
|
||||
enableDebugConsole = 0;
|
||||
joinUnassigned = 0;
|
||||
respawnOnStart = 0;
|
||||
forceRotorLibSimulation = 1;
|
||||
|
||||
corpseManagerMode = 1;
|
||||
corpseLimit = 10;
|
||||
corpseRemovalMinTime = 1200;
|
||||
corpseRemovalMaxTime = 3600;
|
||||
|
||||
wreckManagerMode = 1;
|
||||
wreckLimit = 2;
|
||||
wreckRemovalMinTime = 60;
|
||||
wreckRemovalMaxTime = 360;
|
||||
|
||||
class cfgFunctions
|
||||
{
|
||||
class A3E
|
||||
{
|
||||
tag = "EPOCH";
|
||||
class Client
|
||||
{
|
||||
file = "\x\addons\a3_epoch_code\init";
|
||||
class init
|
||||
{
|
||||
preInit = 1;
|
||||
};
|
||||
class postinit
|
||||
{
|
||||
postInit = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgRemoteExec
|
||||
{
|
||||
class Functions
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_save_vehicles {
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
};
|
||||
class Commands {mode=0;};
|
||||
};
|
||||
|
||||
class CfgEpochClient
|
||||
{
|
||||
epochVersion = "0.3.3.0";
|
||||
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby
|
||||
buildingNearbyMilitaryRange = 300; //Define radius of blocked area
|
||||
|
||||
buildingRequireJammer = 0; // 1 = to allow building without a jammer
|
||||
buildingCountLimit = 200; // how many objects can be built within range of a jammer
|
||||
buildingJammerRange = 75; // jammer range in meters
|
||||
|
||||
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.."};
|
||||
|
||||
// #include "\x\addons\a3_epoch_config\Configs\CfgEpochClient\VR.hpp"
|
||||
|
||||
class vr {
|
||||
Rocks[] = {
|
||||
};
|
||||
ATM[] = {
|
||||
};
|
||||
Water[] = {
|
||||
};
|
||||
Trash[] = {
|
||||
};
|
||||
Trees[] = {
|
||||
};
|
||||
Bushes[] = {
|
||||
};
|
||||
Cinder[] = {
|
||||
};
|
||||
Wrecks[] = {
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
class CfgEpochSapper
|
||||
{
|
||||
detonateDistMax = 8; //Random distance between 3m and this number at which sapper detonates. Min value = 4
|
||||
groanTrig = 16; //Percentage chance of a groan. Min value = 4
|
||||
sRange = 300; //Distance from target over which sapper will dispose. Range within which sapper code will be aware of targets. Distance up to which sapper will attempt to find a spot to hide in. Min Value = 150.
|
||||
smellDist = 24; //Distance up to which sapper can smell. Used to decide if sapper can see target when deciding to charge and influences target selection. Is influenced by wind direction. Min Value = 8.
|
||||
};
|
||||
|
||||
class CfgEpochUAV
|
||||
{
|
||||
UAVMinDist = 48; //Minimum distance to choose next position when roaming. Min Value = 8.
|
||||
UAVMaxDist = 180; //Maximum distance to choose next position when roaming. Min Value = 42 / Max Value = 400.
|
||||
UAVHeight = 100; //Set height when roaming, slight randomness is applied to this value. UAV will choose own height when locked onto target. Min Value = 42 / Max Value = 280. UAV can still spot targets from height !
|
||||
};
|
||||
|
||||
class CfgEpochAirDrop
|
||||
{
|
||||
AirDropFreq = 1200; //AirDropChance, to decide if Air drop occurs, will only be checked once per AirDropFreq time period, for each player. Min value = 120.
|
||||
AirDropChance = 6; //Percentage chance of air drop, for current player. Checked every AirDropFreq and upon antagonists spawn trigger. -1 To disable.
|
||||
};
|
||||
|
||||
class CfgEpochCloak
|
||||
{
|
||||
cRange = 300; //Distance, from target, at which Cloak will dispose. Cloak is also aware of players within this range. (Min: 60 / Max: 600)
|
||||
cAggression = 75; //Percentage chance of attack, currently a psychological attack (Cultist spooky voice). (Min: 1 / Max: 100)
|
||||
attackFrequency = 120; //One attack only per this period. (Min: 120)
|
||||
attackDistance = 38; // Distance, from target, up to which Cloak will attack. Lower for less vocals. (Min: 16)
|
||||
targetChangeFrequency = 42; //Cloak will only attempt to change target once per this period. Make Higher to stick to first target player. (Min: 42)
|
||||
teleportChance = 66; //Chance for cloak to teleport. (Min: 1)
|
||||
hoverFrequency = 1280; //Cloak has new hover attack. When player is above cloak, and at a distance, cloak will float to player and teleport attack. Only perform one of these moves per this period. (Min: 240)
|
||||
};
|
2167
Sources/mpmissions/epoch.VR/mission.sqm
Normal file
2167
Sources/mpmissions/epoch.VR/mission.sqm
Normal file
File diff suppressed because it is too large
Load Diff
613
Tools/SQF/saveLootPositionsVector.sqf
Normal file
613
Tools/SQF/saveLootPositionsVector.sqf
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user