Merge pull request #956 from EpochModTeam/experimental

Epoch Gamemode Build: 1077
This commit is contained in:
vbawol 2017-11-05 07:57:57 -06:00 committed by GitHub
commit 2b4ec06aed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 95 additions and 53 deletions

View File

@ -59,6 +59,7 @@ defaultlinkedItems[] = {
disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup.
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.
VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked
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",
"Rocket_03_AP_Plane_CAS_02_F","Bomb_03_Plane_CAS_02_F","Bomb_04_Plane_CAS_01_F","Rocket_04_AP_Plane_CAS_01_F","Rocket_04_HE_Plane_CAS_01_F","Missile_AGM_02_Plane_CAS_01_F","Missile_AA_04_Plane_CAS_01_F",

View File

@ -411,6 +411,11 @@ if(getNumber(('CfgEpochClient' call EPOCH_returnConfig) >> 'mapOnZoomSetMarkerSi
};
};
// prevents use of group view
if (cameraview isequalto "GROUP") then {
vehicle player switchCamera "Internal";
};
// force update
if (EPOCH_forceUpdateNow) then {
EPOCH_forceUpdateNow = false;

View File

@ -86,9 +86,6 @@ EPOCH_maxBuildingHeight = getNumber(_CfgEpochClient >> "maxBuildingHeight");
//ON INIT and RESPAWN
call EPOCH_clientInit;
// prevents use of group view, and maybe useful for other checks.
addMissionEventHandler ["PlayerViewChanged", {if (cameraView isEqualTo "GROUP") then {vehicle player switchCamera "Internal";};}];
[] execFSM "epoch_code\system\player_login.fsm";
true

View File

@ -424,7 +424,7 @@ class CfgCrafting
};
class ItemCorrugated : Item
{
usedIn[] = {"KitShelf","ItemCorrugatedLg","VehicleRepairLg","EngineParts","KitSink","KitFieldToilet","KitWaterPump","KitLightPole"};
usedIn[] = {"KitShelf","ItemCorrugatedLg","VehicleRepairLg","EngineParts","KitSink","KitFieldToilet","KitWaterPump","KitLightPole","FuelTank"};
nearby[] = {{"Fire","","fire",{1,{"ALL"}},3,1,1,0}};
recipe[] = {{"ItemScraps",2}};
previewPosition[] = {0.791088,1,0.300004};
@ -452,7 +452,7 @@ class CfgCrafting
};
class VehicleRepair : Part
{
usedIn[] = {"VehicleRepairLg","EngineParts","SpareTire","KitVehicleUpgradeI_200_EPOCH"};
usedIn[] = {"VehicleRepairLg","EngineParts","SpareTire","KitVehicleUpgradeI_200_EPOCH","FuelTank"};
previewPosition[] = {0.787659,1,0.30098};
previewScale = 0.45;
previewVector = 1.5;
@ -493,6 +493,13 @@ class CfgCrafting
previewScale = 0.2;
previewVector = 0.5;
};
class FuelTank : Item
{
recipe[] = {{"ItemCorrugated",1},{"VehicleRepair",1} };
previewPosition[] = {0.8,1,0.26};
previewScale = 0.4;
previewVector = 1;
};
class EpochRadio0 : Part
{
usedIn[] = {"EpochRadio1"};

View File

@ -1041,6 +1041,7 @@ class CfgItemSort
"ItemGlass",
"ItemDuctTape",
"ItemRotor",
"FuelTank",
"VehicleRepair",
"VehicleRepairLg",
"ItemDocument",

View File

@ -51,155 +51,154 @@ class CfgMarkerSets
};
class PlayerMarker {
markerArray[] = {
{"EPOCH_PlayerMarker1","ICON","EpochActive_Hex","ColorBlue",1,{0.6,0.6}},
{"EPOCH_PlayerMarker2","ICON","EpochBG_Hex","ColorWhite",0.3,{0.6,0.6}},
{"EPOCH_PlayerMarker3","ICON","EpochGPS","ColorBlue",1,{0.5,0.5},0,"format['%1/%2',(format[mapGridPosition player]) select [0,3],(format[mapGridPosition player]) select [3,3]]"}
{"EPOCH_PlayerMarker1","ICON","EpochActive_Hex","ColorBlue",1,{0.6,0.6}},
{"EPOCH_PlayerMarker2","ICON","EpochBG_Hex","ColorWhite",0.3,{0.6,0.6}},
{"EPOCH_PlayerMarker3","ICON","EpochGPS","ColorBlue",1,{0.5,0.5},0,"format['%1/%2',(format[mapGridPosition player]) select [0,3],(format[mapGridPosition player]) select [3,3]]"}
};
};
class DeathMarker {
markerArray[] = {
{"EPOCH_DeathMarker1","ICON","EpochActive_Circle","ColorRed",1,{0.6,0.6}},
{"EPOCH_DeathMarker2","ICON","EpochBG_Circle","ColorPink",0.3,{0.6,0.6}},
{"EPOCH_DeathMarker3","ICON","EpochSkull","ColorRed",1,{0.5,0.5},0,"str(name player)"}
{"EPOCH_DeathMarker1","ICON","EpochActive_Circle","ColorRed",1,{0.6,0.6}},
{"EPOCH_DeathMarker2","ICON","EpochBG_Circle","ColorPink",0.3,{0.6,0.6}},
{"EPOCH_DeathMarker3","ICON","EpochSkull","ColorRed",1,{0.5,0.5},0,"str(name player)"}
};
};
class EpochDebugBox {
markerArray[] = {
{"","ICON","EpochActive_Square","ColorGreen",1,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.2,{1,1}},
{"","ICON","EpochRespawn","ColorGreen",0.75,{1,1}}
{"","ICON","EpochActive_Square","ColorGreen",1,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.2,{1,1}},
{"","ICON","EpochRespawn","ColorGreen",0.75,{1,1}}
};
};
class PlantSpawn {
markerArray[] = {
{"","ICON","EpochActive_Diamond","ColorGreen",1,{0.8,0.8}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{0.8,0.8}},
{"","ICON","EpochPlant","ColorGreen",0.9,{0.9,0.9}}
{"","ICON","EpochActive_Diamond","ColorGreen",1,{0.8,0.8}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{0.8,0.8}},
{"","ICON","EpochPlant","ColorGreen",0.9,{0.9,0.9}}
};
};
class AirDrop {
markerArray[] = {
{"","ICON","EpochActive_Diamond","ColorGreen",1,{1.1,1.1}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{1.1,1.1}},
{"","ICON","EpochAirdrop","ColorGreen",0.75,{1.2,1.2}}
{"","ICON","EpochActive_Diamond","ColorGreen",1,{1.1,1.1}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{1.1,1.1}},
{"","ICON","EpochAirdrop","ColorGreen",0.75,{1.2,1.2}}
};
};
class Carnival {
markerArray[] = {
{"","ICON","EpochActive_Diamond","ColorOrange",1,{1,1}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{1,1}},
{"","ICON","EpochCarnival","ColorOrange",0.75,{1.1,1.1}}
{"","ICON","EpochActive_Diamond","ColorOrange",1,{1,1}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{1,1}},
{"","ICON","EpochCarnival","ColorOrange",0.75,{1.1,1.1}}
};
};
class Container {
markerArray[] = {
{"","ICON","EpochActive_Diamond","ColorOrange",1,{1,1}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{1,1}},
{"","ICON","EpochContainer","ColorOrange",0.75,{1.1,1.1}}
{"","ICON","EpochActive_Diamond","ColorOrange",1,{1,1}},
{"","ICON","EpochBG_Diamond","ColorBlack",0.2,{1,1}},
{"","ICON","EpochContainer","ColorOrange",0.75,{1.1,1.1}}
};
};
class EarthQuake {
markerArray[] = {
{"","ICON","EpochActive_Circle","ColorGrey",1,{0.8,0.8}},
{"","ICON","EpochBG_Circle","ColorBlack",0.2,{0.8,0.8}},
{"","ICON","EpochGem","ColorRed",1,{0.9,0.9}}
{"","ICON","EpochActive_Circle","ColorGrey",1,{0.8,0.8}},
{"","ICON","EpochBG_Circle","ColorBlack",0.2,{0.8,0.8}},
{"","ICON","EpochGem","ColorRed",1,{0.9,0.9}}
};
};
class ServicePoint {
markerArray[] = {
{"","ICON","EpochActive_Circle","ColorBlack",1,{0.85,0.85}},
{"","ICON","EpochBG_Circle","ColorGrey",0.25,{0.85,0.85}},
{"","ICON","EpochActive_Circle","ColorBlack",1,{0.85,0.85}},
{"","ICON","EpochService","ColorWhite",1,{0.9,0.9},0,"'Service Point'"}
};
};
class Radiation {
markerArray[] = {
{"","ICON","EpochBG_Triangle","ColorBlack",0.3,{0.7,0.7}},
{"","ICON","EpochActive_Triangle","ColorYellow",1,{0.7,0.7}},
{"","ICON","EpochBG_Triangle","ColorBlack",0.3,{0.7,0.7}},
{"","ICON","EpochRadiation","ColorYellow",1,{0.9,0.9}}
};
};
class Satellite {
markerArray[] = {
{"","ICON","EpochBG_Triangle","ColorBlack",0.15,{0.7,0.7},58},
{"","ICON","EpochActive_Triangle","ColorYellow",0.5,{0.7,0.7},58},
{"","ICON","EpochActive_Triangle","ColorYellow",0.5,{0.7,0.7},58},
{"","ICON","EpochBG_Triangle","ColorBlack",0.15,{0.7,0.7},58},
{"","ICON","EpochSatellite","ColorYellow",1,{0.9,0.9},58}
};
};
class MissionNoob {
markerArray[] = {
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochActive_Square","ColorGreen",0.5,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochMissionNoob1","ColorYellow",1,{0.9,0.9}}
};
};
class MissionNoobPlus {
markerArray[] = {
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochActive_Square","ColorGreen",0.75,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochMissionNoob2","ColorYellow",1,{0.9,0.9}}
};
};
class MissionSurvivor {
markerArray[] = {
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochActive_Square","ColorBlue",0.5,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochMissionMedium1","ColorGreen",1,{0.9,0.9}}
};
};
class MissionSurvivorPlus {
markerArray[] = {
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochActive_Square","ColorBlue",0.75,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochMissionMedium2","ColorGreen",1,{0.9,0.9}}
};
};
class MissionSlaughter {
markerArray[] = {
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochActive_Square","ColorRed",0.5,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochMissionVeteran1","ColorBlue",1,{0.9,0.9}}
};
};
class MissionSlaughterPlus {
markerArray[] = {
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochActive_Square","ColorRed",0.75,{1,1}},
{"","ICON","EpochBG_Square","ColorBlack",0.15,{1,1}},
{"","ICON","EpochMissionVeteran2","ColorBlue",1,{0.9,0.9}}
};
};
class IGSafeZones {
markerArray[] = {
{"","ICON","mil_warning","ColorRed",1,{1,1},0,"format['SafeZone%1',IGSZCounter];IGSZCounter = IGSZCounter+1"},
{"","ELLIPSE","Grid","ColorGreen",1,{250,250}}
{"","ICON","mil_warning","ColorRed",1,{1,1},0,"format['SafeZone%1',IGSZCounter];IGSZCounter = IGSZCounter+1"},
{"","ELLIPSE","Grid","ColorGreen",1,{250,250}}
};
};
class StaticTrader {
markerArray[] = {
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochActive_Circle","ColorRed",0.75,{0.6,0.6}},
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochStaticTrader","ColorBlack",1,{0.5,0.5}}
};
};
class DynamicTrader {
markerArray[] = {
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochActive_Circle","ColorGreen",0.75,{0.6,0.6}},
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochDynamicTrader","ColorBrown",1,{0.5,0.5}}
};
};
class NewDynamicTrader {
markerArray[] = {
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochActive_Circle","ColorKhaki",0.75,{0.6,0.6}},
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochStaticTrader","ColorKhaki",1,{0.5,0.5}}
};
};
class Shipwreck {
markerArray[] = {
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochActive_Circle","ColorOrange",1,{0.6,0.6}},
{"","ICON","EpochBG_Circle","ColorWhite",0.15,{0.6,0.6}},
{"","ICON","EpochShipwreck","ColorOrange",1,{0.5,0.5}}
};
};

