mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
0.3.9.0473
Add inital support of Ryans Zombies and Demons mod EPOCH_client_bitePlayer changes: settings now config based via CfgObjectInteractions
This commit is contained in:
parent
6dccae1460
commit
a503633b36
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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" !="#smokesource" !="SmokeLauncherAmmo"
|
||||
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" !="EPOCH_RyanZombie_[1-5]" !="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" !="#smokesource" !="SmokeLauncherAmmo"
|
||||
5 "_EPOCH" !="(SapperHead|Jack|SolarGen)_SIM_EPOCH" !="Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower)_EPOCH" !="(Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH" !="(Tipi|StorageShelf|Safe|LockBox|FirePlace|FirePlaceOn|PlotPole|SolarGen|Jack|Freezer|Tarp|CinderWallHalf|Bobber)_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" !="(Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH" !="(Hesco3|Metal)(_Ghost|_SIM|)_EPOCH" !="(Spike|Metal)_TRAP_SIM_EPOCH" !="(WoodFoundation|Foundation)_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH"
|
||||
5 SeaGull
|
||||
|
@ -1 +1 @@
|
||||
5 "" !="[0-9]:[0-9]{1,4}" !" GroundWeaponHolder$" !" WeaponHolderSimulated$" !" Epoch_(Sapper|SapperB|Cloak|Female_CamoRed)_F$" !" (Land_MPS|Bobber|Rabbit)_EPOCH$" !" (Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH$" !" (Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Cabinet|Freezer|Tarp)_EPOCH$" !" (SapperHead|Jack|SolarGen)_SIM_EPOCH$" !" (Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH$" !" Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH$" !" (Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH$" !" (Hesco3|Metal|WoodWall[1-4])_(Ghost|SIM)_EPOCH$" !" (Spike|Metal)_TRAP_SIM_EPOCH$" !" (WoodFoundation|Foundation)_Ghost_EPOCH$" !" I_(Soldier[1-3]|Soldier)_EPOCH$" !" I_(helipilot|helicrew)_F$" !" I_UAV_01_F$" !" (I|B|O)_UAV_AI$" !" I_Boat_Armed_01_minigun_F" !" B_Heli_Transport_01_F" !" Land_Cages_F$"
|
||||
5 "" !="[0-9]:[0-9]{1,4}" !" GroundWeaponHolder$" !" WeaponHolderSimulated$" !" Epoch_(Sapper|SapperB|Cloak|Female_CamoRed)_F$" !" EPOCH_RyanZombie_[1-5]$" !" (Land_MPS|Bobber|Rabbit)_EPOCH$" !" (Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH$" !" (Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Cabinet|Freezer|Tarp)_EPOCH$" !" (SapperHead|Jack|SolarGen)_SIM_EPOCH$" !" (Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH$" !" Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH$" !" (Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH$" !" (Hesco3|Metal|WoodWall[1-4])_(Ghost|SIM)_EPOCH$" !" (Spike|Metal)_TRAP_SIM_EPOCH$" !" (WoodFoundation|Foundation)_Ghost_EPOCH$" !" I_(Soldier[1-3]|Soldier)_EPOCH$" !" I_(helipilot|helicrew)_F$" !" I_UAV_01_F$" !" (I|B|O)_UAV_AI$" !" I_Boat_Armed_01_minigun_F" !" B_Heli_Transport_01_F" !" Land_Cages_F$"
|
||||
|
@ -14,7 +14,7 @@
|
||||
7 attachTo !="EP_light attachTo [player];" !="_bomb attachTo [_unit, [0,0,0],\"Pelvis\"];" !="_dogHolder attachTo [_dog, [-0.2,1.2,0.7]];" !="EPOCH_target attachTo[player];" !="_sapperSmoke attachTo [_sapper,[0,0,-0.4]];"" !="_cage attachTo [_cage2,[0,1.3,0]];"
|
||||
7 enableCollisionWith
|
||||
7 hideObject !="_dogHolder hideobject true;" !="_dogHolder hideobject false;" !="player hideobject true;" !="_ship hideobject true;\n_ship hideobjectglobal true;"
|
||||
7 setvelocity !="setVelocityTarget" !="_bolt setPosATL _pos;\n_bolt setVelocity [0, 0, -10];" !="EPOCH_target setvelocitytransformation" !="_currentTarget setVelocity [0,0,-0.01];" !="_head setVelocity [\n(sin _dir * _speed), \n(cos _dir * _speed)" !="_vel = velocity this; _dir = getDir player; this setVelocity[(_vel select 0)+(sin _dir * 2),(_vel select 1)+(cos _dir * 2),(_vel select 2)];" !="_head setVelocity [random 2,random 2,10];" !="_bobber setVelocity [0,-1,-1];" !="_bobber setVelocity [0,-1,-10];" !="_x setvelocity [0,0,0.1];" !="_veh setVelocity [0,0,0];"
|
||||
7 setvelocity !="setVelocityTarget" !="_bolt setPosATL _pos;\n_bolt setVelocity [0, 0, -10];" !="EPOCH_target setvelocitytransformation" !="_currentTarget setVelocity [0,0,-0.01];" !="_head setVelocity [\n(sin _dir * _speed), \n(cos _dir * _speed)" !="_vel = velocity this; _dir = getDir player; this setVelocity[(_vel select 0)+(sin _dir * 2),(_vel select 1)+(cos _dir * 2),(_vel select 2)];" !="_head setVelocity [random 2,random 2,10];" !="_bobber setVelocity [0,-1,-1];" !="_bobber setVelocity [0,-1,-10];" !="_x setvelocity [0,0,0.1];" !="_veh setVelocity [0,0,0];" !="_this select 0 setvelocity (_this select 1)"
|
||||
7 assignAs !="assignAsCargo" !="_unit assignAsGunner _axeCopter;" !="_driver assignAsDriver _axeCopter;" !="axeVIP assignAsDriver vehicle axeVIP;"
|
||||
7 assignAsCargo !="_x assignAsCargo axeGeneralsBoat;" !="axeVIP assignAsCargo vehicle player;" !="axeVIP assignAsCargo vehicle axeVIP;"
|
||||
7 allowDamage !="_unit allowDamage false;" !="_unit allowDamage true;" !="player allowDamage true;" !="vehicle player allowDamage true;" !="player allowDamage false;" !="_target allowDamage true;" !="_cargo allowDamage false;"
|
||||
|
@ -24,7 +24,8 @@ if(random 100 < 6)then{
|
||||
if(_doVariable)then{_unitClass call EPOCH_unitSpawnIncrease;};//Assumes Antagonist is required.
|
||||
|
||||
_index = EPOCH_spawnIndex find _unitClass;
|
||||
if (!_doVariable && (count(_trgt nearEntities[_unitClass, 800]) >= (EPOCH_playerSpawnArray select _index))) exitWith{};
|
||||
_spawnLimit = EPOCH_playerSpawnArray select _index;
|
||||
if (!_doVariable && (count(_trgt nearEntities[_unitClass, 800]) >= _spawnLimit)) exitWith{};
|
||||
|
||||
_nonJammer = ["CfgEpochClient", "nonJammerAI", ["B_Heli_Transport_01_F","PHANTOM","Epoch_Cloak_F"]] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_nonTrader = ["CfgEpochClient", "nonTraderAI", ["B_Heli_Transport_01_F","PHANTOM","Epoch_Cloak_F","GreatWhite_F"]] call EPOCH_fnc_returnConfigEntryV2;
|
||||
@ -113,13 +114,31 @@ switch _unitClass do {
|
||||
case "B_Heli_Transport_01_F": {
|
||||
[] execFSM "\x\addons\a3_epoch_code\System\Event_Air_Drop.fsm";
|
||||
};
|
||||
case "EPOCH_RyanZombie_1": {
|
||||
_hordeTypes = ["EPOCH_RyanZombie_1","EPOCH_RyanZombie_2","EPOCH_RyanZombie_3","EPOCH_RyanZombie_4","EPOCH_RyanZombie_5"];
|
||||
_unitClass = selectRandom _hordeTypes;
|
||||
|
||||
diag_log format["DEBUG: spawned %1",_unitClass];
|
||||
_unit = createAgent[_unitClass, _targetPos, [], 256, "FORM"];
|
||||
_unit call _disableAI;
|
||||
|
||||
// climb out of ground
|
||||
_unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut";
|
||||
_unit setmimic "dead";
|
||||
|
||||
// load temp brains
|
||||
[_unit,true] execFSM "\x\addons\a3_epoch_code\System\Zombie_Brain.fsm";
|
||||
|
||||
// spawn more up to limit
|
||||
_id = "EPOCH_RyanZombie_1" spawn EPOCH_unitSpawn;
|
||||
};
|
||||
};
|
||||
|
||||
if(_doVariable && (!isNull _unit) && (!isNull _trgt))then{
|
||||
_trgt setVariable ["EPOCH_antagObj", _unit, true];
|
||||
if!(isNull _bomb)then{
|
||||
_trgt setVariable ["EPOCH_antagBomb", _bomb, true];
|
||||
};
|
||||
_trgt setVariable ["EPOCH_antagObj", _unit, true];
|
||||
if!(isNull _bomb)then{
|
||||
_trgt setVariable ["EPOCH_antagBomb", _bomb, true];
|
||||
};
|
||||
};
|
||||
if !(isNull _unit) then {
|
||||
// send to server
|
||||
|
@ -13,15 +13,15 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/environment/EPOCH_client_bitePlayer.sqf
|
||||
|
||||
Example:
|
||||
[cursorTarget,_index] call EPOCH_upgradeBUILD;
|
||||
_dog call EPOCH_client_bitePlayer;
|
||||
|
||||
Parameter(s):
|
||||
_this: OBJECT - Player
|
||||
_this: OBJECT - attacker
|
||||
|
||||
Returns:
|
||||
NOTHING
|
||||
*/
|
||||
private ["_distance","_toxicChance","_bloodpChance","_fatigueChance","_bleedAmount","_bloodpAmount","_soundEffect","_canSee","_ppEffect","_bleedChance","_soundEffectIndex","_soundEffectGlobal"];
|
||||
private ["_distance","_toxicChance","_bloodpChance","_fatigueChance","_bleedAmount","_bloodpAmount","_soundEffect","_canSee","_ppEffect","_bleedChance","_soundEffectIndex","_soundEffectGlobal","_animationEffect","_animationEffectGlobal","_cfgObjectInteraction"];
|
||||
if !(isNull _this && alive _this) then {
|
||||
|
||||
_distance = 5;
|
||||
@ -29,81 +29,48 @@ if !(isNull _this && alive _this) then {
|
||||
_bleedChance = 1;
|
||||
_bloodpChance = 0;
|
||||
_fatigueChance = 0.1;
|
||||
|
||||
_bleedAmount = 30;
|
||||
_bloodpAmount = 2;
|
||||
|
||||
_soundEffect = -1;
|
||||
_soundEffectGlobal = false;
|
||||
_soundEffect = "";
|
||||
_soundEffectGlobal = -1;
|
||||
_animationEffect = "";
|
||||
_animationEffectGlobal = -1;
|
||||
_canSee = false;
|
||||
_ppEffect = 0;
|
||||
|
||||
switch (typeOf _this) do {
|
||||
case "Snake_random_EPOCH": {
|
||||
_distance = 3;
|
||||
_toxicChance = 0.2;
|
||||
_bloodpChance = 1;
|
||||
_fatigueChance = 0.5;
|
||||
_bleedAmount = 30;
|
||||
_bloodpAmount = 3;
|
||||
_soundEffect = "snake_bite0";
|
||||
_canSee = !(lineIntersects[eyePos _this, aimPos player, _this, player]);
|
||||
_ppEffect = 0;
|
||||
};
|
||||
case "Snake2_random_EPOCH": {
|
||||
_distance = 3;
|
||||
_toxicChance = 0.1;
|
||||
_bloodpChance = 1;
|
||||
_fatigueChance = 0.5;
|
||||
_bleedAmount = 30;
|
||||
_bloodpAmount = 3;
|
||||
_soundEffect = "snake_bite0";
|
||||
_canSee = !(lineIntersects[eyePos _this, aimPos player, _this, player]);
|
||||
_ppEffect = 0;
|
||||
};
|
||||
case "GreatWhite_F": {
|
||||
_distance = 6;
|
||||
_toxicChance = 0;
|
||||
_bleedChance = 1;
|
||||
_bloodpChance = 1;
|
||||
_fatigueChance = 1;
|
||||
_bleedAmount = 100;
|
||||
_bloodpAmount = 3;
|
||||
_canSee = true;
|
||||
_ppEffect = 0;
|
||||
};
|
||||
case "SmokeShellCustom": {
|
||||
_distance = 6;
|
||||
_toxicChance = 1;
|
||||
_bleedChance = 0;
|
||||
_bloodpChance = 1;
|
||||
_fatigueChance = 1;
|
||||
_bleedAmount = 0;
|
||||
_bloodpAmount = 3;
|
||||
_canSee = true;
|
||||
_ppEffect = 0;
|
||||
};
|
||||
case "Epoch_Cloak_F": {
|
||||
_distance = 30;
|
||||
_toxicChance = 0;
|
||||
_bloodpChance = 0.9;
|
||||
_fatigueChance = 0.5;
|
||||
_bleedAmount = 66;
|
||||
_bloodpAmount = 3;
|
||||
_soundEffect = "cultist_nearby";
|
||||
_canSee = !(lineIntersects[eyePos _this, aimPos player, _this, player]);
|
||||
_ppEffect = 1;
|
||||
};
|
||||
_cfgObjectInteraction = (('CfgObjectInteractions' call EPOCH_returnConfig) >> (typeOf _this));
|
||||
if (isClass _cfgObjectInteraction) then {
|
||||
_distance = getNumber (_cfgObjectInteraction >> "distance");
|
||||
_toxicChance = getNumber (_cfgObjectInteraction >> "toxicChance");
|
||||
_bloodpChance = getNumber (_cfgObjectInteraction >> "bloodpChance");
|
||||
_fatigueChance = getNumber (_cfgObjectInteraction >> "fatigueChance");
|
||||
_bleedAmount = getNumber (_cfgObjectInteraction >> "bleedAmount");
|
||||
_bloodpAmount = getNumber (_cfgObjectInteraction >> "bloodpAmount");
|
||||
_soundEffect = selectRandom (getArray (_cfgObjectInteraction >> "soundEffect"));
|
||||
_soundEffectGlobal = getNumber (_cfgObjectInteraction >> "soundEffectGlobal");
|
||||
_animationEffect = selectRandom (getArray (_cfgObjectInteraction >> "animationEffect"));
|
||||
_animationEffectGlobal = getNumber (_cfgObjectInteraction >> "animationEffectGlobal");
|
||||
_canSee = call compile (getText (_cfgObjectInteraction >> "canSee"));
|
||||
_ppEffect = getNumber (_cfgObjectInteraction >> "ppEffect");
|
||||
};
|
||||
|
||||
if ((_this distance player) < _distance && _canSee) then {
|
||||
|
||||
_soundEffectIndex = EPOCH_sounds find _soundEffect;
|
||||
if (_soundEffectIndex != -1) then {
|
||||
_this say3D _soundEffect;
|
||||
if (_soundEffectGlobal) then {
|
||||
if (_soundEffectGlobal != -1) then {
|
||||
[player, _this, _soundEffectIndex, Epoch_personalToken] remoteExec ["EPOCH_server_handle_say3D",2];
|
||||
};
|
||||
};
|
||||
|
||||
if (_animationEffect != "") then {
|
||||
_this switchMove _animationEffect;
|
||||
if (_animationEffectGlobal != -1) then {
|
||||
[[_this,player], _animationEffectGlobal, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
|
||||
};
|
||||
};
|
||||
|
||||
if (random 1 < _toxicChance) then {
|
||||
EPOCH_playerToxicity = (EPOCH_playerToxicity + (random(100 - EPOCH_playerImmunity))) min 100;
|
||||
};
|
||||
|
@ -108,10 +108,6 @@ switch true do {
|
||||
if (((player weaponAccessories _muzzle) select 0) != "") then{
|
||||
_nuisanceLevel = _nuisanceLevel / 2;
|
||||
};
|
||||
// force spawn increase once player has become a Nuisance
|
||||
if (EPOCH_playerNuisance >= 50 && {random EPOCH_droneRndChance < EPOCH_playerNuisance}) then{
|
||||
(selectRandom ["I_UAV_01_F","Epoch_Sapper_F"]) call EPOCH_unitSpawnIncrease;
|
||||
};
|
||||
// Nuisance System 0.1
|
||||
(EPOCH_customVarLimits select (EPOCH_customVars find "Nuisance")) params [["_playerLimitMax",100],["_playerLimitMin",0]];
|
||||
EPOCH_playerNuisance = ((EPOCH_playerNuisance + _nuisanceLevel) min _playerLimitMax) max _playerLimitMin;
|
||||
|
@ -61,7 +61,7 @@ if (EPOCH_playerEnergy == 0) then {
|
||||
};
|
||||
};
|
||||
|
||||
_attackers = player nearEntities[["Snake_random_EPOCH", "GreatWhite_F", "Epoch_Cloak_F"], 30];
|
||||
_attackers = player nearEntities[["Snake_random_EPOCH", "GreatWhite_F", "Epoch_Cloak_F","EPOCH_RyanZombie_1"], 30];
|
||||
if !(_attackers isEqualTo[]) then {
|
||||
(_attackers select 0) call EPOCH_client_bitePlayer;
|
||||
_panic = true;
|
||||
|
@ -1,13 +1,15 @@
|
||||
if ((EPOCH_playerSpawnArray select(EPOCH_spawnIndex find "Epoch_Sapper_F")) <= 0) then{
|
||||
_sapperChance = 1 + (EPOCH_playerSoiled / 2);
|
||||
if !(EPOCH_nearestLocations isEqualTo[]) then{
|
||||
_sapperChance = _sapperChance + 2;
|
||||
};
|
||||
// 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper every 10 minutes
|
||||
if (random _sapperRndChance < _sapperChance) then{
|
||||
"Epoch_Sapper_F" call EPOCH_unitSpawnIncrease;
|
||||
_spawnChance = ((EPOCH_playerNuisance + EPOCH_playerSoiled)/2) max 1;
|
||||
if (random EPOCH_droneRndChance < _spawnChance) then {
|
||||
"I_UAV_01_F" call EPOCH_unitSpawnIncrease;
|
||||
};
|
||||
if (EPOCH_mod_Ryanzombies_Enabled) then {
|
||||
if (random EPOCH_zombieRndChance < _spawnChance) then {
|
||||
"EPOCH_RyanZombie_1" call EPOCH_unitSpawnIncrease;
|
||||
};
|
||||
};
|
||||
if (random EPOCH_sapperRndChance < _spawnChance) then {
|
||||
"Epoch_Sapper_F" call EPOCH_unitSpawnIncrease;
|
||||
};
|
||||
|
||||
_spawnUnits = [];
|
||||
{
|
||||
|
@ -5,7 +5,8 @@ _panic = false;
|
||||
_prevEnergy = EPOCH_playerEnergy;
|
||||
|
||||
// init config data
|
||||
_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_droneRndChance = ["CfgEpochClient", "droneRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_baseHTLoss = ["CfgEpochClient", "baseHTLoss", 8] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_energyCostNV = ["CfgEpochClient", "energyCostNV", 3] call EPOCH_fnc_returnConfigEntryV2;
|
||||
@ -17,6 +18,7 @@ EPOCH_playerIsSwimming = false;
|
||||
|
||||
// default data if mismatch
|
||||
if (count EPOCH_playerSpawnArray != count EPOCH_spawnIndex) then{
|
||||
EPOCH_playerSpawnArray = [];
|
||||
{ EPOCH_playerSpawnArray pushBack 0 } forEach EPOCH_spawnIndex;
|
||||
};
|
||||
|
||||
|
@ -13,6 +13,13 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/init/both_init.sqf
|
||||
*/
|
||||
private ["_customVarsInit","_antagonistSpawnDefaults","_spawnLimits","_say3dsounds"];
|
||||
|
||||
// detect if Ryan's Zombies and Deamons mod is present
|
||||
EPOCH_mod_Ryanzombies_Enabled = (parseNumber (getText (configFile >> "CfgPatches" >> "Ryanzombies" >> "version")) >= 4.2);
|
||||
if (EPOCH_mod_Ryanzombies_Enabled) then {
|
||||
diag_log "Epoch: Ryanzombies detected";
|
||||
};
|
||||
|
||||
// Init Custom vars
|
||||
EPOCH_customVars = [];
|
||||
EPOCH_defaultVars = [];
|
||||
@ -34,7 +41,8 @@ EPOCH_customVarsDefaults = [
|
||||
["SpawnArray",[],[]],
|
||||
["Karma",0,[50000,-50000]],
|
||||
["Alcohol",0,[100,0]],
|
||||
["Radiation",0,[100,0]]
|
||||
["Radiation",0,[100,0]],
|
||||
["Nuisance",0,[100,0]]
|
||||
];
|
||||
_customVarsInit = ["CfgEpochClient", "customVarsDefaults", EPOCH_customVarsDefaults] call EPOCH_fnc_returnConfigEntryV2;
|
||||
{
|
||||
@ -54,12 +62,21 @@ _antagonistSpawnDefaults = [
|
||||
["Epoch_SapperB_F",1],
|
||||
["I_UAV_01_F",2],
|
||||
["PHANTOM",1],
|
||||
["B_Heli_Transport_01_F",1]
|
||||
["B_Heli_Transport_01_F",1],
|
||||
["EPOCH_RyanZombie_1",10]
|
||||
];
|
||||
_spawnLimits = ["CfgEpochClient", "antagonistSpawnIndex", _antagonistSpawnDefaults] call EPOCH_fnc_returnConfigEntryV2;
|
||||
{
|
||||
EPOCH_spawnIndex pushBack (_x select 0);
|
||||
EPOCH_spawnLimits pushBack (_x select 1);
|
||||
_x params ["_spawnName","_spawnLimit"];
|
||||
if (_spawnName isEqualTo "EPOCH_RyanZombie_1") then {
|
||||
if (EPOCH_mod_Ryanzombies_Enabled) then {
|
||||
EPOCH_spawnIndex pushBack _spawnName;
|
||||
EPOCH_spawnLimits pushBack _spawnLimit;
|
||||
};
|
||||
} else {
|
||||
EPOCH_spawnIndex pushBack _spawnName;
|
||||
EPOCH_spawnLimits pushBack _spawnLimit;
|
||||
};
|
||||
} forEach _spawnLimits;
|
||||
|
||||
//GroupSize (number) // Price (String)
|
||||
|
@ -65,6 +65,8 @@ EPOCH_AirDropChance = getNumber(getMissionConfig "CfgEpochAirDrop" >> "AirDropCh
|
||||
if(EPOCH_AirDropChance < 0)then{EPOCH_AirDropChance = 101;EPOCH_AirDropCheck = 99999;};
|
||||
|
||||
EPOCH_droneRndChance = 100;
|
||||
EPOCH_sapperRndChance = 100;
|
||||
EPOCH_zombieRndChance = 100;
|
||||
|
||||
// Custom Keys
|
||||
EPOCH_keysActionPressed = false; //prevents EH spam
|
||||
|
@ -31,7 +31,8 @@ class CfgEpochClient
|
||||
{"Epoch_SapperB_F",1},
|
||||
{"I_UAV_01_F",2},
|
||||
{"PHANTOM",1},
|
||||
{"B_Heli_Transport_01_F",1}
|
||||
{"B_Heli_Transport_01_F",1},
|
||||
{"EPOCH_RyanZombie_1",10}
|
||||
};
|
||||
customVarsDefaults[] = {
|
||||
// EPOCH_player + varName, default value, {max,min}
|
||||
|
@ -16,4 +16,78 @@ class CfgObjectInteractions {
|
||||
class C_man_1 : Default {
|
||||
interactMode = 2;
|
||||
};
|
||||
|
||||
class Snake_random_EPOCH : Default {
|
||||
distance = 3;
|
||||
toxicChance = 0.2;
|
||||
bloodpChance = 1;
|
||||
fatigueChance = 0.5;
|
||||
bleedAmount = 30;
|
||||
bloodpAmount = 3;
|
||||
soundEffect[] = {"snake_bite0"};
|
||||
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
|
||||
ppEffect = 0;
|
||||
};
|
||||
class Snake2_random_EPOCH : Default {
|
||||
distance = 3;
|
||||
toxicChance = 0.1;
|
||||
bloodpChance = 1;
|
||||
fatigueChance = 0.5;
|
||||
bleedAmount = 30;
|
||||
bloodpAmount = 3;
|
||||
soundEffect[] = {"snake_bite0"};
|
||||
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
|
||||
ppEffect = 0;
|
||||
};
|
||||
class GreatWhite_F : Default {
|
||||
distance = 6;
|
||||
toxicChance = 0;
|
||||
bleedChance = 1;
|
||||
bloodpChance = 1;
|
||||
fatigueChance = 1;
|
||||
bleedAmount = 100;
|
||||
bloodpAmount = 3;
|
||||
canSee = "true";
|
||||
ppEffect = 0;
|
||||
};
|
||||
class SmokeShellCustom : Default {
|
||||
distance = 6;
|
||||
toxicChance = 1;
|
||||
bleedChance = 0;
|
||||
bloodpChance = 1;
|
||||
fatigueChance = 1;
|
||||
bleedAmount = 0;
|
||||
bloodpAmount = 3;
|
||||
canSee = "true";
|
||||
ppEffect = 0;
|
||||
};
|
||||
class Epoch_Cloak_F : Default {
|
||||
distance = 30;
|
||||
toxicChance = 0;
|
||||
bloodpChance = 0.9;
|
||||
fatigueChance = 0.5;
|
||||
bleedAmount = 66;
|
||||
bloodpAmount = 3;
|
||||
soundEffect[] = {"cultist_nearby"};
|
||||
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
|
||||
ppEffect = 1;
|
||||
};
|
||||
class EPOCH_RyanZombie_1 : Default {
|
||||
distance = 3;
|
||||
toxicChance = 0.2;
|
||||
bloodpChance = 1;
|
||||
fatigueChance = 0.5;
|
||||
bleedAmount = 30;
|
||||
bloodpAmount = 3;
|
||||
soundEffect[] = {"ryanzombiesattack1", "ryanzombiesattack2", "ryanzombiesattack3", "ryanzombiesattack4", "ryanzombiesattack5"};
|
||||
soundEffectGlobal = 1;
|
||||
animationEffect[] = {"AwopPercMstpSgthWnonDnon_throw"};
|
||||
animationEffectGlobal = 3;
|
||||
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
|
||||
ppEffect = 0;
|
||||
};
|
||||
class EPOCH_RyanZombie_2 : EPOCH_RyanZombie_1 {};
|
||||
class EPOCH_RyanZombie_3 : EPOCH_RyanZombie_1 {};
|
||||
class EPOCH_RyanZombie_4 : EPOCH_RyanZombie_1 {};
|
||||
class EPOCH_RyanZombie_5 : EPOCH_RyanZombie_1 {};
|
||||
};
|
||||
|
@ -1 +1 @@
|
||||
build=465;
|
||||
build=473;
|
||||
|
@ -1 +1 @@
|
||||
build=465;
|
||||
build=473;
|
||||
|
@ -14,11 +14,15 @@
|
||||
*/
|
||||
private["_range", "_move", "_nearBy"];
|
||||
params ["_target","_moveCase",["_token","",[""]]];
|
||||
if !([_target, _token] call EPOCH_server_getPToken) exitWith{};
|
||||
_player = _target;
|
||||
if (_target isEqualType []) then {
|
||||
_target params ["_target","_player"];
|
||||
};
|
||||
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
|
||||
_range = 0;
|
||||
_move = "";
|
||||
// TODO configize
|
||||
|
||||
// TODO configize
|
||||
switch (_moveCase) do {
|
||||
case 1: {
|
||||
_range = 1000;
|
||||
@ -28,6 +32,10 @@ switch (_moveCase) do {
|
||||
_range = 1000;
|
||||
_move = "epoch_unarmed_jump";
|
||||
};
|
||||
case 3: {
|
||||
_range = 400;
|
||||
_move = "AwopPercMstpSgthWnonDnon_throw";
|
||||
}
|
||||
};
|
||||
|
||||
if (_range > 0 && _move != "") then {
|
||||
|
@ -37,5 +37,8 @@ if (!isNull _target) then {
|
||||
case "PHANTOM": {
|
||||
"PHANTOM" remoteExec ['EPOCH_unitSpawnIncrease',_target];
|
||||
};
|
||||
case "EPOCH_RyanZombie_1": {
|
||||
"EPOCH_RyanZombie_1" remoteExec ['EPOCH_unitSpawnIncrease',_target];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -54,17 +54,12 @@ if (isNil "_instanceID") exitWith{
|
||||
|
||||
EPOCH_modCUPWeaponsEnabled = (getNumber (configFile >> "CfgPatches" >> "CUP_WheeledVehicles_Core" >> "requiredVersion") > 0);
|
||||
EPOCH_modCUPVehiclesEnabled = (getNumber (configFile >> "CfgPatches" >> "CUP_Weapons_WeaponsCore" >> "requiredVersion") > 0);
|
||||
EPOCH_mod_Ryanzombies_Enabled = (parseNumber (getText (configFile >> "CfgPatches" >> "Ryanzombies" >> "version")) >= 4.2);
|
||||
|
||||
if (EPOCH_modCUPWeaponsEnabled) then {
|
||||
diag_log "Epoch: CUP Weapons detected";
|
||||
};
|
||||
if (EPOCH_modCUPVehiclesEnabled) then {
|
||||
diag_log "Epoch: CUP Vehicles detected";
|
||||
};
|
||||
if (EPOCH_mod_Ryanzombies_Enabled) then {
|
||||
diag_log "Epoch: Ryanzombies detected";
|
||||
};
|
||||
|
||||
diag_log "Epoch: Init Variables";
|
||||
call compile preprocessFileLineNumbers "\epoch_server\init\server_variables.sqf";
|
||||
|
@ -1 +1 @@
|
||||
build=465;
|
||||
build=473;
|
||||
|
@ -1 +1 @@
|
||||
build=465;
|
||||
build=473;
|
||||
|
Loading…
Reference in New Issue
Block a user