0.3.9.0524

This commit is contained in:
vbawol 2016-06-14 19:58:22 -05:00
parent c0b6b764f8
commit f253648423
49 changed files with 164 additions and 128 deletions

View File

@ -1 +1 @@
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]"
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer|client_bitePlayer) \[.+\]"

View File

@ -13,7 +13,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];" !="_this select 0 setvelocity (_this select 1)"
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)" !="_zombie setVelocityTransformation [_aslPos,_aslPos,_unitV,_unitV,_unitvDir,_vDir,_unitvUp,_unitvUp,2];"
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;"
@ -50,7 +50,7 @@
7 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !"[\"FiredNear"\" !"[\"EpeContactStart"\" !"[\"GetOut"\" !"[\"local"\" !"[\"PostReset"\" !"[\"TaskSetAsCurrent"\" !="player addEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="\"CBA_fnc_addEventHandler\"" !="\\fnc_addEventHandler" !="\"addEventHandler" !="_eventFunc = _eventFunc + \"(_this select 0) addEventHandler ['Respawn', \" + str _eventFunc + \"];\";" !="_unit addEventHandler [\"hitpart\"," !="CBA_fnc_addEventHandler" !="_ship addEventHandler [\"AttributesChanged3DEN\""
7 displayAddEventHandler !="(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !="_display displayAddEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="_display displayaddeventhandler\n[\n\"mousemoving\"," !="_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'" !="_display displayaddeventhandler [_x,_fnc_animate];" !="Development\") then\n{\n_display displayaddeventhandler [\n\"keydown\"" !="_display displayaddeventhandler [\"mousemoving\",\"with uinamespace do {['watchFields'" !="/"CBA_fnc_addDisplayHandler/""
7 ctrlAddEventHandler !"rCfg >> \"refreshDelay\");" !" [\n\"draw\"," !" [\"buttonclick\"," !="(uiNamespace getVariable 'ESP_map') ctrlAddEventHandler['Draw', '_esp_targets = EPOCH_ESPMAP_TARGETS;" !="ctrlAddEventHandler ['MouseButtonDown'" !="(_display displayctrl _idc) ctrlAddEventHandler [\"LBSelChanged\"," !="_ctrl ctrlSetEventHandler [\"mouseEnter\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseExit\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseButtonDown\", (format [\"call %1;\",(_buttonSettings select _e select 2)])];" !="_prevButton ctrlAddEventHandler [\"MouseButtonUp\", {_this call cba_diagnostic_fnc_debug" !="BIS_RscRespawnControlsMap_ctrlHeaderRespawnButton ctrlAddEventhandler [/"ButtonDown/""
7 removeAllEventHandlers !="ctrlRemoveAllEventHandlers" !="displayRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="{_ship removeAllEventHandlers _x;} forEach [\"AttributesChanged3DEN\""
7 removeAllEventHandlers !="ctrlRemoveAllEventHandlers" !="displayRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="{_ship removeAllEventHandlers _x;} forEach [\"AttributesChanged3DEN\"" !="_zombie removeAllEventHandlers \"Hit\";" !="_zombie removeAllEventHandlers \"FiredNear\";"
7 displayRemoveAllEventHandlers !="_display displayRemoveAllEventHandlers _x;" !="if !(isMultiplayer) then { { (findDisplay 46) displayRemoveAllEventHandlers _x } forEach [\"KeyUp\", \"KeyDown\"] };"
7 removeAllMissionEventHandlers
7 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'"

View File

@ -684,7 +684,7 @@ class FSM
to="instinct";
precondition = "";
condition="diag_tickTime - _t > 0.6;";
action="_zombie switchMove ""AwopPercMstpSgthWnonDnon_throw"";";
action="[_zombie,_trgt] call EPOCH_client_bitePlayer;";
};
};
};

View File

@ -17,7 +17,7 @@ params ["_unit","_container","_item"];
// check for access of a locked container
if (_container getVariable['EPOCH_Locked', false]) then {
// kick player
// kick player, TODO: temp ban?
EPOCH_kicked = format ["%1 attempted to access a locked %2 with %3",_unit,_container,_item];
publicVariableServer "EPOCH_kicked";
};

View File

@ -12,12 +12,12 @@
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf
*/
private ["_unit","_sapperNum","_config","_targetPos","_grp","_driver","_index","_nonJammer","_nonTrader","_jammers","_jammerRange","_restricted","_disableAI"];
params ["_unitClass","_trgt","_doVariable"];
private ["_loop","_unit","_sapperNum","_config","_targetPos","_grp","_driver","_index","_nonJammer","_nonTrader","_jammers","_jammerRange","_restricted","_disableAI"];
params ["_unitClass",["_trgt",player],["_doVariable",false]];
private _bomb = objNull;
if(isNil "_doVariable")then{_doVariable=false;};
if(isNil "_trgt")then{_trgt=player;};
diag_log format["Epoch: ADMIN: Antagonist %1 Spawning on %2. Do variable: %3.", _unitClass, _trgt, _doVariable];
diag_log format["DEBUG: Antagonist %1 Spawning on %2. Do variable: %3.", _unitClass, _trgt, _doVariable];
if(random 100 < 6)then{
[] execFSM "\x\addons\a3_epoch_code\System\Event_Air_Drop.fsm";
};
@ -25,12 +25,15 @@ if(_doVariable)then{_unitClass call EPOCH_unitSpawnIncrease;};//Assumes Antagoni
_index = EPOCH_spawnIndex find _unitClass;
_spawnLimit = EPOCH_playerSpawnArray select _index;
if (!_doVariable && (count(_trgt nearEntities[_unitClass, 800]) >= _spawnLimit)) exitWith{};
_currentLimit = count(_trgt nearEntities[_unitClass, 800]);
if (!_doVariable && (_currentLimit >= _spawnLimit)) exitWith {
diag_log format["DEBUG: too many %1 exiting unitspawn",_unitClass];
};
_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;
_nonTraderAIRange = ["CfgEpochClient", "nonTraderAIRange", 150] call EPOCH_fnc_returnConfigEntryV2;
_loop = false;
_unit = objNull;
_targetPos = getPosATL _trgt;
@ -53,10 +56,11 @@ if(count _restricted > 0 && (_unitClass in _nonTrader))exitWith{
_disableAI = {
{_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"];
};
_units = [];
switch _unitClass do {
case "Epoch_Cloak_F": {
_unit = createAgent[_unitClass, _targetPos, [], 256, "FORM"];
_units pushBack _unit;
_unit call _disableAI;
[_unit,_trgt] execFSM "\x\addons\a3_epoch_code\System\cloak.fsm";
};
@ -64,6 +68,7 @@ switch _unitClass do {
if (surfaceIsWater _targetPos) then{
if (((_targetPos vectorDiff getPosASL _trgt) select 2) > 25) then{
_unit = createAgent[_unitClass, _targetPos, [], 120, "FORM"];
_units pushBack _unit;
_unit call _disableAI;
[_unit] execFSM "\x\addons\a3_epoch_code\System\Shark_Brain.fsm";
};
@ -79,6 +84,7 @@ switch _unitClass do {
[_trgt,_sapperNum] execVM "epoch_code\compile\EPOCH_callSapperMigration.sqf";
}else{
_unit = createAgent[_unitClass, _targetPos, [], 256, "FORM"];
_units pushBack _unit;
_bomb = createVehicle ["Sapper_Charge_Ammo", _targetPos, [], 0, "CAN_COLLIDE"];
_bomb attachTo [_unit, [0,0,0],"Pelvis"];
_unit call _disableAI;
@ -89,6 +95,7 @@ switch _unitClass do {
};
case "Epoch_SapperB_F": {
_unit = createAgent[_unitClass, _targetPos, [], 256, "FORM"];
_units pushBack _unit;
_bomb = createVehicle["SapperB_Charge_Ammo", _targetPos, [], 0, "CAN_COLLIDE"];
_bomb attachTo[_unit, [0, 0, 0], "Pelvis"];
_unit call _disableAI;
@ -101,6 +108,7 @@ switch _unitClass do {
_targetPos = [_targetPos, 600, 1200, 5, 0, 400, 0] call BIS_fnc_findSafePos;
_targetPos set[2, 600];
_unit = createVehicle["I_UAV_01_F", _targetPos, [], 0, "FLY"];
_units pushBack _unit;
addToRemainsCollector[_unit];
_unit flyInHeight 600;
_grp = createGroup RESISTANCE;
@ -115,9 +123,11 @@ switch _unitClass do {
[] execFSM "\x\addons\a3_epoch_code\System\Event_Air_Drop.fsm";
};
case "EPOCH_RyanZombie_1": {
_unit = [] call EPOCH_zombieSpawn;
// spawn more zeds up to limit max spawn limit.
"EPOCH_RyanZombie_1" call EPOCH_unitSpawn;
for "_i" from 1 to (_spawnLimit - _currentLimit) do
{
_unit = [] call EPOCH_zombieSpawn;
_units pushBack _unit;
};
};
};
@ -127,7 +137,7 @@ if(_doVariable && (!isNull _unit) && (!isNull _trgt))then{
_trgt setVariable ["EPOCH_antagBomb", _bomb, true];
};
};
if !(isNull _unit) then {
// send to server
[_unit] remoteExec ["EPOCH_localCleanup",2];
if !(_units isEqualTo []) then {
_units remoteExec ["EPOCH_localCleanup",2];
};

View File

@ -32,6 +32,8 @@ if!(isOnRoad _unit)then{
};
_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;

View File

@ -16,107 +16,119 @@
_dog call EPOCH_client_bitePlayer;
Parameter(s):
_this: OBJECT - attacker
_unit: OBJECT - attacker
Returns:
NOTHING
*/
private ["_distance","_toxicChance","_bloodpChance","_fatigueChance","_bleedAmount","_bloodpAmount","_soundEffect","_canSee","_ppEffect","_bleedChance","_soundEffectIndex","_soundEffectGlobal","_animationEffect","_animationEffectGlobal","_cfgObjectInteraction"];
if !(isNull _this && alive _this) then {
params [["_unit",objNull],["_target",player]];
if (isNull _unit && isNull _target) exitWith {};
if !(_target isEqualTo player) then {
// re to other player
[_unit,_target] remoteExec ["EPOCH_client_bitePlayer", _target];
} else {
_distance = 5;
_toxicChance = 0.1;
_bleedChance = 1;
_bloodpChance = 0;
_fatigueChance = 0.1;
_bleedAmount = 30;
_bloodpAmount = 2;
_soundEffect = "";
_soundEffectGlobal = -1;
_animationEffect = "";
_animationEffectGlobal = -1;
_canSee = false;
_ppEffect = 0;
if !(isNull _unit && alive _unit) then {
_distance = 5;
_toxicChance = 0.1;
_bleedChance = 1;
_bloodpChance = 0;
_fatigueChance = 0.1;
_bleedAmount = 30;
_bloodpAmount = 2;
_soundEffect = "";
_soundEffectGlobal = -1;
_animationEffect = "";
_animationEffectGlobal = -1;
_canSee = false;
_ppEffect = 0;
_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");
_soundConfigArray = getArray (_cfgObjectInteraction >> "soundEffect");
if !(_soundConfigArray isEqualTo []) then {
_soundEffect = selectRandom _soundConfigArray;
};
_soundEffectGlobal = getNumber (_cfgObjectInteraction >> "soundEffectGlobal");
_animConfigArray = getArray (_cfgObjectInteraction >> "animationEffect");
if !(_animConfigArray isEqualTo []) then {
_animationEffect = selectRandom _animConfigArray;
};
_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 != -1) then {
[player, _this, _soundEffectIndex, Epoch_personalToken] remoteExec ["EPOCH_server_handle_say3D",2];
_cfgObjectInteraction = (('CfgObjectInteractions' call EPOCH_returnConfig) >> (typeOf _unit));
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");
_soundConfigArray = getArray (_cfgObjectInteraction >> "soundEffect");
if !(_soundConfigArray isEqualTo []) then {
_soundEffect = selectRandom _soundConfigArray;
};
};
if (_animationEffect != "") then {
_this switchMove _animationEffect;
if (_animationEffectGlobal != -1) then {
[[_this,player], _animationEffectGlobal, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
_soundEffectGlobal = getNumber (_cfgObjectInteraction >> "soundEffectGlobal");
_animConfigArray = getArray (_cfgObjectInteraction >> "animationEffect");
if !(_animConfigArray isEqualTo []) then {
_animationEffect = selectRandom _animConfigArray;
};
_animationEffectGlobal = getNumber (_cfgObjectInteraction >> "animationEffectGlobal");
_canSee = call compile (getText (_cfgObjectInteraction >> "canSee"));
_ppEffect = getNumber (_cfgObjectInteraction >> "ppEffect");
};
if (random 1 < _toxicChance) then {
EPOCH_playerToxicity = (EPOCH_playerToxicity + (random(100 - EPOCH_playerImmunity))) min 100;
};
if (random 1 < _bleedChance) then {
player setBleedingRemaining((getBleedingRemaining player) + _bleedAmount);
};
if (random 1 < _bloodpChance) then {
EPOCH_playerBloodP = (EPOCH_playerBloodP + (_bloodpAmount + (EPOCH_playerBloodP - 100))) min 190;
if (_ppEffect == 1) then {
[] spawn{
_ppGrain = ppEffectCreate["filmGrain", 2005];
_ppChrom = ppEffectCreate["chromAberration", 2006];
_ppColor = ppEffectCreate["colorCorrections", 2007];
_ppBlur = ppEffectCreate["radialBlur", 2008];
_ppColor ppEffectAdjust[1, 1, 0, [1.5, -1, -1.5, 0.5], [5, 3.5, -5, -0.5], [-3, 5, -5, -0.5]];
_ppColor ppEffectCommit 5;
_ppChrom ppEffectAdjust[0.01, 0.01, true];
_ppChrom ppEffectCommit 5;
_ppBlur ppEffectAdjust[0.02, 0.02, 0.15, 0.15];
_ppBlur ppEffectCommit 5;
_ppGrain ppEffectAdjust[0.1, -1, 0.05, 0.05, 2, false];
_ppGrain ppEffectCommit 1;
_ppGrain ppEffectEnable true;
_ppChrom ppEffectEnable true;
_ppColor ppEffectEnable true;
_ppBlur ppEffectEnable true;
uiSleep 2;
_ppColor ppEffectAdjust[1, 1, -0.01, [0.0, 0.0, 0.0, 0.0], [1.5, 1, 1.2, 0.6], [0.199, 0.587, 0.114, 0.20]];
_ppColor ppEffectCommit 5;
_ppChrom ppEffectAdjust[0, 0, true];
_ppChrom ppEffectCommit 5;
_ppBlur ppEffectAdjust[0, 0, 0, 0];
_ppBlur ppEffectCommit 5;
uiSleep 5;
ppEffectDestroy[_ppGrain, _ppChrom, _ppColor, _ppBlur];
if ((_unit distance player) < _distance && _canSee) then {
if (_soundEffect isEqualType []) then {
_soundEffect params ["_soundEffectFinal",["_soundEffectRange",0]];
playSound3D [_soundEffectFinal, _unit, false, getPosASL _unit, 1, 1, _soundEffectRange];
} else {
_soundEffectIndex = EPOCH_sounds find _soundEffect;
if (_soundEffectIndex != -1) then {
_unit say3D _soundEffect;
if (_soundEffectGlobal != -1) then {
[player, _unit, _soundEffectIndex, Epoch_personalToken] remoteExec ["EPOCH_server_handle_say3D",2];
};
};
};
};
if (random 1 < _fatigueChance) then {
player setFatigue 1;
if (_animationEffect != "") then {
_unit switchMove _animationEffect;
if (_animationEffectGlobal != -1) then {
[[_unit,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;
};
if (random 1 < _bleedChance) then {
player setBleedingRemaining((getBleedingRemaining player) + _bleedAmount);
};
if (random 1 < _bloodpChance) then {
EPOCH_playerBloodP = (EPOCH_playerBloodP + (_bloodpAmount + (EPOCH_playerBloodP - 100))) min 190;
if (_ppEffect == 1) then {
[] spawn{
_ppGrain = ppEffectCreate["filmGrain", 2005];
_ppChrom = ppEffectCreate["chromAberration", 2006];
_ppColor = ppEffectCreate["colorCorrections", 2007];
_ppBlur = ppEffectCreate["radialBlur", 2008];
_ppColor ppEffectAdjust[1, 1, 0, [1.5, -1, -1.5, 0.5], [5, 3.5, -5, -0.5], [-3, 5, -5, -0.5]];
_ppColor ppEffectCommit 5;
_ppChrom ppEffectAdjust[0.01, 0.01, true];
_ppChrom ppEffectCommit 5;
_ppBlur ppEffectAdjust[0.02, 0.02, 0.15, 0.15];
_ppBlur ppEffectCommit 5;
_ppGrain ppEffectAdjust[0.1, -1, 0.05, 0.05, 2, false];
_ppGrain ppEffectCommit 1;
_ppGrain ppEffectEnable true;
_ppChrom ppEffectEnable true;
_ppColor ppEffectEnable true;
_ppBlur ppEffectEnable true;
uiSleep 2;
_ppColor ppEffectAdjust[1, 1, -0.01, [0.0, 0.0, 0.0, 0.0], [1.5, 1, 1.2, 0.6], [0.199, 0.587, 0.114, 0.20]];
_ppColor ppEffectCommit 5;
_ppChrom ppEffectAdjust[0, 0, true];
_ppChrom ppEffectCommit 5;
_ppBlur ppEffectAdjust[0, 0, 0, 0];
_ppBlur ppEffectCommit 5;
uiSleep 5;
ppEffectDestroy[_ppGrain, _ppChrom, _ppColor, _ppBlur];
};
};
};
if (random 1 < _fatigueChance) then {
player setFatigue 1;
};
};
};
};

View File

@ -109,7 +109,7 @@ switch true do {
_nuisanceLevel = _nuisanceLevel / 2;
};
// Nuisance System 0.1
(EPOCH_customVarLimits select (EPOCH_customVars find "Nuisance")) params [["_playerLimitMax",100],["_playerLimitMin",0]];
(EPOCH_customVarLimits select (EPOCH_customVars find "Nuisance")) params [["_playerLimitMax",100],["_playerLimitMin",0]];
EPOCH_playerNuisance = ((EPOCH_playerNuisance + _nuisanceLevel) min _playerLimitMax) max _playerLimitMin;
};
};

View File

@ -61,7 +61,7 @@ if (EPOCH_playerEnergy == 0) then {
};
};
_attackers = player nearEntities[["Snake_random_EPOCH", "GreatWhite_F", "Epoch_Cloak_F","EPOCH_RyanZombie_1"], 30];
_attackers = player nearEntities[["Snake_random_EPOCH", "GreatWhite_F", "Epoch_Cloak_F"], 30];
if !(_attackers isEqualTo[]) then {
(_attackers select 0) call EPOCH_client_bitePlayer;
_panic = true;

View File

@ -10,6 +10,7 @@ if (EPOCH_mod_Ryanzombies_Enabled) then {
if (random EPOCH_sapperRndChance < _spawnChance) then {
"Epoch_Sapper_F" call EPOCH_unitSpawnIncrease;
};
diag_log format["DEBUG: _spawnChance %1",_spawnChance];
_spawnUnits = [];
{

View File

@ -63,7 +63,7 @@ _antagonistSpawnDefaults = [
["I_UAV_01_F",2],
["PHANTOM",1],
["B_Heli_Transport_01_F",1],
["EPOCH_RyanZombie_1",10]
["EPOCH_RyanZombie_1",12]
];
_spawnLimits = ["CfgEpochClient", "antagonistSpawnIndex", _antagonistSpawnDefaults] call EPOCH_fnc_returnConfigEntryV2;
{

View File

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

View File

@ -32,7 +32,7 @@ class CfgEpochClient
{"I_UAV_01_F",2},
{"PHANTOM",1},
{"B_Heli_Transport_01_F",1},
{"EPOCH_RyanZombie_1",10}
{"EPOCH_RyanZombie_1",12}
};
customVarsDefaults[] = {
// EPOCH_player + varName, default value, {max,min}

View File

@ -35,7 +35,7 @@ class CfgObjectInteractions {
class SapperCorpse_SIM_EPOCH : Default {
interactMode = 0;
};
class Snake_random_EPOCH : Default {
distance = 3;
toxicChance = 0.2;
@ -44,7 +44,7 @@ class CfgObjectInteractions {
bleedAmount = 30;
bloodpAmount = 3;
soundEffect[] = {"snake_bite0"};
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 0;
};
class Snake2_random_EPOCH : Default {
@ -55,7 +55,7 @@ class CfgObjectInteractions {
bleedAmount = 30;
bloodpAmount = 3;
soundEffect[] = {"snake_bite0"};
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 0;
};
class GreatWhite_F : Default {
@ -88,21 +88,21 @@ class CfgObjectInteractions {
bleedAmount = 66;
bloodpAmount = 3;
soundEffect[] = {"cultist_nearby"};
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 1;
};
class EPOCH_RyanZombie_1 : Default {
distance = 3;
toxicChance = 0.2;
bloodpChance = 1;
fatigueChance = 0.5;
toxicChance = 0.1;
bloodpChance = 0.9;
fatigueChance = 0.4;
bleedAmount = 30;
bloodpAmount = 3;
soundEffect[] = {"ryanzombiesattack1", "ryanzombiesattack2", "ryanzombiesattack3", "ryanzombiesattack4", "ryanzombiesattack5"};
soundEffect[] = {{"ryanzombies\sounds\attack1.ogg",400}, {"ryanzombies\sounds\attack2.ogg",400}, {"ryanzombies\sounds\attack3.ogg",400}, {"ryanzombies\sounds\attack4.ogg",400}, {"ryanzombies\sounds\attack5.ogg",400}};
soundEffectGlobal = 1;
animationEffect[] = {"AwopPercMstpSgthWnonDnon_throw"};
animationEffectGlobal = 3;
canSee = "!(lineIntersects[eyePos _this, aimPos player, _this, player])";
canSee = "!(lineIntersects[eyePos _unit, aimPos _target, _unit, _target])";
ppEffect = 0;
};
class EPOCH_RyanZombie_2 : EPOCH_RyanZombie_1 {};

View File

@ -84,6 +84,10 @@ class CfgRemoteExec
class EPOCH_server_handle_switchMove {
allowedTargets=2;
jip = 0;
};
class EPOCH_client_bitePlayer {
allowedTargets=1;
jip = 0;
};
class EPOCH_server_upgradeGroup {
allowedTargets=2;
@ -225,7 +229,7 @@ class CfgRemoteExec
allowedTargets=2;
jip = 0;
};
};
class Commands {mode=0;};
};

View File

@ -1 +1 @@
build=515;
build=524;

View File

@ -57,7 +57,9 @@ disableRandomization[] = {"All"};
#include "Configs\CfgMissionsTasks.hpp"
#include "Configs\cfgCrafting.hpp"
#include "Configs\cfgPricing.hpp"
#include "Configs\CfgEpochClient.hpp"
#include "Configs\CfgMasterLoop.hpp"
#include "Configs\CfgBaseBuilding.hpp"
#include "Configs\CfgSnapChecks.hpp"

View File

@ -1 +1 @@
build=515;
build=524;

View File

@ -33,9 +33,13 @@ switch (_moveCase) do {
_move = "epoch_unarmed_jump";
};
case 3: {
_range = 400;
_range = 1000;
_move = "AwopPercMstpSgthWnonDnon_throw";
}
case 4: {
_range = 1000;
_move = "AmovPercMstpSnonWnonDnon_SaluteOut";
}
};
if (_range > 0 && _move != "") then {

View File

@ -43,3 +43,4 @@ if !(_this isEqualType []) then {
}];
};
}forEach _this;
addToRemainsCollector _this;

View File

@ -1 +1 @@
build=515;
build=524;

View File

@ -1 +1 @@
build=515;
build=524;

View File

@ -1 +1 @@
515
524