mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
0.3.9.0524
This commit is contained in:
parent
c0b6b764f8
commit
f253648423
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.
Binary file not shown.
@ -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) \[.+\]"
|
||||
|
@ -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'"
|
||||
|
@ -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;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -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";
|
||||
};
|
||||
|
@ -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];
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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 = [];
|
||||
{
|
||||
|
@ -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;
|
||||
{
|
||||
|
@ -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
|
||||
|
@ -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}
|
||||
|
@ -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 {};
|
||||
|
@ -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;};
|
||||
};
|
||||
|
@ -1 +1 @@
|
||||
build=515;
|
||||
build=524;
|
||||
|
@ -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"
|
||||
|
@ -1 +1 @@
|
||||
build=515;
|
||||
build=524;
|
||||
|
@ -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 {
|
||||
|
@ -43,3 +43,4 @@ if !(_this isEqualType []) then {
|
||||
}];
|
||||
};
|
||||
}forEach _this;
|
||||
addToRemainsCollector _this;
|
||||
|
@ -1 +1 @@
|
||||
build=515;
|
||||
build=524;
|
||||
|
@ -1 +1 @@
|
||||
build=515;
|
||||
build=524;
|
||||
|
Loading…
Reference in New Issue
Block a user