View File

@ -410,6 +410,10 @@ class CfgPricing
{
price = 40;
};
class FuelTank
{
price = 48;
};
class WhiskeyNoodle
{
price = 80;

View File

@ -351,7 +351,7 @@ if (!isNull _player) then {
// load community stats
_communityStatsArray = ["CommunityStats", _playerUID] call EPOCH_fnc_server_hiveGETRANGE;
_communityStats = ((_communityStatsArray select 1) select 0);
_communityStats = (_communityStatsArray param [1,[]]) param [0,[]];
_newPlyr setVariable["COMMUNITY_STATS", _communityStats];
// re enable damage server side

View File

@ -13,16 +13,16 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_agent","_aiTables","_arr","_class","_currentStock","_existingStock","_home","_indexStock","_limit","_markers","_objHiveKey","_pos","_randomAIUniform","_response","_schedule","_serverSettingsConfig","_staticTrader","_staticTradersArrCount","_staticTradersArray","_storedVehicleLimit","_toBeRemoved","_traderSlotIndex","_work"];
private ["_agent","_aiTables","_arr","_class","_config","_currentStock","_existingStock","_home","_indexStock","_limit","_markers","_objHiveKey","_pos","_randomAIUniform","_response","_schedule","_serverSettingsConfig","_staticTrader","_staticTradersArrCount","_staticTradersArray","_storedVehicleLimit","_toBeRemoved","_traderSlotIndex","_work"];
//[[[end]]]
params [["_maxTraderLimit",0]];
_staticTradersArray = +EPOCH_staticNPCTraderPos;
EPOCH_staticNPCTraderPos = nil;
_staticTradersArray append getArray(configFile >> "CfgEpoch" >> worldName >> "staticNpcPos");
_config = (configFile >> "CfgEpoch" >> worldName);
_staticTradersArray append getArray(_config >> "staticNpcPos");
_staticTradersArrCount = count _staticTradersArray;
// TODO: configize
_aiTables = ["U_OG_leader", "U_C_Poloshirt_stripped", "U_C_Poloshirt_blue", "U_C_Poloshirt_burgundy", "U_C_Poloshirt_tricolour", "U_C_Poloshirt_salmon", "U_C_Poloshirt_redwhite", "U_C_Poor_1", "U_C_WorkerCoveralls", "U_C_Journalist", "U_C_Scientist", "U_OrestesBody"];
_aiTables = getArray(_config >> "traderUniforms");
_serverSettingsConfig = configFile >> "CfgEpochServer";
_storedVehicleLimit = [_serverSettingsConfig, "storedVehicleLimit", 20] call EPOCH_fnc_returnConfigEntry;

View File

@ -13,7 +13,7 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_crew","_driver","_isLocked","_lockOwner","_lockedOwner","_logic","_playerGroup","_playerUID","_response","_vehLockHiveKey","_vehSlot"];
private ["_VehLockMessages","_msg","_crew","_driver","_isLocked","_lockOwner","_lockedOwner","_logic","_playerGroup","_playerUID","_response","_vehLockHiveKey","_vehSlot"];
//[[[end]]]
params [
["_vehicle",objNull,[objNull]],
@ -26,6 +26,8 @@ if (isNull _vehicle) exitWith {};
if !([_player,_token] call EPOCH_server_getPToken) exitWith {};
if (_player distance _vehicle > 20) exitWith {};
_VehLockMessages = ['CfgEpochClient' call EPOCH_returnConfig, "VehLockMessages", true] call EPOCH_fnc_returnConfigEntry;
// Group access
_playerUID = getPlayerUID _player;
_playerGroup = _player getVariable["GROUP", ""];
@ -43,6 +45,9 @@ if (_vehSlot != "ABORT") then {
if ((_response select 0) == 1 && (_response select 1) isEqualType [] && !((_response select 1) isEqualTo[])) then {
_lockedOwner = _response select 1 select 0;
};
}
else {
_lockedOwner = _vehicle getvariable ["EPOCH_LockedOwner","-1"];
};
// get locked state
@ -57,6 +62,7 @@ _crew = [];
};
} forEach (crew _vehicle);
// if vehicle has a crew and player is not inside vehicle only allow locking if already owner
_logic = if !(_crew isEqualTo []) then {
if (_player in _crew) then {
@ -75,7 +81,12 @@ _logic = if !(_crew isEqualTo []) then {
if (_logic) then {
if (_value) then {
["VehicleLock", _vehLockHiveKey, EPOCH_vehicleLockTime, [_lockOwner]] call EPOCH_fnc_server_hiveSETEX;
if !(_vehSlot isequalto "ABORT") then {
["VehicleLock", _vehLockHiveKey, EPOCH_vehicleLockTime, [_lockOwner]] call EPOCH_fnc_server_hiveSETEX;
}
else {
_vehicle setvariable ["EPOCH_LockedOwner",_lockOwner];
};
} else {
// re-allow damage (server-side) on first unlock
if (_vehicle getVariable ["EPOCH_disallowedDamage", false]) then {
@ -90,4 +101,13 @@ if (_logic) then {
} else {
[_vehicle, _value] remoteExec ['EPOCH_client_lockVehicle',_vehicle];
};
if (_VehLockMessages) then {
_msg = if (_value) then {"Vehicle Locked"} else {"Vehicle unlocked"};
[_msg,5] remoteExec ["Epoch_Message",_player];
};
}
else {
if (_VehLockMessages) then {
["You are not the owner",5] remoteExec ["Epoch_Message",_player];
};
};

View File

@ -89,6 +89,7 @@ class CfgLootTable
{ { "EngineBlock", "magazine" }, 10 },
{ { "ItemGlass", "magazine" }, 15 },
{ { "ItemDuctTape", "magazine" }, 20 },
{ { "FuelTank", "magazine" }, 4 },
{ { "ItemRotor", "magazine" }, 5 }
};
};
@ -328,6 +329,7 @@ class CfgLootTable
{ { "ItemSolar", "magazine" }, 5 },
{ { "ItemBattery", "magazine" }, 5 },
{ { "ItemCables", "magazine" }, 5 },
{ { "ItemPipe", "magazine" }, 5 },
{ { "ItemSafe", "magazine" }, 1 },
{ { "ItemBarrelE", "magazine" }, 1 }

View File

@ -89,6 +89,7 @@ class CfgLootTable_CUP
{ { "EngineBlock", "magazine" }, 10 },
{ { "ItemGlass", "magazine" }, 15 },
{ { "ItemDuctTape", "magazine" }, 20 },
{ { "FuelTank", "magazine" }, 4 },
{ { "ItemRotor", "magazine" }, 5 }
};
};
@ -421,6 +422,7 @@ class CfgLootTable_CUP
{ { "ItemSolar", "magazine" }, 5 },
{ { "ItemBattery", "magazine" }, 5 },
{ { "ItemCables", "magazine" }, 5 },
{ { "ItemPipe", "magazine" }, 5 },
{ { "ItemSafe", "magazine" }, 1 },
{ { "ItemBarrelE", "magazine" }, 1 }
};

View File

@ -89,6 +89,7 @@ class CfgLootTable_MAD
{ { "EngineBlock", "magazine" }, 10 },
{ { "ItemGlass", "magazine" }, 15 },
{ { "ItemDuctTape", "magazine" }, 20 },
{ { "FuelTank", "magazine" }, 4 },
{ { "ItemRotor", "magazine" }, 5 }
};
};
@ -326,6 +327,7 @@ class CfgLootTable_MAD
{ { "ItemSolar", "magazine" }, 5 },
{ { "ItemBattery", "magazine" }, 5 },
{ { "ItemCables", "magazine" }, 5 },
{ { "ItemPipe", "magazine" }, 5 },
{ { "ItemSafe", "magazine" }, 1 },
{ { "ItemBarrelE", "magazine" }, 1 }

View File

@ -89,6 +89,7 @@ class CfgLootTable_MADCUP
{ { "EngineBlock", "magazine" }, 10 },
{ { "ItemGlass", "magazine" }, 15 },
{ { "ItemDuctTape", "magazine" }, 20 },
{ { "FuelTank", "magazine" }, 4 },
{ { "ItemRotor", "magazine" }, 5 }
};
};
@ -421,6 +422,7 @@ class CfgLootTable_MADCUP
{ { "ItemSolar", "magazine" }, 5 },
{ { "ItemBattery", "magazine" }, 5 },
{ { "ItemCables", "magazine" }, 5 },
{ { "ItemPipe", "magazine" }, 5 },
{ { "ItemSafe", "magazine" }, 1 },
{ { "ItemBarrelE", "magazine" }, 1 }
};