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": { case "EPOCH_RyanZombie_1": {
for "_i" from 1 to (_spawnLimit - _currentLimit) do 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]]; params [["_justSpawn",false]];
private ["_zRange","_disableAI","_unitClass","_unit","_clutterPos","_zedHandle","_zMax"]; private ["_zRange","_disableAI","_unitClass","_unit","_clutterPos","_zedHandle","_zMax"];
_disableAI = {{_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"];}; _disableAI = {{_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"];};
_units = [];
_zRange = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "range"); _zRange = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "range");
_zeds = getArray (getMissionConfig "CfgEpochRyanZombie" >> "zeds"); _zeds = getArray (getMissionConfig "CfgEpochRyanZombie" >> "zeds");
_zMax = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "maxNumber"); // _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{
_unitClass = selectRandom _zeds; _unitClass = selectRandom _zeds;
_unit = createAgent[_unitClass, position player, [], _zRange, "FORM"]; _unit = createAgent[_unitClass, position player, [], _zRange, "FORM"];
// todo cleanup this object after some time // todo cleanup this object after some time
//_clutterPos = getPosATL _unit; //_clutterPos = getPosATL _unit;
//if!(isOnRoad _unit)then{ //if!(isOnRoad _unit)then{
// _grave = createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"]; // _grave = createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"];
//}; //};
_unit call _disableAI; _unit call _disableAI;
_unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut"; _unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut";
[[_unit,player], 4, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2]; [[_unit,player], 4, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
_unit setmimic "dead"; _unit setmimic "dead";
_unit setface (selectRandom ["RyanZombieFace1", "RyanZombieFace2", "RyanZombieFace3", "RyanZombieFace4", "RyanZombieFace5"]); _unit setface (selectRandom ["RyanZombieFace1", "RyanZombieFace2", "RyanZombieFace3", "RyanZombieFace4", "RyanZombieFace5"]);
removegoggles _unit; removegoggles _unit;
_zedHandle = [_unit,true] execFSM "epoch_code\system\EPOCH_zombie_brain.fsm"; _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 ["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]];"]; _unit addEventHandler ["Hit", "(_this select 0) setVariable [""zHit"",[_this select 1, _this select 2]];"];
_units pushBack _unit;
}; _unit
if !(_units isEqualTo []) then {
_units remoteExec ["EPOCH_localCleanup",2];
};

View File

@ -27,6 +27,7 @@ if (currentVisionMode player == 1) then { //NV enabled
_energyValue = _energyValue - _energyCostNV; _energyValue = _energyValue - _energyCostNV;
if (EPOCH_playerEnergy == 0) then { if (EPOCH_playerEnergy == 0) then {
player action["nvGogglesOff", player]; 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 // init config data
EPOCH_sapperRndChance = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2; 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; EPOCH_droneRndChance = ["CfgEpochClient", "droneRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
_baseHTLoss = ["CfgEpochClient", "baseHTLoss", 8] call EPOCH_fnc_returnConfigEntryV2; _baseHTLoss = ["CfgEpochClient", "baseHTLoss", 8] call EPOCH_fnc_returnConfigEntryV2;
_energyCostNV = ["CfgEpochClient", "energyCostNV", 3] 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_droneRndChance = 100;
EPOCH_sapperRndChance = 100; EPOCH_sapperRndChance = 100;
EPOCH_zombieRndChance = 30; EPOCH_zombieRndChance = 50;
// Custom Keys // Custom Keys
EPOCH_keysActionPressed = false; //prevents EH spam EPOCH_keysActionPressed = false; //prevents EH spam

View File

@ -158,11 +158,13 @@ class CfgEpochCloak
}; };
class CfgEpochRyanZombie class CfgEpochRyanZombie
{ {
zeds[] = {"EPOCH_RyanZombie_1","EPOCH_RyanZombie_2","EPOCH_RyanZombie_3","EPOCH_RyanZombie_4","EPOCH_RyanZombie_5"};
attackDist = 1.6; //Attack Distance. attackDist = 1.6; //Attack Distance.
range = 108; //Range at which to dispose old zombies and spawn new ones within. range = 45; //Range at which to dispose old zombies and spawn new ones within.
maxNumber = 12; //Maximum number of zombies within range, // 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 disposeRange = 800; // distance before zombie is disposed
sight[] = {18,0.72}; //Zombie sight distance | Skill (0 - 1). 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 ? hearing[] = {108,0.68}; //Zombie hearing distance / Skill. Max FiredNear EH Limit ?
memory[] = {480,0.8}; //Memory time. / Weighting. WIP - Not Used 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). 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_B_Ural_Empty_CDF {price = 1000;};
class CUP_C_DC3_CIV {price = 2400;}; 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 //Mission Items
class B_UavTerminal {price = 10;}; class B_UavTerminal {price = 10;};
class O_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": { case "PHANTOM": {
"PHANTOM" remoteExec ['EPOCH_unitSpawnIncrease',_target]; "PHANTOM" remoteExec ['EPOCH_unitSpawnIncrease',_target];
}; };
case "EPOCH_RyanZombie_1": { case "Zombie": {
"EPOCH_RyanZombie_1" remoteExec ['EPOCH_unitSpawnIncrease',_target]; ["EPOCH_RyanZombie_1",12] remoteExec ['EPOCH_unitSpawnIncrease',_target];
}; };
}; };
}; };

