0.3.9.0 b552

zombie fixes
removed armed vtol
prices for APEX vehicles
message when NVG disabed due to lack of energy
This commit is contained in:
vbawol 2016-06-30 17:43:28 -05:00
parent 02761bb4cf
commit eaf23d4e31
43 changed files with 980 additions and 936 deletions

File diff suppressed because it is too large Load Diff

View File

@ -125,7 +125,8 @@ switch _unitClass do {
case "EPOCH_RyanZombie_1": {
for "_i" from 1 to (_spawnLimit - _currentLimit) do
{
[] call EPOCH_zombieSpawn;
_unit = [] call EPOCH_zombieSpawn;
_units pushBack _unit;
};
};
};

View File

@ -23,38 +23,27 @@
params [["_justSpawn",false]];
private ["_zRange","_disableAI","_unitClass","_unit","_clutterPos","_zedHandle","_zMax"];
_disableAI = {{_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"];};
_units = [];
_zRange = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "range");
_zeds = getArray (getMissionConfig "CfgEpochRyanZombie" >> "zeds");
_zMax = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "maxNumber");
_zDoCnt = 0;
//Check for horde
_nrZeds = nearestObjects [player,_zeds,_zRange];
_currZCount = count _nrZeds;
if(_currZCount < _zMax)then{_zDoCnt = _zMax - _currZCount;};
for "_i" from 1 to _zDoCnt step 1 do{
// _zMax = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "maxNumber");
_unitClass = selectRandom _zeds;
_unit = createAgent[_unitClass, position player, [], _zRange, "FORM"];
// todo cleanup this object after some time
//_clutterPos = getPosATL _unit;
//if!(isOnRoad _unit)then{
// _grave = createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"];
//};
_unit call _disableAI;
_unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut";
[[_unit,player], 4, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
_unitClass = selectRandom _zeds;
_unit = createAgent[_unitClass, position player, [], _zRange, "FORM"];
// todo cleanup this object after some time
//_clutterPos = getPosATL _unit;
//if!(isOnRoad _unit)then{
// _grave = createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"];
//};
_unit call _disableAI;
_unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut";
[[_unit,player], 4, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
_unit setmimic "dead";
_unit setface (selectRandom ["RyanZombieFace1", "RyanZombieFace2", "RyanZombieFace3", "RyanZombieFace4", "RyanZombieFace5"]);
removegoggles _unit;
_zedHandle = [_unit,true] execFSM "epoch_code\system\EPOCH_zombie_brain.fsm";
_unit addEventHandler ["FiredNear", "(_this select 0) setVariable [""zFiredNear"",[_this select 1, _this select 2]];"];
_unit addEventHandler ["Hit", "(_this select 0) setVariable [""zHit"",[_this select 1, _this select 2]];"];
_units pushBack _unit;
_unit setmimic "dead";
_unit setface (selectRandom ["RyanZombieFace1", "RyanZombieFace2", "RyanZombieFace3", "RyanZombieFace4", "RyanZombieFace5"]);
removegoggles _unit;
_zedHandle = [_unit,true] execFSM "epoch_code\system\EPOCH_zombie_brain.fsm";
_unit addEventHandler ["FiredNear", "(_this select 0) setVariable [""zFiredNear"",[_this select 1, _this select 2]];"];
_unit addEventHandler ["Hit", "(_this select 0) setVariable [""zHit"",[_this select 1, _this select 2]];"];
};
if !(_units isEqualTo []) then {
_units remoteExec ["EPOCH_localCleanup",2];
};
_unit

View File

@ -27,6 +27,7 @@ if (currentVisionMode player == 1) then { //NV enabled
_energyValue = _energyValue - _energyCostNV;
if (EPOCH_playerEnergy == 0) then {
player action["nvGogglesOff", player];
["Night Vision Goggles: Need Energy", 5] call Epoch_message;
};
};

View File

@ -6,7 +6,7 @@ _prevEnergy = EPOCH_playerEnergy;
// init config data
EPOCH_sapperRndChance = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
EPOCH_zombieRndChance = ["CfgEpochClient", "zombieRndChance", 100] call EPOCH_fnc_returnConfigEntryV2;
EPOCH_zombieRndChance = ["CfgEpochClient", "zombieRndChance", 50] call EPOCH_fnc_returnConfigEntryV2;
EPOCH_droneRndChance = ["CfgEpochClient", "droneRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
_baseHTLoss = ["CfgEpochClient", "baseHTLoss", 8] call EPOCH_fnc_returnConfigEntryV2;
_energyCostNV = ["CfgEpochClient", "energyCostNV", 3] call EPOCH_fnc_returnConfigEntryV2;

View File

@ -67,7 +67,7 @@ if(EPOCH_AirDropChance < 0)then{EPOCH_AirDropChance = 101;EPOCH_AirDropCheck = 9
EPOCH_droneRndChance = 100;
EPOCH_sapperRndChance = 100;
EPOCH_zombieRndChance = 30;
EPOCH_zombieRndChance = 50;
// Custom Keys
EPOCH_keysActionPressed = false; //prevents EH spam

View File

@ -158,11 +158,13 @@ class CfgEpochCloak
};
class CfgEpochRyanZombie
{
zeds[] = {"EPOCH_RyanZombie_1","EPOCH_RyanZombie_2","EPOCH_RyanZombie_3","EPOCH_RyanZombie_4","EPOCH_RyanZombie_5"};
attackDist = 1.6; //Attack Distance.
range = 108; //Range at which to dispose old zombies and spawn new ones within.
maxNumber = 12; //Maximum number of zombies within range,
smell[] = {28,0.42}; //Distance in metres up to which the zombie can smell a target. | Skill (0 - 1). 0 - Disable
sight[] = {18,0.72}; //Zombie sight distance | Skill (0 - 1).
range = 45; //Range at which to dispose old zombies and spawn new ones within.
// maxNumber = 12; //Maximum number of zombies within range,
disposeRange = 800; // distance before zombie is disposed
smell[] = {38,0.42}; //Distance in metres up to which the zombie can smell a target. | Skill (0 - 1). 0 - Disable
sight[] = {28,0.72}; //Zombie sight distance | Skill (0 - 1).
hearing[] = {108,0.68}; //Zombie hearing distance / Skill. Max FiredNear EH Limit ?
memory[] = {480,0.8}; //Memory time. / Weighting. WIP - Not Used
reflexSpeed = 0.25; //Zombie brain will pause for this time when checking for new stimulus during each thought process. Lower number equals a more reactive zombie. (Guide Min 0.25 - Max 2.5).

View File

@ -1093,6 +1093,21 @@ class CfgPricing
class CUP_B_Ural_Empty_CDF {price = 1000;};
class CUP_C_DC3_CIV {price = 2400;};
// APEX
class C_Boat_Transport_02_F {price = 1200;};
class C_Scooter_Transport_01_F {price = 1200;};
class C_Offroad_02_unarmed_F {price = 3500;};
class I_C_Offroad_02_unarmed_F {price = 3500;};
class B_T_LSV_01_unarmed_F {price = 4400;};
class O_LSV_02_unarmed_F {price = 4300;};
class O_T_LSV_02_unarmed_F {price = 4600;};
class C_Plane_Civil_01_F {price = 5000;};
class C_Plane_Civil_01_racing_F {price = 5000;};
class B_CTRG_LSV_01_light_F {price = 4400;};
class B_LSV_01_unarmed_F {price = 4400;};
class B_T_VTOL_01_infantry_F {price = 10000;};
class B_T_VTOL_01_vehicle_F {price = 10000;};
//Mission Items
class B_UavTerminal {price = 10;};
class O_UavTerminal {price = 10;};

View File

@ -1 +1 @@
build=547;
build=552;

View File

@ -1 +1 @@
build=547;
build=552;

View File

@ -37,8 +37,8 @@ if (!isNull _target) then {
case "PHANTOM": {
"PHANTOM" remoteExec ['EPOCH_unitSpawnIncrease',_target];
};
case "EPOCH_RyanZombie_1": {
"EPOCH_RyanZombie_1" remoteExec ['EPOCH_unitSpawnIncrease',_target];
case "Zombie": {
["EPOCH_RyanZombie_1",12] remoteExec ['EPOCH_unitSpawnIncrease',_target];
};
};
};

View File

@ -20,16 +20,22 @@ if(_return isEqualTo[]) then {
_weightedArray = [];
{
if(_x isEqualType []) then {
_lootTableArray pushBack(_x select 0);
for "_i" from 1 to(_x select 1) do {
_weightedArray pushBack _forEachIndex;
_x params ["_tname","_tqty"];
if (!(_tname isEqualTo "Zombie") || (_tname isEqualTo "Zombie") && EPOCH_mod_Ryanzombies_Enabled) then {
_lootTableArray pushBack _tname;
for "_i" from 1 to _tqty do {
_weightedArray pushBack _forEachIndex;
};
};
} else {
_lootTableArray pushBack _x;
_weightedArray pushBack _forEachIndex;
if (!(_x isEqualTo "Zombie") || (_x isEqualTo "Zombie") && EPOCH_mod_Ryanzombies_Enabled) then {
_lootTableArray pushBack _x;
_weightedArray pushBack _forEachIndex;
};
};
}forEach getArray(configFile >> _configName >> _keyName >> _arrayName);
_return = [_lootTableArray,_weightedArray];
missionNamespace setVariable[format["EPOCH_LT_%1_%2_%3",_configName,_keyName,_arrayName],_return];
diag_log format["EPOCH_LT_%1_%2_%3 = %4",_configName,_keyName,_arrayName,_return];
};
_return

View File

@ -1 +1 @@
build=547;
build=552;

View File

@ -1 +1 @@
build=547;
build=552;

View File

@ -21,10 +21,11 @@ class CfgMainTable
LootMax = 1;
tables[] = { "Food" };
antagonists[] = {
{ "UAV", 30 },
{ "Cloak", 25 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
{ "Sapper", 25 },
{ "SapperB", 15 },
{ "Zombie", 40 },
{ "UAV", 15 },
{ "Cloak", 10 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
{ "Sapper", 20 },
{ "SapperB", 10 },
{ "PHANTOM", 5 }
};
};
@ -61,10 +62,11 @@ class CfgMainTable
{ "GenericLarge", 18 }
};
antagonists[] = {
{ "UAV", 30 }, // I_UAV_01_F
{ "Cloak", 30 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
{ "Sapper", 25 }, // Epoch_Sapper_F
{ "SapperB", 15 } // Epoch_SapperB_F
{ "Zombie", 45 },
{ "UAV", 15 },
{ "Cloak", 10 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
{ "Sapper", 20 },
{ "SapperB", 10 }
};
};
class TrashSmall : Default

View File

@ -81,8 +81,6 @@ class Tanoa : Default
{"C_Plane_Civil_01_racing_F",1},
{"B_CTRG_LSV_01_light_F",2},
{"B_LSV_01_unarmed_F",2},
{"O_T_VTOL_02_infantry_F",1},
{"O_T_VTOL_02_vehicle_F",1},
{"B_T_VTOL_01_infantry_F",1},
{"B_T_VTOL_01_vehicle_F",1}
};
@ -189,8 +187,6 @@ class Tanoa : Default
{"C_Plane_Civil_01_racing_F",1},
{"B_CTRG_LSV_01_light_F",2},
{"B_LSV_01_unarmed_F",2},
{"O_T_VTOL_02_infantry_F",1},
{"O_T_VTOL_02_vehicle_F",1},
{"B_T_VTOL_01_infantry_F",1},
{"B_T_VTOL_01_vehicle_F",1}
};

View File

@ -1 +1 @@
547
552