View File

@ -20,16 +20,22 @@ if(_return isEqualTo[]) then {
_weightedArray = []; _weightedArray = [];
{ {
if(_x isEqualType []) then { if(_x isEqualType []) then {
_lootTableArray pushBack(_x select 0); _x params ["_tname","_tqty"];
for "_i" from 1 to(_x select 1) do { if (!(_tname isEqualTo "Zombie") || (_tname isEqualTo "Zombie") && EPOCH_mod_Ryanzombies_Enabled) then {
_weightedArray pushBack _forEachIndex; _lootTableArray pushBack _tname;
for "_i" from 1 to _tqty do {
_weightedArray pushBack _forEachIndex;
};
}; };
} else { } else {
_lootTableArray pushBack _x; if (!(_x isEqualTo "Zombie") || (_x isEqualTo "Zombie") && EPOCH_mod_Ryanzombies_Enabled) then {
_weightedArray pushBack _forEachIndex; _lootTableArray pushBack _x;
_weightedArray pushBack _forEachIndex;
};
}; };
}forEach getArray(configFile >> _configName >> _keyName >> _arrayName); }forEach getArray(configFile >> _configName >> _keyName >> _arrayName);
_return = [_lootTableArray,_weightedArray]; _return = [_lootTableArray,_weightedArray];
missionNamespace setVariable[format["EPOCH_LT_%1_%2_%3",_configName,_keyName,_arrayName],_return]; 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 _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; LootMax = 1;
tables[] = { "Food" }; tables[] = { "Food" };
antagonists[] = { antagonists[] = {
{ "UAV", 30 }, { "Zombie", 40 },
{ "Cloak", 25 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F { "UAV", 15 },
{ "Sapper", 25 }, { "Cloak", 10 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
{ "SapperB", 15 }, { "Sapper", 20 },
{ "SapperB", 10 },
{ "PHANTOM", 5 } { "PHANTOM", 5 }
}; };
}; };
@ -61,10 +62,11 @@ class CfgMainTable
{ "GenericLarge", 18 } { "GenericLarge", 18 }
}; };
antagonists[] = { antagonists[] = {
{ "UAV", 30 }, // I_UAV_01_F { "Zombie", 45 },
{ "Cloak", 30 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F { "UAV", 15 },
{ "Sapper", 25 }, // Epoch_Sapper_F { "Cloak", 10 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
{ "SapperB", 15 } // Epoch_SapperB_F { "Sapper", 20 },
{ "SapperB", 10 }
}; };
}; };
class TrashSmall : Default class TrashSmall : Default

View File

@ -81,8 +81,6 @@ class Tanoa : Default
{"C_Plane_Civil_01_racing_F",1}, {"C_Plane_Civil_01_racing_F",1},
{"B_CTRG_LSV_01_light_F",2}, {"B_CTRG_LSV_01_light_F",2},
{"B_LSV_01_unarmed_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_infantry_F",1},
{"B_T_VTOL_01_vehicle_F",1} {"B_T_VTOL_01_vehicle_F",1}
}; };
@ -189,8 +187,6 @@ class Tanoa : Default
{"C_Plane_Civil_01_racing_F",1}, {"C_Plane_Civil_01_racing_F",1},
{"B_CTRG_LSV_01_light_F",2}, {"B_CTRG_LSV_01_light_F",2},
{"B_LSV_01_unarmed_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_infantry_F",1},
{"B_T_VTOL_01_vehicle_F",1} {"B_T_VTOL_01_vehicle_F",1}
}; };

View File

@ -1 +1 @@
547 552